From 768e16999a8ce4bb500490ee76c659aa61ea1783 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期二, 25 三月 2025 10:08:13 +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 | 516 ++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 419 insertions(+), 97 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 a5cd867..1ab73e9 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
@@ -4,19 +4,22 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.Constants;
-import com.example.erp.entity.pp.DamageDetails;
-import com.example.erp.entity.pp.FlowCard;
-import com.example.erp.entity.pp.ReportingWork;
-import com.example.erp.entity.pp.ReportingWorkDetail;
+import com.example.erp.dto.pp.OrderNumberTransferDTO;
+import com.example.erp.entity.pp.*;
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.userInfo.Log;
import com.example.erp.entity.userInfo.SysError;
import com.example.erp.exception.ServiceException;
+import com.example.erp.mapper.mm.FinishedOperateLogMapper;
import com.example.erp.mapper.pp.*;
import com.baomidou.dynamic.datasource.annotation.DS;
+import com.example.erp.mapper.sd.OrderDetailMapper;
import com.example.erp.mapper.sd.OrderGlassDetailMapper;
import com.example.erp.mapper.sd.OrderMapper;
import com.example.erp.mapper.sd.OrderProcessDetailMapper;
@@ -24,47 +27,49 @@
import com.example.erp.service.sd.OrderProcessDetailService;
import com.example.erp.service.userInfo.LogService;
import com.example.erp.service.userInfo.SysErrorService;
-import org.springframework.beans.factory.annotation.Autowired;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.web.client.RestTemplate;
import java.text.SimpleDateFormat;
+import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
@Service
@DS("pp")
+@RequiredArgsConstructor
public class ReportingWorkService {
- final
- ReportingWorkMapper reportingWorkMapper;
- final
- BasicDateProduceMapper basicDateProduceMapper;
- final
- DamageDetailsMapper damageDetailsMapper;
- final
- OrderProcessDetailMapper orderProcessDetailMapper;
- final
- ReportingWorkDetailMapper
- reportingWorkDetailMapper;
- final OrderMapper
- orderMapper;
+ private final ReportingWorkTransferMapper reportingWorkTransferMapper;
+ private final ReportingWorkMapper reportingWorkMapper;
+ private final BasicDateProduceMapper basicDateProduceMapper;
+ private final DamageDetailsMapper damageDetailsMapper;
+ private final OrderProcessDetailMapper orderProcessDetailMapper;
+ private final ReportingWorkDetailMapper reportingWorkDetailMapper;
+ private final OrderMapper orderMapper;
+ private final OrderDetailMapper orderDetailMapper;
- final
- FlowCardMapper flowCardMapper;
+ private final FlowCardMapper flowCardMapper;
- final
- OrderProcessDetailService orderProcessDetailService;
+ private final OrderProcessDetailService orderProcessDetailService;
- final
- LogService logService;
+ private final LogService logService;
- final LogMapper logMapper;
+ private final LogMapper logMapper;
private final OrderGlassDetailMapper orderGlassDetailMapper;
private final SysErrorService sysErrorService;
+ private final FinishedOperateLogMapper finishedOperateLogMapper;
+ private final RestTemplate restTemplate;
- 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) {
+ /*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;
this.damageDetailsMapper = damageDetailsMapper;
@@ -77,10 +82,15 @@
this.logMapper = logMapper;
this.orderGlassDetailMapper = orderGlassDetailMapper;
this.sysErrorService = sysErrorService;
- }
+ this.orderDetailMapper = orderDetailMapper;
+ this.finishedOperateLogMapper = finishedOperateLogMapper;
+ this.reportingWorkTransferMapper = reportingWorkTransferMapper;
+ }*/
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);
@@ -124,38 +134,62 @@
map.put("device", reportingWorkMapper.SelectWorkBasicDeviceMp(process));
//鐝粍涓嬫媺妗�
map.put("teams", reportingWorkMapper.SelectWorkBasicTeamsMp(process));
-
+ //娆$牬绫诲瀷
map.put("breakageType", reportingWorkMapper.selectBasicNameByType("breakagetype"));
+ //娆$牬鍘熷洜
map.put("breakageReason", reportingWorkMapper.selectBasicNameByType("breakagereason"));
//鏌ヨ鏈伐搴忔姤宸ラ渶瑕佸摢鍑犲眰锛屼笂宸ュ簭鏄粈涔�
String obtainTechnology = reportingWorkMapper.SelectWorkTechnologyMp(processIdStr);
- map.put("numberList", flowCardMapper.getGlassNumber(Integer.valueOf(technologyStr),processIdStr));
+ map.put("numberList", flowCardMapper.getGlassNumber(technologyStr,processIdStr));
//鍒ゆ柇鏈伐搴忔槸涓嶆槸绗竴閬撳伐搴�
if (interceptProcess.equals(process)) {
//鏄涓�閬撳伐搴忥紝鏌ヨ娴佺▼鍗℃暟鎹�
map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr, technologyStr, process,reportType));
} else {
- //涓嶆槸绗竴閬撳伐搴忥紝鏌ヨ鎶ュ伐鏁版嵁
- List<Map<String,String>> details = reportingWorkMapper.SelectReworlDetailMp(processIdStr, technologyStr, process,previousProcess);
- if(process.equals("涓┖")){
- String orderId = processIdStr.substring(0,10);
- details.forEach( detail -> {
- Integer glassId = orderGlassDetailMapper.
- getMinIdByGroup(orderId,
- String.valueOf(detail.get("order_number")),
- String.valueOf(detail.get("group")));
- int listGlassId = Integer.parseInt(String.valueOf(detail.get("glassId")));
- if(listGlassId !=glassId){
- detail.put("rowClass","latter");
+ ReportingWork retrievedData = (ReportingWork) map.get("data");
+ if (retrievedData!=null){
+ Integer reviewedState = retrievedData.getReviewedState();
+ //鏍规嵁瀹℃牳鐘舵�佹煡璇㈡湭瀹℃牳鏁版嵁
+ if (reviewedState==1){//宸插鏍�
+ //涓嶆槸绗竴閬撳伐搴忥紝鏌ヨ鎶ュ伐鏁版嵁
+ List<Map<String,String>> details = reportingWorkMapper.SelectReworlDetailMp(processIdStr, technologyStr, process,previousProcess,laminating);
+ if(process.equals("涓┖")){
+ //鑾峰彇璇ユ祦绋嬪崱璁㈠崟鍙�
+ String orderId = reportingWorkMapper.selectOrderid(processIdStr);
+ details.forEach( detail -> {
+ Integer glassId = orderGlassDetailMapper.
+ getMinIdByGroup(orderId,
+ String.valueOf(detail.get("order_number")),
+ String.valueOf(detail.get("group")));
+ int listGlassId = Integer.parseInt(String.valueOf(detail.get("glassId")));
+ if(listGlassId !=glassId){
+ detail.put("rowClass","latter");
+ }
+ });
}
- });
+ map.put("Detail",details );
+ }else {
+ //涓嶆槸绗竴閬撳伐搴忥紝鏌ヨ鎶ュ伐鏁版嵁
+ List<Map<String,String>> details = reportingWorkMapper.SelectReworlDetailMpReview(processIdStr, technologyStr, process,previousProcess,laminating);
+ if(process.equals("涓┖")){
+ String orderId = reportingWorkMapper.selectOrderid(processIdStr);
+ details.forEach( detail -> {
+ Integer glassId = orderGlassDetailMapper.
+ getMinIdByGroup(orderId,
+ String.valueOf(detail.get("order_number")),
+ String.valueOf(detail.get("group")));
+ int listGlassId = Integer.parseInt(String.valueOf(detail.get("glassId")));
+ if(listGlassId !=glassId){
+ detail.put("rowClass","latter");
+ }
+ });
+ }
+ map.put("Detail",details );
+ }
}
-
-
- map.put("Detail",details );
}
// 绗竴閬撳伐搴忥紙娴佺▼鍗℃暟+琛ョ墖鏁伴噺-瀹屽伐鏁�-娆$牬鏁�-杩斿伐鏈畬鎴愭暟-绂佺敤鏁伴噺锛�
@@ -171,15 +205,26 @@
//鍘嗗彶宸ュ簭
map.put("historyProcess", reportingWorkMapper.SelectHistoryProcessMp(historyProcess, process));
}
-
-
return map;
}
//鏌ヨ宸ュ簭
- public Map<String, Object> SelectProcessSv() {
+ public Map<String, Object> SelectProcessSv(String userId) {
Map<String, Object> map = new HashMap<>();
- map.put("process", reportingWorkMapper.SelectProcessMp());
+ String process = reportingWorkMapper.selectUserProcess(userId);
+ if (process==null) {
+ map.put("process", reportingWorkMapper.SelectProcessMp());
+ }
+ else {
+ //瀵规寚瀹氬伐搴忓崟鐙煡璇�
+ if (process.equals("澶硅兌")){
+ map.put("process",reportingWorkMapper.getSelectProcessJiajiao() );
+ }
+ if (process.equals("鎶�鏈儴澶氭洸")){
+ map.put("process",reportingWorkMapper.getSelectProcessDuoqu() );
+ }
+ }
+
return map;
}
@@ -198,27 +243,28 @@
String formattedDate = dateFormat.format(currentDate);
String reportingWorkId = "BG" + formattedDate + formattedNumber;
reportingWork.setReportingWorkId(reportingWorkId);
- reportingWork.setProcessId(reportingWork.getProcessId().substring(0, 14));
+ String[] processIdStr = reportingWork.getProcessId().split("/");
+ reportingWork.setProcessId(processIdStr[0]);
int reviewState = (int) reportingWorkJson.get("type");
- if (reviewState == 1) {
+ 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;
+
+ reportingWork.setNextProcess(orderProcessDetailMapper.selectNextProcess(processIdStr[0],processIdStr[1],reportingWork.getThisProcess()));
//涓昏〃鎻掑叆
reportingWorkMapper.insert(reportingWork);
//鍓〃寰幆鎻掑叆锛屽苟涓旀彃鍏ユ鐮翠俊鎭〃銆傚啀鏍规嵁娆$牬淇℃伅淇敼璁㈠崟鐜荤拑娴佺▼琛ㄧ殑瀹屽伐鏁伴噺涓庡埡鐮存暟閲�
reportingWorkDetails.forEach(reportingWorkDetail -> {
-// reportingWork.setThisProcessQuantity(
-// reportingWork.getThisProcessQuantity()
-// +reportingWorkDetail.getCompletedQuantity()
-// +reportingWorkDetail.getBreakageQuantity());
-// reportingWork.setThisCompletedQuantity(
-// reportingWork.getThisCompletedQuantity()+reportingWorkDetail.getCompletedQuantity());
-// reportingWork.setThisWornQuantity(
-// reportingWork.getThisWornQuantity()+reportingWorkDetail.getBreakageQuantity());
int qualityInsStatus = (int) reportingWorkJson.get("qualityInsStatus");
reportingWorkDetail.setReportingWorkId(reportingWorkId);
@@ -233,6 +279,9 @@
//璺ㄥ伐搴忔鐮翠慨鏀硅川妫�鐘舵��
if (!damageDetail.getResponsibleProcess().equals(reportingWork.getThisProcess()) && qualityInsStatus==2) {
damageDetail.setQualityInsStatus(1);
+ }
+ if (isPatch == 1){
+ damageDetail.setQualityInsStatus(2);
}
damageDetailsMapper.insert(damageDetail);
});
@@ -286,17 +335,21 @@
orderProcessDetail.setReportingWorkNum(reportingWorkDetail.getCompletedQuantity());
orderProcessDetail.setReportingWorkNumCount(reportingWorkDetail.getCompletedQuantity());
- //鏍规嵁璁㈠崟id锛岃鍗曞簭鍙凤紝浠ュ強灏忕墖搴忓彿 鏇存柊灏忕墖娴佺▼鐨勫畬宸ユ暟閲忎互鍙婂埡鐮存暟閲�
- LambdaUpdateWrapper<OrderProcessDetail> updateWrapper = new LambdaUpdateWrapper<>();
- updateWrapper.eq(OrderProcessDetail::getOrderNumber, reportingWorkDetail.getOrderNumber())
- .eq(OrderProcessDetail::getProcessId, reportingWork.getProcessId().substring(0, 14))
- .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("broken_num =broken_num +" + orderProcessDetail.getBrokenNum());
- orderProcessDetailMapper.update(null, updateWrapper);
+
+ 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)) {
@@ -304,7 +357,7 @@
}
//鏇存柊娴佺▼鍗¤〃鐨勬姤宸ユ暟閲�
- if (Objects.equals(reportingWork.getNextProcess(), "")) {
+ if (Objects.equals(reportingWork.getNextProcess(), "")|| Objects.equals(reportingWork.getNextProcess(), null)) {
LambdaUpdateWrapper<FlowCard> flowCardLambdaUpdateWrapper =
new LambdaUpdateWrapper<>();
flowCardLambdaUpdateWrapper
@@ -333,21 +386,28 @@
String processId = reportingWork.get("processId");
String thisProcess = reportingWork.get("thisProcess");
+ String userName=reportingWork.get("userName");
int index = processId.lastIndexOf("/") + 1;
String result = processId.substring(index);
String technologyStr = reportingWork.get("technologyStr");
-
-if (thisProcess.equals("澶硅兌") || thisProcess.equals("涓┖") || thisProcess.equals("鍖呰")){
+ String[] processIdStr = processId.split("/");
+ String nowDate = LocalDate.now().toString();
+ //鑾峰彇鎶ュ伐宸ュ簭鏄惁涓哄鍚堝伐绋�
+ String laminating = reportingWorkMapper.getProcessLaminating(thisProcess);
+//鍚堢墖宸ュ簭
+if (laminating.equals("laminating")){
LambdaUpdateWrapper
<ReportingWork> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper
- .eq(ReportingWork::getProcessId, processId.substring(0, 14))
+ .eq(ReportingWork::getProcessId, processIdStr[0])
.eq(ReportingWork::getThisProcess, reportingWork.get("process"))
.eq(ReportingWork::getReviewedState, 0)
- .setSql("reviewed_state =1");
+ .setSql("reviewed_state =1")
+ .set(ReportingWork::getReviewed, userName)
+ .set(ReportingWork::getExamineTime, nowDate);
reportingWorkMapper.update(null, updateWrapper);
}else {
- reportingWorkMapper.ReviewReportingWorkMp(processId.substring(0, 14),reportingWork.get("process"),technologyStr);
+ reportingWorkMapper.ReviewReportingWorkMp(processIdStr[0],reportingWork.get("process"),technologyStr,userName);
}
return true;
@@ -379,13 +439,16 @@
});
Map<String, Object> map = new HashMap<>();
+ //鎶ュ伐涓昏〃
map.put("reportingWork", reportingWork);
+ //鎶ュ伐鏄庣粏
map.put("reportingWorkDetails", reportingWorkDetails);
+ //鎶ュ伐涓嬫媺妗嗘暟鎹�
map.put("basic", getReportingWorkBase(reportingWork.getProcessId(), reportingWork.getThisProcess()));
//鏍规嵁鎶ュ伐缂栧彿鑾峰彇灞�
map.put("layer", reportingWorkMapper.selectLayerByReportingWorkId(reportingWorkId));
map.put("numberList", flowCardMapper.getGlassNumber(reportingWorkMapper.selectLayerByReportingWorkId(reportingWorkId),reportingWork.getProcessId()));
-
+ map.put("title", "琛ョ墖鐘舵��");
return map;
}
@@ -397,8 +460,9 @@
map.put("deviceType", reportingWorkMapper.SelectWorkBasicDeviceMp(thisProcess));
//鐝粍涓嬫媺妗�
map.put("teamsType", reportingWorkMapper.SelectWorkBasicTeamsMp(thisProcess));
-
+ //娆$牬绫诲瀷
map.put("breakageType", reportingWorkMapper.selectBasicNameByType("breakagetype"));
+ //娆$牬鍘熷洜
map.put("breakageReason", reportingWorkMapper.selectBasicNameByType("breakagereason"));
//鑾峰彇璇ユ祦绋嬪崱鍙峰巻鍙叉姤宸ュ伐搴�
@@ -434,7 +498,7 @@
.delete(new LambdaQueryWrapper<ReportingWorkDetail>()
.eq(ReportingWorkDetail::getReportingWorkId, reportingWork.getReportingWorkId()));
- //鏇寸粏鎶ュ伐涓昏〃
+ //鏇存柊鎶ュ伐涓昏〃
int qualityInsStatus = (int) reportingWorkJson.get("qualityInsStatus");
reportingWorkMapper.updateById(reportingWork);
reportingWorkDetails.forEach(reportingWorkDetail -> {
@@ -447,6 +511,7 @@
damageDetail.setProcessId(reportingWork.getProcessId());
damageDetail.setOrderNumber(reportingWorkDetail.getOrderNumber());
damageDetail.setTechnologyNumber(reportingWorkDetail.getTechnologyNumber());
+ //鏄惁淇敼璐ㄦ鐘舵��
if (!Objects.equals(reportingWork.getThisProcess(), damageDetail.getResponsibleProcess()) && qualityInsStatus==2) {
damageDetail.setQualityInsStatus(1);
}
@@ -498,6 +563,7 @@
Map<String, Object> map = new HashMap<>();
map.put("data", reportingWorkMapper.selectReportingWorkMp(offset, pageSize, selectTime1, selectTime2, orderId, reportingWork));
map.put("total", reportingWorkMapper.getPageTotal(offset, pageSize, selectTime1, selectTime2, orderId, reportingWork));
+ map.put("footSum" ,reportingWorkMapper.getFootSum(selectTime1, selectTime2, orderId,reportingWork));
return map;
}
@@ -632,31 +698,103 @@
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(),
- reportingWork.getProcessId(),
- reportingWork.getThisProcess()
- );
+ //鏌ヨ娴佺▼鍗″伐鑹烘祦绋�
+ 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())) {
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(ReportingWork::getReviewedState,0)//瀹℃牳鐘舵�佺瓑浜�0锛屾湭鍒犻櫎
+ .eq(ReportingWork::getThisWornQuantity,0)
+ .eq(ReportingWorkDetail::getTechnologyNumber,reportingWorkDetail.getTechnologyNumber())
+ .orderByDesc(ReportingWork::getId)
+
+ );
- //鑾峰彇褰撳墠鏈�澶ф姤宸ュ崟鍙风敓鎴愭姤宸ュ崟鍙�
- 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;
+ //鍒ゆ柇鎶ュ伐琛ㄦ槸鍚﹀瓨鍦紝涓嶅瓨鍦ㄥ垯鏂板鎶ュ伐涓诲壇琛ㄦ暟鎹紝瀛樺湪鍒欎慨鏀瑰壇琛ㄦ暟鎹�
+ 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;
- reportingWork.setReportingWorkId(reportingWorkId);
- reportingWorkDetail.setReportingWorkId(reportingWorkId);
+ reportingWork.setReportingWorkId(reportingWorkId);
+ reportingWorkDetail.setReportingWorkId(reportingWorkId);
- reportingWorkMapper.insert(reportingWork);
- reportingWorkDetailMapper.insert(reportingWorkDetail);
+ reportingWorkMapper.insert(reportingWork);
+ reportingWorkDetailMapper.insert(reportingWorkDetail);
+ }else{
+
+ ReportingWorkDetail reportingWorkDetail1 = reportingWorkDetailMapper.selectOne(
+ new LambdaQueryWrapper<ReportingWorkDetail>()
+ .eq(ReportingWorkDetail::getReportingWorkId,ReportingWorks.get(0).getReportingWorkId())
+ .eq(ReportingWorkDetail::getOrderNumber,reportingWorkDetail.getOrderNumber())
+ .eq(ReportingWorkDetail::getTechnologyNumber,reportingWorkDetail.getTechnologyNumber())
+ );
+
+ if(reportingWorkDetail1 == null){
+ reportingWorkDetail.setReportingWorkId(ReportingWorks.get(0).getReportingWorkId());
+ 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);
+ }
+
+
+
+
+ LambdaUpdateWrapper<ReportingWork> reportingWorkLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+ reportingWorkLambdaUpdateWrapper
+ .eq(ReportingWork::getReportingWorkId, ReportingWorks.get(0).getReportingWorkId() )
+ .setSql("this_completed_quantity = this_completed_quantity+" + reportingWorkDetail.getCompletedQuantity());
+ reportingWorkMapper.update(null, reportingWorkLambdaUpdateWrapper);
+
+ }
@@ -668,7 +806,7 @@
//鏍规嵁璁㈠崟id锛岃鍗曞簭鍙凤紝浠ュ強灏忕墖搴忓彿 鏇存柊灏忕墖娴佺▼鐨勫畬宸ユ暟閲忎互鍙婂埡鐮存暟閲�
LambdaUpdateWrapper<OrderProcessDetail> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(OrderProcessDetail::getOrderNumber, reportingWorkDetail.getOrderNumber())
- .eq(OrderProcessDetail::getProcessId, reportingWork.getProcessId().substring(0, 14))
+ .eq(OrderProcessDetail::getProcessId, reportingWork.getProcessId())
.eq(OrderProcessDetail::getOrderId, reportingWork.getOrderId())
.eq(OrderProcessDetail::getProcess, reportingWork.getThisProcess())
.eq(OrderProcessDetail::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber())
@@ -688,4 +826,188 @@
}
}
+
+ @Transactional(rollbackFor = Exception.class)
+ public Object reportingWorkTransferSv(Map<String, String> reportingWork) {
+ 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"))
+ );
+
+ Order newOrder = orderMapper.selectOrderId(reportingWork.get("newOrderId"));
+ OrderDetail newOrderDetail = orderDetailMapper.selectOne(
+ new QueryWrapper<OrderDetail>()
+ .eq("order_id", reportingWork.get("newOrderId"))
+ .eq("order_number", reportingWork.get("newOrderNumber"))
+ );
+ if(!Objects.equals(oldOrder.getCustomerId(), newOrder.getCustomerId())){
+ return "鏂版棫璁㈠崟瀹㈡埛涓嶄竴鑷�";
+ }
+ if(!Objects.equals(oldOrderDetail.getProductId(), newOrderDetail.getProductId())){
+ return "鏂版棫璁㈠崟浜у搧涓嶄竴鑷�";
+ }
+ if (!Objects.equals(oldOrderDetail.getWidth(), newOrderDetail.getWidth())
+ || !Objects.equals(oldOrderDetail.getHeight(), newOrderDetail.getHeight())){
+ return "鏂版棫璁㈠崟灏哄涓嶄竴鑷�";
+ }
+
+
+ //鑾峰彇鏃ц鍗曟槸鍚︽祦绋嬪崱鏄惁瀛樺湪
+ List<OrderProcessDetail> oldOrderProcessDetailList = orderProcessDetailMapper
+ .selectList(new QueryWrapper<OrderProcessDetail>()
+ .eq("order_id", reportingWork.get("oldOrderId"))
+ .eq("order_number", reportingWork.get("oldOrderNumber"))
+ );
+ if(oldOrderProcessDetailList.isEmpty()){
+ return "鏃ц鍗曟湭鍒嗘祦绋嬪崱";
+ }
+ //鑾峰彇鏂拌鍗曟槸鍚︽祦绋嬪崱鏄惁瀛樺湪
+ List<OrderProcessDetail> newOrderProcessDetailList = orderProcessDetailMapper
+ .selectList(new QueryWrapper<OrderProcessDetail>()
+ .eq("order_id", reportingWork.get("newOrderId"))
+ .eq("order_number", reportingWork.get("newOrderNumber"))
+ );
+ if(newOrderProcessDetailList.isEmpty()){
+ return "鏂拌鍗曟湭鍒嗘祦绋嬪崱";
+ }
+ //鏂拌鍗曟槸鍚﹀瓨鍦ㄥ凡缁忔帓鐗堝簭鍙�
+ List<FlowCard> newFlowCardLayoutStatus = flowCardMapper.selectList(new QueryWrapper<FlowCard>()
+ .eq("order_id", reportingWork.get("newOrderId"))
+ .eq("order_number", reportingWork.get("newOrderNumber"))
+ .gt("layout_status",0)
+ );
+ if(!newFlowCardLayoutStatus.isEmpty()){
+ return "鏂拌鍗曟搴忓彿瀛樺湪鎺掔増";
+ }
+ //鑾峰彇鏃ц鍗曟姤宸ユ暟鎹眹鎬�
+ List<OrderProcessDetail> oldOrderProcessDetailForReport = orderProcessDetailMapper
+ .selectList(new QueryWrapper<OrderProcessDetail>()
+ .eq( "order_id", reportingWork.get("oldOrderId"))
+ .eq("order_number", reportingWork.get("oldOrderNumber"))
+ .gt("reporting_work_num",0)
+ );
+
+ Map<String,Object> log = new HashMap<>();
+ log.put("oldOrderBeforeChange",oldOrderProcessDetailForReport);
+
+ Map<String,Object> newOrderLog = new HashMap<>();
+ newOrderLog.put("newOrderBeforeChange",newOrderProcessDetailList);
+
+ //浼犵粰mes娴佺▼鍗℃暟閲忛泦鍚�
+ List<OrderNumberTransferDTO> orderNumberTransferList = new ArrayList<>();
+
+ oldOrderProcessDetailForReport.forEach(oldOrderProcessDetail -> {
+ int maxNum = 0;
+ for(OrderProcessDetail newOrderProcessDetail : newOrderProcessDetailList){
+ if(oldOrderProcessDetail.getReportingWorkNum() == 0){
+ break;
+ }
+ //鍒ゆ柇灏忕墖鏄惁涓�鑷达紝宸ュ簭鏄惁涓�鑷�
+ if(newOrderProcessDetail.getProcess().equals(oldOrderProcessDetail.getProcess()) &&
+ Objects.equals(newOrderProcessDetail.getTechnologyNumber(), oldOrderProcessDetail.getTechnologyNumber())){
+ //鍒ゆ柇鏄惁涓虹涓�閬撳伐搴忥紝缁欏彲杞Щ鏈�澶у�艰祴鍊�
+ if(oldOrderProcessDetail.getProcess().equals("鍒囧壊")){
+ FlowCard thisFlowCard = flowCardMapper.selectOne(new QueryWrapper<FlowCard>()
+ .eq("process_id", newOrderProcessDetail.getProcessId())
+ .eq("order_number", newOrderProcessDetail.getOrderNumber())
+ .eq("technology_number",newOrderProcessDetail.getTechnologyNumber())
+ );
+ maxNum = thisFlowCard.getQuantity();
+ }else{
+ //褰撲笉鏄涓�閬撳伐搴忓垯锛屾嬁涓婁竴閬撳伐搴忎綔涓烘渶澶у��
+ maxNum = orderProcessDetailMapper.selectById(newOrderProcessDetail.getId()-1).getReportingWorkNum();
+ }
+ //鍒ゆ柇琚浆绉荤殑鏁伴噺鏄惁澶т簬鍙浆绉荤殑鏁伴噺鏈�澶у��
+ int transferNum = 0;
+ if(oldOrderProcessDetail.getReportingWorkNum() > maxNum){
+ transferNum = maxNum;
+ oldOrderProcessDetail.setReportingWorkNum(oldOrderProcessDetail.getReportingWorkNum()-maxNum);
+ oldOrderProcessDetail.setReportingWorkNumCount(oldOrderProcessDetail.getReportingWorkNumCount()-maxNum);
+ }else{
+ transferNum = oldOrderProcessDetail.getReportingWorkNum();
+ oldOrderProcessDetail.setReportingWorkNum(0);
+ oldOrderProcessDetail.setReportingWorkNumCount(0);
+ }
+ //鏇存柊鏃ц鍗曞皬鐗囨祦绋嬭〃鐨勬姤宸ユ暟閲�
+ orderProcessDetailMapper.update(null,new UpdateWrapper<OrderProcessDetail>()
+ .set("reporting_work_num",oldOrderProcessDetail.getReportingWorkNum())
+ .set("reporting_work_num_count",oldOrderProcessDetail.getReportingWorkNumCount())
+ .eq("id",oldOrderProcessDetail.getId())
+ );
+ //鏇存柊鏂拌鍗曞皬鐗囨祦绋嬭〃鐨勬姤宸ユ暟閲�
+ orderProcessDetailMapper.update(null,new UpdateWrapper<OrderProcessDetail>()
+ .set("reporting_work_num",transferNum)
+ .set("reporting_work_num_count",transferNum)
+ .eq("id",newOrderProcessDetail.getId())
+ );
+ if(oldOrderProcessDetail.getProcess().equals("鍒囧壊")){
+ //鏇存柊鏃ц鍗曟祦绋嬪崱杞嚭鏁伴噺
+ flowCardMapper.update(null,new UpdateWrapper<FlowCard>()
+ .setSql("export_number = export_number + "+transferNum)
+ .eq("process_id", oldOrderProcessDetail.getProcessId())
+ .eq("order_number", oldOrderProcessDetail.getOrderNumber())
+ .eq("technology_number",oldOrderProcessDetail.getTechnologyNumber())
+ );
+ //鏇存柊鏂拌鍗曟祦绋嬪崱杞嚭鏁伴噺
+ flowCardMapper.update(null,new UpdateWrapper<FlowCard>()
+ .setSql("import_number = import_number + "+transferNum)
+ .eq("process_id", newOrderProcessDetail.getProcessId())
+ .eq("order_number", newOrderProcessDetail.getOrderNumber())
+ .eq("technology_number",newOrderProcessDetail.getTechnologyNumber())
+ );
+
+ //浼犵粰mes鏁版嵁璧嬪��
+ OrderNumberTransferDTO orderNumberTransfer = new OrderNumberTransferDTO();
+ orderNumberTransfer.setChangeNumber(transferNum);
+ orderNumberTransfer.setOldProcessId(oldOrderProcessDetail.getProcessId());
+ orderNumberTransfer.setNewProcessId(newOrderProcessDetail.getProcessId());
+ orderNumberTransfer.setOldOrderNumber(oldOrderProcessDetail.getOrderNumber());
+ orderNumberTransfer.setNewOrderNumber(newOrderProcessDetail.getOrderNumber());
+ orderNumberTransfer.setOldTechnologyNumber(oldOrderProcessDetail.getTechnologyNumber());
+ orderNumberTransfer.setNewTechnologyNumber(newOrderProcessDetail.getTechnologyNumber());
+ orderNumberTransferList.add(orderNumberTransfer);
+
+ }
+
+ }
+ }
+ });
+
+
+ //鎶婃棫璁㈠崟鏁版嵁鍜屾柊璁㈠崟鏁版嵁浼犲埌鏃ュ織琛ㄥ綋涓�
+ log.put("oldOrderChange",JSON.toJSONString(oldOrderProcessDetailForReport));
+
+ newOrderLog.put("newOrderChange",orderProcessDetailMapper
+ .selectList(new QueryWrapper<OrderProcessDetail>()
+ .eq("order_id", reportingWork.get("newOrderId"))
+ .eq("order_number", reportingWork.get("newOrderNumber"))
+ ));
+ //鏃ц鍗曚俊鎭紶鍏ユ棩蹇�
+ ReportingWorkTransfer reportingWorkTransfer = new ReportingWorkTransfer();
+ reportingWorkTransfer.setOldOrder(reportingWork.get("oldOrderId"));
+ reportingWorkTransfer.setOldOrderNumber(Integer.valueOf(reportingWork.get("oldOrderNumber")));
+ reportingWorkTransfer.setOldReportContent(JSON.toJSONString(log));
+
+ //鏂拌鍗曚俊鎭紶鍏ユ棩蹇�
+ reportingWorkTransfer.setNewOrder(reportingWork.get("newOrderId"));
+ reportingWorkTransfer.setNewOrderNumber(Integer.valueOf(reportingWork.get("newOrderNumber")));
+ reportingWorkTransfer.setNewReportContent(JSON.toJSONString(newOrderLog));
+ reportingWorkTransferMapper.insert(reportingWorkTransfer);
+ //restTemplate.postForObject("http://localhost:8086/order/test",orderNumberTransferList,String.class);
+
+ //鍚憁es鍙戦�乭ttp璇锋眰
+ ResponseEntity<String> response =restTemplate.exchange(
+ "http://localhost:88/api/loadGlass/order/order/orderChange",
+ HttpMethod.POST,
+ new HttpEntity<>(orderNumberTransferList),
+ String.class);
+
+ if(response.getStatusCode() == HttpStatus.OK){
+ return true;
+ }else{
+ return "mes鍝嶅簲瓒呮椂";
+ }
+ }
}
--
Gitblit v1.8.0