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 | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 118 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..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 @@ -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,96 @@ { return apsWorkOrderJobMapper.deleteApsWorkOrderJobById(id); } + + + + @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); + /*璁剧疆褰撳墠椤甸潰*/ + 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); + 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