From 8656f3b3c26f245db44e7e9d897e07e4aa60cb5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=99=93=E8=BF=AA?= <2596750866@qq.com> Date: Fri, 20 Sep 2024 17:34:24 +0800 Subject: [PATCH] Revert "[fix]" This reverts commit 4659bb9a7aa4e66848e1b6ae4bbffc018931422f. --- .../service/impl/PurchasePlanServiceImpl.java | 140 +++--- .../controller/SysMakeOrderController.java | 48 +- .../service/impl/SysMakeOrderServiceImpl.java | 81 +--- .../system/makeorder/addOutsourcePlan.html | 414 ------------------ .../system/makeorder/showProcesses.html | 52 --- 5 files changed, 80 insertions(+), 655 deletions(-) delete mode 100644 ruoyi-admin/src/main/resources/templates/system/makeorder/addOutsourcePlan.html delete mode 100644 ruoyi-admin/src/main/resources/templates/system/makeorder/showProcesses.html diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchasePlanServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchasePlanServiceImpl.java index 4e769091..9eee3eed 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchasePlanServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchasePlanServiceImpl.java @@ -201,83 +201,83 @@ public class PurchasePlanServiceImpl implements IPurchasePlanService //保存所有加工方式为采购的物料 List filterSysMakeorderBoms = insertedSysMakeorderBoms.stream().filter(bom -> "0".equals(bom.getProcessMethod())).collect(Collectors.toList()); - if(StringUtils.isNotEmpty(filterUniqueBoms)){ - //所有数据的销售订单号相同,只需查一条的销售订单号 - String quoteId = filterSysMakeorderBoms.get(0).getSalesOrderCode(); - - // 第一步:收集所有不同的salesOrderMaterialNo 利用set key值不重复的特性 - Set uniqueSalesOrderMaterialNos = new HashSet<>(); - for (SysMakeorderBom filterSysMakeorderBom : filterSysMakeorderBoms) { - uniqueSalesOrderMaterialNos.add(filterSysMakeorderBom.getSalesOrderMaterialNo()); - } - // 第二步:查询每个salesOrderMaterialNo对应的SalesOrder数据 - Map salesOrderChildByMaterialNo = new HashMap<>(); - for (String salesOrderMaterialNo : uniqueSalesOrderMaterialNos) { - SysSalesOrderChild sysSalesOrderChild = new SysSalesOrderChild(); - sysSalesOrderChild.setMaterialCode(salesOrderMaterialNo); - sysSalesOrderChild.setQuoteId(quoteId); - SysSalesOrderChild salesOrderChild = salesOrderChildMapper.selectSalesOrderChildByCodeAndNo(sysSalesOrderChild); - salesOrderChildByMaterialNo.put(salesOrderMaterialNo, salesOrderChild); - } + //所有数据的销售订单号相同,只需查一条的销售订单号 + String quoteId = filterSysMakeorderBoms.get(0).getSalesOrderCode(); + + // 第一步:收集所有不同的salesOrderMaterialNo 利用set key值不重复的特性 + Set uniqueSalesOrderMaterialNos = new HashSet<>(); + for (SysMakeorderBom filterSysMakeorderBom : filterSysMakeorderBoms) { + uniqueSalesOrderMaterialNos.add(filterSysMakeorderBom.getSalesOrderMaterialNo()); + } + + // 第二步:查询每个salesOrderMaterialNo对应的SalesOrder数据 + Map salesOrderChildByMaterialNo = new HashMap<>(); + for (String salesOrderMaterialNo : uniqueSalesOrderMaterialNos) { + SysSalesOrderChild sysSalesOrderChild = new SysSalesOrderChild(); + sysSalesOrderChild.setMaterialCode(salesOrderMaterialNo); + sysSalesOrderChild.setQuoteId(quoteId); + SysSalesOrderChild salesOrderChild = salesOrderChildMapper.selectSalesOrderChildByCodeAndNo(sysSalesOrderChild); + salesOrderChildByMaterialNo.put(salesOrderMaterialNo, salesOrderChild); + } - double purchasePlanMaterialSum = 0L; - // 第三步:计算purchasePlanNum - for (SysMakeorderBom filterSysMakeorderBom : filterSysMakeorderBoms) { - String salesOrderMaterialNo = filterSysMakeorderBom.getSalesOrderMaterialNo(); - SysSalesOrderChild sysSalesOrderChild = salesOrderChildByMaterialNo.get(salesOrderMaterialNo); - if (sysSalesOrderChild != null) { - //物料数量 - long materialNum = sysSalesOrderChild.getMaterialNum(); - //用量 - Double useNum = filterSysMakeorderBom.getUseNum(); - - //采购计划数 - double purchasePlanNum = materialNum * useNum; - - // 立即创建PurchasePlanChild对象 - PurchasePlanChild purchasePlanChild = new PurchasePlanChild(); - purchasePlanChild.setPurchasePlanCode(purchasePlanCode); - purchasePlanChild.setMaterialCode(filterSysMakeorderBom.getMaterialNo()); - - PurchasePlanChild tempPurchasePlanChild = purchasePlanChildMapper.selectPurchasePlanChildByCodeAndNo(purchasePlanChild); - if (tempPurchasePlanChild != null){ - - purchasePlanChild.setPurchasePlanChildId(tempPurchasePlanChild.getPurchasePlanChildId()); - double addMaterialNum = tempPurchasePlanChild.getMaterialNum() + purchasePlanNum; - //设置计划采购数 - purchasePlanChild.setMaterialNum(addMaterialNum); - purchasePlanChildMapper.updatePurchasePlanChild(purchasePlanChild); - }else { - purchasePlanChild.setMaterialName(filterSysMakeorderBom.getMaterialName()); - purchasePlanChild.setMaterialType(filterSysMakeorderBom.getMaterialType()); - purchasePlanChild.setWarehouseDept(filterSysMakeorderBom.getWarehouseDept()); - purchasePlanChild.setProcessMethod("0"); - purchasePlanChild.setBrand(filterSysMakeorderBom.getBrand()); - purchasePlanChild.setDescribe(filterSysMakeorderBom.getDescribe()); - purchasePlanChild.setUnit(filterSysMakeorderBom.getUnit()); - purchasePlanChild.setWarehouseDept(filterSysMakeorderBom.getWarehouseDept()); - // 物料的计划采购数,使用计算出的purchasePlanNum - purchasePlanChild.setMaterialNum(purchasePlanNum); - purchasePlanChild.setCreateBy(ShiroUtils.getLoginName()); - purchasePlanChild.setCreateTime(new Date()); - purchasePlanChild.setUnit(filterSysMakeorderBom.getUnit()); - - // 直接保存PurchasePlanChild对象 - purchasePlanChildMapper.insertPurchasePlanChild(purchasePlanChild); - } - - // 更新总和 - purchasePlanMaterialSum += purchasePlanNum; + double purchasePlanMaterialSum = 0L; + // 第三步:计算purchasePlanNum + for (SysMakeorderBom filterSysMakeorderBom : filterSysMakeorderBoms) { + String salesOrderMaterialNo = filterSysMakeorderBom.getSalesOrderMaterialNo(); + SysSalesOrderChild sysSalesOrderChild = salesOrderChildByMaterialNo.get(salesOrderMaterialNo); + if (sysSalesOrderChild != null) { + //物料数量 + long materialNum = sysSalesOrderChild.getMaterialNum(); + //用量 + Double useNum = filterSysMakeorderBom.getUseNum(); + + //采购计划数 + double purchasePlanNum = materialNum * useNum; + + // 立即创建PurchasePlanChild对象 + PurchasePlanChild purchasePlanChild = new PurchasePlanChild(); + purchasePlanChild.setPurchasePlanCode(purchasePlanCode); + purchasePlanChild.setMaterialCode(filterSysMakeorderBom.getMaterialNo()); + + PurchasePlanChild tempPurchasePlanChild = purchasePlanChildMapper.selectPurchasePlanChildByCodeAndNo(purchasePlanChild); + if (tempPurchasePlanChild != null){ + + purchasePlanChild.setPurchasePlanChildId(tempPurchasePlanChild.getPurchasePlanChildId()); + double addMaterialNum = tempPurchasePlanChild.getMaterialNum() + purchasePlanNum; + //设置计划采购数 + purchasePlanChild.setMaterialNum(addMaterialNum); + purchasePlanChildMapper.updatePurchasePlanChild(purchasePlanChild); + }else { + purchasePlanChild.setMaterialName(filterSysMakeorderBom.getMaterialName()); + purchasePlanChild.setMaterialType(filterSysMakeorderBom.getMaterialType()); + purchasePlanChild.setWarehouseDept(filterSysMakeorderBom.getWarehouseDept()); + purchasePlanChild.setProcessMethod("0"); + purchasePlanChild.setBrand(filterSysMakeorderBom.getBrand()); + purchasePlanChild.setDescribe(filterSysMakeorderBom.getDescribe()); + purchasePlanChild.setUnit(filterSysMakeorderBom.getUnit()); + purchasePlanChild.setWarehouseDept(filterSysMakeorderBom.getWarehouseDept()); + // 物料的计划采购数,使用计算出的purchasePlanNum + purchasePlanChild.setMaterialNum(purchasePlanNum); + purchasePlanChild.setCreateBy(ShiroUtils.getLoginName()); + purchasePlanChild.setCreateTime(new Date()); + purchasePlanChild.setUnit(filterSysMakeorderBom.getUnit()); + + // 直接保存PurchasePlanChild对象 + purchasePlanChildMapper.insertPurchasePlanChild(purchasePlanChild); } + + // 更新总和 + purchasePlanMaterialSum += purchasePlanNum; } + } - // 创建采购计划主记录 - PurchasePlan purchasePlan = buildPurchasePlan(sysMakeOrder, purchasePlanCode,materialAmount,purchasePlanMaterialSum); + // 创建采购计划主记录 + PurchasePlan purchasePlan = buildPurchasePlan(sysMakeOrder, purchasePlanCode,materialAmount,purchasePlanMaterialSum); + + purchasePlanMapper.insertPurchasePlan(purchasePlan); - purchasePlanMapper.insertPurchasePlan(purchasePlan); - } } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeOrderController.java index 682e12ee..24c1f12d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeOrderController.java @@ -18,12 +18,14 @@ import com.ruoyi.erp.domain.ErpInboundOrder; import com.ruoyi.erp.service.IErpMaterialService; import com.ruoyi.financial.domain.FinancialReceivables; import com.ruoyi.financial.domain.FinancialReceivablesRecords; -import com.ruoyi.system.domain.*; +import com.ruoyi.system.domain.SysMakeOrder; +import com.ruoyi.system.domain.SysMakeorderDept; +import com.ruoyi.system.domain.SysSalesOrder; +import com.ruoyi.system.domain.SysSalesOrderChild; import com.ruoyi.system.dto.SysEquipDetailDto; import com.ruoyi.system.dto.SysEquipMaterialDto; import com.ruoyi.system.dto.SysMakeorderDeptDto; import com.ruoyi.system.dto.SysMakeorderMaterialDto; -import com.ruoyi.system.mapper.OutsourceMaterialMapper; import com.ruoyi.system.service.ISysMakeOrderService; import com.ruoyi.system.service.ISysMakeorderDeptService; import com.ruoyi.system.service.ISysSalesOrderChildService; @@ -65,8 +67,6 @@ public class SysMakeOrderController extends BaseController @Autowired private IAfterSalesShippingDeviceService salesShippingDeviceService; - @Autowired - private OutsourceMaterialMapper outsourceMaterialMapper; @GetMapping("/test") public AjaxResult test(){ @@ -160,46 +160,6 @@ public class SysMakeOrderController extends BaseController return prefix + "/addpick"; } - /** - * 跳转创建委外计划页面 - */ - @GetMapping("/addOutsourcePlan/{id}") - public String addOutsourcePlan(@PathVariable("id") Long id, ModelMap mmap) - { - mmap.put("currentUser", ShiroUtils.getSysUser()); - SysMakeOrder sysMakeOrder = sysMakeOrderService.selectSysMakeOrderById(id); - SysSalesOrder sysSalesOrder = salesOrderService.selectSysSalesOrderBySalesOrderCode(sysMakeOrder.getSaleNo()); - if(StringUtils.isNotNull(sysSalesOrder)){ - sysMakeOrder.setOrderType(sysSalesOrder.getSalesOrderType()); - sysMakeOrder.setSalesman(sysSalesOrder.getBusinessMembers()); - sysMakeOrder.setCustomerName(sysSalesOrder.getEnterpriseName()); - sysMakeOrder.setCustomerId(sysSalesOrder.getEnterpriseCode()); - sysMakeOrder.setCustomerOderCode(sysSalesOrder.getSalesOrderNumber()); - } - mmap.put("sysMakeOrder", sysMakeOrder); - return prefix + "/addOutsourcePlan"; - } - /** - * 跳转委外工序显示页面 - */ - @GetMapping("/showProcesses/{materialNo}") - public String showProcesses(@PathVariable("materialNo") String materialNo, ModelMap mmap) - { - List materials = outsourceMaterialMapper.selectProcessNoByNo(materialNo); - mmap.put("materials", materials); - return prefix + "/showProcesses"; - } - /** - * 保存添加委外计划 - */ -// @RequiresPermissions("system:makeorder:edit") -// @Log(title = "生产订单", businessType = BusinessType.UPDATE) - @PostMapping("/addOutsourcePlan") - @ResponseBody - public AjaxResult addOutsourcePlan(@RequestBody OutsourcePlan outsourcePlan) - { - return toAjax(sysMakeOrderService.addOutsourcePlan(outsourcePlan)); - } /** * 跳转创建委内加工入库单 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeOrderServiceImpl.java index b2b519e6..23267f5a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeOrderServiceImpl.java @@ -20,11 +20,15 @@ import com.ruoyi.quality.domain.QualityOrderReport; import com.ruoyi.quality.mapper.QualityOrderDetailMapper; import com.ruoyi.quality.mapper.QualityOrderMapper; import com.ruoyi.quality.mapper.QualityOrderReportMapper; -import com.ruoyi.system.domain.*; +import com.ruoyi.system.domain.SysMakeOrder; +import com.ruoyi.system.domain.SysMakeorderBom; +import com.ruoyi.system.domain.SysSalesOrderChild; +import com.ruoyi.system.domain.SysSalesOrderVo; import com.ruoyi.system.dto.SysEquipDetailDto; import com.ruoyi.system.dto.SysEquipMaterialDto; import com.ruoyi.system.dto.SysMakeorderMaterialDto; -import com.ruoyi.system.mapper.*; +import com.ruoyi.system.mapper.SysMakeOrderMapper; +import com.ruoyi.system.mapper.SysSalesOrderChildMapper; import com.ruoyi.system.service.*; import com.ruoyi.warehouse.domain.WarehouseStorageOrder; import com.ruoyi.warehouse.domain.WarehouseStorageOrderDetail; @@ -87,17 +91,6 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService @Autowired private QualityOrderReportMapper orderReportMapper; - @Autowired - private OutsourceMaterialMapper outsourceMaterialMapper; - - @Autowired - private OutsourcePlanMapper outsourcePlanMapper; - - @Autowired - private IOutsourcePlanService outsourcePlanService; - - @Autowired - private SysMakeorderBomMapper makeorderBomMapper; /** * 查询生产订单 * @@ -532,66 +525,4 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService return qualityOrderReport; } -// 生成委外计划 - @Override - public int addOutsourcePlan(OutsourcePlan outsourcePlan) { - String outsourcePlanCode = redisCache.generateBillNo("WWJH"); - outsourcePlan.setOutsourcePlanCode(outsourcePlanCode); - outsourcePlan.setCreateTime(DateUtils.getNowDate()); - outsourcePlan.setCreateBy(ShiroUtils.getLoginName()); - List planDetails = outsourcePlan.getOutsourcePlanDetailList(); - if(StringUtils.isEmpty(planDetails)){ - throw new BusinessException("委外计划物料集合为空!添加失败"); - } - int materialAmount = 0; - int processAmount = 0; - BigDecimal materialSum = BigDecimal.ZERO; - Set uniqueProcessNos = new HashSet<>(); // 用于存储唯一的 processNo - for (OutsourcePlanDetail detail:planDetails) { - materialAmount ++; - detail.setOutsourcePlanCode(outsourcePlanCode); - List materials = outsourceMaterialMapper.selectProcessNoByNo(detail.getMaterialNo()); - if(StringUtils.isEmpty(materials)){ - throw new BusinessException("委外物料工序数量为空!添加失败"); - } - for (OutsourceMaterial material : materials) { - uniqueProcessNos.add(material.getOutsourceProcessNo()); - } - materialSum = materialSum.add(detail.getPlannedOutsourceAmount()); - detail.setOutsourceProcessType(materials.size()); - detail.setOutsourceProcessAmount(materials.size()); - detail.setCreateBy(ShiroUtils.getLoginName()); - detail.setCreateTime(DateUtils.getNowDate()); - processAmount += detail.getOutsourceProcessAmount(); - } - int batchResult = outsourcePlanMapper.batchOutsourcePlanDetail(planDetails); - if(batchResult <= 0){ - throw new BusinessException("添加委外计划详情失败!"); - } -// 更新生产订单bom的已委外数信息 - changeOrderBomOutNum(planDetails,outsourcePlan.getAssociateOrderNo()); - - outsourcePlan.setMaterialAmount(materialAmount); - outsourcePlan.setTotalAmount(materialSum); - outsourcePlan.setOutsourceProcessType(uniqueProcessNos.size()); - outsourcePlan.setOutsourceProcessAmount(processAmount); - outsourcePlan.setStatus("0"); - outsourcePlan.setSource("1"); - int insertResult = outsourcePlanMapper.insertOutsourcePlan(outsourcePlan); - return insertResult; - } -// 根据委外计划详情更新生产订单bom委外数 - private int changeOrderBomOutNum(List planDetails, String makeNo){ - int updateResult = 0; - for (OutsourcePlanDetail detail: planDetails) { - SysMakeorderBom tempBom = new SysMakeorderBom(); - tempBom.setMakeNo(makeNo); - tempBom.setMaterialNo(detail.getMaterialNo()); - SysMakeorderBom makeorderBom = makeorderBomMapper.selectSysMakeorderBomByNo(tempBom); - makeorderBom.setHasOutNum(detail.getPlannedOutsourceAmount().intValue()); - updateResult += makeorderBomMapper.updateSysMakeorderBom(makeorderBom); - } - return updateResult; - } - } diff --git a/ruoyi-admin/src/main/resources/templates/system/makeorder/addOutsourcePlan.html b/ruoyi-admin/src/main/resources/templates/system/makeorder/addOutsourcePlan.html deleted file mode 100644 index 5d9cf8b2..00000000 --- a/ruoyi-admin/src/main/resources/templates/system/makeorder/addOutsourcePlan.html +++ /dev/null @@ -1,414 +0,0 @@ - - - - - - - -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
- -
-
-
-
-
- -
-
- - - - - \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/system/makeorder/showProcesses.html b/ruoyi-admin/src/main/resources/templates/system/makeorder/showProcesses.html deleted file mode 100644 index a4268440..00000000 --- a/ruoyi-admin/src/main/resources/templates/system/makeorder/showProcesses.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - -
-
-
-
-
-
-
- - - - - \ No newline at end of file