From 234ddd7037d7f4704364269e5d1ea2e40b3b6ab7 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期日, 27 四月 2025 15:38:47 +0800
Subject: [PATCH] 钣金大表统计:增加 当前工序状态、下一工序
---
aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java | 124 ++++++++++++++++++++++++++++++++++------
1 files changed, 104 insertions(+), 20 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 e815c21..3f5ef60 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
@@ -4,9 +4,11 @@
import com.alibaba.fastjson.JSONObject;
import com.aps.common.core.utils.DateUtils;
import com.aps.common.core.utils.StringUtils;
+import com.aps.common.core.utils.uuid.Sequence;
import com.aps.job.domain.ApsWorkOrderJob;
import com.aps.job.domain.ApsWorkOrderJobLog;
import com.aps.job.domain.ApsWorkOrderProcess;
+import com.aps.job.mapper.ApsWorkOrderJobLogMapper;
import com.aps.job.mapper.ApsWorkOrderJobMapper;
import com.aps.job.mapper.ApsWorkOrderProcessMapper;
import com.aps.job.service.IApsWorkOrderJobLogService;
@@ -53,6 +55,12 @@
@Autowired
private IApsWorkOrderJobLogService apsWorkOrderJobLogService;
+
+ @Autowired
+ private ApsWorkOrderJobLogMapper apsWorkOrderJobLogMapper;
+
+ @Autowired
+ private Sequence sequence;
/**
* 鏌ヨ宸ュ崟宸ュ簭
@@ -148,6 +156,7 @@
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"))){
@@ -160,6 +169,8 @@
JSONObject process = (JSONObject) o;
if (nowDocNo == null) {
nowDocNo = process.getString("DocNo");
+ docNos.remove(nowDocNo);
+ haveProcessDocNos.add(nowDocNo);
}
Map<String, Object> params = new HashMap<>();
params.put("docNo", process.getString("DocNo"));
@@ -171,7 +182,7 @@
apsWorkOrderProcess.setDocNo(process.getString("DocNo"));
apsWorkOrderProcess.setOpNum(process.getString("OpNum"));
apsWorkOrderProcess.setOpId(process.getString("OpID"));
- apsWorkOrderProcess.setProcessName(process.getString("WorkCenter"));
+ apsWorkOrderProcess.setProcessName(process.getString("StdOp"));
apsWorkOrderProcess.setStandardTime(process.getFloat("StandardTime"));
apsWorkOrderProcess.setPalnStartDate(process.getDate("PlanStartDate"));
apsWorkOrderProcess.setPlanCompleteDate(process.getDate("PlanCompleteDate"));
@@ -180,15 +191,20 @@
apsWorkOrderProcess.setOpStatus(process.getString("OpStatus"));
apsWorkOrderProcess.setOrg(process.getString("Org"));
apsWorkOrderProcess.setOrgCode(process.getString("OrgCode"));
+ apsWorkOrderProcess.setWorkCenter(process.getString("WorkCenter"));
if (existsId != null) {
apsWorkOrderProcess.setId(existsId);
+ apsWorkOrderProcess.setUpdateTime(DateUtils.getNowDate());
updateList.add(apsWorkOrderProcess);
} else {
+ apsWorkOrderProcess.setId(sequence.nextId());
+ apsWorkOrderProcess.setCreateTime(DateUtils.getNowDate());
addList.add(apsWorkOrderProcess);
}
if(!nowDocNo.equals(process.getString("DocNo"))){
//鏇存柊宸ュ崟鍚屾宸ュ簭鐘舵��
- apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(nowDocNo);
+ docNos.remove(nowDocNo);
+ haveProcessDocNos.add(nowDocNo);
nowDocNo = process.getString("DocNo");
}
}
@@ -204,7 +220,15 @@
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);
}
+ Map<String, Object> param = new HashMap<>();
+ param.put("status", "2");
+ param.put("docNos", docNos);
+ apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(param);
}else{
apsWorkOrderJobLog.setResponseData(response.getBody());
apsWorkOrderJobLog.setResult("fail");
@@ -223,33 +247,93 @@
}
@Override
- public void syncWorkOrderProcessData() {
+ public void syncWorkOrderProcessData(String status, Integer pageSize) {
try{
//鍒嗛〉鏌ヨ宸ュ崟
ApsWorkOrderJob apsWorkOrderJob = new ApsWorkOrderJob();
- apsWorkOrderJob.setProcessStatus("0");
- List<ApsWorkOrderJob> list = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob);
- int pageSize = 100;
- int allPage = list.size()/pageSize;
-// int allPage = 1;
- for (int i = 1; i <= allPage; i++) {
- long startTime = System.currentTimeMillis();
- PageHelper.startPage(i, pageSize);
- List<ApsWorkOrderJob> pageList = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob);
- if(!pageList.isEmpty()){
- List<String> docNos = new ArrayList<>();
- for (ApsWorkOrderJob apsWorkOrderJob1 : pageList){
- docNos.add(apsWorkOrderJob1.getDocNo());
+ if("".equals(status)){
+ status = "0";
+ }
+ apsWorkOrderJob.setProcessStatus(status);
+ // 琛ユ煡涔嬪墠娌℃湁鏌ュ埌宸ュ簭鐨勫伐鍗�
+ if("2".equals(status)){
+ int total = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob).size();
+ int pages = total % pageSize == 0 ? total / pageSize : total / pageSize + 1;
+ for (int i = 1; i <= pages; i++){
+ PageHelper.startPage(i, pageSize);
+ List<ApsWorkOrderJob> pageList = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob);
+ if(!pageList.isEmpty()){
+ long startTime = System.currentTimeMillis();
+ List<String> docNos = new ArrayList<>();
+ for (ApsWorkOrderJob apsWorkOrderJob1 : pageList){
+ docNos.add(apsWorkOrderJob1.getDocNo());
+ }
+ getWorkOrderProcessFromU9(docNos);
+ long endTime = System.currentTimeMillis(); // 璁板綍缁撴潫鏃堕棿
+ long duration = endTime - startTime; // 璁$畻杩愯鏃堕棿
+ System.out.println("杩愯鏃堕棿锛�"+ duration +"姣");
}
- getWorkOrderProcessFromU9(docNos);
}
- long endTime = System.currentTimeMillis(); // 璁板綍缁撴潫鏃堕棿
- long duration = endTime - startTime; // 璁$畻杩愯鏃堕棿
- System.out.println("杩愯鏃堕棿锛�"+ duration +"姣");
+ }else{
+ while (true){
+ PageHelper.startPage(1, pageSize);
+ List<ApsWorkOrderJob> pageList = apsWorkOrderJobMapper.selectApsWorkOrderJobList(apsWorkOrderJob);
+ if(!pageList.isEmpty()){
+ long startTime = System.currentTimeMillis();
+ List<String> docNos = new ArrayList<>();
+ for (ApsWorkOrderJob apsWorkOrderJob1 : pageList){
+ if(apsWorkOrderJob1.getDocNo()!=null){
+ docNos.add(apsWorkOrderJob1.getDocNo());
+ }
+ }
+ if(!docNos.isEmpty()){
+ getWorkOrderProcessFromU9(docNos);
+ long endTime = System.currentTimeMillis(); // 璁板綍缁撴潫鏃堕棿
+ long duration = endTime - startTime; // 璁$畻杩愯鏃堕棿
+ System.out.println("杩愯鏃堕棿锛�"+ duration +"姣");
+ }else{
+ break;
+ }
+ }else{
+ break;
+ }
+ }
}
}catch (Exception e){
e.printStackTrace();
logger.error(e.getMessage());
}
}
+
+ @Override
+ public void insertIntoApsProcessRoute() {
+ apsWorkOrderProcessMapper.insertIntoApsProcessRoute();
+ }
+
+ @Override
+ public void deleteApsProcessRoute() {
+ apsWorkOrderProcessMapper.deleteApsProcessRoute();
+ }
+
+ @Override
+ public boolean retryRequestWorkOrderProcessByLogId(Long id) {
+ try {
+ ApsWorkOrderJobLog apsWorkOrderJobLog = apsWorkOrderJobLogMapper.selectApsWorkOrderJobLogById(id);
+ JSONObject requestBodyJson = JSONObject.parseObject(apsWorkOrderJobLog.getRequestData());
+ JSONArray docListArray = requestBodyJson.getJSONArray("DocList");
+ List<String> docNos = new ArrayList<>();
+ for (int i = 0; i < docListArray.size(); i++) {
+ if(docListArray.getString(i)!=null){
+ docNos.add(docListArray.getString(i));
+ }
+ }
+ if(!docNos.isEmpty()){
+ getWorkOrderProcessFromU9(docNos);
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ return false;
+ }
+ return true;
+ }
}
--
Gitblit v1.9.3