zhanghl
2025-04-18 a56fa75e2f5c7d4aefe63a6c0f81e69be281c59a
work——order 同步零件工单数据ryTask准备
已修改5个文件
166 ■■■■ 文件已修改
aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartPlan.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/service/IApsWorkOrderJobService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWorkOrderJobServiceImpl.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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++;
        }
    }
}