From cc8efc81d2d35bed40e47d0a5b0920a4b6f8095f Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期四, 23 十月 2025 11:04:05 +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 | 525 +++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 408 insertions(+), 117 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 eec8a30..6fc915b 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
@@ -10,10 +10,7 @@
import com.example.erp.common.Constants;
import com.example.erp.dto.pp.OrderNumberTransferDTO;
import com.example.erp.entity.pp.*;
-import com.example.erp.entity.sd.BasicData;
-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.entity.sd.*;
import com.example.erp.entity.userInfo.Log;
import com.example.erp.entity.userInfo.SysError;
import com.example.erp.exception.ServiceException;
@@ -92,12 +89,32 @@
this.reportingWorkTransferMapper = reportingWorkTransferMapper;
}*/
+ //灏嗗眰鏁板瓧绗︿覆鐢ㄩ�楀彿闅斿紑
+ public static String splitTechNumbers(String input) {
+ if (input == null || input.isEmpty()) {
+ return "";
+ }
+
+ List<String> result = new ArrayList<>();
+ for (int i = 0; i < input.length(); i++) {
+ // 鐗规畩澶勭悊 "10"
+ if (input.charAt(i) == '1' && i + 1 < input.length() && input.charAt(i + 1) == '0') {
+ result.add("10");
+ i++; // 璺宠繃涓嬩竴涓瓧绗�
+ } else {
+ result.add(String.valueOf(input.charAt(i)));
+ }
+ }
+
+ return String.join(",", result);
+ }
+
public Map<String, Object> AddSelectLastWorkSv(String processIdStr, String technologyStr, String process, String reportType) {
Map<String, Object> map = new HashMap<>();
//鑾峰彇鎶ュ伐宸ュ簭鏄惁涓哄鍚堝伐绋�
String laminating = reportingWorkMapper.getProcessLaminating(process);
//鏌ヨ娴佺▼鍗″伐鑹烘祦绋�
- String technologicalProcess = reportingWorkMapper.SelectTechnologicalProcess(processIdStr,technologyStr);
+ String technologicalProcess = reportingWorkMapper.SelectTechnologicalProcess(processIdStr,splitTechNumbers(technologyStr));
if (technologicalProcess!=null || !technologicalProcess.equals("")){
String[] processList = technologicalProcess.split("->");
@@ -126,7 +143,7 @@
nextProcess = processList[i + 1];
}
//鏌ヨ褰撳墠宸ュ簭鐨勮〃澶存暟鎹�
- map.put("data", reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr, previousProcess, nextProcess, process,reportType));
+ map.put("data", reportingWorkMapper.AddSelectLastWorkMp(processIdStr, splitTechNumbers(technologyStr), previousProcess, nextProcess, process,reportType));
map.put("thisProcess", processList);
break;
}
@@ -147,12 +164,12 @@
//鏌ヨ鏈伐搴忔姤宸ラ渶瑕佸摢鍑犲眰锛屼笂宸ュ簭鏄粈涔�
String obtainTechnology = reportingWorkMapper.SelectWorkTechnologyMp(processIdStr);
- map.put("numberList", flowCardMapper.getGlassNumber(technologyStr,processIdStr));
+ map.put("numberList", flowCardMapper.getGlassNumber(splitTechNumbers(technologyStr),processIdStr));
//鍒ゆ柇鏈伐搴忔槸涓嶆槸绗竴閬撳伐搴�
if (interceptProcess.equals(process)) {
//鏄涓�閬撳伐搴忥紝鏌ヨ娴佺▼鍗℃暟鎹�
- map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr, technologyStr, process,reportType));
+ map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr, splitTechNumbers(technologyStr), process,reportType));
} else {
ReportingWork retrievedData = (ReportingWork) map.get("data");
if (retrievedData!=null){
@@ -160,7 +177,7 @@
//鏍规嵁瀹℃牳鐘舵�佹煡璇㈡湭瀹℃牳鏁版嵁
// if (reviewedState==1){//宸插鏍�
//涓嶆槸绗竴閬撳伐搴忥紝鏌ヨ鎶ュ伐鏁版嵁
- List<Map<String,String>> details = reportingWorkMapper.SelectReworlDetailMp(processIdStr, technologyStr, process,previousProcess,laminating);
+ List<Map<String,String>> details = reportingWorkMapper.SelectReworlDetailMp(processIdStr, splitTechNumbers(technologyStr), process,previousProcess,laminating);
if(process.equals("涓┖")){
//鑾峰彇璇ユ祦绋嬪崱璁㈠崟鍙�
String orderId = reportingWorkMapper.selectOrderid(processIdStr);
@@ -237,90 +254,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(),
@@ -337,75 +391,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) {
@@ -449,6 +672,7 @@
orderMapper.selectOne(new LambdaQueryWrapper<Order>()
.eq(Order::getOrderId, reportingWork.getOrderId())));
reportingWork.setFlowCard(new FlowCard());
+
@@ -587,15 +811,29 @@
}
//鎶ュ伐绠$悊鏌ヨ
- public Map<String, Object> selectReportingWorkSv(Integer pageNum, Integer pageSize, java.sql.Date selectTime1, java.sql.Date selectTime2, 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, selectTime1, selectTime2, orderId, reportingWork));
+ 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, 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;
}
@@ -615,6 +853,17 @@
if (transferState !=3){
//鍒ゆ柇鏄惁鏈夎ˉ鐗囪繑宸ユ暟鎹�
if (countStates==0){
+ //褰撲笅宸ュ簭鏈鏍稿垯鍒犻櫎鏈伐搴�
+ ReportingWork reportingWork = reportingWorkMapper.selectOne(new LambdaQueryWrapper<ReportingWork>()
+ .eq(ReportingWork::getReportingWorkId, reportingWorkId));
+ //淇濆瓨鏃ュ織
+ Log log = new Log();
+ log.setContent(reportingWorkId+"-"+processId+"-"+thisProcess);
+ log.setFunction("deleteWork鎶ュ伐鍒犻櫎");
+ log.setOperatorId(userId);
+ log.setOperator(userName);
+
+
//鍒ゆ柇鏄惁鏄叆搴撳伐搴�
if (lastProcess.equals(thisProcess)) {//鏄叆搴撳伐搴�
//鏌ヨ璇ユ祦绋嬪崱鏁伴噺銆佸彲鍏ュ簱鏁伴噺銆佸凡鍏ュ簱鏁伴噺
@@ -641,12 +890,6 @@
}
//鍒犻櫎鎶ュ伐锛屽皢瀹℃牳鐘舵�佹敼涓�-1
reportingWorkMapper.deleteWork(reportingWorkId);
- //淇濆瓨鏃ュ織
- Log log = new Log();
- log.setContent(reportingWorkId+"-"+processId+"-"+thisProcess);
- log.setFunction("deleteWork鎶ュ伐鍏ュ簱鍒犻櫎");
- log.setOperatorId(userId);
- log.setOperator(userName);
logService.saveLog(log);
return true;
} else {
@@ -655,6 +898,19 @@
}
} else {//涓嶆槸鍏ュ簱宸ュ簭
+ if(reportingWork.getReviewedState()==0){
+ //鏌ヨ褰撳墠鎶ュ伐缂栧彿瀹屽伐娆$牬鏁伴噺鐨勬暟鎹�
+ List<Map<String, Object>> workDateList = reportingWorkMapper.reportingWorkDate(reportingWorkId);
+ for (Map<String, Object> item : workDateList) {
+ //鏇存柊鎶ュ伐娴佺▼琛ㄦ暟鎹�
+ reportingWorkMapper.updateWorkProcess(processId, item.get("order_number"), item.get("technology_number"), item.get("completed_quantity"), item.get("breakage_quantity"), thisProcess);
+ }
+ //鍒犻櫎鎶ュ伐锛屽皢瀹℃牳鐘舵�佹敼涓�-1
+ reportingWorkMapper.deleteWork(reportingWorkId);
+ logService.saveLog(log);
+ return true;
+ }
+
if (count == 0) {
//鏌ヨ褰撳墠鎶ュ伐缂栧彿瀹屽伐娆$牬鏁伴噺鐨勬暟鎹�
List<Map<String, Object>> workDateList = reportingWorkMapper.reportingWorkDate(reportingWorkId);
@@ -665,12 +921,7 @@
//鍒犻櫎鎶ュ伐锛屽皢瀹℃牳鐘舵�佹敼涓�-1
reportingWorkMapper.deleteWork(reportingWorkId);
- //淇濆瓨鏃ュ織
- Log log = new Log();
- log.setContent(reportingWorkId+"-"+processId+"-"+thisProcess);
- log.setFunction("deleteWork鎶ュ伐鍒犻櫎");
- log.setOperatorId(userId);
- log.setOperator(userName);
+
logService.saveLog(log);
return true;
} else {
@@ -690,15 +941,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;
}
@@ -1010,7 +1274,7 @@
.eq("order_sort", reportingWork.get("oldOrderNumber"))
.eq("review_status",0)
);
- if (patchLogs.isEmpty()){
+ if (!patchLogs.isEmpty()){
result.put("msg","鏃ц鍗曞瓨鍦ㄨˉ鐗囨湭瀹℃牳鏁版嵁");
result.put("data",false);
return result;
@@ -1021,7 +1285,7 @@
.eq("order_sort", reportingWork.get("oldOrderNumber"))
.eq("review_status",0)
);
- if (patchLogs.isEmpty()){
+ if (!patchLogs.isEmpty()){
result.put("msg","鏃ц鍗曞瓨鍦ㄨ繑宸ユ湭瀹℃牳鏁版嵁锛岃鍏堝鏍告姤宸ュ悗鍐嶈繘琛岃浆鍑�");
result.put("data",false);
return result;
@@ -1147,7 +1411,7 @@
//restTemplate.postForObject("http://localhost:8086/order/test",orderNumberTransferList,String.class);
//鍚憁es鍙戦�乭ttp璇锋眰
- ResponseEntity<OrderNumberTransferDTO> response =restTemplate.exchange(
+ /*ResponseEntity<OrderNumberTransferDTO> response =restTemplate.exchange(
"http://localhost:88/api/loadGlass/order/order/orderChange",
HttpMethod.POST,
new HttpEntity<>(orderNumberTransferList),
@@ -1159,7 +1423,9 @@
}else{
result.put("msg","杩炴帴mes鍝嶅簲瓒呮椂");
result.put("data",false);
- }
+ }*/
+
+ result.put("data",true);
return result;
}
@@ -1181,7 +1447,10 @@
date.add(endDate);
Map<String, Object> result = new HashMap<>();
BasicData basicData = basicDataMapper
- .selectOne(new QueryWrapper<BasicData>().eq("basic_name", reportingWork.get("process")));
+ .selectOne(new QueryWrapper<BasicData>()
+ .eq("basic_name", reportingWork.get("process"))
+ .last("limit 1")
+ );
result.put("data",orderProcessDetailMapper.selectShiftQuantitySv(creatorId, startDate, endDate,basicData==null?null:basicData.getNickname()));
result.put("date",date);
return result;
@@ -1201,26 +1470,48 @@
date.add(startDate);
date.add(endDate);
Map<String, Object> result = new HashMap<>();
- result.put("data",reportingWorkMapper.selectList(
+ List<ReportingWork> reportingWorkList = reportingWorkMapper.selectList(
new QueryWrapper<ReportingWork>().nested(
reportingWork.get("process")!=null,
wrapper-> wrapper.eq("creator_id",reportingWork.get("userId"))//褰撳伐搴忎负绌烘椂锛屾煡璇㈡墍鏈夋姤宸ヤ俊鎭�
)
.gt("reviewed_state",-1)
.between("date(reporting_work_time)",startDate,endDate)
- .orderByDesc("id")));
+ .orderByDesc("id"));
+ reportingWorkList.forEach(reportingWork1 -> {
+ String Plies = reportingWorkDetailMapper.getGlassPliesCount(reportingWork1.getReportingWorkId());
+ reportingWork1.setProcessId(reportingWork1.getProcessId()+'/'+Plies);
+ });
+
+ result.put("data",reportingWorkList);
result.put("date",date);
return result;
}
- public List<BasicDataProduce> selectEquipmentByProcessSv(String process) {
- return reportingWorkMapper.SelectWorkBasicDeviceMp(process);
- }
+ 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 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<>();
+ //宸ュ簭
+ map.put("process",flowCardMapper.getProcessNameList());
+ //璁惧涓嬫媺妗�
+ map.put("device", reportingWorkMapper.mesSelectWorkBasicDeviceMp());
+ //鐝粍涓嬫媺妗�
+ map.put("teams", reportingWorkMapper.mesSelectWorkBasicTeamsMp());
+ //娆$牬绫诲瀷
+ map.put("breakageType", reportingWorkMapper.selectBasicNameByType("breakagetype"));
+ //娆$牬鍘熷洜
+ map.put("breakageReason", reportingWorkMapper.selectBasicNameByType("breakagereason"));
+ return map;
+ }
+}
--
Gitblit v1.8.0