From 995cae8b52bf0836fa2b0d029404a7ad2ddc8bc0 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期五, 18 四月 2025 14:07:43 +0800
Subject: [PATCH] work——order 同步接口更新

---
 aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml                |    7 +++
 aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsWorkOrderJobMapper.java            |    1 
 aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java |  104 ++++++++++++++++++++++++++++------------------------
 aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobLogMapper.xml             |    1 
 4 files changed, 64 insertions(+), 49 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 ae03c8f..067ad2d 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
@@ -63,4 +63,5 @@
 
     int batchInsertApsWorkOrderJob(List<ApsWorkOrderJob> jobs);
 
+    int deleteWorkOrderJobByOrderIds(List<String> orderIds);
 }
diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java
index ca8dfd4..3f8a10b 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java
@@ -121,65 +121,71 @@
     }
 
 
-    @Transactional
+
     @Override
     public void batchInsertApsWorkOrderJob(ApsWorkOrderJobParam param) {
-        HttpHeaders headers = new HttpHeaders();
-        headers.setContentType(MediaType.APPLICATION_JSON);
+
         /*鏍规嵁鍙傛暟涓綋鍓嶉〉闈� 鍜� 瑕佺洰鏍囬〉闈� 杩涜寰幆*/
         for (int idx=param.getPageIndex(); idx<=param.getToPageIndex(); idx++){
-            /*璁剧疆褰撳墠椤甸潰*/
             param.setPageIndex(idx);
-            ApsWorkOrderJobLog log = new ApsWorkOrderJobLog();
-            String requestString = JSONObject.toJSONString(param);
-            HttpEntity<String> request = new HttpEntity<>(requestString, headers);
-            ResponseEntity<String> response = restTemplate.postForEntity(getWorkOrderUrl, request, String.class);
-            log.setRequestData(requestString);
-            log.setPageNum(Long.valueOf(param.getPageIndex()));
-            log.setPageCount(Long.valueOf(param.getPageSize()));
-            log.setCreateTime(DateUtils.getNowDate());
-            log.setBizType("work_order");
-            jobLogMapper.insertApsWorkOrderJobLog(log);
-            if (response.getStatusCode().is2xxSuccessful()) {
-                JSONObject responseBodyJson = JSONObject.parseObject(response.getBody());
-                if ("200".equals(responseBodyJson.getString("status"))) {
-                    JSONArray result = responseBodyJson.getJSONArray("data");
-                    if (result != null&& !result.isEmpty()) {
-                       int ct= batchSave(param, result);
-                       if(ct>0){
-                           log.setResult("ok save "+ct);
-                           jobLogMapper.updateApsWorkOrderJobLog(log);
-                           return;
-                       }else{
-
-                           log.setResult("ok save 0");
-                           jobLogMapper.updateApsWorkOrderJobLog(log);
-                           return;
-                       }
-                    }else {
-                        log.setResult("ok receive 0");
-                        jobLogMapper.updateApsWorkOrderJobLog(log);
-                        return;
-                    }
-                } else {
-                    log.setResponseData(response.getBody());
-                    log.setResult("fail");
-                    jobLogMapper.updateApsWorkOrderJobLog(log);
-                    return;
-                }
-            } else {
-                log.setResponseData(response.getBody());
-                log.setResult("fail");
-                jobLogMapper.updateApsWorkOrderJobLog(log);
+            if (!batchSaveByPager(param)) {
                 return;
             }
 
         }
     }
-
     @Transactional
-    public int batchSave(ApsWorkOrderJobParam param, JSONArray result) {
+    public boolean batchSaveByPager(ApsWorkOrderJobParam param) {
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+        /*璁剧疆褰撳墠椤甸潰*/
+        ApsWorkOrderJobLog log = new ApsWorkOrderJobLog();
+        String requestString = JSONObject.toJSONString(param);
+        HttpEntity<String> request = new HttpEntity<>(requestString, headers);
+        ResponseEntity<String> response = restTemplate.postForEntity(getWorkOrderUrl, request, String.class);
+        log.setRequestData(requestString);
+        log.setPageNum(Long.valueOf(param.getPageIndex()));
+        log.setPageCount(Long.valueOf(param.getPageSize()));
+        log.setCreateTime(DateUtils.getNowDate());
+        log.setBizType("work_order");
+        jobLogMapper.insertApsWorkOrderJobLog(log);
+        if (response.getStatusCode().is2xxSuccessful()) {
+            JSONObject responseBodyJson = JSONObject.parseObject(response.getBody());
+            if ("200".equals(responseBodyJson.getString("status"))) {
+                JSONArray result = responseBodyJson.getJSONArray("data");
+                if (result != null&& !result.isEmpty()) {
+                   int ct= batchInsertApsWorkOrderJob(param, result);
+                   if(ct>0){
+                       log.setResult("ok save "+ct);
+                       jobLogMapper.updateApsWorkOrderJobLog(log);
+                   }else{
+                       log.setResult("ok save 0");
+                       jobLogMapper.updateApsWorkOrderJobLog(log);
+                       return true;
+                   }
+                }else {
+                    log.setResult("ok receive 0");
+                    jobLogMapper.updateApsWorkOrderJobLog(log);
+                    return true;
+                }
+            } else {
+                log.setResponseData(response.getBody());
+                log.setResult("fail");
+                jobLogMapper.updateApsWorkOrderJobLog(log);
+                return true;
+            }
+            return true;
+        } else {
+            log.setResponseData(response.getBody());
+            log.setResult("fail");
+            jobLogMapper.updateApsWorkOrderJobLog(log);
+            return true;
+        }
+    }
+    @Transactional
+    public int batchInsertApsWorkOrderJob(ApsWorkOrderJobParam param, JSONArray result) {
         List<ApsWorkOrderJob> jobs = new ArrayList<>();
+        List<String> orderIds = new ArrayList<>();
         for (int i = 0; i < result.size(); i++) {
             ApsWorkOrderJob order = result.getObject(i, ApsWorkOrderJob.class);
             JSONObject jsonObject = result.getJSONObject(i);
@@ -190,8 +196,10 @@
             order.setDelFlag("0");
             order.setProcessStatus("0");
             jobs.add(order);
+            orderIds.add(order.getOrderId());
         }
-      return   apsWorkOrderJobMapper.batchInsertApsWorkOrderJob(jobs);
+        apsWorkOrderJobMapper.deleteWorkOrderJobByOrderIds(orderIds);
+        return   apsWorkOrderJobMapper.batchInsertApsWorkOrderJob(jobs);
     }
 
 }
diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobLogMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobLogMapper.xml
index 453054e..5424f24 100644
--- a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobLogMapper.xml
+++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobLogMapper.xml
@@ -92,4 +92,5 @@
             #{id}
         </foreach>
     </delete>
+
 </mapper>
\ No newline at end of file
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 ec743ea..229d57a 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
@@ -275,5 +275,10 @@
             )
         </foreach>
     </insert>
-
+    <delete id="deleteWorkOrderJobByOrderIds" parameterType="String">
+        delete from aps_work_order_job where order_id in
+        <foreach item="id" collection="orderIds" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3