From 2bdb234b82f18e09a1ab8fd9bd28b44fed9084be Mon Sep 17 00:00:00 2001 From: huangjiayang <5265313@qq.com> Date: 星期一, 21 四月 2025 10:27:36 +0800 Subject: [PATCH] 【UPDATE】1.修改抓取工单工序定时任务增加可补查之前未查到工序的工单 --- aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java | 141 +++++++++++++++++++++++++++++++--------------- 1 files changed, 94 insertions(+), 47 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 ca8dfd4..8f1ad5b 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,6 +1,10 @@ package com.aps.job.service.impl; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import com.alibaba.fastjson.JSONArray; @@ -9,6 +13,7 @@ import com.aps.job.domain.ApsWorkOrderJobLog; import com.aps.job.mapper.ApsWorkOrderJobLogMapper; import com.aps.job.param.ApsWorkOrderJobParam; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpEntity; @@ -28,6 +33,7 @@ * @author zhl * @date 2025-04-17 */ +@Slf4j @Service public class ApsWorkOrderJobServiceImpl implements IApsWorkOrderJobService { @@ -121,65 +127,95 @@ } - @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); + if (!batchSaveByPager(param)) { return; } } } + /** + * 鏍规嵁鏃堕棿娈垫瘡鏃ユ洿鏂帮紝椤甸潰鑷姩閫掑寰幆鍚屾鏁版嵁 + * */ + @Override + public void SyncWorkOrderByTime(){ + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime today = LocalDateTime.now(); + LocalDate yesterday = LocalDate.now().minusDays(1); + LocalDateTime yesterdayMidnight = yesterday.atStartOfDay(); + boolean continueFlag = true; + Integer currentPage = 1; + ApsWorkOrderJobParam param=new ApsWorkOrderJobParam(); + param.setPageIndex(currentPage); + param.setDocState(Arrays.asList(0,1,2,4)); + param.setBeginDate(yesterdayMidnight.format(formatter)); + param.setEndDate(today.format(formatter)); + param.setPageSize(1000); + while (continueFlag){ + param.setPageIndex(currentPage); + continueFlag= batchSaveByPager(param); + currentPage++; + } + } @Transactional - public int batchSave(ApsWorkOrderJobParam param, JSONArray result) { + @Override + public boolean batchSaveByPager(ApsWorkOrderJobParam param) { + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + /*璁剧疆褰撳墠椤甸潰*/ + ApsWorkOrderJobLog jobLog = new ApsWorkOrderJobLog(); + String requestString = JSONObject.toJSONString(param); + HttpEntity<String> request = new HttpEntity<>(requestString, headers); + ResponseEntity<String> response = restTemplate.postForEntity(getWorkOrderUrl, request, String.class); + jobLog.setRequestData(requestString); + jobLog.setPageNum(Long.valueOf(param.getPageIndex())); + jobLog.setPageCount(Long.valueOf(param.getPageSize())); + jobLog.setCreateTime(DateUtils.getNowDate()); + jobLog.setBizType("work_order"); + jobLogMapper.insertApsWorkOrderJobLog(jobLog); + 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); + jobLog.setResult("ok save "+ct); + jobLogMapper.updateApsWorkOrderJobLog(jobLog); + return true; + }else { + jobLog.setResult("ok receive 0"); + jobLogMapper.updateApsWorkOrderJobLog(jobLog); + return false; + } + } else { + jobLog.setResponseData(response.getBody()); + jobLog.setResult("fail"); + jobLogMapper.updateApsWorkOrderJobLog(jobLog); + return false; + } + + } else { + jobLog.setResponseData(response.getBody()); + jobLog.setResult("fail"); + jobLogMapper.updateApsWorkOrderJobLog(jobLog); + log.info(JSONObject.toJSONString(jobLog)); + return false; + } + + } + @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); @@ -190,8 +226,19 @@ order.setDelFlag("0"); order.setProcessStatus("0"); jobs.add(order); + orderIds.add(order.getOrderId()); } - return apsWorkOrderJobMapper.batchInsertApsWorkOrderJob(jobs); + apsWorkOrderJobMapper.deleteWorkOrderJobByOrderIds(orderIds); + return apsWorkOrderJobMapper.batchInsertApsWorkOrderJob(jobs); } + /** + * 鍚屾闆朵欢宸ュ崟淇℃伅 + * */ + @Transactional + @Override + public void syncPartOrderData() { + apsWorkOrderJobMapper.deleteAllPartPlan(); + apsWorkOrderJobMapper.batchInsertPartPlan(); + } } -- Gitblit v1.9.3