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