From 7104751e2f26872d4891d01d42ee88cf19715d01 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期二, 08 七月 2025 17:46:01 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override

---
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java |  112 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 97 insertions(+), 15 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 acb75f4..55e4d39 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
@@ -6,14 +6,22 @@
 import com.example.erp.dto.pp.*;
 import com.example.erp.entity.pp.DamageDetails;
 import com.example.erp.entity.pp.Report;
+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.sd.OrderProcessDetailMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
 import java.sql.Date;
 import java.time.LocalDate;
 import java.util.*;
+import java.util.concurrent.Executor;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 @Service
 @DS("pp")
@@ -23,11 +31,42 @@
     private final OrderProcessDetailMapper orderProcessDetailMapper;
     private final ProductionSchedulingMapper productionSchedulingMapper;
 
+    FlowCardMapper flowCardMapper;
 
-    public ReportService(ReportMapper reportMapper, OrderProcessDetailMapper orderProcessDetailMapper, ProductionSchedulingMapper productionSchedulingMapper) {
+
+    private void mergeTeamsGroupsName(
+            List<WorkInProgressDTO> dataList1,
+            List<WorkInProgressDTO> dataList2
+    ) {
+        Function<WorkInProgressDTO, String> keyFn = dto ->
+                dto.getProcessId() + "|" +
+                        dto.getOrderNumber() + "|" +
+                        dto.getTechnologyNumber();
+
+        Map<String, WorkInProgressDTO> map2 = dataList2.stream()
+                .collect(Collectors.toMap(
+                        keyFn,
+                        Function.identity(),
+                        (existing, replacement) -> existing
+                ));
+
+        for (WorkInProgressDTO dto1 : dataList1) {
+            WorkInProgressDTO dto2 = map2.get(keyFn.apply(dto1));
+            if (dto2 != null) {
+                String tgn = dto2.getTeamsGroupsName();
+                if (StringUtils.hasText(tgn)) {
+                    dto1.setTeamsGroupsName(tgn);
+                }
+            }
+        }
+    }
+
+
+    public ReportService(ReportMapper reportMapper, OrderProcessDetailMapper orderProcessDetailMapper, ProductionSchedulingMapper productionSchedulingMapper,FlowCardMapper flowCardMapper) {
         this.reportMapper = reportMapper;
         this.orderProcessDetailMapper = orderProcessDetailMapper;
         this.productionSchedulingMapper = productionSchedulingMapper;
+        this.flowCardMapper = flowCardMapper;
     }
 
     //娴佺▼鍗¤繘搴︽柟娉�
@@ -86,7 +125,12 @@
             getRowCount.forEach(row -> {
                 Map<String, Integer> getRow = new HashMap<>();
                 // { row: 0, col: 1, rowspan: 3, colspan: 0},
-                getRow.put("row", row.get("RowNum"));
+                Object rowNumObj = row.get("RowNum");
+                if (rowNumObj instanceof Double) {
+                    getRow.put("row", ((Double) rowNumObj).intValue());
+                } else if (rowNumObj instanceof Integer) {
+                    getRow.put("row", (Integer) rowNumObj);
+                }
                 getRow.put("col", col);
                 getRow.put("rowspan", row.get("rowCount"));
                 getRow.put("colspan", 0);
@@ -133,23 +177,38 @@
         if ("null".equals(optionVal)) {
             optionVal = ("");
         }
-
+        if (selectProcesses.equals("鍏ㄩ儴")){
+            selectProcesses="";
+        }
         Map<String, Object> map = new HashMap<>();
+        List<WorkInProgressDTO> dataList2  =reportMapper.workInProgressMpdataList2(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO);
         if (optionVal.equals("1")){
             /* 鏍规嵁閿�鍞崟鍙锋眹鎬�*/
-            map.put("data", reportMapper.workInProgressOrderMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
-            map.put("total", reportMapper.workInProgressOrderTotal(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
-
+            //map.put("data", reportMapper.workInProgressOrderMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
+            List<WorkInProgressDTO> dataList1  =reportMapper.workInProgressOrderMpList1(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO);
+            mergeTeamsGroupsName(dataList1, dataList2);
+            map.put("data",dataList1);
+            // map.put("total", reportMapper.workInProgressOrderTotal(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
+            map.put("total" ,reportMapper.workInProgressOrderFootSum(offset, pageSize,orderId, inputProject, selectProcesses, workInProgressDTO));
         }else if(optionVal.equals("2")){
-            /* 鏍规祦绋嬪崱鍙锋眹鎬�*/
-            map.put("data", reportMapper.workInProgressProcessMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
-            map.put("total", reportMapper.workInProgressProcessTotal(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
+            /* 鏍规嵁娴佺▼鍗″彿姹囨��*/
+            //map.put("data", reportMapper.workInProgressProcessMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
+            List<WorkInProgressDTO> dataList1  =reportMapper.workInProgressProcessMpList1(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO);
+            mergeTeamsGroupsName(dataList1, dataList2);
+            map.put("data",dataList1);
+            // map.put("total", reportMapper.workInProgressProcessTotal(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
+            map.put("total" ,reportMapper.workInProgressOrderFootSum(offset, pageSize,orderId, inputProject, selectProcesses, workInProgressDTO));
+
         } else if (optionVal.equals("3")) {
 
         } else {
             //娌℃湁閫夋嫨鍒嗙粍
-            map.put("data", reportMapper.workInProgressMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
-            map.put("total", reportMapper.workInProgressTotal(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
+            //map.put("data", reportMapper.workInProgressMp(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
+            List<WorkInProgressDTO> dataList1  =reportMapper.workInProgressMpdataList1(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO);
+            mergeTeamsGroupsName(dataList1, dataList2);
+            map.put("data",dataList1);
+            //map.put("total", reportMapper.workInProgressTotal(offset, pageSize, orderId, inputProject, selectProcesses, workInProgressDTO));
+            map.put("total" ,reportMapper.workInProgressOrderFootSum(offset, pageSize,orderId, inputProject, selectProcesses, workInProgressDTO));
 
         }
         map.put("process", productionSchedulingMapper.selectProcess());
@@ -166,6 +225,8 @@
         Map<String, Object> map = new HashMap<>();
         map.put("data", reportMapper.processToBeCompletedMp(selectTime1, selectTime2, orderId, inputProject, selectProcesses, report));
         map.put("process", productionSchedulingMapper.selectProcess());
+        map.put("footSum" ,reportMapper.processToBeCompletedFootSum(selectTime1, selectTime2, orderId, inputProject, selectProcesses, report));
+
         return map;
     }
 
@@ -174,12 +235,14 @@
         Map<String, Object> map = new HashMap<>();
         map.put("data", reportMapper.selectDamageReportMp(offset, pageSize, selectTime1, selectTime2, damageReportDTO));
         map.put("total", reportMapper.getDamageReportPageTotal(offset, pageSize, selectTime1, selectTime2, damageReportDTO));
+        map.put("footSum" ,reportMapper.damageReportFootSum(selectTime1, selectTime2, damageReportDTO));
         return map;
     }
 
     public Map<String, Object> splittingDetailsOutsideSv(String orderId, Report report) {
         Map<String, Object> map = new HashMap<>();
         map.put("data", reportMapper.splittingDetailsOutsideMp(orderId, report));
+        map.put("orderOtherMoney", flowCardMapper.selectorderOtherMoney());
         return map;
     }
 
@@ -340,6 +403,12 @@
         return map;
     }
 
+    public Map<String, Object> orderReportingWorks(Date selectTime1, Date selectTime2, Report report) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("data", reportMapper.orderReportingWorks(selectTime1, selectTime2, report));
+        return map;
+    }
+
     public Map<String, Object> rawMaterialRequisitionSv(Date selectTime1, Date selectTime2, Report report) {
         Map<String, Object> map = new HashMap<>();
         map.put("data", reportMapper.rawMaterialRequisitionMp(selectTime1, selectTime2, report));
@@ -351,6 +420,9 @@
     }
 
     public List exportDamageReportSv(List<LocalDate> dates) {
+        if (dates != null && dates.size() > 1) {
+            dates.set(1, dates.get(1).plusDays(1)); // 灏嗙浜屼釜鏃ユ湡鍔犱竴澶�
+        }
         return reportMapper.exportDamageReportMp(dates);
     }
 
@@ -374,6 +446,9 @@
 
     public List exportWorkInProgressSv(Map<String, Object> dates) {
         String process= (String) dates.get("processes");
+        if (process.equals("鍏ㄩ儴")){
+            process="";
+        }
         String inputVal= (String) dates.get("inputVal");
         String project= (String) dates.get("project");
         if ("null".equals(inputVal)) {
@@ -382,7 +457,11 @@
         if ("null".equals(project)) {
             project = "";
         }
-        return reportMapper.exportWorkInProgressMp(process,inputVal,project);
+        List<WorkInProgressDTO> dataList1  =reportMapper.exportWorkInProgressMp(process,inputVal,project);
+        List<WorkInProgressDTO> dataList2  =reportMapper.exportWorkInProgressMpdataList2(process);
+
+        mergeTeamsGroupsName(dataList1, dataList2);
+        return dataList1;
     }
 
     public List exportTaskCompletionStatusSv(Map<String, Object> dates) {
@@ -409,9 +488,11 @@
         }
         Integer offset = (pageNum - 1) * pageSize;
         Map<String, Object> map = new HashMap<>();
-        map.put("data", reportMapper.teamOutputMp(offset, pageSize, selectTime1, selectTime2,selectProcesses, teamOutputDTO));
+        String laminating = reportMapper.getLaminating(selectProcesses);
+        map.put("data", reportMapper.teamOutputMp(offset, pageSize, selectTime1, selectTime2,selectProcesses,laminating, teamOutputDTO));
         map.put("process", productionSchedulingMapper.selectProcess());
-        map.put("total", reportMapper.teamOutputPageTotal(offset, pageSize, selectTime1, selectTime2,selectProcesses, teamOutputDTO));
+        map.put("total", reportMapper.teamOutputPageTotal(offset, pageSize, selectTime1, selectTime2,selectProcesses,laminating, teamOutputDTO));
+        map.put("footSum" ,reportMapper.teamOutputFootSum(selectTime1, selectTime2,selectProcesses,laminating, teamOutputDTO));
         return map;
     }
 
@@ -436,6 +517,7 @@
         if (process.equals("鍏ㄩ儴")){
             process="";
         }
-        return reportMapper.exportTeamOutputMp(date,process);
+        String laminating = reportMapper.getLaminating(process);
+        return reportMapper.exportTeamOutputMp(date,process,laminating);
     }
 }

--
Gitblit v1.8.0