From bcd769446f788e93585ba33fb755f9ac6af1f5a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=99=93=E8=BF=AA?= <2596750866@qq.com> Date: Wed, 1 Jan 2025 14:43:50 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E7=94=9F=E4=BA=A7=E7=AE=A1=E7=90=86=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?=E6=B7=BB=E5=8A=A0=E5=A7=94=E5=A4=96=E8=AE=A1=E5=88=92=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=EF=BC=8C=E6=8D=9F=E8=80=97=E7=8E=87=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E6=96=B9=E6=B3=95=EF=BC=9B=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=A7=94=E5=A4=96=E8=AE=A1=E5=88=92service?= =?UTF-8?q?=E6=96=B9=E6=B3=95=EF=BC=8C=E5=90=88=E5=B9=B6=E7=9B=B8=E5=90=8C?= =?UTF-8?q?=E6=96=99=E5=8F=B7=E7=9A=84=E6=95=B0=E6=8D=AE=EF=BC=8C=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E6=95=B0=E7=9B=B8=E5=8A=A0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysMakeOrderServiceImpl.java | 16 ++++++++++++++-- .../system/makeorder/addOutsourcePlan.html | 12 ++++++++++-- 2 files changed, 24 insertions(+), 4 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 c90a86e6..9fdac4da 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 @@ -820,11 +820,23 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService if(StringUtils.isEmpty(planDetails)){ throw new BusinessException("委外计划物料集合为空!添加失败"); } + // 合并相同料号的数据,计划数相加 + Map aggregated = new HashMap<>(); + for (OutsourcePlanDetail detail : planDetails) { + aggregated.merge(detail.getMaterialNo(), + new OutsourcePlanDetail(), + (existing, replacement) -> { + existing.setPlannedOutsourceAmount(existing.getPlannedOutsourceAmount() + replacement.getPlannedOutsourceAmount()); + return existing; + }); + } + // 将Map转回List + List mergedPlanDetails = new ArrayList<>(aggregated.values()); int materialAmount = 0; int processAmount = 0; int materialSum = 0; Set uniqueProcessNos = new HashSet<>(); // 用于存储唯一的 processNo - for (OutsourcePlanDetail detail:planDetails) { + for (OutsourcePlanDetail detail:mergedPlanDetails) { detail.setOutsourcePlanCode(outsourcePlanCode); detail.setCreateBy(ShiroUtils.getLoginName()); detail.setCreateTime(DateUtils.getNowDate()); @@ -885,7 +897,7 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService tempBom.setId(detail.getMakeBomId()); SysMakeorderBom makeorderBom = makeorderBomMapper.selectSysMakeorderBomByNo(tempBom); int hasOutSum = Optional.ofNullable(makeorderBom.getHasOutNum()).orElse(0); - hasOutSum = hasOutSum + makeorderBom.getHasOutNum(); + hasOutSum = hasOutSum + detail.getPlannedOutsourceAmount(); makeorderBom.setHasOutNum(hasOutSum); updateResult += makeorderBomMapper.updateSysMakeorderBom(makeorderBom); } diff --git a/ruoyi-admin/src/main/resources/templates/system/makeorder/addOutsourcePlan.html b/ruoyi-admin/src/main/resources/templates/system/makeorder/addOutsourcePlan.html index 9144ad5d..13e178e0 100644 --- a/ruoyi-admin/src/main/resources/templates/system/makeorder/addOutsourcePlan.html +++ b/ruoyi-admin/src/main/resources/templates/system/makeorder/addOutsourcePlan.html @@ -311,7 +311,14 @@ { field: 'lossRate', align: 'center', - title: '损耗率', + title: '损耗率(%)', + formatter: function (value, row, index) { + if (value == null || value == ''){ + return "0.00%"; + } + value = parseFloat(value).toFixed(2); + return value + "%"; + } }, { field: 'processNum', @@ -337,8 +344,9 @@ title: '本次委外数量', formatter: function (value,row,index){ var processMethod = row.processMethod; + var hasOutNum = Number(row.hasOutNum); //加工方式为2委外加工或4委外加工或采购 - if(processMethod === "2"||processMethod === "4"){ + if((processMethod === "2"||processMethod === "4") && hasOutNum === 0){ var curIndex = row.sortNo-1; return ''; }