From 8338a7d485f7c9f8431c6d2bf39d33fa7df9194c Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期五, 18 四月 2025 16:06:48 +0800
Subject: [PATCH] work——order 同步零件工单数据

---
 aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java |   95 +++++++++++++++++++++++++++++++++++++----------
 1 files changed, 75 insertions(+), 20 deletions(-)

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 6ff0aa6..543600a 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
@@ -6,6 +6,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.aps.common.core.utils.DateUtils;
+import com.aps.job.domain.ApsWorkOrderJobLog;
 import com.aps.job.mapper.ApsWorkOrderJobLogMapper;
 import com.aps.job.param.ApsWorkOrderJobParam;
 import org.springframework.beans.factory.annotation.Value;
@@ -18,6 +19,7 @@
 import com.aps.job.mapper.ApsWorkOrderJobMapper;
 import com.aps.job.domain.ApsWorkOrderJob;
 import com.aps.job.service.IApsWorkOrderJobService;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.client.RestTemplate;
 
 /**
@@ -119,41 +121,94 @@
     }
 
 
+
     @Override
     public void batchInsertApsWorkOrderJob(ApsWorkOrderJobParam param) {
 
+        /*鏍规嵁鍙傛暟涓綋鍓嶉〉闈� 鍜� 瑕佺洰鏍囬〉闈� 杩涜寰幆*/
+        for (int idx=param.getPageIndex(); idx<=param.getToPageIndex(); idx++){
+            param.setPageIndex(idx);
+            if (!batchSaveByPager(param)) {
+                return;
+            }
+
+        }
+    }
+    @Transactional
+    public boolean batchSaveByPager(ApsWorkOrderJobParam param) {
         HttpHeaders headers = new HttpHeaders();
         headers.setContentType(MediaType.APPLICATION_JSON);
-        Integer PageIndex = 1;
-        Integer PageSize = 500;
-        Boolean continueFlag = true;
-        /*  while (continueFlag){*/
+        /*璁剧疆褰撳墠椤甸潰*/
+        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) {
-                    List<ApsWorkOrderJob> jobs = new ArrayList<>();
-                    for (int i = 0; i < result.size(); i++) {
-                        ApsWorkOrderJob order = result.getObject(i, ApsWorkOrderJob.class);
-                        JSONObject jsonObject = result.getJSONObject(i);
-                        order.setOrderId(jsonObject.get("ID").toString());
-                        order.setCreateTime(DateUtils.getNowDate());
-                        order.setPageIndex(i);
-                        order.setPageNum(PageIndex);
-                        order.setDelFlag("0");
-                        order.setProcessStatus("0");
-                        jobs.add(order);
-                    }
-                    apsWorkOrderJobMapper.batchInsertApsWorkOrderJob(jobs);
+                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);
+            order.setOrderId(jsonObject.get("ID").toString());
+            order.setCreateTime(DateUtils.getNowDate());
+            order.setPageIndex(i);
+            order.setPageNum(param.getPageIndex());
+            order.setDelFlag("0");
+            order.setProcessStatus("0");
+            jobs.add(order);
+            orderIds.add(order.getOrderId());
+        }
+        apsWorkOrderJobMapper.deleteWorkOrderJobByOrderIds(orderIds);
+        return   apsWorkOrderJobMapper.batchInsertApsWorkOrderJob(jobs);
+    }
 
+    /**
+     * 鍚屾闆朵欢宸ュ崟淇℃伅
+     * */
+    @Transactional
+    @Override
+    public void syncPartOrderData() {
+        apsWorkOrderJobMapper.deleteAllPartPlan();
+        apsWorkOrderJobMapper.batchInsertPartPlan();
     }
 }

--
Gitblit v1.9.3