From d33a7f7c7e7c218a4cb71cb039249b75bcfeef42 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 26 三月 2025 15:31:00 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override
---
north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java | 290 ++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 173 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 c95d452..d0b1dbd 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
@@ -485,73 +485,79 @@
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);
+ //鏌ヨ璇ユ姤宸ユ槸鍚︿负鎶ュ伐杞Щ璁㈠崟
+ Integer transferState = reportingWorkMapper.selectReviewedState(reportingWork.getReportingWorkId());
+ if (transferState !=3){
+ //鍒犻櫎鍒虹牬鏄庣粏琛ㄥ埡鐮存暟鎹�
+ damageDetailsMapper.delete(
+ new LambdaQueryWrapper<DamageDetails>()
+ .eq(DamageDetails::getReportingWorkId, reportingWork.getReportingWorkId())
+ );
+ //淇敼灏忕墖娴佺▼琛ㄦ暟閲�
+ orderProcessDetailMapper.updateQuantity(reportingWork.getReportingWorkId(), reportingWork.getThisProcess(), "delete");
+ //鍒犻櫎鎶ュ伐鏄庣粏琛ㄦ暟鎹�
+ reportingWorkDetailMapper
+ .delete(new LambdaQueryWrapper<ReportingWorkDetail>()
+ .eq(ReportingWorkDetail::getReportingWorkId, reportingWork.getReportingWorkId()));
- //鍒犻櫎鍒虹牬鏄庣粏琛ㄥ埡鐮存暟鎹�
- damageDetailsMapper.delete(
- new LambdaQueryWrapper<DamageDetails>()
- .eq(DamageDetails::getReportingWorkId, reportingWork.getReportingWorkId())
- );
- //淇敼灏忕墖娴佺▼琛ㄦ暟閲�
- orderProcessDetailMapper.updateQuantity(reportingWork.getReportingWorkId(), reportingWork.getThisProcess(), "delete");
- //鍒犻櫎鎶ュ伐鏄庣粏琛ㄦ暟鎹�
- reportingWorkDetailMapper
- .delete(new LambdaQueryWrapper<ReportingWorkDetail>()
- .eq(ReportingWorkDetail::getReportingWorkId, reportingWork.getReportingWorkId()));
-
- //鏇存柊鎶ュ伐涓昏〃
- int qualityInsStatus = (int) reportingWorkJson.get("qualityInsStatus");
- reportingWorkMapper.updateById(reportingWork);
- reportingWorkDetails.forEach(reportingWorkDetail -> {
- reportingWorkDetail.setReportingWorkId(reportingWork.getReportingWorkId());
- List<DamageDetails> damageDetails = reportingWorkDetail.getDamageDetails();
- //姣忎竴鏉℃姤宸ユ暟鎹惊鐜彃鍏ユ鐮存槑缁嗚〃
- if (damageDetails != null && !damageDetails.isEmpty()) {
- damageDetails.forEach(damageDetail -> {
- damageDetail.setReportingWorkId(reportingWork.getReportingWorkId());
- damageDetail.setProcessId(reportingWork.getProcessId());
- damageDetail.setOrderNumber(reportingWorkDetail.getOrderNumber());
- damageDetail.setTechnologyNumber(reportingWorkDetail.getTechnologyNumber());
- //鏄惁淇敼璐ㄦ鐘舵��
- if (!Objects.equals(reportingWork.getThisProcess(), damageDetail.getResponsibleProcess()) && qualityInsStatus==2) {
- damageDetail.setQualityInsStatus(1);
- }
- if (Objects.equals(reviewState, "review")) {
- damageDetail.setQualityInsStatus(2);
- }
-
- damageDetailsMapper.insert(damageDetail);
- });
- }
- //鎻掑叆鎶ュ伐鏁版嵁
- reportingWorkDetailMapper.insert(reportingWorkDetail);
- orderProcessDetailMapper.insertByReportingWorkDetail(reportingWorkDetail,reportingWork.getProcessId(),reportingWork.getThisProcess());
- //淇敼鍖呰鏃朵慨鏀瑰簱瀛樻暟閲�
- if (reportingWork.getNextProcess()==null || reportingWork.getNextProcess().isEmpty()){
- //鑾峰彇璇ユ姤宸ヤ慨鏀瑰悗鐨勫彲鍏ュ簱鏁伴噺
- Integer inventory = reportingWorkDetailMapper.selectInventory(reportingWork.getProcessId(),Integer.parseInt(reportingWorkDetail.getOrderNumber()),Integer.parseInt(reportingWorkDetail.getTechnologyNumber()),reportingWork.getThisProcess());
- //淇敼娴佺▼鍗¤〃搴撳瓨鏁伴噺
- flowCardMapper.updateInventory(reportingWork.getProcessId(),reportingWorkDetail.getOrderNumber(),reportingWorkDetail.getTechnologyNumber(),inventory);
- }
- });
- //鑾峰彇璐ㄦ鏃堕棿
- if (Objects.equals(reviewState, "review")) {
- LocalDateTime
- currentDate = LocalDateTime.now();
- reportingWork.setQualityInsTime(currentDate);
+ //鏇存柊鎶ュ伐涓昏〃
+ int qualityInsStatus = (int) reportingWorkJson.get("qualityInsStatus");
reportingWorkMapper.updateById(reportingWork);
+ reportingWorkDetails.forEach(reportingWorkDetail -> {
+ reportingWorkDetail.setReportingWorkId(reportingWork.getReportingWorkId());
+ List<DamageDetails> damageDetails = reportingWorkDetail.getDamageDetails();
+ //姣忎竴鏉℃姤宸ユ暟鎹惊鐜彃鍏ユ鐮存槑缁嗚〃
+ if (damageDetails != null && !damageDetails.isEmpty()) {
+ damageDetails.forEach(damageDetail -> {
+ damageDetail.setReportingWorkId(reportingWork.getReportingWorkId());
+ damageDetail.setProcessId(reportingWork.getProcessId());
+ damageDetail.setOrderNumber(reportingWorkDetail.getOrderNumber());
+ damageDetail.setTechnologyNumber(reportingWorkDetail.getTechnologyNumber());
+ //鏄惁淇敼璐ㄦ鐘舵��
+ if (!Objects.equals(reportingWork.getThisProcess(), damageDetail.getResponsibleProcess()) && qualityInsStatus==2) {
+ damageDetail.setQualityInsStatus(1);
+ }
+ if (Objects.equals(reviewState, "review")) {
+ damageDetail.setQualityInsStatus(2);
+ }
+
+ damageDetailsMapper.insert(damageDetail);
+ });
+ }
+ //鎻掑叆鎶ュ伐鏁版嵁
+ reportingWorkDetailMapper.insert(reportingWorkDetail);
+ orderProcessDetailMapper.insertByReportingWorkDetail(reportingWorkDetail,reportingWork.getProcessId(),reportingWork.getThisProcess());
+ //淇敼鍖呰鏃朵慨鏀瑰簱瀛樻暟閲�
+ if (reportingWork.getNextProcess()==null || reportingWork.getNextProcess().isEmpty()){
+ //鑾峰彇璇ユ姤宸ヤ慨鏀瑰悗鐨勫彲鍏ュ簱鏁伴噺
+ Integer inventory = reportingWorkDetailMapper.selectInventory(reportingWork.getProcessId(),Integer.parseInt(reportingWorkDetail.getOrderNumber()),Integer.parseInt(reportingWorkDetail.getTechnologyNumber()),reportingWork.getThisProcess());
+ //淇敼娴佺▼鍗¤〃搴撳瓨鏁伴噺
+ flowCardMapper.updateInventory(reportingWork.getProcessId(),reportingWorkDetail.getOrderNumber(),reportingWorkDetail.getTechnologyNumber(),inventory);
+ }
+ });
+ //鑾峰彇璐ㄦ鏃堕棿
+ if (Objects.equals(reviewState, "review")) {
+ LocalDateTime
+ currentDate = LocalDateTime.now();
+ reportingWork.setQualityInsTime(currentDate);
+ reportingWorkMapper.updateById(reportingWork);
+ }
+
+ //淇敼灏忕墖娴佺▼琛ㄦ暟閲忎负鎶ュ伐鏄庣粏琛ㄦ暟閲�
+ //orderProcessDetailMapper.updateQuantity(reportingWork.getReportingWorkId(), reportingWork.getThisProcess(), "add");
+ //淇濆瓨鏃ュ織
+ Log log = new Log();
+ log.setContent(reportingWorkMap.toString());
+ log.setFunction("updateReportingWork鎶ュ伐淇敼");
+ log.setOperatorId((String) reportingWorkJson.get("userId"));
+ log.setOperator((String) reportingWorkJson.get("userName"));
+ logService.saveLog(log);
+
+ return true;
+ } else {
+ return false;
}
- //淇敼灏忕墖娴佺▼琛ㄦ暟閲忎负鎶ュ伐鏄庣粏琛ㄦ暟閲�
- //orderProcessDetailMapper.updateQuantity(reportingWork.getReportingWorkId(), reportingWork.getThisProcess(), "add");
- //淇濆瓨鏃ュ織
- Log log = new Log();
- log.setContent(reportingWorkMap.toString());
- log.setFunction("updateReportingWork鎶ュ伐淇敼");
- log.setOperatorId((String) reportingWorkJson.get("userId"));
- log.setOperator((String) reportingWorkJson.get("userName"));
- logService.saveLog(log);
-
- return true;
}
//鎶ュ伐绠$悊鏌ヨ
@@ -578,38 +584,65 @@
String lastProcess = reportingWorkMapper.selectLastProcess(processId);
//鑾峰彇鏄惁鏈夊凡琛ョ墖鎴栬繑宸�
Integer countStates= Integer.valueOf(reportingWorkMapper.getPatchConditionMp(reportingWorkId));
- //鍒ゆ柇鏄惁鏈夎ˉ鐗囪繑宸ユ暟鎹�
- if (countStates==0){
- //鍒ゆ柇鏄惁鏄叆搴撳伐搴�
- if (lastProcess.equals(thisProcess)) {//鏄叆搴撳伐搴�
- //鏌ヨ璇ユ祦绋嬪崱鏁伴噺銆佸彲鍏ュ簱鏁伴噺銆佸凡鍏ュ簱鏁伴噺
- Map<String, Object> list = reportingWorkMapper.selectReceiptQuantity(processId);
- if (list.get("quantity") == list.get("receiptQuantity")) {
- return false;
- } else {
- //杞崲绫诲瀷:宸插叆搴撴暟閲�
- Integer receiptQuantity = Integer.parseInt(list.get("receivedQuantity").toString());
- //杞崲绫诲瀷:鍙叆搴撴暟閲�
- Integer inventoryQuantity = Integer.parseInt(list.get("inventoryQuantity").toString());
- //鏌ヨ璇ユ姤宸ョ紪鍙锋湰宸ュ簭瀹屽伐鏁伴噺
- Integer completedQuantity = reportingWorkMapper.selectCompletedQuantity(reportingWorkId);
- //褰撹宸ュ簭瀹屽伐鏁伴噺灏忎簬绛変簬宸插叆搴撴暟閲忔椂
- //鍙叆搴撴暟閲�-宸插叆搴撴暟閲�>=鎶ュ伐缂栧彿鏈伐搴忓畬宸ユ暟閲�
- if (inventoryQuantity - receiptQuantity >= completedQuantity) {
+ //鏌ヨ璇ユ姤宸ユ槸鍚︿负鎶ュ伐杞Щ璁㈠崟
+ Integer transferState = reportingWorkMapper.selectReviewedState(reportingWorkId);
+ if (transferState !=3){
+ //鍒ゆ柇鏄惁鏈夎ˉ鐗囪繑宸ユ暟鎹�
+ if (countStates==0){
+ //鍒ゆ柇鏄惁鏄叆搴撳伐搴�
+ if (lastProcess.equals(thisProcess)) {//鏄叆搴撳伐搴�
+ //鏌ヨ璇ユ祦绋嬪崱鏁伴噺銆佸彲鍏ュ簱鏁伴噺銆佸凡鍏ュ簱鏁伴噺
+ Map<String, Object> list = reportingWorkMapper.selectReceiptQuantity(processId);
+ if (list.get("quantity") == list.get("receiptQuantity")) {
+ return false;
+ } else {
+ //杞崲绫诲瀷:宸插叆搴撴暟閲�
+ Integer receiptQuantity = Integer.parseInt(list.get("receivedQuantity").toString());
+ //杞崲绫诲瀷:鍙叆搴撴暟閲�
+ Integer inventoryQuantity = Integer.parseInt(list.get("inventoryQuantity").toString());
+ //鏌ヨ璇ユ姤宸ョ紪鍙锋湰宸ュ簭瀹屽伐鏁伴噺
+ Integer completedQuantity = reportingWorkMapper.selectCompletedQuantity(reportingWorkId);
+ //褰撹宸ュ簭瀹屽伐鏁伴噺灏忎簬绛変簬宸插叆搴撴暟閲忔椂
+ //鍙叆搴撴暟閲�-宸插叆搴撴暟閲�>=鎶ュ伐缂栧彿鏈伐搴忓畬宸ユ暟閲�
+ if (inventoryQuantity - receiptQuantity >= completedQuantity) {
+ //鏌ヨ褰撳墠鎶ュ伐缂栧彿瀹屽伐娆$牬鏁伴噺鐨勬暟鎹�
+ List<Map<String, Object>> workDateList = reportingWorkMapper.reportingWorkDate(reportingWorkId);
+ for (Map<String, Object> item : workDateList) {
+ //鏇存柊娴佺▼鍗″彲鍏ュ簱鏁伴噺
+ reportingWorkMapper.updateInventoryQuantity(processId, item.get("order_number"), item.get("technology_number"), item.get("completed_quantity"));
+ //鏇存柊鎶ュ伐娴佺▼琛ㄦ暟鎹�
+ reportingWorkMapper.updateWorkProcess(processId, item.get("order_number"), item.get("technology_number"), item.get("completed_quantity"), item.get("breakage_quantity"), thisProcess);
+ }
+ //鍒犻櫎鎶ュ伐锛屽皢瀹℃牳鐘舵�佹敼涓�-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 {
+ return false;
+ }
+ }
+
+ } else {//涓嶆槸鍏ュ簱宸ュ簭
+ if (count == 0) {
//鏌ヨ褰撳墠鎶ュ伐缂栧彿瀹屽伐娆$牬鏁伴噺鐨勬暟鎹�
List<Map<String, Object>> workDateList = reportingWorkMapper.reportingWorkDate(reportingWorkId);
for (Map<String, Object> item : workDateList) {
- //鏇存柊娴佺▼鍗″彲鍏ュ簱鏁伴噺
- reportingWorkMapper.updateInventoryQuantity(processId, item.get("order_number"), item.get("technology_number"), item.get("completed_quantity"));
//鏇存柊鎶ュ伐娴佺▼琛ㄦ暟鎹�
reportingWorkMapper.updateWorkProcess(processId, item.get("order_number"), item.get("technology_number"), item.get("completed_quantity"), item.get("breakage_quantity"), thisProcess);
}
//鍒犻櫎鎶ュ伐锛屽皢瀹℃牳鐘舵�佹敼涓�-1
reportingWorkMapper.deleteWork(reportingWorkId);
+
//淇濆瓨鏃ュ織
Log log = new Log();
log.setContent(reportingWorkId+"-"+processId+"-"+thisProcess);
- log.setFunction("deleteWork鎶ュ伐鍏ュ簱鍒犻櫎");
+ log.setFunction("deleteWork鎶ュ伐鍒犻櫎");
log.setOperatorId(userId);
log.setOperator(userName);
logService.saveLog(log);
@@ -618,34 +651,14 @@
return false;
}
}
-
- } else {//涓嶆槸鍏ュ簱宸ュ簭
- if (count == 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);
-
- //淇濆瓨鏃ュ織
- Log log = new Log();
- log.setContent(reportingWorkId+"-"+processId+"-"+thisProcess);
- log.setFunction("deleteWork鎶ュ伐鍒犻櫎");
- log.setOperatorId(userId);
- log.setOperator(userName);
- logService.saveLog(log);
- return true;
- } else {
- return false;
- }
}
- }
- else {
+ else {
+ return false;
+ }
+ } else {
return false;
}
+
} else {
return false;
@@ -829,12 +842,24 @@
@Transactional(rollbackFor = Exception.class)
public Object reportingWorkTransferSv(Map<String, String> reportingWork) {
+ Map<String, Object> result = new HashMap<>();
+
Order oldOrder = orderMapper.selectOrderId(reportingWork.get("oldOrderId"));
OrderDetail oldOrderDetail = orderDetailMapper.selectOne(
new QueryWrapper<OrderDetail>()
.eq("order_id", reportingWork.get("oldOrderId"))
.eq("order_number", reportingWork.get("oldOrderNumber"))
);
+ if(oldOrder == null){
+ result.put("msg","鏃ц鍗曚笉瀛樺湪");
+ result.put("data",false);
+ return result;
+ }
+ if(oldOrderDetail == null){
+ result.put("msg","鏃ц鍗曟搴忓彿涓嶅瓨鍦�");
+ result.put("data",false);
+ return result;
+ }
Order newOrder = orderMapper.selectOrderId(reportingWork.get("newOrderId"));
OrderDetail newOrderDetail = orderDetailMapper.selectOne(
@@ -842,15 +867,37 @@
.eq("order_id", reportingWork.get("newOrderId"))
.eq("order_number", reportingWork.get("newOrderNumber"))
);
+ if (newOrder == null){
+ result.put("msg","鏂拌鍗曚笉瀛樺湪");
+ result.put("data",false);
+ return result;
+ }
+ if(newOrderDetail == null){
+ result.put("msg","鏂拌鍗曟搴忓彿涓嶅瓨鍦�");
+ result.put("data",false);
+ return result;
+ }
+ if(Objects.equals(oldOrder.getOrderId(), newOrder.getOrderId())){
+ result.put("msg","鏂版棫璁㈠崟鍙蜂竴鑷�");
+ result.put("data",false);
+ return result;
+ }
+
if(!Objects.equals(oldOrder.getCustomerId(), newOrder.getCustomerId())){
- return "鏂版棫璁㈠崟瀹㈡埛涓嶄竴鑷�";
+ result.put("msg","鏂版棫璁㈠崟瀹㈡埛涓嶄竴鑷�");
+ result.put("data",false);
+ return result;
}
if(!Objects.equals(oldOrderDetail.getProductId(), newOrderDetail.getProductId())){
- return "鏂版棫璁㈠崟浜у搧涓嶄竴鑷�";
+ result.put("msg","鏂版棫璁㈠崟浜у搧涓嶄竴鑷�");
+ result.put("data",false);
+ return result;
}
if (!Objects.equals(oldOrderDetail.getWidth(), newOrderDetail.getWidth())
|| !Objects.equals(oldOrderDetail.getHeight(), newOrderDetail.getHeight())){
- return "鏂版棫璁㈠崟灏哄涓嶄竴鑷�";
+ result.put("msg","鏂版棫璁㈠崟灏哄涓嶄竴鑷�");
+ result.put("data",false);
+ return result;
}
@@ -861,7 +908,9 @@
.eq("order_number", reportingWork.get("oldOrderNumber"))
);
if(oldOrderProcessDetailList.isEmpty()){
- return "鏃ц鍗曟湭鍒嗘祦绋嬪崱";
+ result.put("msg","鏃ц鍗曟湭鍒嗘祦绋嬪崱");
+ result.put("data",false);
+ return result;
}
//鑾峰彇鏂拌鍗曟槸鍚︽祦绋嬪崱鏄惁瀛樺湪
List<OrderProcessDetail> newOrderProcessDetailList = orderProcessDetailMapper
@@ -870,7 +919,9 @@
.eq("order_number", reportingWork.get("newOrderNumber"))
);
if(newOrderProcessDetailList.isEmpty()){
- return "鏂拌鍗曟湭鍒嗘祦绋嬪崱";
+ result.put("msg","鏂拌鍗曟湭鍒嗘祦绋嬪崱");
+ result.put("data",false);
+ return result;
}
//鏂拌鍗曟槸鍚﹀瓨鍦ㄥ凡缁忔帓鐗堝簭鍙�
List<FlowCard> newFlowCardLayoutStatus = flowCardMapper.selectList(new QueryWrapper<FlowCard>()
@@ -879,7 +930,9 @@
.gt("layout_status",0)
);
if(!newFlowCardLayoutStatus.isEmpty()){
- return "鏂拌鍗曟搴忓彿瀛樺湪鎺掔増";
+ result.put("msg","鏂拌鍗曟搴忓彿瀛樺湪鎺掔増");
+ result.put("data",false);
+ return result;
}
//鑾峰彇鏃ц鍗曟姤宸ユ暟鎹眹鎬�
List<OrderProcessDetail> oldOrderProcessDetailForReport = orderProcessDetailMapper
@@ -1015,9 +1068,12 @@
String.class);
if(response.getStatusCode() == HttpStatus.OK){
- return true;
+ result.put("data",true);
+ return result;
}else{
- return "杩炴帴mes鍝嶅簲瓒呮椂";
+ result.put("msg","杩炴帴mes鍝嶅簲瓒呮椂");
+ result.put("data",false);
+ return result;
}
}
--
Gitblit v1.8.0