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",