From a712eefc16c86b4e39d484467b658b6d107d0468 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期三, 29 十月 2025 12:21:34 +0800
Subject: [PATCH] 修改金额改成订单金额
---
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java | 477 +++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 382 insertions(+), 95 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 ff18b7d..c5241eb 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;
@@ -254,90 +260,127 @@
return map;
}
- //鎶ュ伐鏂板
+
@Transactional(rollbackFor = Exception.class)
public boolean SaveReportingWorkSv(Map<String, Object> reportingWorkMap) {
- //鎺ユ敹瑙f瀽涓婚檮琛ㄤ俊鎭�
+ // 鎺ユ敹瑙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);
- //鏍煎紡鍖栧綋鍓嶆棩鏈�
+ ReportingWork reportingWork = JSONObject.parseObject(
+ JSONObject.toJSONString(reportingWorkJson.get("title")), ReportingWork.class);
+ 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);
- String[] processIdStr = reportingWork.getProcessId().split("/");
- reportingWork.setProcessId(processIdStr[0]);
+
+ // 澶勭悊宸ュ簭 ID
+ String[] processIdStr = reportingWork.getProcessId() != null
+ ? reportingWork.getProcessId().split("/")
+ : new String[]{""};
+ reportingWork.setProcessId(processIdStr[0]); // 淇濆簳鍙彇绗竴涓�
reportingWork.setThisWornQuantity(0);
reportingWork.setThisCompletedQuantity(0);
- int reviewState = (int) reportingWorkJson.get("type");
- if (reviewState == 1) {//瀹℃牳閫氳繃
+ // 瀹℃牳鐘舵��
+ Integer reviewState = reportingWorkJson.getInteger("type");
+ if (reviewState != null && reviewState == 1) { // 瀹℃牳閫氳繃
reportingWork.setReviewed(reportingWork.getCreator());
reportingWork.setReviewedState(1);
} else {
reportingWork.setReviewedState(0);
}
- if(reportingWork.getReportingWorkTime()==null){
- LocalDateTime localDateTime = LocalDateTime.now();
- reportingWork.setReportingWorkTime(localDateTime);
- }
- //鏄惁绾胯ˉ 1鐜拌ˉ 0鏈幇琛�
- int isPatch = (reportingWorkJson.get("isPatch") != null) ? (int) reportingWorkJson.get("isPatch") : 0;
- //涓昏〃鎻掑叆
+ // 鏃堕棿涓虹┖鍒欒ˉ涓婂綋鍓嶆椂闂�
+ if (reportingWork.getReportingWorkTime() == null) {
+ reportingWork.setReportingWorkTime(LocalDateTime.now());
+ }
+
+ // 鏄惁绾胯ˉ 1鐜拌ˉ 0鏈幇琛�
+ int isPatch = reportingWorkJson.getInteger("isPatch") != null
+ ? reportingWorkJson.getInteger("isPatch") : 0;
+
+ // 涓昏〃鎻掑叆
reportingWorkMapper.insert(reportingWork);
- //鍓〃寰幆鎻掑叆锛屽苟涓旀彃鍏ユ鐮翠俊鎭〃銆傚啀鏍规嵁娆$牬淇℃伅淇敼璁㈠崟鐜荤拑娴佺▼琛ㄧ殑瀹屽伐鏁伴噺涓庡埡鐮存暟閲�
- final Integer[] maxTechnologyNumber = {0,0};
+
+ // 鍓〃寰幆鎻掑叆锛屽苟澶勭悊娆$牬閫昏緫
+ final Integer[] maxTechnologyNumber = {0, 0};
reportingWorkDetails.forEach(reportingWorkDetail -> {
- //鍚堢墖鏁伴噺姹囨�诲噺灏�
- if(Integer.parseInt(reportingWorkDetail.getTechnologyNumber()) > maxTechnologyNumber[0]){
- maxTechnologyNumber[0] = Integer.valueOf(reportingWorkDetail.getTechnologyNumber());
- maxTechnologyNumber[1]+=1;
+ if (reportingWorkDetail == null) return;
+
+ // 缁熶竴鐢ㄥ畨鍏ㄦ暟鍊硷紝閬垮厤 null 鎶ラ敊
+ int completedQty = Optional.ofNullable(reportingWorkDetail.getCompletedQuantity()).orElse(0);
+ int breakageQty = Optional.ofNullable(reportingWorkDetail.getBreakageQuantity()).orElse(0);
+
+ // 鍚堢墖鏁伴噺姹囨�诲噺灏�
+ try {
+ int techNum = Integer.parseInt(reportingWorkDetail.getTechnologyNumber());
+ if (techNum > maxTechnologyNumber[0]) {
+ maxTechnologyNumber[0] = techNum;
+ maxTechnologyNumber[1] += 1;
+ }
+ } catch (NumberFormatException ignored) {
}
- reportingWork.setThisCompletedQuantity(reportingWork.getThisCompletedQuantity() + reportingWorkDetail.getCompletedQuantity());
- reportingWork.setThisWornQuantity(reportingWork.getThisWornQuantity() + reportingWorkDetail.getBreakageQuantity());
- int qualityInsStatus = (int) reportingWorkJson.get("qualityInsStatus");
+
+ reportingWork.setThisCompletedQuantity(reportingWork.getThisCompletedQuantity() + completedQty);
+ reportingWork.setThisWornQuantity(reportingWork.getThisWornQuantity() + breakageQty);
+
+ int qualityInsStatus = reportingWorkJson.getInteger("qualityInsStatus") != null
+ ? reportingWorkJson.getInteger("qualityInsStatus") : 0;
+
reportingWorkDetail.setReportingWorkId(reportingWorkId);
List<DamageDetails> damageDetails = reportingWorkDetail.getDamageDetails();
- reportingWork.setNextProcess(orderProcessDetailMapper.selectNextProcess(processIdStr[0],processIdStr[1],reportingWork.getThisProcess(),reportingWorkDetail.getOrderNumber()));
- //娆$牬鏄庣粏琛ㄦ彃鍏ユ暟鎹�
+ reportingWork.setNextProcess(orderProcessDetailMapper.selectNextProcess(
+ processIdStr[0],
+ processIdStr.length > 1 ? processIdStr[1] : "",
+ reportingWork.getThisProcess(),
+ reportingWorkDetail.getOrderNumber()
+ ));
+
+ // 娆$牬鏄庣粏琛ㄦ彃鍏ユ暟鎹�
if (damageDetails != null && !damageDetails.isEmpty()) {
damageDetails.forEach(damageDetail -> {
+ if (damageDetail == null) return;
damageDetail.setReportingWorkId(reportingWorkId);
damageDetail.setOrderNumber(reportingWorkDetail.getOrderNumber());
damageDetail.setProcessId(reportingWork.getProcessId());
damageDetail.setTechnologyNumber(reportingWorkDetail.getTechnologyNumber());
- //璺ㄥ伐搴忔鐮翠慨鏀硅川妫�鐘舵��
- if (!damageDetail.getResponsibleProcess().equals(reportingWork.getThisProcess()) && qualityInsStatus==2) {
+
+ if (!Objects.equals(damageDetail.getResponsibleProcess(), reportingWork.getThisProcess())
+ && qualityInsStatus == 2) {
damageDetail.setQualityInsStatus(1);
}
- if (isPatch == 1){
+ if (isPatch == 1) {
damageDetail.setQualityInsStatus(2);
}
damageDetailsMapper.insert(damageDetail);
});
}
- //鏌ヨ娴佺▼鍗″伐鑹烘祦绋�
- String technologicalProcess = reportingWorkMapper.SelectTechnologicalProcess(reportingWork.getProcessId(), reportingWorkDetail.getTechnologyNumber());
- int index = technologicalProcess.indexOf("-");
- String interceptProcess = "";
- if (index <0){
- interceptProcess = technologicalProcess;
- }
- else {
- //鑾峰彇宸ヨ壓娴佺▼绗竴涓伐搴�
- interceptProcess = technologicalProcess.substring(0, index);
+ // 鏌ヨ宸ヨ壓娴佺▼
+ String technologicalProcess = reportingWorkMapper.SelectTechnologicalProcess(
+ reportingWork.getProcessId(), reportingWorkDetail.getTechnologyNumber());
+ String interceptProcess;
+ if (technologicalProcess != null) {
+ int index = technologicalProcess.indexOf("-");
+ interceptProcess = (index < 0) ? technologicalProcess : technologicalProcess.substring(0, index);
+ } else {
+ interceptProcess = "";
}
-
- //鍒ゆ柇褰撳墠宸ュ簭鏄惁涓虹涓�閬撳伐搴忓伐搴忥紝浣跨敤娴佺▼鍗¤〃鏁伴噺鎴栬�呭皬鐗囨祦绋嬭〃涓婂伐搴忔暟閲�
- int processNum = 0;
+ // 鍒ゆ柇鏄惁绗竴閬撳伐搴�
+ int processNum;
if (interceptProcess.equals(reportingWork.getThisProcess())) {
processNum = reportingWorkMapper.selectFlowCardNum(
reportingWorkDetail.getOrderNumber(),
@@ -354,75 +397,244 @@
);
}
-
- //鍒ゆ柇鏄惁澶т簬褰撳墠鏁伴噺骞朵笖鎶涘嚭寮傚父
- if (processNum < (reportingWorkDetail.getBreakageQuantity() + reportingWorkDetail.getCompletedQuantity())) {
+ // 鏍¢獙鏁伴噺鍚堟硶鎬�
+ if (processNum < (breakageQty + completedQty)) {
Map<String, Object> map = new HashMap<>();
map.put("orderNumber", reportingWorkDetail.getOrderNumber());
- map.put("technologyNumber", reportingWorkDetail.getOrderNumber());
+ map.put("technologyNumber", reportingWorkDetail.getTechnologyNumber()); // 淇閿欒
map.put("processNum", processNum);
- map.put("sumNum", reportingWorkDetail.getBreakageQuantity() + reportingWorkDetail.getCompletedQuantity());
+ map.put("sumNum", breakageQty + completedQty);
String msg = JSON.toJSONString(map);
throw new ServiceException(Constants.Code_600, msg);
}
OrderProcessDetail orderProcessDetail = new OrderProcessDetail();
- orderProcessDetail.setBrokenNum(reportingWorkDetail.getBreakageQuantity());
- orderProcessDetail.setReportingWorkNum(reportingWorkDetail.getCompletedQuantity());
- orderProcessDetail.setReportingWorkNumCount(reportingWorkDetail.getCompletedQuantity());
+ orderProcessDetail.setBrokenNum(breakageQty);
+ orderProcessDetail.setReportingWorkNum(completedQty);
+ orderProcessDetail.setReportingWorkNumCount(completedQty);
-
- if (isPatch == 0){//鏈幇琛�
- //鏍规嵁璁㈠崟id锛岃鍗曞簭鍙凤紝浠ュ強灏忕墖搴忓彿 鏇存柊灏忕墖娴佺▼鐨勫畬宸ユ暟閲忎互鍙婂埡鐮存暟閲�
+ // 鏈幇琛ワ細鏇存柊灏忕墖娴佺▼鏁伴噺
+ if (isPatch == 0) {
LambdaUpdateWrapper<OrderProcessDetail> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(OrderProcessDetail::getOrderNumber, reportingWorkDetail.getOrderNumber())
.eq(OrderProcessDetail::getProcessId, reportingWork.getProcessId())
.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.getReportingWorkNum())
- .setSql("reporting_work_num =reporting_work_num +" + orderProcessDetail.getReportingWorkNum())
+ .setSql("reporting_work_num_count = reporting_work_num_count +" + completedQty)
+ .setSql("reporting_work_num = reporting_work_num +" + completedQty)
.setSql("update_time = now()")
- .setSql("broken_num =broken_num +" + orderProcessDetail.getBrokenNum());
+ .setSql("broken_num = broken_num +" + breakageQty);
orderProcessDetailMapper.update(null, updateWrapper);
}
- //鍒ゆ柇瀹屽伐鏁伴噺鍜屽埡鐮存暟閲忔槸鍚︿负0锛屼负0鍒欎笉鎻掑叆鍒版暟鎹簱
- if (!(reportingWorkDetail.getCompletedQuantity() == 0 && reportingWorkDetail.getBreakageQuantity() == 0)) {
+ // 鍒ゆ柇瀹屽伐鏁伴噺鍜屾鐮存暟閲忔槸鍚︿负0锛屼负0鍒欎笉鎻掑叆
+ if (!(completedQty == 0 && breakageQty == 0)) {
reportingWorkDetailMapper.insert(reportingWorkDetail);
}
- //鏇存柊娴佺▼鍗¤〃鐨勬姤宸ユ暟閲�
+ // 鏇存柊娴佺▼鍗℃姤宸ユ暟閲�
if (reportingWork.getNextProcess() == null || reportingWork.getNextProcess().isEmpty()) {
- LambdaUpdateWrapper<FlowCard> flowCardLambdaUpdateWrapper =
- new LambdaUpdateWrapper<>();
+ LambdaUpdateWrapper<FlowCard> flowCardLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
flowCardLambdaUpdateWrapper
.eq(FlowCard::getProcessId, reportingWork.getProcessId())
.eq(FlowCard::getOrderNumber, reportingWorkDetail.getOrderNumber())
.eq(FlowCard::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber())
- .setSql("inventory_quantity = inventory_quantity +" + orderProcessDetail.getReportingWorkNum());
+ .setSql("inventory_quantity = inventory_quantity +" + completedQty);
flowCardMapper.update(null, flowCardLambdaUpdateWrapper);
}
-
-
});
- //鑾峰彇鎶ュ伐宸ュ簭鏄惁涓哄鍚堝伐绋�
- reportingWork.setThisCompletedQuantity(reportingWork.getThisCompletedQuantity()/maxTechnologyNumber[1]);
-
+ // 鑾峰彇鎶ュ伐宸ュ簭鏄惁涓哄鍚堝伐绋�
+ if (maxTechnologyNumber[1] != 0) {
+ reportingWork.setThisCompletedQuantity(
+ reportingWork.getThisCompletedQuantity() / maxTechnologyNumber[1]);
+ }
reportingWorkMapper.update(reportingWork, new LambdaUpdateWrapper<ReportingWork>()
.eq(ReportingWork::getId, reportingWork.getId()));
- //淇濆瓨鏃ュ織
+ // 淇濆瓨鏃ュ織
Log log = new Log();
- log.setContent(reportingWorkMap.toString());
+ log.setContent(JSON.toJSONString(reportingWorkMap));
log.setFunction("saveReportingWork鎶ュ伐鏂板");
- log.setOperatorId((String) reportingWorkJson.get("userId"));
- log.setOperator((String) reportingWorkJson.get("userName"));
+ log.setOperatorId(reportingWorkJson.getString("userId"));
+ log.setOperator(reportingWorkJson.getString("userName"));
logService.saveLog(log);
+
return true;
}
+
+
+ //鎶ュ伐鏂板
+// @Transactional(rollbackFor = Exception.class)
+// 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);
+// String[] processIdStr = reportingWork.getProcessId().split("/");
+// reportingWork.setProcessId(processIdStr[0]);
+// reportingWork.setThisWornQuantity(0);
+// reportingWork.setThisCompletedQuantity(0);
+//
+// int reviewState = (int) reportingWorkJson.get("type");
+// if (reviewState == 1) {//瀹℃牳閫氳繃
+// reportingWork.setReviewed(reportingWork.getCreator());
+// reportingWork.setReviewedState(1);
+// } else {
+// reportingWork.setReviewedState(0);
+// }
+// if(reportingWork.getReportingWorkTime()==null){
+// LocalDateTime localDateTime = LocalDateTime.now();
+// reportingWork.setReportingWorkTime(localDateTime);
+// }
+// //鏄惁绾胯ˉ 1鐜拌ˉ 0鏈幇琛�
+// int isPatch = (reportingWorkJson.get("isPatch") != null) ? (int) reportingWorkJson.get("isPatch") : 0;
+//
+// //涓昏〃鎻掑叆
+// reportingWorkMapper.insert(reportingWork);
+// //鍓〃寰幆鎻掑叆锛屽苟涓旀彃鍏ユ鐮翠俊鎭〃銆傚啀鏍规嵁娆$牬淇℃伅淇敼璁㈠崟鐜荤拑娴佺▼琛ㄧ殑瀹屽伐鏁伴噺涓庡埡鐮存暟閲�
+// final Integer[] maxTechnologyNumber = {0,0};
+// reportingWorkDetails.forEach(reportingWorkDetail -> {
+// //鍚堢墖鏁伴噺姹囨�诲噺灏�
+// if(Integer.parseInt(reportingWorkDetail.getTechnologyNumber()) > maxTechnologyNumber[0]){
+// maxTechnologyNumber[0] = Integer.valueOf(reportingWorkDetail.getTechnologyNumber());
+// maxTechnologyNumber[1]+=1;
+// }
+// reportingWork.setThisCompletedQuantity(reportingWork.getThisCompletedQuantity() + reportingWorkDetail.getCompletedQuantity());
+// reportingWork.setThisWornQuantity(reportingWork.getThisWornQuantity() + reportingWorkDetail.getBreakageQuantity());
+// int qualityInsStatus = (int) reportingWorkJson.get("qualityInsStatus");
+// reportingWorkDetail.setReportingWorkId(reportingWorkId);
+// List<DamageDetails> damageDetails = reportingWorkDetail.getDamageDetails();
+// reportingWork.setNextProcess(orderProcessDetailMapper.selectNextProcess(processIdStr[0],processIdStr[1],reportingWork.getThisProcess(),reportingWorkDetail.getOrderNumber()));
+//
+// //娆$牬鏄庣粏琛ㄦ彃鍏ユ暟鎹�
+// if (damageDetails != null && !damageDetails.isEmpty()) {
+// damageDetails.forEach(damageDetail -> {
+// damageDetail.setReportingWorkId(reportingWorkId);
+// damageDetail.setOrderNumber(reportingWorkDetail.getOrderNumber());
+// damageDetail.setProcessId(reportingWork.getProcessId());
+// damageDetail.setTechnologyNumber(reportingWorkDetail.getTechnologyNumber());
+// //璺ㄥ伐搴忔鐮翠慨鏀硅川妫�鐘舵��
+// if (!damageDetail.getResponsibleProcess().equals(reportingWork.getThisProcess()) && qualityInsStatus==2) {
+// damageDetail.setQualityInsStatus(1);
+// }
+// if (isPatch == 1){
+// damageDetail.setQualityInsStatus(2);
+// }
+// damageDetailsMapper.insert(damageDetail);
+// });
+// }
+// //鏌ヨ娴佺▼鍗″伐鑹烘祦绋�
+// String technologicalProcess = reportingWorkMapper.SelectTechnologicalProcess(reportingWork.getProcessId(), reportingWorkDetail.getTechnologyNumber());
+//
+// int index = technologicalProcess.indexOf("-");
+// String interceptProcess = "";
+// if (index <0){
+// interceptProcess = technologicalProcess;
+// }
+// else {
+// //鑾峰彇宸ヨ壓娴佺▼绗竴涓伐搴�
+// interceptProcess = technologicalProcess.substring(0, index);
+// }
+//
+//
+// //鍒ゆ柇褰撳墠宸ュ簭鏄惁涓虹涓�閬撳伐搴忓伐搴忥紝浣跨敤娴佺▼鍗¤〃鏁伴噺鎴栬�呭皬鐗囨祦绋嬭〃涓婂伐搴忔暟閲�
+// int processNum = 0;
+// if (interceptProcess.equals(reportingWork.getThisProcess())) {
+// processNum = reportingWorkMapper.selectFlowCardNum(
+// reportingWorkDetail.getOrderNumber(),
+// reportingWorkDetail.getTechnologyNumber(),
+// reportingWork.getProcessId(),
+// reportingWork.getThisProcess()
+// );
+// } else {
+// processNum = reportingWorkMapper.selectGlassProcessNum(
+// reportingWorkDetail.getOrderNumber(),
+// reportingWorkDetail.getTechnologyNumber(),
+// reportingWork.getProcessId(),
+// reportingWork.getThisProcess()
+// );
+// }
+//
+//
+// //鍒ゆ柇鏄惁澶т簬褰撳墠鏁伴噺骞朵笖鎶涘嚭寮傚父
+// if (processNum < (reportingWorkDetail.getBreakageQuantity() + reportingWorkDetail.getCompletedQuantity())) {
+// Map<String, Object> map = new HashMap<>();
+// map.put("orderNumber", reportingWorkDetail.getOrderNumber());
+// map.put("technologyNumber", reportingWorkDetail.getOrderNumber());
+// map.put("processNum", processNum);
+// map.put("sumNum", reportingWorkDetail.getBreakageQuantity() + reportingWorkDetail.getCompletedQuantity());
+// String msg = JSON.toJSONString(map);
+// throw new ServiceException(Constants.Code_600, msg);
+// }
+//
+// OrderProcessDetail orderProcessDetail = new OrderProcessDetail();
+// orderProcessDetail.setBrokenNum(reportingWorkDetail.getBreakageQuantity());
+// orderProcessDetail.setReportingWorkNum(reportingWorkDetail.getCompletedQuantity());
+// orderProcessDetail.setReportingWorkNumCount(reportingWorkDetail.getCompletedQuantity());
+//
+//
+// if (isPatch == 0){//鏈幇琛�
+// //鏍规嵁璁㈠崟id锛岃鍗曞簭鍙凤紝浠ュ強灏忕墖搴忓彿 鏇存柊灏忕墖娴佺▼鐨勫畬宸ユ暟閲忎互鍙婂埡鐮存暟閲�
+// LambdaUpdateWrapper<OrderProcessDetail> updateWrapper = new LambdaUpdateWrapper<>();
+// updateWrapper.eq(OrderProcessDetail::getOrderNumber, reportingWorkDetail.getOrderNumber())
+// .eq(OrderProcessDetail::getProcessId, reportingWork.getProcessId())
+// .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.getReportingWorkNum())
+// .setSql("reporting_work_num =reporting_work_num +" + orderProcessDetail.getReportingWorkNum())
+// .setSql("update_time = now()")
+// .setSql("broken_num =broken_num +" + orderProcessDetail.getBrokenNum());
+// orderProcessDetailMapper.update(null, updateWrapper);
+// }
+//
+// //鍒ゆ柇瀹屽伐鏁伴噺鍜屽埡鐮存暟閲忔槸鍚︿负0锛屼负0鍒欎笉鎻掑叆鍒版暟鎹簱
+// if (!(reportingWorkDetail.getCompletedQuantity() == 0 && reportingWorkDetail.getBreakageQuantity() == 0)) {
+// reportingWorkDetailMapper.insert(reportingWorkDetail);
+// }
+//
+// //鏇存柊娴佺▼鍗¤〃鐨勬姤宸ユ暟閲�
+// if (reportingWork.getNextProcess() == null || reportingWork.getNextProcess().isEmpty()) {
+// LambdaUpdateWrapper<FlowCard> flowCardLambdaUpdateWrapper =
+// new LambdaUpdateWrapper<>();
+// flowCardLambdaUpdateWrapper
+// .eq(FlowCard::getProcessId, reportingWork.getProcessId())
+// .eq(FlowCard::getOrderNumber, reportingWorkDetail.getOrderNumber())
+// .eq(FlowCard::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber())
+// .setSql("inventory_quantity = inventory_quantity +" + orderProcessDetail.getReportingWorkNum());
+// flowCardMapper.update(null, flowCardLambdaUpdateWrapper);
+// }
+//
+//
+// });
+// //鑾峰彇鎶ュ伐宸ュ簭鏄惁涓哄鍚堝伐绋�
+//
+// reportingWork.setThisCompletedQuantity(reportingWork.getThisCompletedQuantity()/maxTechnologyNumber[1]);
+//
+//
+// reportingWorkMapper.update(reportingWork, new LambdaUpdateWrapper<ReportingWork>()
+// .eq(ReportingWork::getId, reportingWork.getId()));
+//
+// //淇濆瓨鏃ュ織
+// Log log = new Log();
+// log.setContent(reportingWorkMap.toString());
+// log.setFunction("saveReportingWork鎶ュ伐鏂板");
+// log.setOperatorId((String) reportingWorkJson.get("userId"));
+// log.setOperator((String) reportingWorkJson.get("userName"));
+// logService.saveLog(log);
+// return true;
+// }
//涓嬪伐搴忓鏍告柟娉�
public boolean ReviewReportingWorkSv(Map<String, String> reportingWork) {
@@ -470,7 +682,7 @@
- List<Map<String, Object>> reportingWorkDetails = reportingWorkMapper.selectByReportingWorkId(reportingWorkId, reportingWork.getNextProcess());
+ List<Map<String, Object>> reportingWorkDetails = reportingWorkMapper.selectByReportingWorkId(reportingWorkId, reportingWork.getNextProcess(),reportingWork.getOrderId());
reportingWorkDetails.forEach(reportingWorkDetail -> {
List<DamageDetails> damageDetailsList = new ArrayList<>();
damageDetailsList = damageDetailsMapper.selectList(new LambdaQueryWrapper<DamageDetails>()
@@ -605,30 +817,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;
}
//鍒犻櫎鎶ュ伐
@@ -735,15 +1009,28 @@
}
//鏌ヨ璐ㄦ瀹℃牳
- public Map<String, Object> selectQualityTestingSv(Integer pageNum, Integer pageSize, java.sql.Date selectTime1, java.sql.Date selectTime2, Integer state, String processId, ReportingWork reportingWork) {
+ public Map<String, Object> selectQualityTestingSv(Integer pageNum, Integer pageSize, List<String> selectDate, Integer state, String processId, ReportingWork reportingWork) {
Integer offset = (pageNum - 1) * pageSize;
if ("null".equals(processId)) {
processId = "";
}
+ 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.selectQualityTestingMp(offset, pageSize, selectTime1, selectTime2, state, processId, reportingWork));
- map.put("total", reportingWorkMapper.getQualityPageTotal(offset, pageSize, selectTime1, selectTime2, state, processId, reportingWork));
-
+ map.put("data", reportingWorkMapper.selectQualityTestingMp(offset, pageSize, startDate, endDate, state, processId, reportingWork));
+ map.put("total", reportingWorkMapper.getQualityPageTotal(offset, pageSize, startDate, endDate, state, processId, reportingWork));
+ List<String> list = new ArrayList<>();
+ list.add(startDate);
+ list.add(endDate);
+ map.put("selectDate",list);
return map;
}
@@ -1273,13 +1560,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