From 2158d2c1a531ef712be2836902958c5e542e1f4b Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期一, 18 八月 2025 18:02:54 +0800
Subject: [PATCH] 规范mes包下接口的请求前缀

---
 src/main/java/org/jeecg/modules/pms/service/impl/PmsProcessBillMaterialsServiceImpl.java |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/src/main/java/org/jeecg/modules/pms/service/impl/PmsProcessBillMaterialsServiceImpl.java b/src/main/java/org/jeecg/modules/pms/service/impl/PmsProcessBillMaterialsServiceImpl.java
index ec90412..dc6a157 100644
--- a/src/main/java/org/jeecg/modules/pms/service/impl/PmsProcessBillMaterialsServiceImpl.java
+++ b/src/main/java/org/jeecg/modules/pms/service/impl/PmsProcessBillMaterialsServiceImpl.java
@@ -7,16 +7,21 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.StringUtils;
+import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.modules.mes.entity.MesProductionOrder;
 import org.jeecg.modules.pms.entity.PmsProcessBillMaterials;
+import org.jeecg.modules.pms.entity.PmsProcessBillMaterialsDetail;
 import org.jeecg.modules.pms.mapper.PmsProcessBillMaterialsMapper;
 import org.jeecg.modules.pms.service.IPmsProcessBillMaterialsDetailService;
 import org.jeecg.modules.pms.service.IPmsProcessBillMaterialsService;
+import org.jeecg.modules.pms.vo.ProcessBillMaterialsDetailVo;
 import org.jeecg.modules.sap.dto.OrderBomDTO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.RoundingMode;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -98,4 +103,29 @@
         }
         return this.getBaseMapper().queryPageList(page, queryWrapper);
     }
+
+    @Override
+    public List<ProcessBillMaterialsDetailVo> queryMaterialsDetailByOrderIdAndMaterialNumber(String orderId, String materialNumber) {
+        //鏍规嵁鐢熶骇璁㈠崟id鍜岀墿鏂欑紪鐮佹煡璇㈣鍗旴OM
+        PmsProcessBillMaterials processBillMaterials = list(new LambdaQueryWrapper<PmsProcessBillMaterials>()
+                        .eq(PmsProcessBillMaterials::getOrderId, orderId)
+                        .eq(PmsProcessBillMaterials::getMaterialNumber, materialNumber))
+                .stream().findFirst().orElse(null);
+        if (processBillMaterials == null) {
+            throw new JeecgBootException("鏈壘鍒颁笌璇ョ墿鏂欏叧鑱旂殑璁㈠崟BOM锛�");
+        }
+        //鏌ヨ璁㈠崟BOM鏄庣粏
+        List<PmsProcessBillMaterialsDetail> processBillMaterialsDetails = processBillMaterialsDetailService.queryByMaterialId(processBillMaterials.getId());
+        List<ProcessBillMaterialsDetailVo> billMaterialsDetailList = CollectionUtil.newArrayList();
+        for (PmsProcessBillMaterialsDetail processBillMaterialsDetail : processBillMaterialsDetails) {
+            ProcessBillMaterialsDetailVo processBillMaterialsDetailVo = new ProcessBillMaterialsDetailVo()
+                    .setMaterialNumber(processBillMaterialsDetail.getMaterialNumber())
+                    .setMaterialName(processBillMaterialsDetail.getMaterialName())
+                    .setProductionUnit(processBillMaterialsDetail.getProductionUnit())
+                    .setPerQuantity(processBillMaterialsDetail.getUsageQuantity()
+                            .divide(processBillMaterials.getProductionQuantity(), 2, RoundingMode.HALF_UP));
+            billMaterialsDetailList.add(processBillMaterialsDetailVo);
+        }
+        return billMaterialsDetailList;
+    }
 }

--
Gitblit v1.9.3