Commit b2d73920 by 李小惠

修改装备、财务统计报表接口,修改日常出入库转领用单接口

parent 7642f0b1
......@@ -71,5 +71,7 @@ public class QueryDeviceConfigReq extends BaseRequest {
private String updateUser;
private Integer deviceType;
//是否暂存标记,true暂存,false,不暂存
private Boolean flag;
}
......@@ -15,4 +15,9 @@ public class TjOrgPriceReq extends BaseRequest {
private List<String> sizeNameList;
//年
private Integer year;
private Boolean removeEmpty;
private Integer levelNum;
}
......@@ -71,4 +71,12 @@ public class UpdateDeivceConfigReq implements Serializable {
private Integer deviceType;
//是否暂存标记,true暂存,false,不暂存
private Boolean flag;
//rabbitmq消息有关参数
private String api;
private String msg;
//rabbitmq消息有关参数
private Integer type;
}
......@@ -175,5 +175,6 @@ public class UpdateOrderReq extends BaseRequest implements Serializable {
//是否打印
private String isPrint;
private Long logSummaryId;
}
......@@ -70,4 +70,10 @@ public class UpdateWarehouseDevReq {
private Long updateTime;
//rabbitmq消息有关参数
private String api;
private String msg;
//rabbitmq消息有关参数
private Integer type;
}
......@@ -53,8 +53,8 @@ public class InventoryController {
//该方法只有插入语句,要注意inventory_summary表中没有数据,仅有结构,否则数据不准确
@PostMapping("/SetInventoryMsg")
@ApiOperation("填充汇总表信息")
public ApiRes<Boolean> setInventoryMsg() {
boolean result = inventoryService.setInventoryMsg();
public ApiRes<Boolean> setInventoryMsg(InventorySumReq req) {
boolean result = inventoryService.setInventoryMsg(req);
if (!result){
return ApiRes.failure("汇总失败");
}
......
......@@ -49,11 +49,6 @@ public class TjController {
public ApiRes<PageResult<TjOrgEqsDto>> TjOrgEqs(@RequestBody TjOrgEqsReq req){
return ApiRes.success(tjService.TjOrgEqs(req));
}
@PostMapping("/TjOrgEqsSum")
@ApiOperation("/装备统计报表汇总")
public ApiRes<FinalTjOrgEqsDto> TjOrgEqsSum(@RequestBody TjOrgEqsReq req){
return ApiRes.success(tjService.TjOrgEqsSum(req));
}
/**
* 根据组织机构统计装备的报表数据(外层数据)
......@@ -117,6 +112,12 @@ public class TjController {
return ApiRes.success(tjService.TjOrgPriceSum(req));
}
@PostMapping("/TjOrgPriceDetail")
@ApiOperation("/查询组织机构下的财务统计明细")
public ApiRes<List<TjOrgPriceDto>> TjOrgPriceDetail(@RequestBody TjOrgPriceReq req){
return ApiRes.success(tjService.TjOrgPriceDetail(req));
}
//财务统计报表(点击+后里面的数据)
@PostMapping("/TjOrgPriceDetailPage")
@ApiOperation("/查询组织机构下的财务统计明细")
......
......@@ -178,6 +178,14 @@ import static com.junmp.junmpProcess.common.CommonConstants.*;
bussinessInventoryService.updateById(BI);
MQ.SendMsg(exchangeName,BI.getOrgId().toString(),BI);
} else
if (Type.equals("normalOrder")){
OrderMain existOrder= orderMainService.getOne(new LambdaQueryWrapper<OrderMain>()
.eq(OrderMain::getProcessId, processInstanceId));
existOrder.setExamineState("finished");
existOrder.setOrderState("finished");
existOrder.setManualState(1);
orderMainService.updateById(existOrder);
}
//消息推送
MessageSendReq sendReq = new MessageSendReq();
......
......@@ -88,4 +88,9 @@ public interface InventoryMapper extends BaseMapper<Inventory> {
@Param("sizeIdList")List<String> sizeIdList);
IPage<InventoryDto> GetDetailByTerms(@Param("page") Page<Object> defaultPage, @Param("req") InventoryReq req);
void reSetInventory(@Param("summaryTableName") String baseInventorySummary,
@Param("sourceTableName") String baseInventory,
@Param("warrantyThreshold") Integer brokenNumberDays,
@Param("sql") String sql);
}
\ No newline at end of file
......@@ -47,7 +47,7 @@ public interface InventorySummaryMapper extends BaseMapper<InventorySummary> {
List<TjOrgEqsDto> test(@Param("req") InventoryReq req);
TjOrgEqsDto GetInvSum(@Param("orgId") String orgId,@Param("typeId") String typeId,@Param("sizeName") String sizeName);
TjOrgEqsDto GetSumLeve4(@Param("orgId") String orgId,@Param("typeId") String typeId,@Param("sizeName") String sizeName);
TjOrgEqsDto GetSumLeve4(@Param("orgId") String orgId,@Param("typeId") String typeId,@Param("sizeName") String sizeName,@Param("sql") Integer sql);
List<TjOrgEqsDto> selectDynamicView();
......
......@@ -28,10 +28,10 @@ public interface PriceSumSummaryMapper extends BaseMapper<PriceSumSummary> {
*/
void MonthDifference ();
List<TjOrgPriceDto> TjOrgPrice(@Param("orgId") Long orgId,
TjOrgPriceDto TjOrgPrice(@Param("orgId") Long orgId,
@Param("year") Integer year,
@Param("typeIdsList")List<String> typeIdsList,
@Param("sizeNameList") List<String> sizeNameList);
@Param("typeIdsList") List<String> typeIdsList,
@Param("sizeNameList")List<String> sizeNameList);
List<TjOrgPriceDto> TjOrgPriceDetail(@Param("orgId") Long orgId,
@Param("year") Integer year,
......@@ -51,4 +51,14 @@ public interface PriceSumSummaryMapper extends BaseMapper<PriceSumSummary> {
void setSizeName(@Param("sizeId") String id, @Param("sizeName") String name);
void setTypeName(@Param("typeId") String id, @Param("typeName") String name);
TjOrgPriceDto TjOrgPriceLeve4(@Param("orgId") Long orgId,
@Param("year") Integer year,
@Param("typeIdsList") List<String> typeIdsList,
@Param("sizeNameList")List<String> sizeNameList,@Param("levelFlag")Integer levelFlag);
List<TjOrgPriceDto> TjOrgPriceTotalNum(@Param("orgId") Long orgId,
@Param("year") Integer year,
@Param("typeIdsList") List<String> typeIdsList,
@Param("sizeNameList")List<String> sizeNameList,@Param("levelNum")Integer levelNum);
}
......@@ -22,7 +22,7 @@ public interface InventoryService extends IService<Inventory> {
//计算更新库存汇总表信息
boolean setInventoryMsg();
boolean setInventoryMsg(InventorySumReq req);
boolean UpdateWarehouseInsNum(WarehouseReq req);
......
......@@ -54,5 +54,5 @@ public interface OrderMainService extends IService<OrderMain> {
OrderNum setOrderCode(UpdateOrderReq req);
//快速创建入库单(快速移库内容)
boolean addQuickOrder(OrderMain existOrder);
// boolean addQuickOrder(OrderMain existOrder);
}
......@@ -30,9 +30,8 @@ public interface TjService {
PageResult<TjOrgPriceDto> TjOrgPriceDetailPage(TjOrgPriceReq req);
List<TjOrgPriceDto> TjOrgPriceDetailList(TjOrgPriceReq req);
FinalTjOrgEqsDto TjOrgEqsSum(TjOrgEqsReq req);
FinalTjOrgPriceDto TjOrgPriceSum(TjOrgPriceReq req);
List<TjOrgPriceDto> TjOrgPriceDetail(TjOrgPriceReq req);
PageResult<TjOrgCountDto> TjOrgCount(TjOrgCountReq req);
......@@ -62,4 +61,6 @@ public interface TjService {
PageResult<TjOrgEqsDto> test1(TjOrgEqsReq req);
FinalTjOrgEqsDto TjOrgDataSum(TjOrgEqsReq req);
}
......@@ -15,11 +15,13 @@ import com.junmp.jyzb.service.DeviceConfigService;
import com.junmp.jyzb.mapper.DeviceConfigMapper;
import com.junmp.jyzb.service.WarehouseDevService;
import com.junmp.jyzb.utils.DateTimeUtil;
import com.junmp.jyzb.utils.RabbitMQSendMsg;
import com.junmp.v2.common.util.BeanPlusUtil;
import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.db.api.factory.PageResultFactory;
import com.junmp.v2.db.api.page.PageResult;
import net.minidev.json.writer.BeansMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
......@@ -38,6 +40,9 @@ public class DeviceConfigServiceImpl extends ServiceImpl<DeviceConfigMapper, Dev
@Resource
private DeviceConfigMapper deviceConfigMapper;
@Autowired
private RabbitMQSendMsg MQ;
@Override
......@@ -47,6 +52,14 @@ public class DeviceConfigServiceImpl extends ServiceImpl<DeviceConfigMapper, Dev
deviceConfig.setCreateTime(DateTimeUtil.getCurrentDateTime());
deviceConfig.setUpdateTime(DateTimeUtil.getCurrentDateTime());
save(deviceConfig);
String exchangeName="orderExchange";
//判断是否暂存,将消息下发给本地主机
if(!req.getFlag()){
req.setApi("InfoChange");
req.setType(8);
req.setMsg("DeviceConfigChange");
MQ.SendMsg(exchangeName,req.getOrgId().toString(),req);
}
return deviceConfig.getId() ;
}
......@@ -55,6 +68,14 @@ public class DeviceConfigServiceImpl extends ServiceImpl<DeviceConfigMapper, Dev
DeviceConfig deviceConfig = new DeviceConfig();
BeanPlusUtil.copyProperties(req,deviceConfig);
deviceConfig.setUpdateTime(DateTimeUtil.getCurrentDateTime());
String exchangeName="orderExchange";
//判断是否暂存,将消息下发给本地主机
if(!req.getFlag()){
req.setApi("InfoChange");
req.setType(8);
req.setMsg("DeviceConfigChange");
MQ.SendMsg(exchangeName,req.getOrgId().toString(),req);
}
return updateById(deviceConfig);
}
......
......@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -132,7 +133,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
@Override
@Transactional(rollbackFor = Exception.class)
public boolean setInventoryMsg(){
public boolean setInventoryMsg(InventorySumReq req){
//查询字典表中的临近报废天数
SysDictItem sysDictItem = sysDictItemService.getOne(new LambdaQueryWrapper<SysDictItem>()
.eq(SysDictItem::getItemText, "brokenNumber"));
......@@ -143,12 +144,15 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
}else {
brokenNumberDays=Integer.parseInt(sysDictItem.getItemValue());
}
//放入仓库区域信息汇总
boolean b1 = inventoryMapper.SetWarehouseInventory(brokenNumberDays);
//放入单警柜信息汇总
boolean b = inventoryMapper.SetCabinetInventory(brokenNumberDays);
boolean b = inventorySummaryService.remove(new LambdaQueryWrapper<InventorySummary>().eq(InventorySummary::getOrgId, req.getOrgId()));
// //放入仓库区域信息汇总
// boolean b1 = inventoryMapper.SetWarehouseInventory(brokenNumberDays);
// //放入单警柜信息汇总
// boolean b = inventoryMapper.SetCabinetInventory(brokenNumberDays);
String sql="and bi.org_id_int = "+req.getOrgId();
inventoryMapper.reSetInventory("base_inventory_summary","base_inventory",brokenNumberDays,sql);
return (b && b1);
return (b);
}
......@@ -351,6 +355,9 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
is.setStockNumber(is.getStockNumber()-size);
is.setNumber(is.getNumber()-size);
is.setPrice(is.getUnitPrice().multiply(BigDecimal.valueOf(is.getNumber())));
if (is.getNumber()==0 && is.getStockNumber()==0 && is.getOutboundNumber()==0 && is.getDestructionNumber()==0){
delList.add(is);
}
//新增一条数据
InventorySummary inventorySummary = new InventorySummary();
BeanPlusUtil.copyProperties(req,inventorySummary);
......
......@@ -193,6 +193,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
List<OrderDetail> detailList = new ArrayList<>();
//通过遍历批量保存详细信息
String s="";
if (req.getLogSummaryId() !=null){
if (req.getOrderType().equals("in")){
Long dictId = sysDictService.getOne(new LambdaQueryWrapper<SysDict>()
.eq(SysDict::getDictCode, "bussiness_type")).getDictId();
......@@ -208,6 +209,8 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
.eq(SysDictItem::getItemValue, req.getBussinessType())).getItemText();
s=s+itemText+"单:";
}
}
List<Object[]> searchItem=new ArrayList<>();
for (UpdateOrderDetailReq listReq:req.getDetailList()) {
OrderDetail detail=new OrderDetail();
......@@ -229,7 +232,9 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
}
//添加日志记录
if (req.getLogSummaryId() !=null){
s=s+listReq.getWarehouseName()+"【"+listReq.getTypeName()+"--"+listReq.getSizeName()+"】预计数量:"+listReq.getPlanNum()+"\n";
}
detailList.add(detail);
Object[] item=new Object[]{req.getStartOrgId(),listReq.getWarehouseId(),listReq.getTypeId(),listReq.getSizeId(),listReq.getPrice()};
searchItem.add(item);
......@@ -258,6 +263,9 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
startProcessInstanceDTO.setTypeOrder("quickOrder");
processInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
}else if (req.getLogSummaryId()!=null && req.getExamineState().equals("working")){
startProcessInstanceDTO.setTypeOrder("normalOrder");
processInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
}
}
//如果是销毁出库,并且有审核流,那么直接将库存汇总信息进行修改
......@@ -306,6 +314,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
if (order.getProcessId()!=null){
boolean b = addOrderLog(req,order.getId(),order.getOrderCode(),s);
}
String objJson= redisCache.get(order.getProcessId());
redisCache.remove(order.getProcessId());
List<MessageSendReq> msgs= JSONObject.parseArray(objJson,MessageSendReq.class);
......@@ -318,6 +327,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
);
}
return list;
}
......@@ -920,7 +930,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//如果是快速移库,记账完成之后新增入库单并且该单据不走审核流,但是审核状态和入库状态显示已完成
boolean g=true;
if (req.getBussinessType().equals("quick")){
g = addQuickOrder(orderMain);
g = handleQuickOrder(orderMain);
}else {
d=updateSummaryInfo(req, orderDetailReqList, pubOrg.getOrgId(), pubOrg.getOrgCode(),pubOrg.getOrgName());
}
......@@ -1425,56 +1435,13 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
public boolean addQuickOrder(OrderMain existOrder) {
//创建新的orderMain入库单
OrderMain orderMain = new OrderMain();
BeanPlusUtil.copyProperties(existOrder,orderMain);
orderMain.setEndOrgId(existOrder.getStartOrgId());
orderMain.setEndOrgName(existOrder.getStartOrgName());
orderMain.setOrderType("in");
orderMain.setId(UUID.randomUUID().toString());
//工作流流程设为空
orderMain.setProcessId(null);
//修改订单编号,设置为入库的单号
UpdateOrderReq req = new UpdateOrderReq();
BeanPlusUtil.copyProperties(orderMain,req);
OrderNum orderNum = setOrderCode(req);
String codeValue=String.format("%04d",orderNum.getNum());
orderMain.setOrderCode(orderNum.getBussinessType()+orderNum.getYear()+
String.format("%02d",LocalDateTime.now().getMonth().getValue())+
String.format("%02d",LocalDateTime.now().getDayOfMonth())+codeValue);
//保存入库单
save(orderMain);
//查询出库子单用于赋值到入库单中
List<OrderDetail> list = orderDetailService.list(new LambdaQueryWrapper<OrderDetail>()
.eq(OrderDetail::getOrderId, existOrder.getId()));
//查询条件,将所有查询条件放在searchCriteria中,用于修改库存表中的装备的仓库位置
public boolean handleQuickOrder(OrderMain existOrder) {
//原来出库单的查询条件list(根据条件查询库存汇总表中包含有相同条件的数据)
List<Object[]> searchCriteria=new ArrayList<>();
//新建的入库单查询条件list(根据条件查询库存汇总表中是否包含有相同条件的数据)
List<Object[]> updateCriteria=new ArrayList<>();
//仓库id
String locationId = orderMain.getLocationId();
String locationName = orderMain.getLocationName();
//创建入库单子单
List<OrderDetail> collect = list.stream().map(orderDetail -> {
OrderDetail orderDetail1 = new OrderDetail();
BeanPlusUtil.copyProperties(orderDetail, orderDetail1);
orderDetail1.setId(null);
//修改主单据id
orderDetail1.setOrderId(orderMain.getId());
//修改单据出入状态
orderDetail1.setType("in");
//修改仓库id
orderDetail1.setWarehouseId(locationId);
orderDetail1.setWarehouseName(locationName);
Object[] criteria=new Object[]{existOrder.getStartOrgId(),orderDetail.getWarehouseId(),orderDetail.getTypeId(),orderDetail.getSizeId(),orderDetail.getPrice()};
searchCriteria.add(criteria);
Object[] update=new Object[]{orderMain.getEndOrgId(),locationId,orderDetail1.getTypeId(),orderDetail1.getSizeId(),orderDetail1.getPrice()};
updateCriteria.add(update);
return orderDetail1;
}).collect(Collectors.toList());
orderDetailService.saveBatch(collect);
addQuickOrder(existOrder,searchCriteria,updateCriteria);
//将summary汇总表中数据进行修改(修改该组织机构下的装备汇总信息将库存信息的在库数,库存总数,总价还有其他数据数量进行修改)
......@@ -1483,100 +1450,100 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//其次查询出修改后的仓库下面的汇总信息,判断该仓库下是否已经存在该号型、类型、单价相同的装备数据
List<InventorySummary> newSummaryList = inventorySummaryMapper.selectSumByItems(updateCriteria);
//第一步:判断是否将报废区的数据也同样进行移库(flag=true表示将报废区的数量进行一起移动),如果都没有报废数量,默认是true;
boolean flag = oldSummaryList.stream()
.noneMatch(oldsum -> oldsum.getBrokenNumber() > 0)
|| oldSummaryList.stream()
.filter(oldsum -> oldsum.getBrokenNumber() > 0)
.anyMatch(oldsum -> list.stream()
.anyMatch(orderDetail -> orderDetail.getSizeId().equals(oldsum.getSizeId())
&& orderDetail.getTypeId().equals(oldsum.getTypeId())
&& orderDetail.getPrice().compareTo(oldsum.getUnitPrice()) == 0
&& oldsum.getBrokenNumber() + orderDetail.getPlanNum() == oldsum.getStockNumber())
);
// boolean flag = oldSummaryList.stream()
// .noneMatch(oldsum -> oldsum.getBrokenNumber() > 0)
// || oldSummaryList.stream()
// .filter(oldsum -> oldsum.getBrokenNumber() > 0)
// .anyMatch(oldsum -> list.stream()
// .anyMatch(orderDetail -> orderDetail.getSizeId().equals(oldsum.getSizeId())
// && orderDetail.getTypeId().equals(oldsum.getTypeId())
// && orderDetail.getPrice().compareTo(oldsum.getUnitPrice()) == 0
// && oldsum.getBrokenNumber() + orderDetail.getPlanNum() == oldsum.getStockNumber())
// );
//创建删除列表用于将没用的数据汇总信息进行删除
List<InventorySummary> deleteList=new ArrayList<>();
//将修改的信息直接保存(需要的只是各种数量方便计算)
List<InventorySummary> saveList=new ArrayList<>();
//如果整个报废区进行移动,那么将各个数量进行修改
if (flag){
//修改的的是移出仓库的数量
for (OrderDetail orderDetail: list ) {
for (InventorySummary oldSum : oldSummaryList) {
//如果组织机构、仓库id、sizeId、typeId、unitPrice相同,那么修改其各项数值(不会存在两个列表长度不对等的情况,一定是一对一的,只不过是顺序问题,所以需要进行遍历)
if (orderDetail.getSizeId().equals(oldSum.getSizeId())
&& orderDetail.getTypeId().equals(oldSum.getTypeId())
&& orderDetail.getPrice().compareTo(oldSum.getUnitPrice()) == 0) {
InventorySummary inventorySummary = new InventorySummary();
BeanPlusUtil.copyProperties(oldSum,inventorySummary);
inventorySummary.setLocationId(locationId);
inventorySummary.setLocationName(locationName);
inventorySummary.setNumber(orderDetail.getPlanNum()+oldSum.getOutboundNumber());
inventorySummary.setPrice(orderDetail.getPrice().multiply(BigDecimal.valueOf(orderDetail.getPlanNum())));
inventorySummary.setStockNumber(orderDetail.getPlanNum());
inventorySummary.setDestructionNumber(0);
//销毁金额也为0
inventorySummary.setDestructionPrice(BigDecimal.ZERO);
inventorySummary.setId(null);
inventorySummary.setValuekey(null);
saveList.add(inventorySummary);
//如果存在删减数量完成之后所有的数量值都是0的情况,那么将这一条数据进行删除操作
if (oldSum.getDestructionNumber() == 0) {
deleteList.add(oldSum);
}else {
oldSum.setBrokenNumber(0);
oldSum.setNumber(0);
oldSum.setPrice(BigDecimal.ZERO);
oldSum.setStockNumber(0);
oldSum.setOutboundNumber(0);
oldSum.setUseNumber(0);
oldSum.setExpireNumber(0);
oldSum.setNearBrokenNumber(0);
}
break;//查询到直接跳过该循环进入下一循环
}
}
}
}else {//不将报废区的进行移动(修改的是移出仓库的库存数量)
for (OrderDetail orderDetail: list ) {
for (InventorySummary oldSum : oldSummaryList) {
//如果组织机构、仓库id、sizeId、typeId、unitPrice相同,那么修改其各项数值(
// 不会存在两个列表长度不对等的情况,一定是一对一的,只不过是顺序问题,所以需要进行遍历)
if (orderDetail.getSizeId().equals(oldSum.getSizeId())
&& orderDetail.getTypeId().equals(oldSum.getTypeId())
&& orderDetail.getPrice().compareTo(oldSum.getUnitPrice()) == 0) {
InventorySummary inventorySummary = new InventorySummary();
BeanPlusUtil.copyProperties(oldSum,inventorySummary);
inventorySummary.setLocationId(locationId);
inventorySummary.setLocationName(locationName);
//在库数量进行修改并且报废数设为0
inventorySummary.setBrokenNumber(0);
inventorySummary.setNumber(orderDetail.getPlanNum()+oldSum.getOutboundNumber());
inventorySummary.setPrice(orderDetail.getPrice().multiply(BigDecimal.valueOf(orderDetail.getPlanNum()+oldSum.getOutboundNumber())));
inventorySummary.setStockNumber(orderDetail.getPlanNum());
inventorySummary.setDestructionNumber(0);
inventorySummary.setDestructionPrice(BigDecimal.ZERO);
inventorySummary.setId(null);
inventorySummary.setValuekey(null);
saveList.add(inventorySummary);
oldSum.setNumber(oldSum.getNumber()-orderDetail.getPlanNum());
oldSum.setPrice(oldSum.getPrice().subtract(orderDetail.getPrice().multiply(BigDecimal.valueOf(orderDetail.getPlanNum()))));
oldSum.setStockNumber(oldSum.getNumber()-orderDetail.getPlanNum());
oldSum.setOutboundNumber(0);
oldSum.setNearBrokenNumber(0);
oldSum.setExpireNumber(0);
oldSum.setUseNumber(0);
//如果存在删减数量完成之后所有的数量值都是0的情况,那么将这一条数据进行删除操作
if (oldSum.getBrokenNumber()==0&& oldSum.getDestructionNumber() == 0) {
deleteList.add(oldSum);
}
break;//查询到直接跳过该循环进入下一循环
}
}
}
}
// if (flag){
// //修改的的是移出仓库的数量
// for (OrderDetail orderDetail: list ) {
// for (InventorySummary oldSum : oldSummaryList) {
// //如果组织机构、仓库id、sizeId、typeId、unitPrice相同,那么修改其各项数值(不会存在两个列表长度不对等的情况,一定是一对一的,只不过是顺序问题,所以需要进行遍历)
// if (orderDetail.getSizeId().equals(oldSum.getSizeId())
// && orderDetail.getTypeId().equals(oldSum.getTypeId())
// && orderDetail.getPrice().compareTo(oldSum.getUnitPrice()) == 0) {
// InventorySummary inventorySummary = new InventorySummary();
// BeanPlusUtil.copyProperties(oldSum,inventorySummary);
// inventorySummary.setLocationId(locationId);
// inventorySummary.setLocationName(locationName);
// inventorySummary.setNumber(orderDetail.getPlanNum()+oldSum.getOutboundNumber());
// inventorySummary.setPrice(orderDetail.getPrice().multiply(BigDecimal.valueOf(orderDetail.getPlanNum())));
// inventorySummary.setStockNumber(orderDetail.getPlanNum());
// inventorySummary.setDestructionNumber(0);
// //销毁金额也为0
// inventorySummary.setDestructionPrice(BigDecimal.ZERO);
// inventorySummary.setId(null);
// inventorySummary.setValuekey(null);
// saveList.add(inventorySummary);
// //如果存在删减数量完成之后所有的数量值都是0的情况,那么将这一条数据进行删除操作
// if (oldSum.getDestructionNumber() == 0) {
// deleteList.add(oldSum);
// }else {
// oldSum.setBrokenNumber(0);
// oldSum.setNumber(0);
// oldSum.setPrice(BigDecimal.ZERO);
// oldSum.setStockNumber(0);
// oldSum.setOutboundNumber(0);
// oldSum.setUseNumber(0);
// oldSum.setExpireNumber(0);
// oldSum.setNearBrokenNumber(0);
// }
// break;//查询到直接跳过该循环进入下一循环
// }
// }
// }
// }else {//不将报废区的进行移动(修改的是移出仓库的库存数量)
// for (OrderDetail orderDetail: list ) {
// for (InventorySummary oldSum : oldSummaryList) {
// //如果组织机构、仓库id、sizeId、typeId、unitPrice相同,那么修改其各项数值(
// // 不会存在两个列表长度不对等的情况,一定是一对一的,只不过是顺序问题,所以需要进行遍历)
// if (orderDetail.getSizeId().equals(oldSum.getSizeId())
// && orderDetail.getTypeId().equals(oldSum.getTypeId())
// && orderDetail.getPrice().compareTo(oldSum.getUnitPrice()) == 0) {
// InventorySummary inventorySummary = new InventorySummary();
// BeanPlusUtil.copyProperties(oldSum,inventorySummary);
// inventorySummary.setLocationId(locationId);
// inventorySummary.setLocationName(locationName);
// //在库数量进行修改并且报废数设为0
// inventorySummary.setBrokenNumber(0);
// inventorySummary.setNumber(orderDetail.getPlanNum()+oldSum.getOutboundNumber());
// inventorySummary.setPrice(orderDetail.getPrice().multiply(BigDecimal.valueOf(orderDetail.getPlanNum()+oldSum.getOutboundNumber())));
// inventorySummary.setStockNumber(orderDetail.getPlanNum());
// inventorySummary.setDestructionNumber(0);
// inventorySummary.setDestructionPrice(BigDecimal.ZERO);
// inventorySummary.setId(null);
// inventorySummary.setValuekey(null);
// saveList.add(inventorySummary);
//
// oldSum.setNumber(oldSum.getNumber()-orderDetail.getPlanNum());
// oldSum.setPrice(oldSum.getPrice().subtract(orderDetail.getPrice().multiply(BigDecimal.valueOf(orderDetail.getPlanNum()))));
// oldSum.setStockNumber(oldSum.getNumber()-orderDetail.getPlanNum());
// oldSum.setOutboundNumber(0);
// oldSum.setNearBrokenNumber(0);
// oldSum.setExpireNumber(0);
// oldSum.setUseNumber(0);
//
// //如果存在删减数量完成之后所有的数量值都是0的情况,那么将这一条数据进行删除操作
// if (oldSum.getBrokenNumber()==0&& oldSum.getDestructionNumber() == 0) {
// deleteList.add(oldSum);
// }
// break;//查询到直接跳过该循环进入下一循环
// }
// }
// }
// }
//判断查询到的newList是否有值,如果有值直接进行修改即可,但是如果不存在,则默认新增一条数据
//修改的是移入仓库的值
......@@ -1624,22 +1591,74 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//需要判断是否将报废区的数据进行移库,如果移动,那么所有的装备修改仓库id
//如果保留报废区,那么将报废区的数量不进行修改,其余数据进行修改
List<Inventory> eqsList = inventoryService.selectEqsByItem(searchCriteria);
for (Inventory inventory : eqsList) {
for (OrderDetail detail2 : collect) {
if (inventory.getOrgId().equals(existOrder.getStartOrgId())
&& inventory.getSizeId().equals(detail2.getSizeId())
&& inventory.getTypeId().equals(detail2.getTypeId())
&& inventory.getPrice().equals(detail2.getPrice())) {
// 修改 仓库id
inventory.setLocationId(detail2.getWarehouseId());
break; // 找到匹配的对象后跳出内循环
}
}
}
// for (Inventory inventory : eqsList) {
// for (OrderDetail detail2 : collect) {
// if (inventory.getOrgId().equals(existOrder.getStartOrgId())
// && inventory.getSizeId().equals(detail2.getSizeId())
// && inventory.getTypeId().equals(detail2.getTypeId())
// && inventory.getPrice().equals(detail2.getPrice())) {
// // 修改 仓库id
// inventory.setLocationId(detail2.getWarehouseId());
// break; // 找到匹配的对象后跳出内循环
// }
// }
// }
boolean d=inventoryService.updateBatchById(eqsList);
return a && b && c && d;
}
private Map<String,Object> addQuickOrder (OrderMain existOrder,List<Object[]> searchCriteria,List<Object[]> updateCriteria){
//创建新的orderMain入库单
OrderMain orderMain = new OrderMain();
BeanPlusUtil.copyProperties(existOrder,orderMain);
orderMain.setEndOrgId(existOrder.getStartOrgId());
orderMain.setEndOrgName(existOrder.getStartOrgName());
orderMain.setOrderType("in");
orderMain.setId(UUID.randomUUID().toString());
//工作流流程设为空
orderMain.setProcessId(null);
//修改订单编号,设置为入库的单号
UpdateOrderReq req = new UpdateOrderReq();
BeanPlusUtil.copyProperties(orderMain,req);
OrderNum orderNum = setOrderCode(req);
String codeValue=String.format("%04d",orderNum.getNum());
orderMain.setOrderCode(orderNum.getBussinessType()+orderNum.getYear()+
String.format("%02d",LocalDateTime.now().getMonth().getValue())+
String.format("%02d",LocalDateTime.now().getDayOfMonth())+codeValue);
//保存入库单
save(orderMain);
//查询出库子单用于赋值到入库单中
List<OrderDetail> list = orderDetailService.list(new LambdaQueryWrapper<OrderDetail>()
.eq(OrderDetail::getOrderId, existOrder.getId()));
//查询条件,将所有查询条件放在searchCriteria中,用于修改库存表中的装备的仓库位置
//仓库id
String locationId = orderMain.getLocationId();
String locationName = orderMain.getLocationName();
//创建入库单子单
List<OrderDetail> collect = list.stream().map(orderDetail -> {
OrderDetail orderDetail1 = new OrderDetail();
BeanPlusUtil.copyProperties(orderDetail, orderDetail1);
orderDetail1.setId(null);
//修改主单据id
orderDetail1.setOrderId(orderMain.getId());
//修改单据出入状态
orderDetail1.setType("in");
//修改仓库id
orderDetail1.setWarehouseId(locationId);
orderDetail1.setWarehouseName(locationName);
Object[] criteria=new Object[]{existOrder.getStartOrgId(),orderDetail.getWarehouseId(),orderDetail.getTypeId(),orderDetail.getSizeId(),orderDetail.getPrice()};
searchCriteria.add(criteria);
Object[] update=new Object[]{orderMain.getEndOrgId(),locationId,orderDetail1.getTypeId(),orderDetail1.getSizeId(),orderDetail1.getPrice()};
updateCriteria.add(update);
return orderDetail1;
}).collect(Collectors.toList());
orderDetailService.saveBatch(collect);
Map<String,Object> map=new HashMap<>();
map.put("list",list);
return map;
}
......
......@@ -11,6 +11,7 @@ import com.junmp.jyzb.api.bean.query.TjReq.TjOrgCountReq;
import com.junmp.jyzb.api.bean.query.TjReq.TjOrgEqsReq;
import com.junmp.jyzb.api.bean.query.TjReq.TjOrgPoliceReq;
import com.junmp.jyzb.api.bean.query.TjReq.TjOrgPriceReq;
import com.junmp.jyzb.entity.PubOrg;
import com.junmp.jyzb.mapper.*;
import com.junmp.jyzb.service.EquipmentSizeService;
import com.junmp.jyzb.service.PubOrgService;
......@@ -18,10 +19,12 @@ import com.junmp.jyzb.service.TjService;
import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.db.api.factory.PageResultFactory;
import com.junmp.v2.db.api.page.PageResult;
import liquibase.pro.packaged.Z;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
......@@ -42,6 +45,8 @@ public class TjServiceImpl implements TjService {
@Resource
private PoliceEquipmentMapper policeEquipmentMapper;
@Resource
private PubOrgService pubOrgService;
//装备统计报表
......@@ -124,8 +129,7 @@ public class TjServiceImpl implements TjService {
@Override
public PageResult<TjOrgEqsDto> GetTjData(TjOrgEqsReq req) {
// String sql=" SUBSTRING(`po`.`org_code`, 5, 2) = '00' ";
String sql=" 1=1 ";
PubOrg pubOrg = pubOrgService.PubOrgExist(req.getOrgId());
//先拿到符合条件的组织机构,再遍历组织机构组成数据
//(下一层数据组织机构数据)
List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId()));
......@@ -137,13 +141,14 @@ public class TjServiceImpl implements TjService {
req.getSizeNameList().isEmpty() ? null : req.getSizesAsString());
allData.add(OrgData);
}
if (req.getOrgId()!=1369509498032808905L)
{
if (req.getOrgId()!=1369509498032808905L)
{
TjOrgEqsDto OrgData = inventorySummaryMapper.GetSumLeve4(String.valueOf(req.getOrgId()),
req.getTypeIdsList().isEmpty() ? null : req.getTypeIdsAsString(),
req.getSizeNameList().isEmpty() ? null : req.getSizesAsString());
req.getSizeNameList().isEmpty() ? null : req.getSizesAsString(),pubOrg.getLevelFlag());
allData.add(OrgData);//把本级数据加进去
}
}
//查询出来的组织机构进行判断,如果该组织机构下的装备装备总数为0,那么将该组织机构从list中移除
if (req.getRemoveEmpty())
{
......@@ -170,8 +175,7 @@ if (req.getOrgId()!=1369509498032808905L)
@Override
public FinalTjOrgEqsDto TjOrgDataSum(TjOrgEqsReq req) {
String sql=" 1=1 ";
// String sql=" SUBSTRING(`po`.`org_code`, 5, 2) = '00' ";
PubOrg pubOrg = pubOrgService.PubOrgExist(req.getOrgId());
FinalTjOrgEqsDto finalTjOrgEqsDto = new FinalTjOrgEqsDto();
finalTjOrgEqsDto.setTotalNumber(0);
finalTjOrgEqsDto.setCkStockNumber(0);
......@@ -189,9 +193,10 @@ if (req.getOrgId()!=1369509498032808905L)
}
if (!req.getOrgId().equals("1369509498032808905"))
{
TjOrgEqsDto OrgData = inventorySummaryMapper.GetSumLeve4(String.valueOf(req.getOrgId()),
req.getTypeIdsList().isEmpty() ? null : req.getTypeIdsAsString(),
req.getSizeNameList().isEmpty() ? null : req.getSizesAsString());
req.getSizeNameList().isEmpty() ? null : req.getSizesAsString(),pubOrg.getLevelFlag());
allData.add(OrgData);//把本级数据加进去
}
for (TjOrgEqsDto tj:allData) {
......@@ -256,52 +261,6 @@ if (req.getOrgId()!=1369509498032808905L)
}
@Override
public FinalTjOrgEqsDto TjOrgEqsSum(TjOrgEqsReq req) {
//先拿到符合条件的组织机构,再遍历组织机构组成数据
// List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId()));
// List<TjOrgEqsDto> allData=new ArrayList<>();
// for (String orgId:orgList) {
//
// TjOrgEqsDto OrgData=inventorySummaryMapper.GetInvSum( orgId,
// req.getTypeIdsList().isEmpty() ? null : req.getTypeIdsAsString(),
// req.getSizeNameList().isEmpty() ? null : req.getSizesAsString());
// allData.add(OrgData);
// }
// if (!req.getOrgId().equals("1369509498032808905"))
// {
// TjOrgEqsDto OrgData = inventorySummaryMapper.GetSumLeve4(String.valueOf(req.getOrgId()),
// req.getTypeIdsList().isEmpty() ? null : req.getTypeIdsAsString(),
// req.getSizeNameList().isEmpty() ? null : req.getSizesAsString());
// allData.add(OrgData);//把本级数据加进去
// }
FinalTjOrgEqsDto dto=new FinalTjOrgEqsDto();
// Integer totalNumber = 0;
// Integer ckStockNumber = 0;
// Integer djgStockNumber = 0;
// Integer ckOutboundNumber = 0;
// Integer djgOutboundNumber = 0;
// Integer destructionNumber = 0;
//
// for (TjOrgEqsDto dtodata :allData) {
// totalNumber += dtodata.getTotalNumber();
// ckStockNumber += dtodata.getCkStockNumber();
// djgStockNumber += dtodata.getDjgStockNumber();
// ckOutboundNumber += dtodata.getCkOutboundNumber();
// djgOutboundNumber += dtodata.getDjgOutboundNumber();
// destructionNumber += dtodata.getDestructionNumber();
// }
//
// // 将累加后的值设置到 FinalTjOrgEqsDto
// dto.setTotalNumber(totalNumber);
// dto.setCkStockNumber(ckStockNumber);
// dto.setDjgStockNumber(djgStockNumber);
// dto.setCkOutboundNumber(ckOutboundNumber);
// dto.setDjgOutboundNumber(djgOutboundNumber);
// dto.setDestructionNumber(destructionNumber);
return dto;
}
@Override
public List<TjOrgEqsDto> TjOrgEqsSecondList(TjOrgEqsReq req) {
List<TjOrgEqsDto> tjOrgEqsDtoList=new ArrayList<>();
......@@ -386,13 +345,53 @@ if (req.getOrgId()!=1369509498032808905L)
req.getSizeNameList(),null,null);
return returnList;
}
//------------------------------------------------财务统计报表--------------------------------------------------------
//财务统计报表
// @Override
// public PageResult<TjOrgPriceDto> TjOrgPrice(TjOrgPriceReq req) {
// //根据条件查询财务汇总表
// List<TjOrgPriceDto> tjOrgPriceDtoList=priceSumSummaryMapper.TjOrgPrice(req.getOrgId(), req.getYear(),
// req.getTypeIdsList(),req.getSizeNameList());
// //对组织机构进行排序
// Comparator<TjOrgPriceDto> orgComparator = createOrgComparator();
// Collections.sort(tjOrgPriceDtoList, orgComparator);
// Page<TjOrgPriceDto> page = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
// if (ObjectUtil.isNull(req.getPageNo()) && ObjectUtil.isNull(req.getPageSize())) {
// req.setPageNo(1L);
// req.setPageSize(10L);
// }
// long startIndex = (req.getPageNo() - 1) * req.getPageSize();
// long endIndex = Math.min(startIndex + req.getPageSize(), tjOrgPriceDtoList.size());
// List<TjOrgPriceDto> subList = tjOrgPriceDtoList.subList((int) startIndex, (int)endIndex);
//// List<TjOrgPriceDto> subList = tjOrgPriceDtoList.subList((int) ((req.getPageNo()-1)*req.getPageSize()), req.getPageSize().intValue());
// page.setTotal(tjOrgPriceDtoList.size());
// page.setRecords(subList);
// return PageResultFactory.createPageResult(page);
// }
@Override
public PageResult<TjOrgPriceDto> TjOrgPrice(TjOrgPriceReq req) {
PubOrg pubOrg = pubOrgService.PubOrgExist(req.getOrgId());
//先拿到符合条件的组织机构,再遍历组织机构组成数据
//(下一层数据组织机构数据)
List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId()));
List<TjOrgPriceDto> tjOrgPriceDtoList=new ArrayList<>();
//根据条件查询财务汇总表
List<TjOrgPriceDto> tjOrgPriceDtoList=priceSumSummaryMapper.TjOrgPrice(req.getOrgId(), req.getYear(),
req.getTypeIdsList(),req.getSizeNameList());
for (String orgId:orgList) {
TjOrgPriceDto OrgData=priceSumSummaryMapper.TjOrgPrice(req.getOrgId(), req.getYear(),req.getTypeIdsList(),req.getSizeNameList() );
tjOrgPriceDtoList.add(OrgData);
}
if (req.getOrgId()!=1369509498032808905L){
TjOrgPriceDto OrgData=priceSumSummaryMapper.TjOrgPriceLeve4(req.getOrgId(), req.getYear(),req.getTypeIdsList(),req.getSizeNameList(),pubOrg.getLevelFlag());
tjOrgPriceDtoList.add(OrgData);//把本级数据加进去
}
//查询出来的组织机构进行判断,如果该组织机构下的装备装备总数为0,那么将该组织机构从list中移除
if (req.getRemoveEmpty()){
tjOrgPriceDtoList.removeIf(tjOrgEqsDto -> tjOrgEqsDto.getStartNum() == 0 && tjOrgEqsDto.getEndNum() == 0
&& tjOrgEqsDto.getDestoryNum()==0);
}
//对组织机构进行排序
Comparator<TjOrgPriceDto> orgComparator = createOrgComparator();
Collections.sort(tjOrgPriceDtoList, orgComparator);
......@@ -409,19 +408,63 @@ if (req.getOrgId()!=1369509498032808905L)
page.setRecords(subList);
return PageResultFactory.createPageResult(page);
}
@Override
public FinalTjOrgPriceDto TjOrgPriceSum(TjOrgPriceReq req) {
FinalTjOrgPriceDto finalTjOrgPriceDto= priceSumSummaryMapper.TjOrgPriceSum(req.getOrgId(), req.getYear(),
req.getTypeIdsList(),req.getSizeNameList());
if (ObjectUtil.isNotNull(finalTjOrgPriceDto)) {
// FinalTjOrgPriceDto finalTjOrgPriceDto= priceSumSummaryMapper.TjOrgPriceSum(req.getOrgId(), req.getYear(),
// req.getTypeIdsList(),req.getSizeNameList());
// if (ObjectUtil.isNotNull(finalTjOrgPriceDto)) {
//
// return finalTjOrgPriceDto;
// }else {
// return new FinalTjOrgPriceDto();
// }
PubOrg pubOrg = pubOrgService.PubOrgExist(req.getOrgId());
FinalTjOrgPriceDto finalTjOrgPriceDto = new FinalTjOrgPriceDto();
finalTjOrgPriceDto.setAddNum(0);
finalTjOrgPriceDto.setStartNum(0);
finalTjOrgPriceDto.setEndNum(0);
finalTjOrgPriceDto.setDestoryNum(0);
finalTjOrgPriceDto.setAddPrice(BigDecimal.ZERO);
finalTjOrgPriceDto.setStartPrice(BigDecimal.ZERO);
finalTjOrgPriceDto.setEndPrice(BigDecimal.ZERO);
finalTjOrgPriceDto.setDestoryPrice(BigDecimal.ZERO);
List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId()));
List<TjOrgPriceDto> tjOrgPriceDtoList=new ArrayList<>();
//根据条件查询财务汇总表
for (String orgId:orgList) {
TjOrgPriceDto OrgData=priceSumSummaryMapper.TjOrgPrice(req.getOrgId(), req.getYear(),req.getTypeIdsList(),req.getSizeNameList() );
tjOrgPriceDtoList.add(OrgData);
}
if (req.getOrgId()!=1369509498032808905L){
TjOrgPriceDto OrgData=priceSumSummaryMapper.TjOrgPriceLeve4(req.getOrgId(), req.getYear(),req.getTypeIdsList(),req.getSizeNameList(),pubOrg.getLevelFlag());
tjOrgPriceDtoList.add(OrgData);//把本级数据加进去
}
for (TjOrgPriceDto tj:tjOrgPriceDtoList) {
finalTjOrgPriceDto.setAddNum(finalTjOrgPriceDto.getAddNum()+tj.getAddNum());
finalTjOrgPriceDto.setStartNum(finalTjOrgPriceDto.getStartNum()+tj.getStartNum());
finalTjOrgPriceDto.setEndNum(finalTjOrgPriceDto.getEndNum()+tj.getEndNum());
finalTjOrgPriceDto.setDestoryNum(finalTjOrgPriceDto.getDestoryNum()+tj.getDestoryNum());
finalTjOrgPriceDto.setAddPrice(finalTjOrgPriceDto.getAddPrice().add(tj.getAddPrice()));
finalTjOrgPriceDto.setStartPrice(finalTjOrgPriceDto.getStartPrice().add(tj.getStartPrice()));
finalTjOrgPriceDto.setEndPrice(finalTjOrgPriceDto.getEndPrice().add(tj.getEndPrice()));
finalTjOrgPriceDto.setDestoryPrice(finalTjOrgPriceDto.getDestoryPrice().add(tj.getDestoryPrice()));
}
return finalTjOrgPriceDto;
}else {
return new FinalTjOrgPriceDto();
}
@Override
public List<TjOrgPriceDto> TjOrgPriceDetail(TjOrgPriceReq req) {
List<TjOrgPriceDto> tjOrgPriceDtoList = priceSumSummaryMapper.TjOrgPriceTotalNum(req.getOrgId(), req.getYear(),
req.getTypeIdsList(),req.getSizeNameList(),req.getLevelNum());
if (req.getRemoveEmpty()){
tjOrgPriceDtoList.removeIf(tjOrgEqsDto -> tjOrgEqsDto.getStartNum() == 0 && tjOrgEqsDto.getEndNum() == 0
&& tjOrgEqsDto.getDestoryNum()==0);
}
//将组织机构进行排序后再进行返回
Comparator<TjOrgPriceDto> orgComparator = createOrgComparator();
Collections.sort(tjOrgPriceDtoList, orgComparator);
return tjOrgPriceDtoList;
}
......
......@@ -8,7 +8,9 @@ import com.junmp.jyzb.entity.WarehouseDev;
import com.junmp.jyzb.service.WarehouseDevService;
import com.junmp.jyzb.mapper.WarehouseDevMapper;
import com.junmp.jyzb.utils.DateTimeUtil;
import com.junmp.jyzb.utils.RabbitMQSendMsg;
import com.junmp.v2.common.util.BeanPlusUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
......@@ -30,6 +32,9 @@ public class WarehouseDevServiceImpl extends ServiceImpl<WarehouseDevMapper, War
@Resource
private WarehouseDevMapper warehouseDevMapper;
@Autowired
private RabbitMQSendMsg MQ;
@Override
public String addWarehouseDev(UpdateWarehouseDevReq req) {
WarehouseDev warehouseDev = new WarehouseDev();
......@@ -37,6 +42,13 @@ public class WarehouseDevServiceImpl extends ServiceImpl<WarehouseDevMapper, War
warehouseDev.setCreateTime(DateTimeUtil.getCurrentDateTime());
warehouseDev.setUpdateTime(DateTimeUtil.getCurrentDateTime());
warehouseDevService.save(warehouseDev);
String exchangeName="orderExchange";
//判断是否暂存,将消息下发给本地主机
req.setApi("InfoChange");
req.setType(6);
req.setMsg("warehouseDevChange");
MQ.SendMsg(exchangeName,req.getOrgId().toString(),req);
return warehouseDev.getId();
}
......@@ -45,6 +57,12 @@ public class WarehouseDevServiceImpl extends ServiceImpl<WarehouseDevMapper, War
WarehouseDev warehouseDev = new WarehouseDev();
BeanPlusUtil.copyProperties(req,warehouseDev);
warehouseDev.setUpdateTime(DateTimeUtil.getCurrentDateTime());
String exchangeName="orderExchange";
//判断是否暂存,将消息下发给本地主机
req.setApi("InfoChange");
req.setType(6);
req.setMsg("warehouseDevChange");
MQ.SendMsg(exchangeName,req.getOrgId().toString(),req);
return warehouseDevService.updateById(warehouseDev);
}
......
......@@ -215,6 +215,9 @@
GROUP BY type_id,size_id,bi.org_id_int,location_id,bi.price) as t
GROUP BY t.locationId,t.type_id,t.size_id,t.orgId,t.unitPrice
</insert>
<insert id="reSetInventory">
{CALL InsertInventorySummary(#{summaryTableName,mode=IN},#{sourceTableName,mode=IN},#{warrantyThreshold,mode=IN},#{sql,mode=IN})}
</insert>
<select id="getSumByShelf" resultType="com.junmp.jyzb.entity.InventorySummary"
......
......@@ -338,7 +338,7 @@
{CALL GetInventorySummary(#{orgId,mode=IN},#{typeId,mode=IN},#{sizeName,mode=IN})}
</select>
<select id="GetSumLeve4" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgEqsDto" statementType="CALLABLE">
{CALL GetSumLeve4(#{orgId,mode=IN},#{typeId,mode=IN},#{sizeName,mode=IN})}
{CALL GetSumLeve4(#{orgId,mode=IN},#{typeId,mode=IN},#{sizeName,mode=IN},#{sql,mode=IN})}
</select>
<select id="selectDynamicView" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgEqsDto">
SELECT * FROM dynamic_view
......@@ -718,27 +718,39 @@
<select id="selectSumByItemsCount" resultType="java.lang.Integer"
parameterType="com.junmp.jyzb.api.bean.query.InventoryReq">
select count(*) from (
select i.*,et.name as type_name,es.name as size_name,po.org_name as org_name,
SELECT wi.type_id,wi.size_id,wi.shelf_id,wi.shelf_location, wi.epc,wi.org_id,wi.location_state,
wi.location_type,wi.location_id,i.id,i.supplier_id,i.price,i.state,i.bussiness_state,
i.production_date,i.warranty_period,i.maintenance_period, i.term_state,
i.area_id,et.name as type_name,es.name as size_name,po.org_name as org_name,
bs.name as supplier_name,COALESCE(bc.name, bw.name) as location_name,
es.photo as photo,es.instructions as instructions
FROM base_inventory i
JOIN base_equipment_type et on et.id=i.type_id
join base_equipment_size es on es.id=i.size_id
join pub_org po on i.org_id_int=po.org_id
left join base_supplier bs on bs.id=i.supplier_id
LEFT JOIN base_cabinet_box bcb ON i.location_id = bcb.id and i.location_type=1
FROM base_warehouse_inventory wi
LEFT JOIN base_inventory i ON i.epc = wi.epc
LEFT JOIN base_equipment_type et ON et.id = i.type_id
LEFT JOIN base_equipment_size es ON es.id = i.size_id
LEFT JOIN pub_org po ON i.org_id_int = po.org_id
LEFT JOIN base_supplier bs ON bs.id = i.supplier_id
LEFT JOIN base_cabinet_box bcb ON i.location_id = bcb.id AND i.location_type = 1
LEFT JOIN base_cabinet bc ON bcb.cabinet_id = bc.id
LEFT JOIN base_warehouse bw ON i.location_id = bw.id AND i.location_type = 0
WHERE i.org_id_int=#{req.orgId} and i.type_id=#{req.typeId}
WHERE wi.org_id=#{req.orgId} and wi.type_id=#{req.typeId}
<if test="req.locationType !='all' and req.locationType != null">
and i.location_type=#{req.locationType}
and wi.location_type=#{req.locationType}
</if>
<if test="req.termState!= -1">
and i.term_state=#{req.termState}
</if>
<if test="req.locationState!='all' and req.locationState !=null and req.locationState!=''">
and i.location_state=#{req.locationState}
</if>
<if test="req.sizeId !=null and req.sizeId != ''">
and i.size_id=#{req.sizeId}
and wi.size_id=#{req.sizeId}
</if>
<if test="req.price !=null and req.price != ''">
and i.price=#{req.price}
</if>
ORDER BY wi.type_id,i.size_id
) as a
</select>
<select id="GetDetailByTerms" resultType="com.junmp.jyzb.api.bean.dto.InventoryDto">
......@@ -765,7 +777,7 @@
<if test="req.termState!= -1">
and i.term_state=#{req.termState}
</if>
<if test="req.locationState!=all and req.locationState !=null and req.locationState!=''">
<if test="req.locationState!='all' and req.locationState !=null and req.locationState!=''">
and i.location_state=#{req.locationState}
</if>
<if test="req.sizeId !=null and req.sizeId != ''">
......
......@@ -39,13 +39,21 @@
{call UpdatePriceSummary()}
</select>
<select id="TjOrgPrice" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgPriceDto">
select org_id_int as org_id,org_code,org_name,org_name_short as d_name,
sum(start_num) as start_num,sum(start_price) as start_price,
sum(end_num) as end_num,sum(end_price) as end_price,
sum(add_num) as add_num,sum(destory_num) as destory_num,
sum(add_price) as add_price,sum(destory_price) as destory_price
FROM vie_price_sum_summary
where `year`= #{year} and (org_id_int=#{orgId} or parent_id=#{orgId})
select t1.org_id,t1.org_code,t1.org_name,t1.d_name,
t2.start_num,t2.start_price,t2.end_num,t2.end_price,t2.add_num,t2.add_price,t2.destory_num,t2.destory_price
FROM(
SELECT
`org_id`, `org_code`, `org_name`, `d_name`
FROM `pub_org`
WHERE org_id=#{orgId}
) as t1
CROSS JOIN (select sum(vpss.start_num) as start_num,sum(vpss.start_price) as start_price,
sum(vpss.end_num) as end_num,sum(vpss.end_price) as end_price,
sum(vpss.add_num) as add_num,sum(vpss.destory_num) as destory_num,
sum(vpss.add_price) as add_price,sum(vpss.destory_price) as destory_price
FROM vie_price_sum_summary vpss
left join pub_org po on vpss.org_id_int=po.org_id
where vpss.`year`= #{year} and po.del_flag=1 and (po.org_id=#{orgId} or po.org_parent_ids like CONCAT('%', #{orgId}, '%'))
<if test="typeIdsList!=null and typeIdsList.size() > 0">
and type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
......@@ -58,7 +66,7 @@
size_name like CONCAT('%', #{item}, '%')
</foreach>
</if>
GROUP BY org_id,org_code,org_name,d_name
) as t2
</select>
<select id="TjOrgPriceDetail" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgPriceDto">
......@@ -140,5 +148,47 @@
ORDER BY type_id
) as t
</select>
<select id="TjOrgPriceLeve4" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgPriceDto">
select t1.org_id,t1.org_code,t1.org_name,t1.d_name,
t2.start_num,t2.start_price,t2.end_num,t2.end_price,t2.add_num,t2.add_price,t2.destory_num,t2.destory_price
FROM(
SELECT
`org_id`, `org_code`, `org_name`, `d_name`
FROM `pub_org`
WHERE org_id=#{orgId}
) as t1
CROSS JOIN (select sum(vpss.start_num) as start_num,sum(vpss.start_price) as start_price,
sum(vpss.end_num) as end_num,sum(vpss.end_price) as end_price,
sum(vpss.add_num) as add_num,sum(vpss.destory_num) as destory_num,
sum(vpss.add_price) as add_price,sum(vpss.destory_price) as destory_price
FROM vie_price_sum_summary vpss
left join pub_org po on vpss.org_id_int=po.org_id
where vpss.`year`= #{year} and po.del_flag=1
AND (po.org_id = org_id_param OR (`po`.org_parent_ids like CONCAT('%', org_id_param, '%')
AND(case when #{levelFlag} >=3 then 1=1 else SUBSTRING(`po`.`org_code`, 5, 2) = '00' end ))
AND (
`po`.`level_flag` > (
SELECT `level_flag` FROM `pub_org` WHERE `org_id` = org_id_param
) + 1
OR (`po`.`level_flag` = (
SELECT `level_flag` FROM `pub_org` WHERE `org_id` = org_id_param
))))
<if test="typeIdsList!=null and typeIdsList.size() > 0">
and type_id in
<foreach collection="typeIdsList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="sizeNameList!=null and sizeNameList.size() > 0">
AND
<foreach collection="sizeNameList " item="item" open="(" separator="or" close=")">
size_name like CONCAT('%', #{item}, '%')
</foreach>
</if>
) as t2
</select>
<select id="TjOrgPriceTotalNum" resultType="com.junmp.jyzb.api.bean.dto.TjDto.TjOrgPriceDto">
</select>
</mapper>
\ No newline at end of file
......@@ -32,7 +32,7 @@ spring:
redis:
#host: 192.168.3.188
host: 192.168.3.188
host: 192.168.2.76
port: 6379
database: 1
password:
......
......@@ -10,14 +10,14 @@ server:
spring:
elasticsearch:
rest:
uris: http://192.168.3.188:9200
uris: http://192.168.2.76:9200
main:
#bea同名类进行注册时,准许覆盖注册
allow-bean-definition-overriding: true
application:
name: jyzb-app
rabbitmq:
host: 192.168.3.188
host: 192.168.2.76
port: 5672
username: root
password: 123456
......
......@@ -12,7 +12,7 @@ public class RabbitMQUtils {
static{
//重量级资源 类加载执行之执行一次
connectionFactory = new ConnectionFactory();
connectionFactory.setHost("192.168.3.188");
connectionFactory.setHost("192.168.2.76");
connectionFactory.setPort(5672);
connectionFactory.setVirtualHost("/");
connectionFactory.setUsername("root");
......
......@@ -8,7 +8,7 @@ import java.io.IOException;
import java.util.concurrent.TimeoutException;
@Component
public class RabbitMQUtils2 {
private static final String host = "192.168.3.188";
private static final String host = "192.168.2.76";
private static final int port = 5672;
private static final String username = "root";
private static final String password = "123456";
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论