From e7b7ffed9be4ce118d52e20a6f26a4ac9718eaef Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期三, 05 三月 2025 16:46:17 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override

---
 north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java |   25 +++++++++++++++++--------
 1 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
index a6c0f97..d48b2b1 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -29,6 +29,7 @@
 import java.sql.Date;
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.IntStream;
 
 import static com.example.erp.service.sd.OrderService.getOrderProcessDetails;
 
@@ -895,11 +896,14 @@
         }
 
         String[] processCardList = processCard.split("/");
+        List<String> result = IntStream.range(0, processCardList[1].length())
+                .mapToObj(i -> String.valueOf(processCardList[1].charAt(i)))
+                .collect(Collectors.toList());
 
         List<FlowCard> flowCardList = flowCardMapper.selectList(
                 new QueryWrapper<FlowCard>()
                         .eq("process_id", processCardList[0])
-                        .eq("technology_number", processCardList[1])
+                        .in("technology_number", result)
         );
         for (FlowCard flowCard : flowCardList) {
             flowCard.setOrderGlassDetail(
@@ -1125,11 +1129,13 @@
                 }
                 if(flowCardWeight>0){
                     flowCardWeight = inWeight - flowCardWeight;
-                    shelfQuantity = (int) (flowCardWeight /
+                    //鎸夌収褰撳墠娴佺▼鍗″墿浣欓噸閲忥紝璁$畻褰撳墠娴佺▼鍗″墿浣欐暟閲�
+                    int remainingQuantity = (int) (flowCardWeight /
                             (orderDetail.getHeight()
                                     * orderDetail.getWidth()
                                     * glassThickness
                                     * 2.5 / 1000000));
+                    shelfQuantity =Math.min(Math.min(Math.min(shelfQuantityByWeight, Math.min(inMaxQuantity, shelfMaxQuantityByThickness)),shelfQuantity),remainingQuantity);
                     if (shelfQuantity == 0) {
                         shelfQuantity = Math.min(shelfQuantityByWeight, Math.min(inMaxQuantity, shelfMaxQuantityByThickness));
                         flowCardNo += 1;
@@ -1138,7 +1144,7 @@
 
             }
             //鍙栨渶灏忓��
-            Integer maxQuantity = 0;
+            //Integer maxQuantity = 0;
             while (orderDetail.getQuantity() > 0) {
                 OrderDetail newOrderDetail = new OrderDetail();
                 //褰撴寰幆涓紝褰撳墠鏋跺瓙鍓╀綑鏁伴噺涓�0鏃讹紝閲嶆柊璁$畻鏋跺瓙鍓╀綑鏁伴噺
@@ -1147,26 +1153,29 @@
                 }
                 String processId = productionId + String.format("%03d", flowCardNo);
                 //鍙栨渶灏忓��
-                maxQuantity = Math.min(shelfQuantity, Math.min(inMaxQuantity, shelfMaxQuantityByThickness));
+                //maxQuantity = Math.min(shelfQuantity, Math.min(inMaxQuantity, shelfMaxQuantityByThickness));
                 //maxQuantity = Math.min(shelfQuantity,  shelfMaxQuantityByThickness);
 
                 /*System.out.println("璁㈠崟搴忓彿锛�"+orderDetail.getOrderNumber());
                 System.out.println(shelfQuantity + ","  + "," + shelfMaxQuantityByThickness);
                 System.out.println(flowCardNo + "," + maxQuantity);
                 System.out.println("------");*/
+                if(shelfQuantity<=0){
+                    return false;
+                }
 
-                if (orderDetail.getQuantity() > maxQuantity) {
+                if (orderDetail.getQuantity() > shelfQuantity) {
                     newOrderDetail.setProcessId(processId);
-                    newOrderDetail.setQuantity(Long.valueOf(maxQuantity));
+                    newOrderDetail.setQuantity(Long.valueOf(shelfQuantity));
                     newOrderDetail.setHeight(orderDetail.getHeight());
                     newOrderDetail.setWidth(orderDetail.getWidth());
                     newOrderDetail.setOrderNumber(orderDetail.getOrderNumber());
                     newOrderDetail.setShape(orderDetail.getShape());
                     newOrderDetail.setLandingSequence(flowCardNo);
                     orderDetailList.add(newOrderDetail);
-                    orderDetail.setQuantity(orderDetail.getQuantity() - maxQuantity);
+                    orderDetail.setQuantity(orderDetail.getQuantity() - shelfQuantity);
                     flowCardNo += 1;
-                    shelfQuantity = shelfQuantity - maxQuantity;
+                    shelfQuantity = shelfQuantity - shelfQuantity;
                 } else {
                     newOrderDetail.setProcessId(processId);
                     newOrderDetail.setQuantity(orderDetail.getQuantity());

--
Gitblit v1.8.0