From e806603a75c6999c040359ffff325fa774c3cc05 Mon Sep 17 00:00:00 2001
From: huangjiayang <5265313@qq.com>
Date: 星期五, 18 四月 2025 17:45:39 +0800
Subject: [PATCH] 【UPDATE】1.增加同步工序数据到业务表定时任务 2.优化同步工序数据方法
---
aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java | 14 ++++
aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml | 9 ++
aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderProcessService.java | 12 +++
aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderJobMapper.java | 5 +
aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderProcessServiceImpl.java | 42 ++++++++++---
aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java | 9 +++
aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml | 41 +++++++++++++
7 files changed, 114 insertions(+), 18 deletions(-)
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderJobMapper.java b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderJobMapper.java
index 5b4690f..7028ad8 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderJobMapper.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderJobMapper.java
@@ -4,6 +4,7 @@
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
+import java.util.Map;
/**
* 宸ュ崟鍚屾Mapper鎺ュ彛
@@ -67,10 +68,10 @@
int deleteWorkOrderJobByOrderIds(List<String> orderIds);
/**
* 鏇存柊宸ュ崟宸ュ簭鍚屾鐘舵��
- * @param docNo
+ * @param params
* @return
*/
- public int updateApsWorkOrderJobPrccessStatus(String docNo);
+ public int updateApsWorkOrderJobPrccessStatus(Map<String, Object> params);
/**
* 鎵归噺鍒犻櫎闆朵欢宸ュ崟鏁版嵁
* */
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java
index 96b6407..23b874f 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderProcessMapper.java
@@ -76,12 +76,22 @@
* @param list
* @return 鏇存柊鏁伴噺
*/
- int updateApsWorkOrderProcessBatch(@Param("list") List<ApsWorkOrderProcess> list);
+ public int updateApsWorkOrderProcessBatch(@Param("list") List<ApsWorkOrderProcess> list);
/**
* 鎵归噺鎻掑叆宸ュ崟宸ュ簭
* @param list
* @return 鎻掑叆鏁伴噺
*/
- int insertApsWorkOrderProcessBatch(@Param("list") List<ApsWorkOrderProcess> list);
+ public int insertApsWorkOrderProcessBatch(@Param("list") List<ApsWorkOrderProcess> list);
+
+ /**
+ * 鎻掑叆宸ュ崟宸ュ簭鏁版嵁鍒颁笟鍔¤〃
+ */
+ public void insertIntoApsProcessRoute();
+
+ /**
+ * 鍒犻櫎涓存椂宸ュ簭鏁版嵁
+ */
+ public void deleteApsProcessRoute();
}
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderProcessService.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderProcessService.java
index 80d43f6..7f5646a 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderProcessService.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderProcessService.java
@@ -62,7 +62,7 @@
/**
* 浠嶶9鑾峰彇宸ュ崟宸ュ簭淇℃伅
- * @param docNo
+ * @param docNos
* @return
*/
public void getWorkOrderProcessFromU9(List<String> docNos) throws Exception;
@@ -71,4 +71,14 @@
* 鍚屾宸ュ崟宸ュ簭鏁版嵁
*/
public void syncWorkOrderProcessData();
+
+ /**
+ * 鎻掑叆宸ュ崟宸ュ簭鏁版嵁鍒颁笟鍔¤〃
+ */
+ public void insertIntoApsProcessRoute();
+
+ /**
+ * 鍒犻櫎涓存椂宸ュ簭鏁版嵁
+ */
+ public void deleteApsProcessRoute();
}
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..39ea457 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
@@ -148,6 +148,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 +161,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"));
@@ -188,7 +191,8 @@
}
if(!nowDocNo.equals(process.getString("DocNo"))){
//鏇存柊宸ュ崟鍚屾宸ュ簭鐘舵��
- apsWorkOrderJobMapper.updateApsWorkOrderJobPrccessStatus(nowDocNo);
+ docNos.remove(nowDocNo);
+ haveProcessDocNos.add(nowDocNo);
nowDocNo = process.getString("DocNo");
}
}
@@ -204,7 +208,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");
@@ -228,28 +240,36 @@
//鍒嗛〉鏌ヨ宸ュ崟
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);
+ while (true){
+ PageHelper.startPage(1, 100);
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 +"姣");
+ }else{
+ break;
}
- long endTime = System.currentTimeMillis(); // 璁板綍缁撴潫鏃堕棿
- long duration = endTime - startTime; // 璁$畻杩愯鏃堕棿
- System.out.println("杩愯鏃堕棿锛�"+ duration +"姣");
}
}catch (Exception e){
e.printStackTrace();
logger.error(e.getMessage());
}
}
+
+ @Override
+ public void insertIntoApsProcessRoute() {
+ apsWorkOrderProcessMapper.insertIntoApsProcessRoute();
+ }
+
+ @Override
+ public void deleteApsProcessRoute() {
+ apsWorkOrderProcessMapper.deleteApsProcessRoute();
+ }
}
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java b/aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java
index 0b16f5d..e28d417 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java
@@ -82,4 +82,13 @@
currentPage++;
}
}
+
+ /**
+ * 灏嗗伐鍗曞伐搴忔暟鎹悓姝ュ埌涓氬姟琛ㄤ腑
+ */
+ public void insertIntoApsProcessRoute()
+ {
+ iApsWorkOrderProcessService.deleteApsProcessRoute();
+ iApsWorkOrderProcessService.insertIntoApsProcessRoute();
+ }
}
diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml
index eb00fd7..3ce7c26 100644
--- a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml
+++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml
@@ -283,8 +283,13 @@
</foreach>
</delete>
- <update id="updateApsWorkOrderJobPrccessStatus" parameterType="String">
- update aps_work_order_job set process_status='1' where doc_no = #{docNo}
+ <update id="updateApsWorkOrderJobPrccessStatus" parameterType="map">
+ update aps_work_order_job
+ set process_status = #{status}
+ where doc_no in
+ <foreach item="docNo" collection="docNos" open="(" separator="," close=")">
+ #{docNo}
+ </foreach>
</update>
<delete id="deleteAllPartPlan" >
diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml
index 981eb19..6aec5bd 100644
--- a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml
+++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderProcessMapper.xml
@@ -178,4 +178,45 @@
</foreach>
</insert>
+ <!-- 鎻掑叆鏁版嵁鍒� aps_process_route -->
+ <insert id="insertIntoApsProcessRoute">
+ INSERT INTO aps_process_route (
+ id,
+ item_no,
+ work_order_no,
+ process_number,
+ op_id,
+ process_name,
+ standard_time,
+ process_plan_start_day,
+ process_plan_end_day,
+ process_qty,
+ discard_count,
+ op_status,
+ plant,
+ org_code
+ )
+ SELECT
+ id,
+ item_code,
+ doc_no,
+ op_num,
+ op_id,
+ process_name,
+ standard_time,
+ plan_start_date,
+ plan_complete_date,
+ process_qty,
+ scrap_qty,
+ op_status,
+ org,
+ org_code
+ FROM aps_work_order_process
+ </insert>
+
+ <!-- 鍒犻櫎 aps_process_route 琛ㄤ腑鐨勬暟鎹� -->
+ <delete id="deleteApsProcessRoute">
+ DELETE FROM aps_process_route
+ </delete>
+
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3