From de18cca83738bdf6b279046e34b910ccd5b73a84 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期四, 07 三月 2024 08:17:50 +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/ReportingWorkService.java |  103 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 98 insertions(+), 5 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
index ce97908..65d8dc1 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -1,23 +1,60 @@
 package com.example.erp.service.pp;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
+import com.example.erp.entity.pp.DamageDetails;
 import com.example.erp.entity.pp.ReportingWork;
+import com.example.erp.entity.pp.ReportingWorkDetail;
+import com.example.erp.entity.sd.Order;
+import com.example.erp.entity.sd.OrderDetail;
 import com.example.erp.entity.sd.OrderProcessDetail;
 import com.example.erp.mapper.pp.BasicDateProduceMapper;
+import com.example.erp.mapper.pp.DamageDetailsMapper;
+import com.example.erp.mapper.pp.ReportingWorkDetailMapper;
 import com.example.erp.mapper.pp.ReportingWorkMapper;
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.example.erp.mapper.sd.OrderProcessDetailMapper;
+import com.example.erp.service.sd.OrderProcessDetailService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 @Service
 @DS("pp")
 public class ReportingWorkService {
-    @Autowired
+    final
     ReportingWorkMapper reportingWorkMapper;
-
+    final
     BasicDateProduceMapper basicDateProduceMapper;
+    final
+    DamageDetailsMapper damageDetailsMapper;
+    final
+    OrderProcessDetailMapper orderProcessDetailMapper;
+    final
+    ReportingWorkDetailMapper
+    reportingWorkDetailMapper;
+
+    final
+    OrderProcessDetailService orderProcessDetailService;
+
+
+
+    public ReportingWorkService(ReportingWorkMapper reportingWorkMapper, BasicDateProduceMapper basicDateProduceMapper, DamageDetailsMapper damageDetailsMapper, ReportingWorkDetailMapper reportingWorkDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, OrderProcessDetailService orderProcessDetailService) {
+        this.reportingWorkMapper = reportingWorkMapper;
+        this.basicDateProduceMapper = basicDateProduceMapper;
+        this.damageDetailsMapper = damageDetailsMapper;
+        this.reportingWorkDetailMapper = reportingWorkDetailMapper;
+        this.orderProcessDetailMapper = orderProcessDetailMapper;
+        this.orderProcessDetailService = orderProcessDetailService;
+    }
 
     public Map<String, Object> AddSelectLastWorkSv(String processIdStr, String technologyStr, String process) {
         Map<String, Object> map = new HashMap<>();
@@ -52,6 +89,7 @@
                 }
                 //System.out.println("褰撳墠宸ュ簭锛�" + process + " 涓婁竴閬撳伐搴忥細" + previousProcess + " 涓嬩竴閬撳伐搴忥細" + nextProcess);
                 //鏌ヨ褰撳墠宸ュ簭鐨勮〃澶存暟鎹�
+               // System.out.println(reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr,previousProcess,nextProcess,process));
                 map.put("data", reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr,previousProcess,nextProcess,process));
                 map.put("thisProcess", processList);
                 break;
@@ -63,6 +101,8 @@
         //鐝粍涓嬫媺妗�
         map.put("teams", reportingWorkMapper.SelectWorkBasicTeamsMp(process));
 
+        map.put("breakageType",reportingWorkMapper.selectBasicNameByType("breakagetype"));
+        map.put("breakageReason",reportingWorkMapper.selectBasicNameByType("breakagereason"));
 
         //鏌ヨ鏈伐搴忔姤宸ラ渶瑕佸摢鍑犲眰锛屼笂宸ュ簭鏄粈涔�
         String  obtainTechnology = reportingWorkMapper.SelectWorkTechnologyMp(processIdStr);
@@ -70,7 +110,7 @@
         //鍒ゆ柇鏈伐搴忔槸涓嶆槸绗竴閬撳伐搴�
         if (interceptProcess.equals(process)) {
             //鏄涓�閬撳伐搴忥紝鏌ヨ娴佺▼鍗℃暟鎹�
-            map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr,technologyStr));
+            map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr,technologyStr,process));
         }
         else {
             //涓嶆槸绗竴閬撳伐搴忥紝鏌ヨ鎶ュ伐鏁版嵁
@@ -83,11 +123,10 @@
 
         //鑾峰彇璇ユ祦绋嬪崱鍙峰巻鍙叉姤宸ュ伐搴�
         String historyProcess =reportingWorkMapper.historyProcessMp(processIdStr);
-
         //鍘嗗彶鎶ュ伐宸ュ簭璁惧
         map.put("historyDevice",reportingWorkMapper.historyDeviceMp(historyProcess,process));
         //鍘嗗彶鎶ュ伐宸ュ簭鐝粍
-        map.put("historyTeams",reportingWorkMapper.historyTeamsMp(historyProcess,process));
+        map.put("historyTeams",reportingWorkMapper.historyTeamsMp(processIdStr,process));
         //鍘嗗彶宸ュ簭
         map.put("historyProcess",reportingWorkMapper.SelectHistoryProcessMp(historyProcess,process));
 
@@ -101,4 +140,58 @@
         map.put("process", reportingWorkMapper.SelectProcessMp());
         return map;
     }
+
+    //鎶ュ伐鏂板
+    @Transactional
+    public boolean SaveReportingWorkSv(Map<String, Object> reportingWorkMap) {
+        //鎺ユ敹瑙f瀽涓婚檮琛ㄤ俊鎭�
+        JSONObject reportingWorkJson = new JSONObject(reportingWorkMap);
+        ReportingWork reportingWork = JSONObject.parseObject(JSONObject.toJSONString(reportingWorkJson.get("title")), ReportingWork.class);
+        List<ReportingWorkDetail> reportingWorkDetails = JSONArray.parseArray(JSONObject.toJSONString(reportingWorkJson.get("detail")), ReportingWorkDetail.class);
+        //鑾峰彇褰撳墠鏈�澶ф姤宸ュ崟鍙风敓鎴愭姤宸ュ崟鍙�
+        String formattedNumber = String.format("%04d", reportingWorkMapper.selectMaxReportingWorkId()+1);
+        //鏍煎紡鍖栧綋鍓嶆棩鏈�
+        Date currentDate = new Date();
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");
+        String formattedDate = dateFormat.format(currentDate);
+        String reportingWorkId =  "BG"+formattedDate+formattedNumber;
+        reportingWork.setReportingWorkId(reportingWorkId);
+        reportingWork.setProcessId(reportingWork.getProcessId().substring(0,13));
+        //涓昏〃鎻掑叆
+        reportingWorkMapper.insert(reportingWork);
+
+        //鍓〃寰幆鎻掑叆锛屽苟涓旀彃鍏ユ鐮翠俊鎭〃銆傚啀鏍规嵁娆$牬淇℃伅淇敼璁㈠崟鐜荤拑娴佺▼琛ㄧ殑瀹屽伐鏁伴噺涓庡埡鐮存暟閲�
+        reportingWorkDetails.forEach(reportingWorkDetail -> {
+            reportingWorkDetail.setReportingWorkId(reportingWorkId);
+            List<DamageDetails> damageDetails = reportingWorkDetail.getDamageDetails();
+            if(damageDetails!=null && !damageDetails.isEmpty()){
+                damageDetails.forEach(damageDetail ->{
+                    damageDetail.setReportingWorkId(reportingWorkId);
+                    damageDetail.setOrderNumber(reportingWorkDetail.getOrderNumber());
+                    damageDetail.setProcessId(reportingWork.getProcessId());
+                    damageDetail.setTechnologyNumber(reportingWorkDetail.getTechnologyNumber());
+                    damageDetailsMapper.insert(damageDetail);
+                });
+            }
+            //System.out.println(reportingWorkDetail);
+            OrderProcessDetail orderProcessDetail = new OrderProcessDetail();
+            orderProcessDetail.setBrokenNum(reportingWorkDetail.getBreakageQuantity());
+            orderProcessDetail.setReportingWorkNum(reportingWorkDetail.getCompletedQuantity());
+            orderProcessDetail.setReportingWorkNumCount(reportingWorkDetail.getCompletedQuantity());
+
+            //鏍规嵁璁㈠崟id锛岃鍗曞簭鍙凤紝浠ュ強灏忕墖搴忓彿 鏇存柊灏忕墖娴佺▼鐨勫畬宸ユ暟閲忎互鍙婂埡鐮存暟閲�
+            LambdaUpdateWrapper<OrderProcessDetail> updateWrapper = new LambdaUpdateWrapper<>();
+            updateWrapper.eq(OrderProcessDetail::getOrderNumber, reportingWorkDetail.getOrderNumber())
+                    .eq(OrderProcessDetail::getOrderId, reportingWork.getOrderId())
+                    .eq(OrderProcessDetail::getProcess, reportingWork.getThisProcess())
+                    .eq(OrderProcessDetail::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber())
+                    .setSql("reporting_work_num_count =reporting_work_num_count +"+orderProcessDetail.getReportingWorkNumCount())
+                    .setSql("reporting_work_num =reporting_work_num +"+orderProcessDetail.getReportingWorkNum())
+                    .setSql("broken_num =broken_num +"+orderProcessDetail.getBrokenNum());
+
+            orderProcessDetailMapper.update(null,updateWrapper);
+            reportingWorkDetailMapper.insert(reportingWorkDetail);
+        });
+        return  false;
+    }
 }

--
Gitblit v1.8.0