diff --git a/src/main/java/com/glxp/api/entity/inv/InvPreProductDetailEntity.java b/src/main/java/com/glxp/api/entity/inv/InvPreProductDetailEntity.java index e638c5f04..133f3ffa9 100644 --- a/src/main/java/com/glxp/api/entity/inv/InvPreProductDetailEntity.java +++ b/src/main/java/com/glxp/api/entity/inv/InvPreProductDetailEntity.java @@ -117,7 +117,7 @@ public class InvPreProductDetailEntity { * 采购类型 */ @TableField(value = "purchaseType") - private Byte purchaseType; + private Integer purchaseType; /** * 更新时间 diff --git a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java index 322b897af..6dbfef621 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -580,6 +580,8 @@ public class IoCheckInoutService { //生成库存 if (bussinessTypeEntity.isPreIn()) { genInvService.genPreInInv(orderEntity.getBillNo()); + } else if (bussinessTypeEntity.isAdvanceType()) { + genInvService.genPreInv(orderEntity.getBillNo()); } else { genInvService.genNorInv(orderEntity.getBillNo()); } diff --git a/src/main/java/com/glxp/api/service/inout/IoGenInvService.java b/src/main/java/com/glxp/api/service/inout/IoGenInvService.java index 47dc85fbf..70ae59d40 100644 --- a/src/main/java/com/glxp/api/service/inout/IoGenInvService.java +++ b/src/main/java/com/glxp/api/service/inout/IoGenInvService.java @@ -13,18 +13,12 @@ import com.glxp.api.entity.inout.IoCodeEntity; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.inout.IoOrderDetailResultEntity; import com.glxp.api.entity.inout.IoOrderEntity; -import com.glxp.api.entity.inv.InvPreinDetailEntity; -import com.glxp.api.entity.inv.InvPreinOrderEntity; -import com.glxp.api.entity.inv.InvProductDetailEntity; -import com.glxp.api.entity.inv.InvProductEntity; +import com.glxp.api.entity.inv.*; import com.glxp.api.entity.system.SystemParamConfigEntity; import com.glxp.api.service.auth.InvWarehouseService; import com.glxp.api.service.basic.IBasicBusTypePreService; import com.glxp.api.service.basic.IBasicBussinessTypeService; -import com.glxp.api.service.inv.InvPreinDetailService; -import com.glxp.api.service.inv.InvPreinOrderService; -import com.glxp.api.service.inv.InvProductDetailService; -import com.glxp.api.service.inv.InvProductService; +import com.glxp.api.service.inv.*; import com.glxp.api.service.system.SystemParamConfigService; import com.glxp.api.util.CustomUtil; import com.glxp.api.util.DateUtil; @@ -127,6 +121,61 @@ public class IoGenInvService { } + @Resource + InvPreProductService invPreProductService; + @Resource + InvPreProductDetailService invPreProductDetailService; + + public void genPreInv(String orderId) { + IoOrderEntity orderEntity = orderService.findByBillNo(orderId); + List orderDetailResultEntities = orderDetailResultService.findByOrderId(orderId); + List codeEnttities = codeService.findByOrderId(orderId); + + //生成库存产品表 + for (IoOrderDetailResultEntity orderDetailResultEntity : orderDetailResultEntities) { + InvPreProductEntity invPreProductEntity = invPreProductService.selectByUnique(orderDetailResultEntity.getBindRlFk(), orderDetailResultEntity.getBatchNo(), orderDetailResultEntity.getSupId(), orderEntity.getDeptCode(), orderEntity.getInvCode()); + if (invPreProductEntity == null) { + invPreProductEntity = new InvPreProductEntity(); + invPreProductEntity.setRelIdFk(orderDetailResultEntity.getBindRlFk()); + invPreProductEntity.setNameCode(orderDetailResultEntity.getNameCode()); + invPreProductEntity.setBatchNo(orderDetailResultEntity.getBatchNo()); + invPreProductEntity.setProductionDate(orderDetailResultEntity.getProductDate()); + invPreProductEntity.setExpireDate(orderDetailResultEntity.getExpireDate()); + invPreProductEntity.setInCount(0); + invPreProductEntity.setOutCount(0); + invPreProductEntity.setSupId(orderDetailResultEntity.getSupId()); + invPreProductEntity.setDeptCode(orderEntity.getDeptCode()); + invPreProductEntity.setInvCode(orderEntity.getInvCode()); + invPreProductEntity.setCreateTime(new Date()); + invPreProductEntity.setUpdateTime(new Date()); + invPreProductService.insert(invPreProductEntity); + } + + if (orderEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { + invPreProductEntity.setOutCount(invPreProductEntity.getOutCount() + orderDetailResultEntity.getReCount()); + } else if (orderEntity.getMainAction().equals(ConstantType.TYPE_PUT)) { + invPreProductEntity.setInCount(invPreProductEntity.getInCount() + orderDetailResultEntity.getReCount()); + } + invPreProductEntity.setReCount(invPreProductEntity.getInCount() - invPreProductEntity.getOutCount()); + invPreProductEntity.setUpdateTime(new Date()); + invPreProductService.update(invPreProductEntity); + } + + //生成库存码详情 + List invProductDetailEntities = new ArrayList<>(); + for (IoCodeEntity codeEntity : codeEnttities) { + InvPreProductDetailEntity invProductDetailEntity = new InvPreProductDetailEntity(); + BeanUtils.copyProperties(codeEntity, invProductDetailEntity); + invProductDetailEntity.setRelId(codeEntity.getRelId()); + invProductDetailEntity.setUpdateTime(new Date()); + invProductDetailEntity.setPurchaseType(ConstantStatus.PRUCHASE_COMMON); + invProductDetailEntities.add(invProductDetailEntity); + } + invPreProductDetailService.insertList(invProductDetailEntities); + + } + + //生成预验收库存 public void genPreInInv(String orderId) { IoOrderEntity orderEntity = orderService.findByBillNo(orderId); diff --git a/src/main/java/com/glxp/api/service/inv/InvPreProductDetailService.java b/src/main/java/com/glxp/api/service/inv/InvPreProductDetailService.java index ea0968a7b..16581fda7 100644 --- a/src/main/java/com/glxp/api/service/inv/InvPreProductDetailService.java +++ b/src/main/java/com/glxp/api/service/inv/InvPreProductDetailService.java @@ -15,6 +15,8 @@ public interface InvPreProductDetailService { int insert(InvPreProductDetailEntity invPreProductDetailEntity); + boolean insertList(List invPreProductDetailEntities); + List selectByOrderIdFk(String billNo); InvPreProductDetailEntity selectByCode(String billNo, String code); diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPreProductDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPreProductDetailServiceImpl.java index c661091a8..7283562da 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPreProductDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPreProductDetailServiceImpl.java @@ -43,6 +43,11 @@ public class InvPreProductDetailServiceImpl implements InvPreProductDetailServic return invPreProductDetailDao.insert(invPreProductDetailEntity); } + @Override + public boolean insertList(List invPreProductDetailEntities) { + return invPreProductDetailDao.insertBatch(invPreProductDetailEntities); + } + @Override public List selectByOrderIdFk(String billNo) { if (StrUtil.isEmpty(billNo))