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