From 47eff8c5c4b43dc65e4dabfe5128087f2e09b00c Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期一, 02 九月 2024 09:17:21 +0800
Subject: [PATCH] 报工数据存为1条,减少报工数据

---
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java |   47 +++++++++++++++++++++++++++++++++++------------
 north-glass-erp/pom.xml                                                            |    6 ++++++
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java   |    4 ++--
 3 files changed, 43 insertions(+), 14 deletions(-)

diff --git a/north-glass-erp/pom.xml b/north-glass-erp/pom.xml
index 3ed006f..36df194 100644
--- a/north-glass-erp/pom.xml
+++ b/north-glass-erp/pom.xml
@@ -73,6 +73,12 @@
         </dependency>
 
         <dependency>
+            <groupId>com.github.yulichang</groupId>
+            <artifactId>mybatis-plus-join</artifactId>
+            <version>1.2.2</version>
+        </dependency>
+
+        <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
             <version>3.5.1</version>
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java
index e01f029..c623215 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportingWorkMapper.java
@@ -1,7 +1,7 @@
 package com.example.erp.mapper.pp;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.example.erp.entity.pp.BasicDataProduce;
 import com.example.erp.entity.pp.ReportingWork;
+import com.github.yulichang.base.MPJBaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.sql.Date;
@@ -9,7 +9,7 @@
 import java.util.Map;
 
 @Mapper
-public interface ReportingWorkMapper extends BaseMapper<ReportingWork> {
+public interface ReportingWorkMapper extends MPJBaseMapper<ReportingWork> {
 
 
     ReportingWork AddSelectLastWorkMp(String processIdStr, String technologyStr, String previousProcess, String nextProcess, String process, String reportType);
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 a5cd867..7df794a 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
@@ -24,6 +24,7 @@
 import com.example.erp.service.sd.OrderProcessDetailService;
 import com.example.erp.service.userInfo.LogService;
 import com.example.erp.service.userInfo.SysErrorService;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -631,7 +632,7 @@
             JSONObject reportingWorkJson = new JSONObject(reportingWorkMap);
             ReportingWork reportingWork = JSONObject.parseObject(JSONObject.toJSONString(reportingWorkJson.get("title")), ReportingWork.class);
             ReportingWorkDetail reportingWorkDetail =JSON.parseObject(JSONObject.toJSONString(reportingWorkJson.get("detail")), ReportingWorkDetail.class);
-
+            //鑾峰彇鍙姤鏁伴噺
             int processNum = reportingWorkMapper.selectGlassProcessNum(
                     reportingWorkDetail.getOrderNumber(),
                     reportingWorkDetail.getTechnologyNumber(),
@@ -642,21 +643,43 @@
             if (processNum < (reportingWorkDetail.getBreakageQuantity() + reportingWorkDetail.getCompletedQuantity())) {
                 return false;
             }
+            //鏌ヨ鎶ュ伐鏁版嵁
+            List<ReportingWork> ReportingWorks = reportingWorkMapper.selectJoinList(ReportingWork.class,
+                    new MPJLambdaWrapper<ReportingWork>()
+                            .select(ReportingWork::getReportingWorkId)
+                            .leftJoin(ReportingWorkDetail.class, ReportingWorkDetail::getReportingWorkId, ReportingWork::getReportingWorkId)
+                            .eq(ReportingWork::getProcessId,reportingWork.getProcessId())
+                            .eq(ReportingWork::getThisProcess,reportingWork.getThisProcess())
+                            .eq(ReportingWork::getDeviceName,reportingWork.getDeviceName())
+                            .eq(ReportingWorkDetail::getOrderNumber,reportingWorkDetail.getOrderNumber())
+                            .eq(ReportingWorkDetail::getTechnologyNumber,reportingWorkDetail.getTechnologyNumber())
+                            .orderByDesc(ReportingWork::getId)
 
+            );
+            //鍒ゆ柇鎶ュ伐琛ㄦ槸鍚﹀瓨鍦紝涓嶅瓨鍦ㄥ垯鏂板鎶ュ伐涓诲壇琛ㄦ暟鎹紝瀛樺湪鍒欎慨鏀瑰壇琛ㄦ暟鎹�
+            if(ReportingWorks.isEmpty()){
+                //鑾峰彇褰撳墠鏈�澶ф姤宸ュ崟鍙风敓鎴愭姤宸ュ崟鍙�
+                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;
 
-            //鑾峰彇褰撳墠鏈�澶ф姤宸ュ崟鍙风敓鎴愭姤宸ュ崟鍙�
-            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);
+                reportingWorkDetail.setReportingWorkId(reportingWorkId);
 
-            reportingWork.setReportingWorkId(reportingWorkId);
-            reportingWorkDetail.setReportingWorkId(reportingWorkId);
+                reportingWorkMapper.insert(reportingWork);
+                reportingWorkDetailMapper.insert(reportingWorkDetail);
+            }else{
+                LambdaUpdateWrapper<ReportingWorkDetail> detailLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+                detailLambdaUpdateWrapper.eq(ReportingWorkDetail::getReportingWorkId, ReportingWorks.get(0).getReportingWorkId() )
+                        .eq(ReportingWorkDetail::getOrderNumber,reportingWorkDetail.getOrderNumber())
+                        .eq(ReportingWorkDetail::getTechnologyNumber,reportingWorkDetail.getTechnologyNumber())
+                        .setSql("completed_quantity = completed_quantity+" + reportingWorkDetail.getCompletedQuantity());
+                reportingWorkDetailMapper.update(null, detailLambdaUpdateWrapper);
 
-            reportingWorkMapper.insert(reportingWork);
-            reportingWorkDetailMapper.insert(reportingWorkDetail);
+            }
 
 
 

--
Gitblit v1.8.0