aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartPlan.java
@@ -1,5 +1,6 @@ package com.aps.core.domain; import java.math.BigDecimal; import java.util.Date; import com.aps.common.core.utils.uuid.IdUtils; @@ -9,6 +10,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; import com.aps.common.core.annotation.Excel; import com.aps.common.core.web.domain.BaseEntity; import org.apache.poi.hpsf.Decimal; import org.springframework.data.annotation.Id; import javax.annotation.processing.Generated; @@ -80,11 +82,11 @@ /** 生产数量 */ @Excel(name = "生产数量") private Long productionQuantity; private Decimal productionQuantity; /** 良品数量 */ @Excel(name = "良品数量") private Long goodProductsQuantity; private Decimal goodProductsQuantity; /** 工序号 */ @Excel(name = "工序号") @@ -309,22 +311,22 @@ return versionNumber; } public void setProductionQuantity(Long productionQuantity) public void setProductionQuantity(Decimal productionQuantity) { this.productionQuantity = productionQuantity; } public Long getProductionQuantity() public Decimal getProductionQuantity() { return productionQuantity; } public void setGoodProductsQuantity(Long goodProductsQuantity) public void setGoodProductsQuantity(Decimal goodProductsQuantity) { this.goodProductsQuantity = goodProductsQuantity; } public Long getGoodProductsQuantity() public Decimal getGoodProductsQuantity() { return goodProductsQuantity; } aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java
@@ -43,7 +43,7 @@ /** * 查询定时任务列表 */ @RequiresPermissions("monitor:job:list") /* @RequiresPermissions("monitor:job:list")*/ @GetMapping("/list") public TableDataInfo list(SysJob sysJob) { @@ -55,7 +55,7 @@ /** * 导出定时任务列表 */ @RequiresPermissions("monitor:job:export") /*@RequiresPermissions("monitor:job:export")*/ @Log(title = "定时任务", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, SysJob sysJob) @@ -68,7 +68,7 @@ /** * 获取定时任务详细信息 */ @RequiresPermissions("monitor:job:query") /*@RequiresPermissions("monitor:job:query")*/ @GetMapping(value = "/{jobId}") public AjaxResult getInfo(@PathVariable("jobId") Long jobId) { @@ -78,7 +78,7 @@ /** * 新增定时任务 */ @RequiresPermissions("monitor:job:add") /* @RequiresPermissions("monitor:job:add")*/ @Log(title = "定时任务", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody SysJob job) throws SchedulerException, TaskException @@ -114,7 +114,7 @@ /** * 修改定时任务 */ @RequiresPermissions("monitor:job:edit") /* @RequiresPermissions("monitor:job:edit")*/ @Log(title = "定时任务", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody SysJob job) throws SchedulerException, TaskException @@ -150,7 +150,7 @@ /** * 定时任务状态修改 */ @RequiresPermissions("monitor:job:changeStatus") /* @RequiresPermissions("monitor:job:changeStatus")*/ @Log(title = "定时任务", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") public AjaxResult changeStatus(@RequestBody SysJob job) throws SchedulerException @@ -163,7 +163,7 @@ /** * 定时任务立即执行一次 */ @RequiresPermissions("monitor:job:changeStatus") /* @RequiresPermissions("monitor:job:changeStatus")*/ @Log(title = "定时任务", businessType = BusinessType.UPDATE) @PutMapping("/run") public AjaxResult run(@RequestBody SysJob job) throws SchedulerException @@ -175,7 +175,7 @@ /** * 删除定时任务 */ @RequiresPermissions("monitor:job:remove") /* @RequiresPermissions("monitor:job:remove")*/ @Log(title = "定时任务", businessType = BusinessType.DELETE) @DeleteMapping("/{jobIds}") public AjaxResult remove(@PathVariable Long[] jobIds) throws SchedulerException aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderJobService.java
@@ -64,6 +64,11 @@ void batchInsertApsWorkOrderJob(ApsWorkOrderJobParam param); void SyncWorkOrderByTime(); @Transactional boolean batchSaveByPager(ApsWorkOrderJobParam param); @Transactional void syncPartOrderData(); } 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,7 +127,9 @@ } /** * 根据页码全量同步数据 * */ @Override public void batchInsertApsWorkOrderJob(ApsWorkOrderJobParam param) { @@ -134,53 +142,76 @@ } } /** * 根据时间段每日更新,页面自动递增循环同步数据 * */ @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 = 49; 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); batchSaveByPager(param); while (continueFlag){ param.setPageIndex(currentPage); continueFlag= batchSaveByPager(param); currentPage++; } } @Transactional @Override public boolean batchSaveByPager(ApsWorkOrderJobParam param) { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); /*设置当前页面*/ ApsWorkOrderJobLog log = new ApsWorkOrderJobLog(); 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); 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); 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); if(ct>0){ log.setResult("ok save "+ct); jobLogMapper.updateApsWorkOrderJobLog(log); jobLog.setResult("ok save "+ct); jobLogMapper.updateApsWorkOrderJobLog(jobLog); return false; }else{ log.setResult("ok save 0"); jobLogMapper.updateApsWorkOrderJobLog(log); return true; jobLog.setResult("ok receive 0"); jobLogMapper.updateApsWorkOrderJobLog(jobLog); return false; } }else { log.setResult("ok receive 0"); jobLogMapper.updateApsWorkOrderJobLog(log); return true; jobLog.setResponseData(response.getBody()); jobLog.setResult("fail"); jobLogMapper.updateApsWorkOrderJobLog(jobLog); return false; } } else { log.setResponseData(response.getBody()); log.setResult("fail"); jobLogMapper.updateApsWorkOrderJobLog(log); return true; jobLog.setResponseData(response.getBody()); jobLog.setResult("fail"); jobLogMapper.updateApsWorkOrderJobLog(jobLog); log.info(JSONObject.toJSONString(jobLog)); return false; } return true; } else { log.setResponseData(response.getBody()); log.setResult("fail"); jobLogMapper.updateApsWorkOrderJobLog(log); return true; } } @Transactional public int batchInsertApsWorkOrderJob(ApsWorkOrderJobParam param, JSONArray result) { aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java
@@ -1,9 +1,16 @@ package com.aps.job.task; import com.aps.common.core.utils.StringUtils; import com.aps.job.param.ApsWorkOrderJobParam; import com.aps.job.service.IApsWorkOrderJobService; import com.aps.job.service.IApsWorkOrderProcessService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Arrays; /** * 定时任务调度测试 @@ -16,6 +23,10 @@ @Autowired private IApsWorkOrderProcessService iApsWorkOrderProcessService; @Autowired private IApsWorkOrderJobService iApsWorkOrderJobService; public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) { System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i)); @@ -38,4 +49,37 @@ { iApsWorkOrderProcessService.syncWorkOrderProcessData(); } /** * 每日同步零件工单数据 * */ public void syncWorkOrderData() { iApsWorkOrderJobService.SyncWorkOrderByTime(); } /** * 每日同步零件工单数据 * */ public void syncPartOrderData() { 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= iApsWorkOrderJobService.batchSaveByPager(param); currentPage++; } } }