From 7a4a03e2c1455ba7a7c6fa60702e350faf6e25bb Mon Sep 17 00:00:00 2001
From: hongjli <3117313295@qq.com>
Date: 星期一, 26 五月 2025 14:13:42 +0800
Subject: [PATCH] 管路&气柜产能负载按日统计查不到数据时不返回空
---
aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java | 93 +++++++++++++++++++++++++---------------------
1 files changed, 50 insertions(+), 43 deletions(-)
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java
index 9e44d14..1a13dac 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java
@@ -23,6 +23,7 @@
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.client.RestTemplate;
import java.util.ArrayList;
@@ -131,8 +132,12 @@
return apsWorkOrderProcessMapper.deleteApsWorkOrderProcessById(id);
}
+ @Transactional(rollbackFor = Exception.class)
@Override
public void getWorkOrderProcessFromU9(List<String> docNos) throws Exception {
+ List<String> noProcessDocNos = new ArrayList<>(docNos);
+ List<String> haveProcessDocNos = new ArrayList<>();
+ ApsWorkOrderJobLog apsWorkOrderJobLog = new ApsWorkOrderJobLog();
// 璁剧疆璇锋眰澶�
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
@@ -150,13 +155,11 @@
ResponseEntity<String> response = restTemplate.postForEntity(u9WorkOrderProcessUrl, request, String.class);
String responseBody = response.getBody();
JSONObject responseBodyJson = JSONObject.parseObject(responseBody);
- ApsWorkOrderJobLog apsWorkOrderJobLog = new ApsWorkOrderJobLog();
apsWorkOrderJobLog.setRequestData(requestBody.toJSONString());
apsWorkOrderJobLog.setCreateTime(DateUtils.getNowDate());
apsWorkOrderJobLog.setBizType("work_order_process");
apsWorkOrderJobLog.setResult("SUCCESS");
apsWorkOrderJobLogService.insertApsWorkOrderJobLog(apsWorkOrderJobLog);
- List<String> haveProcessDocNos = new ArrayList<>();
if (response.getStatusCode().is2xxSuccessful()) {
if(!StringUtils.isEmpty(responseBody)){
if("200".equals(responseBodyJson.getString("status"))){
@@ -165,18 +168,18 @@
List<ApsWorkOrderProcess> addList = new ArrayList<>();
List<ApsWorkOrderProcess> updateList = new ArrayList<>();
String nowDocNo = null;
- for (Object o : jsonArray) {
- JSONObject process = (JSONObject) o;
+ for (int i = 0,size=jsonArray.size();i<size;i++) {
+ JSONObject process = jsonArray.getJSONObject(i);
if (nowDocNo == null) {
nowDocNo = process.getString("DocNo");
- docNos.remove(nowDocNo);
+ noProcessDocNos.remove(nowDocNo);
haveProcessDocNos.add(nowDocNo);
}
- Map<String, Object> params = new HashMap<>();
- params.put("docNo", process.getString("DocNo"));
- params.put("opNum", process.getString("OpNum"));
- params.put("opId", process.getString("OpID"));
- Long existsId = apsWorkOrderProcessMapper.existsByDocNoOpNumOpId(params);
+// Map<String, Object> params = new HashMap<>();
+// params.put("docNo", process.getString("DocNo"));
+// params.put("opNum", process.getString("OpNum"));
+// params.put("opId", process.getString("OpID"));
+// Long existsId = apsWorkOrderProcessMapper.existsByDocNoOpNumOpId(params);
ApsWorkOrderProcess apsWorkOrderProcess = new ApsWorkOrderProcess();
apsWorkOrderProcess.setItemCode(process.getString("ItemCode"));
apsWorkOrderProcess.setDocNo(process.getString("DocNo"));
@@ -192,20 +195,20 @@
apsWorkOrderProcess.setOrg(process.getString("Org"));
apsWorkOrderProcess.setOrgCode(process.getString("OrgCode"));
apsWorkOrderProcess.setWorkCenter(process.getString("WorkCenter"));
- if (existsId != null) {
- apsWorkOrderProcess.setId(existsId);
- apsWorkOrderProcess.setUpdateBy("task");
- apsWorkOrderProcess.setUpdateTime(DateUtils.getNowDate());
- updateList.add(apsWorkOrderProcess);
- } else {
+// if (existsId != null) {
+// apsWorkOrderProcess.setId(existsId);
+// apsWorkOrderProcess.setUpdateBy("task");
+// apsWorkOrderProcess.setUpdateTime(DateUtils.getNowDate());
+// updateList.add(apsWorkOrderProcess);
+// } else {
apsWorkOrderProcess.setId(IdUtil.getSnowflakeNextId());
apsWorkOrderProcess.setCreateBy("task");
apsWorkOrderProcess.setCreateTime(DateUtils.getNowDate());
addList.add(apsWorkOrderProcess);
- }
- if(!nowDocNo.equals(process.getString("DocNo"))){
+// }
+ if(!nowDocNo.equals(process.getString("DocNo")) || i==size-1){
//鏇存柊宸ュ崟鍚屾宸ュ簭鐘舵��
- docNos.remove(nowDocNo);
+ noProcessDocNos.remove(nowDocNo);
haveProcessDocNos.add(nowDocNo);
nowDocNo = process.getString("DocNo");
}
@@ -219,28 +222,11 @@
}
if(!addList.isEmpty()){
apsWorkOrderProcessMapper.insertApsWorkOrderProcessBatch(addList);
- apsWorkOrderJobLog.setResult("ok insert "+updateList.size());
+ apsWorkOrderJobLog.setResult("ok insert "+addList.size());
apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate());
apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog);
logger.info("銆怚NSERT銆戣幏鍙栧苟鎻掑叆U9宸ュ簭鎴愬姛锛併�愬伐鍗曞彿锛歿}銆�", docNos);
}
- Map<String, Object> param = new HashMap<>();
- param.put("status", "1");
- param.put("docNos", haveProcessDocNos);
- apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(param);
- }else{
- if(!docNos.isEmpty()){
- Map<String, Object> param = new HashMap<>();
- param.put("status", "2");
- param.put("docNos", docNos);
- apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(param);
- apsWorkOrderJobLog.setRequestData(requestBody.toJSONString());
- apsWorkOrderJobLog.setResponseData(response.getBody());
- apsWorkOrderJobLog.setResult("empty");
- apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate());
- apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog);
- }
- break;
}
if(jsonArray.size()<1000){
break;
@@ -264,11 +250,29 @@
throw new Exception("銆怑RROR銆戞煡璇9宸ュ簭澶辫触锛併�愬伐鍗曞彿锛歿"+ docNos +"}, 閿欒鐮侊細{"+ responseBodyJson.getString("status") +"}锛岄敊璇俊鎭細{"+ responseBodyJson.getString("message") +"}銆�");
}
}
+ if(!haveProcessDocNos.isEmpty()){
+ Map<String, Object> param = new HashMap<>();
+ param.put("status", "1");
+ param.put("docNos", haveProcessDocNos);
+ apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(param);
+ }
+ if(!noProcessDocNos.isEmpty()){
+ Map<String, Object> param = new HashMap<>();
+ param.put("status", "2");
+ param.put("docNos", noProcessDocNos);
+ apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(param);
+ apsWorkOrderJobLog.setRequestData(noProcessDocNos.toString());
+ apsWorkOrderJobLog.setResponseData("");
+ apsWorkOrderJobLog.setResult("empty");
+ apsWorkOrderJobLog.setUpdateTime(DateUtils.getNowDate());
+ apsWorkOrderJobLogService.updateApsWorkOrderJobLog(apsWorkOrderJobLog);
+ }
}
@Override
public void syncWorkOrderProcessData(String status, Integer pageSize) {
try{
+ Integer pageNum = 1;
//鍒嗛〉鏌ヨ宸ュ崟
ApsWorkOrderJob apsWorkOrderJob = new ApsWorkOrderJob();
if("".equals(status)){
@@ -281,6 +285,7 @@
while (true){
PageHelper.startPage(1, pageSize);
List<ApsWorkOrderJob> pageList = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob);
+ PageHelper.clearPage();
if(!pageList.isEmpty()){
long startTime = System.currentTimeMillis();
List<String> docNos = new ArrayList<>();
@@ -292,15 +297,14 @@
break;
}
lastDocNos = String.join(",", docNos);
- long endTime = System.currentTimeMillis(); // 璁板綍缁撴潫鏃堕棿
- long duration = endTime - startTime; // 璁$畻杩愯鏃堕棿
- System.out.println("杩愯鏃堕棿锛�"+ duration +"姣");
}
+ pageNum++;
}
}else{
while (true){
PageHelper.startPage(1, pageSize);
List<ApsWorkOrderJob> pageList = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob);
+ PageHelper.clearPage();
if(!pageList.isEmpty()){
long startTime = System.currentTimeMillis();
List<String> docNos = new ArrayList<>();
@@ -311,15 +315,13 @@
}
if(!docNos.isEmpty()){
getWorkOrderProcessFromU9(docNos);
- long endTime = System.currentTimeMillis(); // 璁板綍缁撴潫鏃堕棿
- long duration = endTime - startTime; // 璁$畻杩愯鏃堕棿
- System.out.println("杩愯鏃堕棿锛�"+ duration +"姣");
}else{
break;
}
}else{
break;
}
+ pageNum++;
}
}
}catch (Exception e){
@@ -365,4 +367,9 @@
apsWorkOrderProcessMapper.deleteApsProcessRoute();
apsWorkOrderProcessMapper.insertIntoApsProcessRoute();
}
+
+ @Override
+ public void deleteApsWorkOrderProcess() {
+ apsWorkOrderProcessMapper.deleteApsWorkOrderProcess();
+ }
}
--
Gitblit v1.9.3