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