From 5a0b47f515ceef0ce135dd91eb7d8ba49754a570 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期二, 12 八月 2025 16:52:14 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 51 insertions(+), 6 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
index f7c785f..6f4d60f 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
@@ -5,18 +5,18 @@
 import com.alibaba.fastjson.TypeReference;
 import com.baomidou.dynamic.datasource.annotation.DS;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.example.erp.dto.pp.*;
+import com.example.erp.entity.pp.DamageDetails;
 import com.example.erp.entity.pp.Report;
 import com.example.erp.entity.sd.BasicData;
 import com.example.erp.entity.sd.OrderDetail;
 import com.example.erp.entity.sd.OrderGlassDetail;
 import com.example.erp.entity.sd.ProductDetail;
-import com.example.erp.mapper.pp.FlowCardMapper;
-import com.example.erp.mapper.pp.ProductionSchedulingMapper;
-import com.example.erp.mapper.pp.ReportMapper;
-import com.example.erp.mapper.pp.ReportingWorkMapper;
+import com.example.erp.mapper.pp.*;
 import com.example.erp.mapper.sd.*;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
@@ -42,6 +42,7 @@
     private final BasicDataMapper basicDataMapper;
     private final ProductDetailMapper productDetailMapper;
     private final OrderDetailMapper orderDetailMapper;
+    private final DamageDetailsMapper damageDetailsMapper;
 
     FlowCardMapper flowCardMapper;
     private ReportingWorkMapper reportingWorkMapper;
@@ -122,7 +123,7 @@
                          ProductionSchedulingMapper productionSchedulingMapper, FlowCardMapper flowCardMapper,
                          OrderGlassDetailMapper orderGlassDetailMapper, BasicDataMapper basicDataMapper,
                          ProductDetailMapper productDetailMapper, OrderDetailMapper orderDetailMapper,
-                         ReportingWorkMapper reportingWorkMapper) {
+                         ReportingWorkMapper reportingWorkMapper, DamageDetailsMapper damageDetailsMapper) {
         this.reportMapper = reportMapper;
         this.orderProcessDetailMapper = orderProcessDetailMapper;
         this.productionSchedulingMapper = productionSchedulingMapper;
@@ -132,6 +133,7 @@
         this.productDetailMapper = productDetailMapper;
         this.orderDetailMapper = orderDetailMapper;
         this.reportingWorkMapper = reportingWorkMapper;
+        this.damageDetailsMapper = damageDetailsMapper;
     }
 
     //娴佺▼鍗¤繘搴︽柟娉�
@@ -157,7 +159,7 @@
             //鍒ゆ柇纾ㄨ竟鍜岀(杈瑰悗宸ュ簭
             //Objects.equals(basicData.getNickname(), "stepA") || Objects.equals(basicData.getNickname(), "stepC")
             if(Objects.equals(basicData.getNickname(), "stepA") || Objects.equals(basicData.getNickname(), "stepC")){
-                clos.put(uniqueList.get(i).get("process"), 15+i);
+                clos.put(uniqueList.get(i).get("process"), 16+i);
             }
             //鍒ゆ柇涓┖鍜屼腑绌哄悗宸ュ簭
             //Objects.equals(basicData.getNickname(), "stepB") || Objects.equals(basicData.getNickname(), "stepD")
@@ -186,6 +188,48 @@
                 Map<String, String> data = JSON.parseObject(dataList.get(i).get("reportWorkQuantity"),
                         new TypeReference<Map<String, String>>() {
                         });
+                Map<String, String> dataShow = JSON.parseObject(dataList.get(i).get("reportWorkQuantityShow"),
+                        new TypeReference<Map<String, String>>() {
+                        });
+               //鍒ゆ柇鍚庡伐搴忔娴佺▼鍗″彿鏄惁鏈夋鐮�
+                List<DamageDetails> hasBreak = damageDetailsMapper
+                        .selectList(new LambdaQueryWrapper<DamageDetails>()
+                                .eq(DamageDetails::getProcessId, dataList.get(i).get("processId"))
+                                .eq(DamageDetails::getOrderNumber, dataList.get(i).get("order_number"))
+                                .eq(DamageDetails::getTechnologyNumber, dataList.get(i).get("technology_number"))
+                                .eq(DamageDetails::getPatchStatus, 0)
+                                .gt(DamageDetails::getBreakageQuantity,0)
+
+                        );
+                if(!hasBreak.isEmpty()){
+                    int finalI = i;
+                    data.forEach((thisProcess, index)->{
+                        String behindProcess = orderProcessDetailMapper.getBehindProcess(
+                                dataList.get(finalI).get("processId"),
+                                String.valueOf(dataList.get(finalI).get("order_number")),
+                                String.valueOf(dataList.get(finalI).get("technology_number")),
+                                thisProcess,
+                                orderId
+                        );
+                        if(behindProcess!=null &&!behindProcess.isEmpty()){
+                            Integer behindDamageSum = damageDetailsMapper.getBehindDamageSum(
+                                    dataList.get(finalI).get("processId"),
+                                    String.valueOf(dataList.get(finalI).get("order_number")),
+                                    String.valueOf(dataList.get(finalI).get("technology_number")),
+                                    behindProcess
+                            );
+                            if(behindDamageSum>0){
+                                data.put(thisProcess, String.valueOf(Integer.parseInt(data.get(thisProcess) )- behindDamageSum));
+                                dataShow.put(thisProcess, String.valueOf(Integer.parseInt(dataShow.get(thisProcess) )- behindDamageSum));
+                            }
+
+                        }
+                    });
+
+                }
+
+
+
                 Integer max = orderGlassDetailMapper
                         .getMaxTechnologyNumberByGroup(dataList.get(i).get("order_id"),
                                 String.valueOf(dataList.get(i).get("order_number")),
@@ -214,6 +258,7 @@
                     }
                 }
                 dataList.get(i).put("reportWorkQuantity",JSON.toJSONString(data));
+                dataList.get(i).put("reportWorkQuantityShow",JSON.toJSONString(dataShow));
 
             }
         }

--
Gitblit v1.8.0