From 3f5b6d52a2a49e88dafb5f17f5a20adfaeaca46b 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, 13 Jan 2025 17:46:54 +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?=E7=94=9F=E4=BA=A7=E9=A2=86=E6=96=99=E9=A1=B5=E9=9D=A2=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A2=86=E6=96=99=E5=AD=90=E8=A1=A8=E7=94=9F?= =?UTF-8?q?=E4=BA=A7bom=E6=95=B0=E6=8D=AE=E6=BA=90=EF=BC=9B=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E8=8E=B7=E5=8F=96=E7=94=9F=E4=BA=A7bom=E9=A2=86?= =?UTF-8?q?=E6=96=99=E5=AD=90=E8=A1=A8=E5=88=97=E8=A1=A8controller?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=92=8Cservice=E6=96=B9=E6=B3=95=EF=BC=8C?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E5=8E=BB=E9=99=A4=E5=A7=94=E5=A4=96=E7=89=A9?= =?UTF-8?q?=E6=96=99=E4=B8=8B=E7=9A=84=E5=AD=90=E9=98=B6=E7=89=A9=E6=96=99?= =?UTF-8?q?=EF=BC=9B=20=E4=BF=AE=E6=94=B9=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=EF=BC=8C=E5=8E=BB?= =?UTF-8?q?=E9=99=A4=E7=94=B3=E8=AF=B7=E4=BA=BA=E8=B5=8B=E5=80=BC=E8=AF=AD?= =?UTF-8?q?=E5=8F=A5=EF=BC=9B=20=E4=BF=AE=E6=94=B9=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=A7=94=E5=A4=96=E8=AE=A1=E5=88=92service=E6=96=B9=E6=B3=95?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0=E7=94=B3=E8=AF=B7=E4=BA=BA=E8=B5=8B?= =?UTF-8?q?=E5=80=BC=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysMakeorderBomController.java | 8 +++ .../service/ISysMakeorderBomService.java | 2 + .../service/impl/SysMakeOrderServiceImpl.java | 1 + .../impl/SysMakeorderBomServiceImpl.java | 65 ++++++++++++++++++- .../system/makeorder/addOutsourcePlan.html | 1 - .../templates/system/makeorder/addpick.html | 2 +- 6 files changed, 75 insertions(+), 4 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeorderBomController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeorderBomController.java index d8522489..f8afd1dc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeorderBomController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeorderBomController.java @@ -218,5 +218,13 @@ public class SysMakeorderBomController extends BaseController return toAjax(sysMakeorderBomService.restoreSysMakeorderBomById(id)); } + @PostMapping("/getPickList") + @ResponseBody + public TableDataInfo getPickList(SysMakeorderBom sysMakeorderBom) + { + startPage(); + List list = sysMakeorderBomService.selectSysMakeorderBomPickList(sysMakeorderBom); + return getDataTable(list); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysMakeorderBomService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysMakeorderBomService.java index 11d49744..1c6d3af1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysMakeorderBomService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysMakeorderBomService.java @@ -27,6 +27,8 @@ public interface ISysMakeorderBomService */ public List selectSysMakeorderBomList(SysMakeorderBom sysMakeorderBom); + List selectSysMakeorderBomPickList(SysMakeorderBom sysMakeorderBom); + /** * 新增生产订单BOM信息 * 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 ff2f441c..ca01a34e 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 @@ -821,6 +821,7 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService outsourcePlan.setOutsourceProcessAmount(processAmount); outsourcePlan.setStatus("0"); outsourcePlan.setSource("1"); + outsourcePlan.setApplicant(ShiroUtils.getLoginName()); int insertResult = outsourcePlanMapper.insertOutsourcePlan(outsourcePlan); return insertResult; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderBomServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderBomServiceImpl.java index 2a0f486c..ab6fe8fd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderBomServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderBomServiceImpl.java @@ -1,6 +1,6 @@ package com.ruoyi.system.service.impl; -import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; import cn.hutool.core.collection.CollectionUtil; @@ -13,7 +13,6 @@ import com.ruoyi.system.mapper.OutsourceMaterialMapper; import com.ruoyi.system.mapper.SysMakeorderPickDetailMapper; import com.ruoyi.warehouse.domain.WarehouseInventoryInquiry; import com.ruoyi.warehouse.mapper.WarehouseInventoryInquiryMapper; -import org.apache.poi.util.StringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.system.mapper.SysMakeorderBomMapper; @@ -99,6 +98,68 @@ public class SysMakeorderBomServiceImpl implements ISysMakeorderBomService return makeorderBoms; } + @Override + public List selectSysMakeorderBomPickList(SysMakeorderBom sysMakeorderBom) + { + List makeorderBoms = sysMakeorderBomMapper.selectSysMakeorderBomList(sysMakeorderBom); + List filtBoms = new ArrayList<>(); + + long level = -1; + for (SysMakeorderBom makeBom: makeorderBoms) { + if(level>=0){//委外被记录 + if(makeBom.getLevel()>level){ + continue; + }else if(makeBom.getLevel()<=level){ + if(makeBom.getProcessMethod().equals("2")||makeBom.getProcessMethod().equals("4")){ + level = makeBom.getLevel(); + }else{ + level = -1; + } + filtBoms.add(makeBom); + } + }else{ + if(makeBom.getProcessMethod().equals("2")||makeBom.getProcessMethod().equals("4")){ + level = makeBom.getLevel(); + } + filtBoms.add(makeBom); + } + + } + for (SysMakeorderBom bom:filtBoms) { +// 获取已领料数 + SysMakeorderPickDetail tempDetail = new SysMakeorderPickDetail(); + tempDetail.setMakeNo(sysMakeorderBom.getMakeNo()); + tempDetail.setMakeorderBomId(bom.getId()); + List pickDetails = pickDetailMapper.selectSysMakeorderPickDetailList(tempDetail); + if(CollectionUtil.isEmpty(pickDetails)){ + bom.setHasPickNum(0); + }else{ + int pickNum = pickDetails.stream()//审核通过或待审核的合计 + .filter(item -> item.getAuditStatus()!=null && (item.getAuditStatus().equals("0")||item.getAuditStatus().equals("1"))) + .mapToInt(detail -> Math.toIntExact(detail.getPickNum() != null ? Math.toIntExact(detail.getPickNum()) : 0)) + .sum(); + bom.setHasPickNum(pickNum); + } +// 获取可用库存数 + WarehouseInventoryInquiry inquiry = inquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(bom.getMaterialNo()); + if(inquiry == null){ + bom.setStorageNum(0); + }else{ + bom.setStorageNum(inquiry.getAvailableStockNum()); + } +// 处理委外加工类型物料,获取委外工序数 + if(bom.getProcessMethod().equals("2")||bom.getProcessMethod().equals("4")){ + List materials = outsourceMaterialMapper.selectProcessNoByNo(bom.getMaterialNo()); + if(StringUtils.isEmpty(materials)){ + bom.setProcessNum(0); + }else { + bom.setProcessNum(materials.size()); + } + } + } + return filtBoms; + } + /** * 新增生产订单BOM信息 * 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 13e178e0..dc029285 100644 --- a/ruoyi-admin/src/main/resources/templates/system/makeorder/addOutsourcePlan.html +++ b/ruoyi-admin/src/main/resources/templates/system/makeorder/addOutsourcePlan.html @@ -426,7 +426,6 @@ var outsourcePlan = { associateOrderNo: makeNo, outsourcePlanDetailList: [], - applicant: sales, } var hasValue = false; var resultList = []; diff --git a/ruoyi-admin/src/main/resources/templates/system/makeorder/addpick.html b/ruoyi-admin/src/main/resources/templates/system/makeorder/addpick.html index d58c89f6..17603244 100644 --- a/ruoyi-admin/src/main/resources/templates/system/makeorder/addpick.html +++ b/ruoyi-admin/src/main/resources/templates/system/makeorder/addpick.html @@ -184,7 +184,7 @@ $detail.html('
'); // BOM展示 $('#'+childTableId).bootstrapTable({ - url: ctx + "system/makeorderbom/list", + url: ctx + "system/makeorderbom/getPickList", method: 'post', sidePagination: "server", contentType: "application/x-www-form-urlencoded",