diff --git a/src/main/java/com/glxp/api/entity/inv/InvPlaceOrderDetailEntity.java b/src/main/java/com/glxp/api/entity/inv/InvPlaceOrderDetailEntity.java index 72771ce39..b13f7e6cf 100644 --- a/src/main/java/com/glxp/api/entity/inv/InvPlaceOrderDetailEntity.java +++ b/src/main/java/com/glxp/api/entity/inv/InvPlaceOrderDetailEntity.java @@ -55,4 +55,21 @@ public class InvPlaceOrderDetailEntity { @TableField(value = "`count`") private Integer count; + @TableField(value = "nameCode") + private String nameCode; + + @TableField(value = "supId") + private String supId; + + @TableField(value = "produceDate") + private String produceDate; + + @TableField(value = "expireDate") + private String expireDate; + + @TableField(value = "serialNo") + private String serialNo; + + + } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inv/InvPlaceOrderEntity.java b/src/main/java/com/glxp/api/entity/inv/InvPlaceOrderEntity.java index c8d3cf1e7..7915d2ad1 100644 --- a/src/main/java/com/glxp/api/entity/inv/InvPlaceOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/inv/InvPlaceOrderEntity.java @@ -60,4 +60,8 @@ public class InvPlaceOrderEntity { @TableField(value = "remark") private String remark; + @TableField(value = "count") + private int count; + + } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPlaceOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPlaceOrderServiceImpl.java index 59d132a84..a18dd2411 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPlaceOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPlaceOrderServiceImpl.java @@ -8,10 +8,11 @@ import com.github.pagehelper.PageHelper; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.Constant; -import com.glxp.api.dao.inv.InvPlaceOrderDao; -import com.glxp.api.dao.inv.InvPlaceOrderDetailDao; -import com.glxp.api.entity.inv.InvPlaceOrderDetailEntity; -import com.glxp.api.entity.inv.InvPlaceOrderEntity; +import com.glxp.api.constant.ConstantStatus; +import com.glxp.api.dao.auth.InvWarehouseDao; +import com.glxp.api.dao.inv.*; +import com.glxp.api.entity.auth.InvWarehouseEntity; +import com.glxp.api.entity.inv.*; import com.glxp.api.req.inv.AddInvPlaceOrderRequest; import com.glxp.api.req.inv.FilterInvPlaceOrderRequest; import com.glxp.api.req.inv.FilterInvPlaceRequest; @@ -20,6 +21,7 @@ import com.glxp.api.res.inv.BindInvSpaceRequest; import com.glxp.api.res.inv.InvPlaceOrderDetailResponse; import com.glxp.api.res.inv.InvPlaceOrderResponse; import com.glxp.api.service.auth.CustomerService; +import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.inv.InvPlaceOrderService; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.OrderNoTypeBean; @@ -45,6 +47,15 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService { private CustomerService customerService; @Resource private GennerOrderUtils gennerOrderUtils; + @Resource + private InvWarehouseDao invWarehouseDao; + @Resource + private InvProductDetailDao invProductDetailDao; + @Resource + private InvPreProductDetailDao invPreProductDetailDao; + @Resource + private InvPreInProductDetailDao invPreInProductDetailDao; + @Override public List filterList(FilterInvPlaceOrderRequest filterInvPlaceOrderRequest) { @@ -106,11 +117,57 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService { // ew.isNull("invSpaceCode"); // ew. // invPreInProductDetailDao.selectOne() + Long relId = null; + String batchNo = null; + String nameCode = null; + String supId = null; + String produceDate = null; + String expireDate = null; + String serialNo = null; + InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectOne(new QueryWrapper().eq("code", bindInvSpaceRequest.getInvCode())); + if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) { + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("code", bindInvSpaceRequest.getCode()); + ew.last("limit 1"); + InvPreInProductDetailEntity invPreInProductDetailEntity = invPreInProductDetailDao.selectOne(ew); + relId = invPreInProductDetailEntity.getRelId(); + batchNo = invPreInProductDetailEntity.getBatchNo(); + nameCode = invPreInProductDetailEntity.getNameCode(); + supId = invPreInProductDetailEntity.getSupId(); + produceDate = invPreInProductDetailEntity.getProduceDate(); + expireDate = invPreInProductDetailEntity.getExpireDate(); + serialNo = invPreInProductDetailEntity.getSerialNo(); + } else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) { + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("code", bindInvSpaceRequest.getCode()); + ew.last("limit 1"); + InvPreProductDetailEntity invPreInProductDetailEntity = invPreProductDetailDao.selectOne(ew); + relId = invPreInProductDetailEntity.getRelId(); + batchNo = invPreInProductDetailEntity.getBatchNo(); + nameCode = invPreInProductDetailEntity.getNameCode(); + supId = invPreInProductDetailEntity.getSupId(); + produceDate = invPreInProductDetailEntity.getProduceDate(); + expireDate = invPreInProductDetailEntity.getExpireDate(); + serialNo = invPreInProductDetailEntity.getSerialNo(); + } else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_NORMAL) { + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("code", bindInvSpaceRequest.getCode()); + ew.last("limit 1"); + InvProductDetailEntity invPreInProductDetailEntity = invProductDetailDao.selectOne(ew); + relId = invPreInProductDetailEntity.getRelId(); + batchNo = invPreInProductDetailEntity.getBatchNo(); + nameCode = invPreInProductDetailEntity.getNameCode(); + supId = invPreInProductDetailEntity.getSupId(); + produceDate = invPreInProductDetailEntity.getProduceDate(); + expireDate = invPreInProductDetailEntity.getExpireDate(); + serialNo = invPreInProductDetailEntity.getSerialNo(); + } + //判断是不是第一次进行添加 是就插入一条主表 String recordId = ""; - if(StrUtil.isEmpty(bindInvSpaceRequest.getOrderId())){ - InvPlaceOrderEntity invPlaceOrderEntity=new InvPlaceOrderEntity(); + if (StrUtil.isEmpty(bindInvSpaceRequest.getOrderId())) { + InvPlaceOrderEntity invPlaceOrderEntity = new InvPlaceOrderEntity(); //操作人ID String userId = customerService.getUserIdStr(); @@ -126,39 +183,52 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService { invPlaceOrderDao.insert(orderEntity); //插入附表 - InvPlaceOrderDetailEntity invPlaceOrderDetailEntity=new InvPlaceOrderDetailEntity(); + InvPlaceOrderDetailEntity invPlaceOrderDetailEntity = new InvPlaceOrderDetailEntity(); invPlaceOrderDetailEntity.setId(IdUtil.getSnowflakeNextId()); invPlaceOrderDetailEntity.setRecordId(recordId); + invPlaceOrderDetailEntity.setBatchNo(batchNo); + invPlaceOrderDetailEntity.setRelId(relId+""); + invPlaceOrderDetailEntity.setNameCode(nameCode); + invPlaceOrderDetailEntity.setExpireDate(expireDate); + invPlaceOrderDetailEntity.setProduceDate(produceDate); + invPlaceOrderDetailEntity.setSupId(supId); invPlaceOrderDetailEntity.setInvCode(bindInvSpaceRequest.getInvCode()); invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode()); invPlaceOrderDetailEntity.setCode(bindInvSpaceRequest.getCode()); + invPlaceOrderDetailEntity.setSerialNo(serialNo); invPlaceOrderDetailEntity.setCount(1); invPlaceOrderDetailDao.insert(invPlaceOrderDetailEntity); - }else{ - recordId=bindInvSpaceRequest.getOrderId(); + } else { + recordId = bindInvSpaceRequest.getOrderId(); //查询有没有存在一样的code有就加数量没有新增 - QueryWrapper ew=new QueryWrapper<>(); - ew.eq("recordId",bindInvSpaceRequest.getOrderId()); - ew.eq("code",bindInvSpaceRequest.getCode()); - InvPlaceOrderDetailEntity invPlaceOrderDetailEntity=invPlaceOrderDetailDao.selectOne(ew); - if(invPlaceOrderDetailEntity!=null){ - invPlaceOrderDetailEntity.setCount(invPlaceOrderDetailEntity.getCount()+1); + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("recordId", bindInvSpaceRequest.getOrderId()); + ew.eq("code", bindInvSpaceRequest.getCode()); + InvPlaceOrderDetailEntity invPlaceOrderDetailEntity = invPlaceOrderDetailDao.selectOne(ew); + if (invPlaceOrderDetailEntity != null) { + invPlaceOrderDetailEntity.setCount(invPlaceOrderDetailEntity.getCount() + 1); invPlaceOrderDetailDao.updateById(invPlaceOrderDetailEntity); - }else{ + } else { //插入附表 - invPlaceOrderDetailEntity=new InvPlaceOrderDetailEntity(); + invPlaceOrderDetailEntity = new InvPlaceOrderDetailEntity(); invPlaceOrderDetailEntity.setId(IdUtil.getSnowflakeNextId()); invPlaceOrderDetailEntity.setRecordId(bindInvSpaceRequest.getOrderId()); invPlaceOrderDetailEntity.setInvCode(bindInvSpaceRequest.getInvCode()); + invPlaceOrderDetailEntity.setBatchNo(batchNo); + invPlaceOrderDetailEntity.setRelId(relId+""); + invPlaceOrderDetailEntity.setNameCode(nameCode); + invPlaceOrderDetailEntity.setExpireDate(expireDate); + invPlaceOrderDetailEntity.setProduceDate(produceDate); + invPlaceOrderDetailEntity.setSupId(supId); invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode()); invPlaceOrderDetailEntity.setCode(bindInvSpaceRequest.getCode()); invPlaceOrderDetailEntity.setCount(1); + invPlaceOrderDetailEntity.setSerialNo(serialNo); invPlaceOrderDetailDao.insert(invPlaceOrderDetailEntity); } } - return ResultVOUtils.success(recordId); } diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPlaceServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPlaceServiceImpl.java index 4131ff70c..a34a29ba6 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPlaceServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPlaceServiceImpl.java @@ -80,12 +80,12 @@ public class InvPlaceServiceImpl implements InvPlaceService { @Override public BaseResponse bindInvSpace(BindInvSpaceRequest bindInvSpaceRequest) { //查询仓库的部门ID - String deptCode = invWarehouseDao.selectParentIdByCode(bindInvSpaceRequest.getInvCode()); +// String deptCode = invWarehouseDao.selectParentIdByCode(bindInvSpaceRequest.getInvCode()); InvWarehouseEntity invWarehouseEntity = invWarehouseDao.filterGroupInvSubAndcode(bindInvSpaceRequest.getInvCode()); + List invPlaceOrderDetailEntityList=new ArrayList<>(); - List list = new ArrayList<>(); if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) { - List invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper().eq("recordId",bindInvSpaceRequest.getOrderId())); + invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper().eq("recordId",bindInvSpaceRequest.getOrderId())); for (InvPlaceOrderDetailEntity invPlaceOrderDetailEntity : invPlaceOrderDetailEntityList) { for (Integer i = 0; i < invPlaceOrderDetailEntity.getCount(); i++) { @@ -93,14 +93,16 @@ public class InvPlaceServiceImpl implements InvPlaceService { QueryWrapper ew=new QueryWrapper<>(); ew.eq("code",invPlaceOrderDetailEntity.getCode()); ew.and(o-> o.isNull("invSpaceCode").or().eq("invSpaceCode","")); - ew.gt("inCount",0); ew.last("limit 1"); InvPreInProductDetailEntity invPreInProductDetailEntity=invPreInProductDetailDao.selectOne(ew); + if(invPreInProductDetailEntity.getInCount()>0){ + String nameCode=invPreInProductDetailEntity.getNameCode(); + int reCount=getActCount(nameCode); invPreInProductDetailEntity.setInCount(invPreInProductDetailEntity.getInCount()-1); invPreInProductDetailEntity.setCount(invPreInProductDetailEntity.getCount()-1); -// invPreInProductDetailEntity.setReCount(invPreInProductDetailEntity.getReCount()-getActCount(invPlaceOrderDetailEntity.get)); + invPreInProductDetailEntity.setReCount(invPreInProductDetailEntity.getReCount()-reCount); invPreInProductDetailDao.updateById(invPreInProductDetailEntity); @@ -112,11 +114,13 @@ public class InvPlaceServiceImpl implements InvPlaceService { if(invPreInProductDetailEntity1!=null){ invPreInProductDetailEntity1.setCount(invPreInProductDetailEntity1.getCount()+1); invPreInProductDetailEntity1.setInCount(invPreInProductDetailEntity1.getInCount()+1); + invPreInProductDetailEntity1.setReCount(invPreInProductDetailEntity1.getReCount()+reCount); invPreInProductDetailDao.updateById(invPreInProductDetailEntity1); }else{ invPreInProductDetailEntity.setId(null); invPreInProductDetailEntity.setInCount(1); invPreInProductDetailEntity.setCount(1); + invPreInProductDetailEntity.setReCount(reCount); invPreInProductDetailEntity.setOutCount(0); invPreInProductDetailEntity.setInvSpaceCode(invPlaceOrderDetailEntity.getInvSpaceCode()); invPreInProductDetailDao.insert(invPreInProductDetailEntity); @@ -128,7 +132,7 @@ public class InvPlaceServiceImpl implements InvPlaceService { } else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) { - List invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper().eq("recordId",bindInvSpaceRequest.getOrderId())); + invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper().eq("recordId",bindInvSpaceRequest.getOrderId())); for (InvPlaceOrderDetailEntity invPlaceOrderDetailEntity : invPlaceOrderDetailEntityList) { for (Integer i = 0; i < invPlaceOrderDetailEntity.getCount(); i++) { @@ -141,9 +145,11 @@ public class InvPlaceServiceImpl implements InvPlaceService { ew.last("limit 1"); InvPreProductDetailEntity invPreInProductDetailEntity=invPreProductDetailDao.selectOne(ew); if(invPreInProductDetailEntity.getInCount()>0){ + String nameCode=invPreInProductDetailEntity.getNameCode(); + int reCount=getActCount(nameCode); invPreInProductDetailEntity.setInCount(invPreInProductDetailEntity.getInCount()-1); invPreInProductDetailEntity.setCount(invPreInProductDetailEntity.getCount()-1); -// invPreInProductDetailEntity.setReCount(invPreInProductDetailEntity.getReCount()-getActCount(invPlaceOrderDetailEntity.get)); + invPreInProductDetailEntity.setReCount(invPreInProductDetailEntity.getReCount()-reCount); invPreProductDetailDao.updateById(invPreInProductDetailEntity); @@ -155,6 +161,7 @@ public class InvPlaceServiceImpl implements InvPlaceService { if(invPreInProductDetailEntity1!=null){ invPreInProductDetailEntity1.setCount(invPreInProductDetailEntity1.getCount()+1); invPreInProductDetailEntity1.setInCount(invPreInProductDetailEntity1.getInCount()+1); + invPreInProductDetailEntity1.setReCount(invPreInProductDetailEntity1.getReCount()+reCount); invPreProductDetailDao.updateById(invPreInProductDetailEntity1); }else{ invPreInProductDetailEntity.setId(null); @@ -162,6 +169,7 @@ public class InvPlaceServiceImpl implements InvPlaceService { invPreInProductDetailEntity.setCount(1); invPreInProductDetailEntity.setOutCount(0); invPreInProductDetailEntity.setInvSpaceCode(invPlaceOrderDetailEntity.getInvSpaceCode()); + invPreInProductDetailEntity.setReCount(reCount); invPreProductDetailDao.insert(invPreInProductDetailEntity); } } @@ -169,7 +177,7 @@ public class InvPlaceServiceImpl implements InvPlaceService { } } else { - List invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper().eq("recordId",bindInvSpaceRequest.getOrderId())); + invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper().eq("recordId",bindInvSpaceRequest.getOrderId())); for (InvPlaceOrderDetailEntity invPlaceOrderDetailEntity : invPlaceOrderDetailEntityList) { for (Integer i = 0; i < invPlaceOrderDetailEntity.getCount(); i++) { @@ -182,9 +190,11 @@ public class InvPlaceServiceImpl implements InvPlaceService { ew.last("limit 1"); InvProductDetailEntity invPreInProductDetailEntity=invProductDetailDao.selectOne(ew); if(invPreInProductDetailEntity.getInCount()>0){ + String nameCode=invPreInProductDetailEntity.getNameCode(); + int reCount=getActCount(nameCode); invPreInProductDetailEntity.setInCount(invPreInProductDetailEntity.getInCount()-1); invPreInProductDetailEntity.setCount(invPreInProductDetailEntity.getCount()-1); -// invPreInProductDetailEntity.setReCount(invPreInProductDetailEntity.getReCount()-getActCount(invPlaceOrderDetailEntity.get)); + invPreInProductDetailEntity.setReCount(invPreInProductDetailEntity.getReCount()-reCount); invProductDetailDao.updateById(invPreInProductDetailEntity); @@ -196,12 +206,14 @@ public class InvPlaceServiceImpl implements InvPlaceService { if(invPreInProductDetailEntity1!=null){ invPreInProductDetailEntity1.setCount(invPreInProductDetailEntity1.getCount()+1); invPreInProductDetailEntity1.setInCount(invPreInProductDetailEntity1.getInCount()+1); + invPreInProductDetailEntity1.setReCount(invPreInProductDetailEntity1.getReCount()+reCount); invProductDetailDao.updateById(invPreInProductDetailEntity1); }else{ invPreInProductDetailEntity.setId(null); invPreInProductDetailEntity.setInCount(1); invPreInProductDetailEntity.setCount(1); invPreInProductDetailEntity.setOutCount(0); + invPreInProductDetailEntity.setReCount(reCount); invPreInProductDetailEntity.setInvSpaceCode(invPlaceOrderDetailEntity.getInvSpaceCode()); invProductDetailDao.insert(invPreInProductDetailEntity); } @@ -210,6 +222,13 @@ public class InvPlaceServiceImpl implements InvPlaceService { } } + int total = invPlaceOrderDetailEntityList.stream().mapToInt(InvPlaceOrderDetailEntity::getCount).sum(); + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("recordId",bindInvSpaceRequest.getOrderId()); + InvPlaceOrderEntity invPlaceOrderEntity=new InvPlaceOrderEntity(); + invPlaceOrderEntity.setRecordId(bindInvSpaceRequest.getOrderId()); + invPlaceOrderEntity.setCount(total); + invPlaceOrderDao.update(invPlaceOrderEntity,ew); // if (CollUtil.isNotEmpty(list)) { // List ids = list.stream().map(InvProductDetailEntity::getId).collect(Collectors.toList()); diff --git a/src/main/resources/mybatis/mapper/inv/InvPlaceOrderDao.xml b/src/main/resources/mybatis/mapper/inv/InvPlaceOrderDao.xml index 7a67174a1..50948955f 100644 --- a/src/main/resources/mybatis/mapper/inv/InvPlaceOrderDao.xml +++ b/src/main/resources/mybatis/mapper/inv/InvPlaceOrderDao.xml @@ -8,6 +8,7 @@ t2.invCode, t2.invSpaceCode, t.createUser, + t.count as count, (select employeeName from auth_user where id = t.createUser) operatorName, (select name from auth_warehouse where code = t2.invCode) invName, (select name from auth_space where code = t2.invSpaceCode) invSpaceName, @@ -17,20 +18,17 @@ t2.relId, bp.cpmctymc productName, bp.ggxh, - pd.produceDate productionDate, - pd.expireDate, + t2.produceDate productionDate, + t2.expireDate, bp.nameCode, bp.zczbhhzbapzbh, bp.ylqxzcrbarmc, - (select name from basic_corp where erpId = pd.supId) supName, - pd.serialNo, + (select name from basic_corp where erpId = t2.supId) supName, + t2.serialNo, bp.manufactory, bp.measname from inv_place_order t right join inv_place_order_detail t2 on t.recordId = t2.recordId - left join inv_product_detail pd - on t2.invCode = pd.invCode and t2.invSpaceCode = pd.invSpaceCode and t2.relId = pd.relId - and t2.code = pd.code left join basic_udirel bu on bu.id = t2.relId left join basic_products bp on bp.uuid = bu.uuid @@ -65,6 +63,6 @@ and bp.zczbhhzbapzbh like concat('%', #{zczbhhzbapzbh}, '%') - group by t2.code + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/inv/InvPlaceOrderDetailDao.xml b/src/main/resources/mybatis/mapper/inv/InvPlaceOrderDetailDao.xml index 94f90ec68..248cdf3dc 100644 --- a/src/main/resources/mybatis/mapper/inv/InvPlaceOrderDetailDao.xml +++ b/src/main/resources/mybatis/mapper/inv/InvPlaceOrderDetailDao.xml @@ -14,7 +14,9 @@ bp.measname, bp.zczbhhzbapzbh, bp.manufactory, - asp.name as invSpaceName + asp.name as invSpaceName, + bp.nameCode, + (select name from basic_corp where erpId = a2.supId) supName FROM inv_place_order_detail a1 LEFT JOIN inv_prein_product_detail a2 ON a1.CODE = a2.CODE