From 71a4444510d9067654705f0c5803d5f12a21a092 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期二, 11 十一月 2025 09:17:34 +0800
Subject: [PATCH] 添加流程卡进度接口信息
---
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java | 160 ++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 115 insertions(+), 45 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 93eae91..3252973 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
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.example.erp.common.AsyncQueryExecutor;
import com.example.erp.common.Constants;
import com.example.erp.dto.pp.OrderNumberTransferDTO;
import com.example.erp.entity.pp.*;
@@ -34,12 +35,16 @@
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.PreDestroy;
+import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
+import java.util.concurrent.CompletableFuture;
@Service
@DS("pp")
@@ -70,7 +75,8 @@
private final BasicDataMapper basicDataMapper;
private final FinishedGoodsInventoryService finishedGoodsInventoryService;
-
+ @Resource
+ private AsyncQueryExecutor asyncExecutor;
/*public ReportingWorkService(ReportingWorkMapper reportingWorkMapper, BasicDateProduceMapper basicDateProduceMapper, DamageDetailsMapper damageDetailsMapper, ReportingWorkDetailMapper reportingWorkDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, OrderProcessDetailService orderProcessDetailService, OrderMapper orderMapper, FlowCardMapper flowCardMapper, LogService logService, LogMapper logMapper, OrderGlassDetailMapper orderGlassDetailMapper, SysErrorService sysErrorService, OrderDetailMapper orderDetailMapper, FinishedOperateLogMapper finishedOperateLogMapper, ReportingWorkTransferMapper reportingWorkTransferMapper) {
this.reportingWorkMapper = reportingWorkMapper;
this.basicDateProduceMapper = basicDateProduceMapper;
@@ -264,19 +270,7 @@
List<ReportingWorkDetail> reportingWorkDetails = JSONArray.parseArray(
JSONObject.toJSONString(reportingWorkJson.get("detail")), ReportingWorkDetail.class);
- // 鎶ュ伐缂栧彿
- Integer maxId = reportingWorkMapper.selectMaxReportingWorkId();
- if (maxId == null) {
- maxId = 0;
- }
- String formattedNumber = String.format("%04d", maxId + 1);
- // 鏍煎紡鍖栧綋鍓嶆棩鏈�
- Date currentDate = new Date();
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");
- String formattedDate = dateFormat.format(currentDate);
- String reportingWorkId = "BG" + formattedDate + formattedNumber;
- reportingWork.setReportingWorkId(reportingWorkId);
// 澶勭悊宸ュ簭 ID
String[] processIdStr = reportingWork.getProcessId() != null
@@ -300,9 +294,23 @@
reportingWork.setReportingWorkTime(LocalDateTime.now());
}
- // 鏄惁绾胯ˉ 1鐜拌ˉ 0鏈幇琛�
+ // 鏄惁鐜拌ˉ 1鐜拌ˉ 0鏈幇琛�
int isPatch = reportingWorkJson.getInteger("isPatch") != null
? reportingWorkJson.getInteger("isPatch") : 0;
+
+ // 鎶ュ伐缂栧彿
+ Integer maxId = reportingWorkMapper.selectMaxReportingWorkId();
+ if (maxId == null) {
+ maxId = 0;
+ }
+ String formattedNumber = String.format("%04d", maxId + 1);
+
+ // 鏍煎紡鍖栧綋鍓嶆棩鏈�
+ Date currentDate = new Date();
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");
+ String formattedDate = dateFormat.format(currentDate);
+ String reportingWorkId = "BG" + formattedDate + formattedNumber;
+ reportingWork.setReportingWorkId(reportingWorkId);
// 涓昏〃鎻掑叆
reportingWorkMapper.insert(reportingWork);
@@ -427,7 +435,7 @@
reportingWorkDetailMapper.insert(reportingWorkDetail);
}
- // 鏇存柊娴佺▼鍗℃姤宸ユ暟閲�
+ // 鍒ゆ柇鏈�鍚庝竴閬撳伐搴忥紝鏇存柊娴佺▼鍗℃姤宸ユ暟閲�
if (reportingWork.getNextProcess() == null || reportingWork.getNextProcess().isEmpty()) {
LambdaUpdateWrapper<FlowCard> flowCardLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
flowCardLambdaUpdateWrapper
@@ -643,22 +651,22 @@
String nowDate = LocalDate.now().toString();
//鑾峰彇鎶ュ伐宸ュ簭鏄惁涓哄鍚堝伐绋�
String laminating = reportingWorkMapper.getProcessLaminating(thisProcess);
-//鍚堢墖宸ュ簭
-if (laminating.indexOf("step")!=-1){
- LambdaUpdateWrapper
- <ReportingWork> updateWrapper = new LambdaUpdateWrapper<>();
- updateWrapper
- .eq(ReportingWork::getProcessId, processIdStr[0])
- .eq(ReportingWork::getThisProcess, reportingWork.get("process"))
- .eq(ReportingWork::getReviewedState, 0)
- .setSql("reviewed_state =1")
- .set(ReportingWork::getReviewed, userName)
- .set(ReportingWork::getExamineTime, nowDate);
- reportingWorkMapper.update(null, updateWrapper);
-}else {
- reportingWorkMapper.ReviewReportingWorkMp(processIdStr[0],reportingWork.get("process"),technologyStr,userName);
+ //鍚堢墖宸ュ簭
+ if (laminating.indexOf("step")!=-1){
+ LambdaUpdateWrapper
+ <ReportingWork> updateWrapper = new LambdaUpdateWrapper<>();
+ updateWrapper
+ .eq(ReportingWork::getProcessId, processIdStr[0])
+ .eq(ReportingWork::getThisProcess, reportingWork.get("process"))
+ .eq(ReportingWork::getReviewedState, 0)
+ .setSql("reviewed_state =1")
+ .set(ReportingWork::getReviewed, userName)
+ .set(ReportingWork::getExamineTime, nowDate);
+ reportingWorkMapper.update(null, updateWrapper);
+ }else {
+ reportingWorkMapper.ReviewReportingWorkMp(processIdStr[0],reportingWork.get("process"),technologyStr,userName);
-}
+ }
return true;
}
@@ -811,30 +819,92 @@
}
//鎶ュ伐绠$悊鏌ヨ
- public Map<String, Object> selectReportingWorkSv(Integer pageNum, Integer pageSize, List<String> selectDate, String orderId, ReportingWork reportingWork) {
+// public Map<String, Object> selectReportingWorkSv(Integer pageNum, Integer pageSize, List<String> selectDate, String orderId, ReportingWork reportingWork) {
+// Integer offset = (pageNum - 1) * pageSize;
+// if ("null".equals(orderId)) {
+// orderId = "";
+// }
+// String endDate = LocalDate.now().toString();
+// String startDate = LocalDate.now().minusDays(3).toString();
+// if(selectDate !=null && selectDate.size()==2){
+// if(!selectDate.get(0).isEmpty()){
+// startDate = selectDate.get(0);
+// }
+// if(!selectDate.get(1).isEmpty()){
+// endDate = selectDate.get(1);
+// }
+// }
+// Map<String, Object> map = new HashMap<>();
+// map.put("data", reportingWorkMapper.selectReportingWorkMp(offset, pageSize, startDate, endDate, orderId, reportingWork));
+// map.put("total" ,reportingWorkMapper.getFootSum(offset, pageSize, startDate, endDate, orderId, reportingWork));
+// List<String> list = new ArrayList<>();
+// list.add(startDate);
+// list.add(endDate);
+// map.put("selectDate",list);
+// return map;
+// }
+
+
+ public Map<String, Object> selectReportingWorkSv(
+ Integer pageNum, Integer pageSize,
+ List<String> selectDate, String orderId,
+ ReportingWork reportingWork) {
+
Integer offset = (pageNum - 1) * pageSize;
+
if ("null".equals(orderId)) {
orderId = "";
}
+
+ // 榛樿鏃堕棿锛氭渶杩� 3 澶�
String endDate = LocalDate.now().toString();
String startDate = LocalDate.now().minusDays(3).toString();
- if(selectDate !=null && selectDate.size()==2){
- if(!selectDate.get(0).isEmpty()){
+
+ // 濡傛灉浼犲叆鑷畾涔夋棩鏈�
+ if (selectDate != null && selectDate.size() == 2) {
+ if (!selectDate.get(0).isEmpty()) {
startDate = selectDate.get(0);
}
- if(!selectDate.get(1).isEmpty()){
+ if (!selectDate.get(1).isEmpty()) {
endDate = selectDate.get(1);
}
}
- Map<String, Object> map = new HashMap<>();
- map.put("data", reportingWorkMapper.selectReportingWorkMp(offset, pageSize, startDate, endDate, orderId, reportingWork));
- // map.put("total", reportingWorkMapper.getPageTotal(offset, pageSize, selectTime1, selectTime2, orderId, reportingWork));
- map.put("total" ,reportingWorkMapper.getFootSum(offset, pageSize, startDate, endDate, orderId, reportingWork));
- List<String> list = new ArrayList<>();
- list.add(startDate);
- list.add(endDate);
- map.put("selectDate",list);
- return map;
+
+ Map<String, Object> result = new HashMap<>();
+
+ try {
+ // 骞惰鎵ц涓ゆ潯 SQL 鏌ヨ
+ String finalStartDate = startDate;
+ String finalEndDate = endDate;
+ String finalOrderId = orderId;
+ CompletableFuture<List<ReportingWork>> dataFuture =
+ asyncExecutor.runAsync(() ->
+ reportingWorkMapper.selectReportingWorkMp(
+ offset, pageSize, finalStartDate, finalEndDate, finalOrderId, reportingWork));
+
+ CompletableFuture<Map<String, Float>> totalFuture =
+ asyncExecutor.runAsync(() ->
+ reportingWorkMapper.getFootSum(
+ offset, pageSize, finalStartDate, finalEndDate, finalOrderId, reportingWork));
+
+ // 绛夊緟鍏ㄩ儴瀹屾垚
+ CompletableFuture.allOf(dataFuture, totalFuture).join();
+
+ result.put("data", dataFuture.get());
+ result.put("total", totalFuture.get());
+
+ // 鏃ユ湡鑼冨洿
+ List<String> list = new ArrayList<>();
+ list.add(startDate);
+ list.add(endDate);
+ result.put("selectDate", list);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("骞惰鏌ヨ鎶ュ伐璁板綍寮傚父锛�" + e.getMessage(), e);
+ }
+
+ return result;
}
//鍒犻櫎鎶ュ伐
@@ -1492,13 +1562,13 @@
public List<BasicDataProduce> selectEquipmentByProcessSv(String process) {
return reportingWorkMapper.SelectWorkBasicDeviceMp(process);
- }
+ }
public String saveWorkStorage(Map<String, Object> object) {
//List<Map<String, Object>> flowCard = reportingWorkMapper.getStorageData();
//finishedGoodsInventoryService.addSelectWarehousing(object);
return null;
- }
+ }
public Map<String, Object> mesBasicDataSv() {
Map<String, Object> map = new HashMap<>();
--
Gitblit v1.8.0