From 2a64b537e8e3bce9ce030585a3da17d48379c0ad Mon Sep 17 00:00:00 2001
From: sfd <sun.sunshine@163.com>
Date: 星期一, 26 五月 2025 15:04:45 +0800
Subject: [PATCH] 修改json类型转换错误

---
 aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java |   79 ++++++++++++++++++++++++++++++++++++---
 1 files changed, 73 insertions(+), 6 deletions(-)

diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java
index 3a1fa14..2906f0c 100644
--- a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java
+++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java
@@ -3,8 +3,11 @@
 import cn.hutool.core.util.IdUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson2.JSON;
+import com.aps.common.core.constant.SecurityConstants;
 import com.aps.common.core.utils.DateUtils;
 import com.aps.common.core.utils.StringUtils;
+import com.aps.common.core.utils.uuid.IdUtils;
 import com.aps.job.domain.ApsBomHeaderJob;
 import com.aps.job.domain.ApsBomLineJob;
 import com.aps.job.domain.ApsWorkOrderJobLog;
@@ -12,6 +15,8 @@
 import com.aps.job.mapper.ApsBomLineJobMapper;
 import com.aps.job.mapper.ApsWorkOrderJobLogMapper;
 import com.aps.job.service.IApsBomHeaderJobService;
+import com.aps.system.api.RemoteCoreService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpEntity;
@@ -19,6 +24,7 @@
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.client.RestTemplate;
 
 import java.util.ArrayList;
@@ -31,6 +37,7 @@
  * @date 2025-05-08
  */
 @Service
+@Slf4j
 public class ApsBomHeaderJobServiceImpl implements IApsBomHeaderJobService 
 {
     @Autowired
@@ -39,9 +46,6 @@
     @Autowired
     private ApsBomLineJobMapper apsBomLineJobMapper;
 
-    /**
-     * 鑾峰彇璁㈠崟鎺ュ彛
-     * */
     @Value("${u9.bomJobUrl}")
     private String getBomUrl;
 
@@ -50,6 +54,9 @@
 
     @Autowired
     private RestTemplate restTemplate;
+
+    @Autowired
+    private RemoteCoreService remoteCoreService;
 
     /**
      * 鏌ヨBOM Header 鏁版嵁绠$悊
@@ -127,14 +134,19 @@
 
     @Override
     public boolean syncBomData(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList) {
+        JSONObject requestBody = new JSONObject();
+        ResponseEntity<String> response = null;
+        ApsWorkOrderJobLog jobLog = new ApsWorkOrderJobLog();
+        String batchNum = "";
         try {
             // 璁剧疆璇锋眰澶�
             HttpHeaders headers = new HttpHeaders();
             headers.setContentType(MediaType.APPLICATION_JSON);
             // 璁剧疆璇锋眰浣�
             while (true) {
-                ApsWorkOrderJobLog jobLog = new ApsWorkOrderJobLog();
-                JSONObject requestBody = new JSONObject();
+                batchNum = IdUtils.fastSimpleUUID();
+                jobLog = new ApsWorkOrderJobLog();
+                requestBody = new JSONObject();
                 requestBody.put("PageIndex", pageIndex);
                 requestBody.put("PageSize", pageSize);
                 if(!StringUtils.isEmpty(orgCode)){
@@ -143,7 +155,7 @@
                 // 鍒涘缓HttpEntity瀵硅薄
                 HttpEntity<String> request = new HttpEntity<>(requestBody.toJSONString(), headers);
                 // 鍙戦�丳OST璇锋眰
-                ResponseEntity<String> response = restTemplate.postForEntity(getBomUrl, request, String.class);
+                response = restTemplate.postForEntity(getBomUrl, request, String.class);
                 JSONObject responseBodyJson = JSONObject.parseObject(response.getBody());
                 if (response.getStatusCode().is2xxSuccessful() && "200".equals(responseBodyJson.getString("status"))) {
                     JSONArray jsonArray = responseBodyJson.getJSONArray("data");
@@ -162,6 +174,7 @@
                             insertBomHeader.setStartDate(DateUtils.parseDate(bomHeader.getString("HEffectiveDate")));
                             insertBomHeader.setEndDate(DateUtils.parseDate(bomHeader.getString("HDisableDate")));
                             insertBomHeader.setOrgCode(bomHeader.getString("HOrgName").contains("娌堥槼")?"FORTUNE":bomHeader.getString("HOrgName").contains("鍗楅��")?"FORTUNA":bomHeader.getString("HOrgName").contains("鍖椾含")?"FORTUBE":bomHeader.getString("HOrgName"));
+                            insertBomHeader.setCreateBy(batchNum);
                             headerList.add(insertBomHeader);
                             for(Object line : bomLines){
                                 JSONObject lineJson = (JSONObject) line;
@@ -175,6 +188,7 @@
                                 bomLine.setStartDate(DateUtils.parseDate(lineJson.getString("LEffectiveDate")));
                                 bomLine.setEndDate(DateUtils.parseDate(lineJson.getString("LDisableDate")));
                                 bomLine.setOrgCode(lineJson.getString("LOrgName").contains("娌堥槼")?"FORTUNE":lineJson.getString("LOrgName").contains("鍗楅��")?"FORTUNA":lineJson.getString("LOrgName").contains("鍖椾含")?"FORTUBE":lineJson.getString("LOrgName"));
+                                bomLine.setCreateBy(batchNum);
                                 lineList.add(bomLine);
                             }
                         }
@@ -200,7 +214,10 @@
                         jobLog.setCreateTime(DateUtils.getNowDate());
                         jobLog.setBizType("bom");
                         jobLog.setResult("header:"+headerList.size() + " line:"+lineList.size());
+                        jobLog.setCreateBy(batchNum);
                         jobLogMapper.insertApsWorkOrderJobLog(jobLog);
+                        log.info("BOM鍚屾锛�"+ JSON.toJSONString(jobLog));
+
                         pageIndex++;
                     }else{
                         break;
@@ -213,14 +230,64 @@
                     jobLog.setCreateTime(DateUtils.getNowDate());
                     jobLog.setBizType("bom");
                     jobLog.setResult("error");
+                    jobLog.setCreateBy(batchNum);
                     jobLogMapper.insertApsWorkOrderJobLog(jobLog);
+                    log.info("BOM鍚屾锛�"+ JSON.toJSONString(jobLog));
                     break;
                 }
             }
         }catch (Exception e){
             e.printStackTrace();
+            jobLog.setRequestData(requestBody.toJSONString());
+            jobLog.setResponseData(response.getBody());
+            jobLog.setPageNum(Long.valueOf(pageIndex));
+            jobLog.setPageCount(Long.valueOf(pageSize));
+            jobLog.setCreateTime(DateUtils.getNowDate());
+            jobLog.setBizType("bom");
+            jobLog.setResult("error");
+            jobLog.setCreateBy(batchNum);
+            jobLogMapper.insertApsWorkOrderJobLog(jobLog);
+            log.info("BOM鍚屾寮傚父淇℃伅锛�"+ JSON.toJSONString(jobLog));
             return false;
         }
         return true;
     }
+
+    /**
+     * 鍏ㄩ噺鍚屾BOM鏁版嵁瀹氭椂浠诲姟
+     * @param pageIndex
+     * @param pageSize
+     * @param orgCode
+     * @param itemCodeList
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean syncBomDataJob(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList){
+        try {
+            log.info("鍏ㄩ噺鍚屾BOM鏁版嵁瀹氭椂浠诲姟寮�濮�");
+            log.info(" DELETE FROM aps_bom_header_job");
+            apsBomHeaderJobMapper.deleteApsBomHeaderJob();
+            log.info(" DELETE FROM aps_bom_line_job");
+            apsBomLineJobMapper.deleteApsBomLineJob();
+            boolean res = syncBomData(pageIndex, pageSize, orgCode, itemCodeList);
+            if(!res){
+                return false;
+            }
+            log.info("灏咮OM鍚屾鍒癛edis");
+            remoteCoreService.setBomDataToRedis(SecurityConstants.INNER);
+            log.info("deleteApsBomHeader");
+            apsBomHeaderJobMapper.deleteApsBomHeader();
+            log.info("deleteApsBomLine");
+            apsBomLineJobMapper.deleteApsBomLine();
+            log.info("insertIntoApsBomHeader");
+            apsBomHeaderJobMapper.insertIntoApsBomHeader();
+            log.info("insertIntoApsBomLine");
+            apsBomLineJobMapper.insertIntoApsBomLine();
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException(e);
+        }
+        return true;
+    }
 }

--
Gitblit v1.9.3