diff --git a/src/main/java/com/glxp/api/controller/purchase/PurPlanController.java b/src/main/java/com/glxp/api/controller/purchase/PurPlanController.java index 1307578f9..9c59fbbb4 100644 --- a/src/main/java/com/glxp/api/controller/purchase/PurPlanController.java +++ b/src/main/java/com/glxp/api/controller/purchase/PurPlanController.java @@ -10,14 +10,12 @@ import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.Constant; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.constant.ConstantType; +import com.glxp.api.entity.basic.BasicBusTypeChangeEntity; import com.glxp.api.entity.basic.BasicCorpEntity; import com.glxp.api.entity.basic.BasicProductsEntity; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderEntity; -import com.glxp.api.entity.purchase.PurApplyDetailEntity; -import com.glxp.api.entity.purchase.PurApplyEntity; -import com.glxp.api.entity.purchase.PurPlanDetailEntity; -import com.glxp.api.entity.purchase.PurPlanEntity; +import com.glxp.api.entity.purchase.*; import com.glxp.api.req.purchase.PostPurPlanRequest; import com.glxp.api.req.purchase.PurApplyDetailRequest; import com.glxp.api.req.purchase.PurPlanDetailRequest; @@ -28,13 +26,11 @@ import com.glxp.api.res.purchase.PurOrderDetailResponse; import com.glxp.api.res.purchase.PurPlanResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.basic.BasicCorpService; +import com.glxp.api.service.basic.IBasicBusTypeChangeService; import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.service.inout.IoOrderDetailBizService; import com.glxp.api.service.inout.IoOrderService; -import com.glxp.api.service.purchase.PurApplyDetailService; -import com.glxp.api.service.purchase.PurApplyService; -import com.glxp.api.service.purchase.PurPlanDetailService; -import com.glxp.api.service.purchase.PurPlanService; +import com.glxp.api.service.purchase.*; import com.glxp.api.util.CustomUtil; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.OrderNoTypeBean; @@ -70,7 +66,8 @@ public class PurPlanController { PurApplyDetailService purApplyDetailService; @Resource PurPlanDetailService purPlanDetailService; - + @Resource + IBasicBusTypeChangeService basicBusTypeChangeService; @Resource CustomerService customerService; @Resource @@ -79,6 +76,10 @@ public class PurPlanController { IoOrderService ioOrderService; @Resource IoOrderDetailBizService ioOrderDetailBizService; + @Resource + PurOrderService purOrderService; + @Resource + PurOrderDetailService purOrderDetailService; /** @@ -182,72 +183,191 @@ public class PurPlanController { @PostMapping("/purchase/plan/auditOrder") public BaseResponse auditOrder(@RequestBody PostPurPlanRequest postPurPlanRequest) { Long userId = customerService.getUserId(); - PurPlanEntity purApplyEntity = postPurPlanRequest.getPurPlanEntity(); - purApplyEntity.setUpdateTime(new Date()); - purApplyEntity.setUpdateUser(userId+""); - purApplyEntity.setAuditUser(userId + ""); - purApplyEntity.setAuditUser(userId + ""); - purApplyEntity.setStatus(postPurPlanRequest.getEditStatus()); - purPlanService.update(purApplyEntity); - String billNo=""; - List purPlanDetailEntities = purPlanDetailService.findByOrderId(purApplyEntity.getId() + ""); - - //对计划单里面的供应商进行分组 - Map> map = purPlanDetailEntities.stream().collect(Collectors.groupingBy(PurPlanDetailEntity::getSupId)); - - if (postPurPlanRequest.getEditStatus() == ConstantStatus.APPLY_AUDIT_ED) { - - if (CollUtil.isNotEmpty(purPlanDetailEntities) && postPurPlanRequest.isAutoPurchase()==true - && StrUtil.isNotEmpty(postPurPlanRequest.getTargetSubInv()) && StrUtil.isNotEmpty(postPurPlanRequest.getTargetBillAction()) ) { - - for (Map.Entry> m:map.entrySet()) { - //生产单据表信息 - IoOrderEntity ioOrderEntity=new IoOrderEntity(); - ioOrderEntity.setBillNo(gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER ,"yyyyMMdd"))); - ioOrderEntity.setCorpOrderId(CustomUtil.getDate()); - ioOrderEntity.setMainAction(ConstantType.TYPE_PUT); - ioOrderEntity.setAction(postPurPlanRequest.getTargetBillAction()); - ioOrderEntity.setFromCorp(m.getKey()); - ioOrderEntity.setFromType(ConstantStatus.FROM_PLAN); - ioOrderEntity.setStatus(1); - ioOrderEntity.setDealStatus(1); - ioOrderEntity.setOrderType(1); - ioOrderEntity.setCreateTime(new Date()); - ioOrderEntity.setCreateUser(postPurPlanRequest.getPurPlanEntity().getAuditUser()); - ioOrderEntity.setUpdateTime(new Date()); - ioOrderEntity.setUpdateUser(postPurPlanRequest.getPurPlanEntity().getAuditUser()); - ioOrderEntity.setCustomerId("110"); - ioOrderEntity.setDeptCode(postPurPlanRequest.getTargetDeptCode()); - ioOrderEntity.setInvCode(postPurPlanRequest.getTargetSubInv()); - ioOrderService.insertOrder(ioOrderEntity); - billNo+=ioOrderEntity.getBillNo()+","; - //插入业务单表 - for (PurPlanDetailEntity obj:m.getValue()) { - BasicProductsEntity basicProductsEntity = purPlanDetailService.selectIoOrderDetailBiz(obj.getId()); - IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity(); - ioOrderDetailBizEntity.setOrderIdFk(ioOrderEntity.getBillNo()); - ioOrderDetailBizEntity.setBindRlFk(Long.valueOf(obj.getProductId())); - ioOrderDetailBizEntity.setCount(obj.getCount()); - ioOrderDetailBizEntity.setUuidFk(basicProductsEntity.getUuid()); - ioOrderDetailBizEntity.setNameCode(basicProductsEntity.getNameCode()); - ioOrderDetailBizEntity.setCoName(basicProductsEntity.getCpmctymc()); - ioOrderDetailBizEntity.setCertCode(basicProductsEntity.getZczbhhzbapzbh()); - ioOrderDetailBizEntity.setYlqxzcrbarmc(basicProductsEntity.getYlqxzcrbarmc()); - ioOrderDetailBizEntity.setManufacturer(basicProductsEntity.getManufactory()); - ioOrderDetailBizEntity.setMeasname(basicProductsEntity.getMeasname()); - ioOrderDetailBizEntity.setSpec(basicProductsEntity.getGgxh()); - if (basicProductsEntity.getPrice() != null) { - ioOrderDetailBizEntity.setPrice(BigDecimal.valueOf(basicProductsEntity.getPrice())); + PurPlanEntity purPlanEntity = postPurPlanRequest.getPurPlanEntity(); + purPlanEntity.setUpdateTime(new Date()); + purPlanEntity.setUpdateUser(userId+""); + purPlanEntity.setAuditUser(userId + ""); + purPlanEntity.setAuditUser(userId + ""); + purPlanEntity.setStatus(postPurPlanRequest.getEditStatus()); +// purPlanService.update(purApplyEntity); + if(purPlanEntity.getStatus()==3){ + generateDocument(purPlanEntity); + } + + +// String billNo=""; +// List purPlanDetailEntities = purPlanDetailService.findByOrderId(purApplyEntity.getId() + ""); +// +// //对计划单里面的供应商进行分组 +// Map> map = purPlanDetailEntities.stream().collect(Collectors.groupingBy(PurPlanDetailEntity::getSupId)); +// +// if (postPurPlanRequest.getEditStatus() == ConstantStatus.APPLY_AUDIT_ED) { +// +// if (CollUtil.isNotEmpty(purPlanDetailEntities) && postPurPlanRequest.isAutoPurchase()==true +// && StrUtil.isNotEmpty(postPurPlanRequest.getTargetSubInv()) && StrUtil.isNotEmpty(postPurPlanRequest.getTargetBillAction()) ) { +// +// for (Map.Entry> m:map.entrySet()) { +// //生产单据表信息 +// IoOrderEntity ioOrderEntity=new IoOrderEntity(); +// ioOrderEntity.setBillNo(gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER ,"yyyyMMdd"))); +// ioOrderEntity.setCorpOrderId(CustomUtil.getDate()); +// ioOrderEntity.setMainAction(ConstantType.TYPE_PUT); +// ioOrderEntity.setAction(postPurPlanRequest.getTargetBillAction()); +// ioOrderEntity.setFromCorp(m.getKey()); +// ioOrderEntity.setFromType(ConstantStatus.FROM_PLAN); +// ioOrderEntity.setStatus(1); +// ioOrderEntity.setDealStatus(1); +// ioOrderEntity.setOrderType(1); +// ioOrderEntity.setCreateTime(new Date()); +// ioOrderEntity.setCreateUser(postPurPlanRequest.getPurPlanEntity().getAuditUser()); +// ioOrderEntity.setUpdateTime(new Date()); +// ioOrderEntity.setUpdateUser(postPurPlanRequest.getPurPlanEntity().getAuditUser()); +// ioOrderEntity.setCustomerId("110"); +// ioOrderEntity.setDeptCode(postPurPlanRequest.getTargetDeptCode()); +// ioOrderEntity.setInvCode(postPurPlanRequest.getTargetSubInv()); +// ioOrderService.insertOrder(ioOrderEntity); +// billNo+=ioOrderEntity.getBillNo()+","; +// //插入业务单表 +// for (PurPlanDetailEntity obj:m.getValue()) { +// BasicProductsEntity basicProductsEntity = purPlanDetailService.selectIoOrderDetailBiz(obj.getId()); +// IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity(); +// ioOrderDetailBizEntity.setOrderIdFk(ioOrderEntity.getBillNo()); +// ioOrderDetailBizEntity.setBindRlFk(Long.valueOf(obj.getProductId())); +// ioOrderDetailBizEntity.setCount(obj.getCount()); +// ioOrderDetailBizEntity.setUuidFk(basicProductsEntity.getUuid()); +// ioOrderDetailBizEntity.setNameCode(basicProductsEntity.getNameCode()); +// ioOrderDetailBizEntity.setCoName(basicProductsEntity.getCpmctymc()); +// ioOrderDetailBizEntity.setCertCode(basicProductsEntity.getZczbhhzbapzbh()); +// ioOrderDetailBizEntity.setYlqxzcrbarmc(basicProductsEntity.getYlqxzcrbarmc()); +// ioOrderDetailBizEntity.setManufacturer(basicProductsEntity.getManufactory()); +// ioOrderDetailBizEntity.setMeasname(basicProductsEntity.getMeasname()); +// ioOrderDetailBizEntity.setSpec(basicProductsEntity.getGgxh()); +// if (basicProductsEntity.getPrice() != null) { +// ioOrderDetailBizEntity.setPrice(BigDecimal.valueOf(basicProductsEntity.getPrice())); +// } +// ioOrderDetailBizEntity.setSupId(obj.getSupId()); +// ioOrderDetailBizService.insert(ioOrderDetailBizEntity); +// } +// } +// purApplyEntity.setStockOrderNo(billNo.substring(0,billNo.length()-1)); +// purPlanService.update(purApplyEntity); +// } +// } + return ResultVOUtils.success("更新成功!"); + } + + //根据单据生成新单据 + public Boolean generateDocument(PurPlanEntity purPlanEntity){ + BasicBusTypeChangeEntity basicBusTypeChangeEntity=new BasicBusTypeChangeEntity(); + //查询计划详情 + List purPlanDetailEntityList=purPlanDetailService.findByOrderId(purPlanEntity.getId()+""); + //---------------------------------判断计划为已审核就生成计划单-------------------------------------------//\ + PurOrderEntity purOrderEntity=new PurOrderEntity(); + if(purPlanEntity.getStatus()==3){ + basicBusTypeChangeEntity=basicBusTypeChangeService.selectByOriginAction("CGJH"); + if(basicBusTypeChangeEntity!=null && StrUtil.isNotEmpty(basicBusTypeChangeEntity.getTargetBusAction()) && basicBusTypeChangeEntity.isEnable()==true){ + purOrderEntity.setBillNo(gennerOrderUtils.createStOrderNo(new OrderNoTypeBean(Constant.CG_ORDER, "yyyyMMdd"))); + purOrderEntity.setBillDate(purPlanEntity.getBillDate()); + purOrderEntity.setStatus(basicBusTypeChangeEntity.getBusAuditStatus()); + purOrderEntity.setRemark(purPlanEntity.getRemark()); + purOrderEntity.setEmergency(purPlanEntity.getEmergency()); + purOrderEntity.setArrivalTime(purPlanEntity.getArrivalTime()); + purOrderEntity.setInvCode(purPlanEntity.getInvCode()); + purOrderEntity.setDeptCode(purPlanEntity.getDeptCode()); + purOrderEntity.setCreateUser(purPlanEntity.getAuditUser()); + purOrderEntity.setCreateTime(timeProcess(purPlanEntity.getCreateTime(),basicBusTypeChangeEntity.getBusBeforeTime())); + purOrderEntity.setUpdateUser(purPlanEntity.getAuditUser()); + purOrderEntity.setUpdateTime(timeProcess(purPlanEntity.getCreateTime(),basicBusTypeChangeEntity.getBusBeforeTime())); + if(purOrderEntity.getStatus()==3){ + purOrderEntity.setAuditUser(""); + purOrderEntity.setAuditTime(new Date()); } - ioOrderDetailBizEntity.setSupId(obj.getSupId()); - ioOrderDetailBizService.insert(ioOrderDetailBizEntity); + //插入订单主表 + purOrderService.insert(purOrderEntity); + //用stream流复制list + List purOrderDetailEntityList = purPlanDetailEntityList.stream().map(e -> { + PurOrderDetailEntity d = new PurOrderDetailEntity(); + d.setOrderIdFk(purOrderEntity.getId()+""); + d.setProductId(e.getProductId()); + d.setProductName(e.getProductName()); + d.setCount(e.getCount()); + d.setSupId(e.getSupId()); + d.setZczbhhzbapzbh(e.getZczbhhzbapzbh()); + return d; + }).collect(Collectors.toList()); + purOrderDetailService.insertPurOrderDetailEntity(purOrderDetailEntityList); + // 更新计划表信息插入订单单号 + PurPlanEntity purPlanEntity1=new PurPlanEntity(); + purPlanEntity1.setId(purPlanEntity.getId()); + purPlanEntity1.setStockOrderNo(purOrderEntity.getBillNo()); +// purPlanEntity.sets(true); + purPlanService.update(purPlanEntity1); + } + //---------------------------------判断计划为已审核就生成采购入库单-------------------------------------------//\ + //查询申购单详情 + List purPlanDetailEntities=purPlanDetailService.findByOrderId(purPlanEntity.getId()+""); + //对计划单里面的供应商进行分组 + Map> map = purPlanDetailEntities.stream().collect(Collectors.groupingBy(PurPlanDetailEntity::getSupId)); + String billNo=""; + if(basicBusTypeChangeEntity!=null && StrUtil.isNotEmpty(basicBusTypeChangeEntity.getTargetAction()) && basicBusTypeChangeEntity.isEnable()==true){ + for (Map.Entry> m:map.entrySet()) { + //生产单据表信息 + IoOrderEntity ioOrderEntity=new IoOrderEntity(); + ioOrderEntity.setBillNo(gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER ,"yyyyMMdd"))); + ioOrderEntity.setCorpOrderId(CustomUtil.getDate()); + ioOrderEntity.setMainAction(ConstantType.TYPE_PUT); + ioOrderEntity.setAction(basicBusTypeChangeEntity.getTargetAction()); + ioOrderEntity.setFromCorp(m.getKey()); + ioOrderEntity.setFromType(ConstantStatus.FROM_PLAN); + ioOrderEntity.setStatus(1); + ioOrderEntity.setDealStatus(1); + ioOrderEntity.setOrderType(1); + ioOrderEntity.setCreateTime(new Date()); + ioOrderEntity.setCreateUser(purPlanEntity.getCreateUser()); + ioOrderEntity.setUpdateTime(new Date()); + ioOrderEntity.setUpdateUser(purPlanEntity.getCreateUser()); + ioOrderEntity.setCustomerId("110"); + ioOrderEntity.setDeptCode(purPlanEntity.getInvCode()); + ioOrderEntity.setInvCode(purPlanEntity.getDeptCode()); + ioOrderService.insertOrder(ioOrderEntity); + billNo+=ioOrderEntity.getBillNo()+","; + //插入业务单表 + for (PurPlanDetailEntity obj:m.getValue()) { + BasicProductsEntity basicProductsEntity = purPlanDetailService.selectIoOrderDetailBiz(obj.getId()); + IoOrderDetailBizEntity ioOrderDetailBizEntity = new IoOrderDetailBizEntity(); + ioOrderDetailBizEntity.setOrderIdFk(ioOrderEntity.getBillNo()); + ioOrderDetailBizEntity.setBindRlFk(Long.valueOf(obj.getProductId())); + ioOrderDetailBizEntity.setCount(obj.getCount()); + ioOrderDetailBizEntity.setUuidFk(basicProductsEntity.getUuid()); + ioOrderDetailBizEntity.setNameCode(basicProductsEntity.getNameCode()); + ioOrderDetailBizEntity.setCoName(basicProductsEntity.getCpmctymc()); + ioOrderDetailBizEntity.setCertCode(basicProductsEntity.getZczbhhzbapzbh()); + ioOrderDetailBizEntity.setYlqxzcrbarmc(basicProductsEntity.getYlqxzcrbarmc()); + ioOrderDetailBizEntity.setManufacturer(basicProductsEntity.getManufactory()); + ioOrderDetailBizEntity.setMeasname(basicProductsEntity.getMeasname()); + ioOrderDetailBizEntity.setSpec(basicProductsEntity.getGgxh()); + if (basicProductsEntity.getPrice() != null) { + ioOrderDetailBizEntity.setPrice(BigDecimal.valueOf(basicProductsEntity.getPrice())); + } + ioOrderDetailBizEntity.setSupId(obj.getSupId()); + ioOrderDetailBizService.insert(ioOrderDetailBizEntity); + } + } + PurPlanEntity purPlanEntity1=new PurPlanEntity(); + purPlanEntity1.setId(purPlanEntity.getId()); + purPlanEntity1.setStockOrderNo(billNo.substring(0,billNo.length()-1)); + purPlanService.update(purPlanEntity1); } } - purApplyEntity.setStockOrderNo(billNo.substring(0,billNo.length()-1)); - purPlanService.update(purApplyEntity); - } - } - return ResultVOUtils.success("更新成功!"); + return true; + } + + public Date timeProcess(Date date,Integer timeCount) { + Calendar rightNow = Calendar.getInstance(); + rightNow.setTime(date); + rightNow.add(Calendar.HOUR,timeCount); + Date dt1 = rightNow.getTime(); + return dt1; }