From eff09f197e0095af57a50e90e7d2745c6fa22a1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=99=93=E8=BF=AA?= <2596750866@qq.com> Date: Mon, 23 Dec 2024 19:55:25 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E7=94=9F=E4=BA=A7=E5=8A=A0=E5=B7=A5=20?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95=E6=B7=BB=E5=8A=A0=E5=A7=94?= =?UTF-8?q?=E5=A4=96=E8=AE=A1=E5=88=92=E9=A1=B5=E9=9D=A2=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E5=87=BD=E6=95=B0=EF=BC=8C=E9=81=8D=E5=8E=86=E5=AD=90=E8=A1=A8?= =?UTF-8?q?=EF=BC=8C=E6=A0=B9=E6=8D=AEbom=E5=B1=82=E9=98=B6=E5=85=B3?= =?UTF-8?q?=E7=B3=BB=E5=BE=AA=E7=8E=AF=E8=8E=B7=E5=8F=96=E5=A7=94=E5=A4=96?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E7=89=A9=E6=96=99=E5=8F=8A=E5=85=B61?= =?UTF-8?q?=E9=98=B6=E7=89=A9=E6=96=99=E9=9B=86=E5=90=88=EF=BC=9B=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=8E=B7=E5=8F=96=E7=94=9F=E4=BA=A7bom?= =?UTF-8?q?=E5=88=97=E8=A1=A8mapper=E6=96=B9=E6=B3=95=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0id=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6=EF=BC=9B=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=9F=E6=88=90=E5=A7=94=E5=A4=96=E8=AE=A1?= =?UTF-8?q?=E5=88=92service=E6=96=B9=E6=B3=95=E5=92=8C=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E5=A7=94=E5=A4=96=E8=AE=A1=E5=88=92=E8=AF=A6=E6=83=85=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95bom=E5=A7=94?= =?UTF-8?q?=E5=A4=96=E6=95=B0service=E6=96=B9=E6=B3=95=EF=BC=8C=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E5=B1=82=E7=BA=A7=E5=85=B3=E7=B3=BB=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=88=B6=E7=BA=A7id=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysMakeOrderServiceImpl.java | 64 +++++++++------ .../mapper/system/SysMakeorderBomMapper.xml | 1 + .../system/makeorder/addOutsourcePlan.html | 79 ++++++++++++++----- 3 files changed, 100 insertions(+), 44 deletions(-) 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 b573ab9f..9e58cc21 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 @@ -808,8 +808,10 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService // 生成委外计划 @Override + @Transactional(rollbackFor = Exception.class) public int addOutsourcePlan(OutsourcePlan outsourcePlan) { String outsourcePlanCode = redisCache.generateBillNo("WWJH"); + Long parentId = 0L; outsourcePlan.setOutsourcePlanCode(outsourcePlanCode); outsourcePlan.setCreateTime(DateUtils.getNowDate()); outsourcePlan.setCreateBy(ShiroUtils.getLoginName()); @@ -819,29 +821,40 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService } int materialAmount = 0; int processAmount = 0; - BigDecimal materialSum = BigDecimal.ZERO; + int materialSum = 0; 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("添加委外计划详情失败!"); + if(detail.getLevel() == 0){ + materialAmount ++; + List materials = outsourceMaterialMapper.selectProcessNoByNo(detail.getMaterialNo()); + if(StringUtils.isEmpty(materials)){ + throw new BusinessException("委外物料工序数量为空!添加失败"); + } + for (OutsourceMaterial material : materials) { + uniqueProcessNos.add(material.getOutsourceProcessNo()); + } + materialSum = materialSum + detail.getPlannedOutsourceAmount(); + detail.setOutsourceProcessType(materials.size()); + detail.setOutsourceProcessAmount(materials.size()); + processAmount += detail.getOutsourceProcessAmount(); + int insertResult = outsourcePlanMapper.insertOutsourcePlanDetail(detail); + if(insertResult <= 0){ + throw new BusinessException("添加委外计划详情失败!"); + } + parentId = detail.getOutsourcePlanDetailId(); + + }else if(detail.getLevel() == 1){ + detail.setParentId(parentId); + int insertResult = outsourcePlanMapper.insertOutsourcePlanDetail(detail); + if(insertResult <= 0){ + throw new BusinessException("添加委外计划详情失败!"); + } + } } + // 更新生产订单bom的已委外数信息 changeOrderBomOutNum(planDetails,outsourcePlan.getAssociateOrderNo()); @@ -864,12 +877,17 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService 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); + if(detail.getLevel()==0){ + SysMakeorderBom tempBom = new SysMakeorderBom(); + tempBom.setMakeNo(makeNo); + tempBom.setMaterialNo(detail.getMaterialNo()); + tempBom.setId(detail.getMakeBomId()); + SysMakeorderBom makeorderBom = makeorderBomMapper.selectSysMakeorderBomByNo(tempBom); + int hasOutSum = Optional.ofNullable(makeorderBom.getHasOutNum()).orElse(0); + hasOutSum = hasOutSum + makeorderBom.getHasOutNum(); + makeorderBom.setHasOutNum(hasOutSum); + updateResult += makeorderBomMapper.updateSysMakeorderBom(makeorderBom); + } } return updateResult; } diff --git a/ruoyi-admin/src/main/resources/mapper/system/SysMakeorderBomMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/SysMakeorderBomMapper.xml index cb0e7f71..bd5f24c2 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/SysMakeorderBomMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/SysMakeorderBomMapper.xml @@ -202,6 +202,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"