From fb2826c8d58dd7e51a3a4fac7a2a11d1d13ebaa5 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期五, 18 四月 2025 10:13:10 +0800
Subject: [PATCH] work——order 同步接口

---
 aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java |  101 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 101 insertions(+), 0 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 82927a6..ca8dfd4 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
@@ -1,12 +1,26 @@
 package com.aps.job.service.impl;
 
+import java.util.ArrayList;
 import java.util.List;
+
+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;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 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;
 
 /**
  * 宸ュ崟鍚屾Service涓氬姟灞傚鐞�
@@ -19,6 +33,18 @@
 {
     @Autowired
     private ApsWorkOrderJobMapper apsWorkOrderJobMapper;
+
+    /**
+     * 鑾峰彇璁㈠崟鎺ュ彛
+     * */
+    @Value("${u9.workOrderJobUrl}")
+    private String getWorkOrderUrl;
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Autowired
+    private ApsWorkOrderJobLogMapper jobLogMapper;
 
     /**
      * 鏌ヨ宸ュ崟鍚屾
@@ -93,4 +119,79 @@
     {
         return apsWorkOrderJobMapper.deleteApsWorkOrderJobById(id);
     }
+
+
+    @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);
+                return;
+            }
+
+        }
+    }
+
+    @Transactional
+    public int batchSave(ApsWorkOrderJobParam param, JSONArray result) {
+        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(param.getPageIndex());
+            order.setDelFlag("0");
+            order.setProcessStatus("0");
+            jobs.add(order);
+        }
+      return   apsWorkOrderJobMapper.batchInsertApsWorkOrderJob(jobs);
+    }
+
 }

--
Gitblit v1.9.3