package com.aps.job.task; import com.aps.common.core.constant.SecurityConstants; import com.aps.common.core.utils.StringUtils; import com.aps.job.param.ApsWorkOrderJobParam; import com.aps.job.service.*; import com.aps.system.api.RemoteCoreService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Arrays; /** * 定时任务调度测试 * * @author ruoyi */ @Component("ryTask") public class RyTask { @Autowired private IApsWorkOrderProcessService iApsWorkOrderProcessService; @Autowired private IApsWorkOrderJobService iApsWorkOrderJobService; @Autowired private IApsBomHeaderJobService iApsBomHeaderJobService; @Autowired private RemoteCoreService remoteCoreService; @Autowired private IApsMaterialStorageManagementJobService apsMaterialStorageManagementJobService; @Autowired private IApsStandardProcessRouteHeaderJobService apsStandardProcessRouteHeaderJobService; @Autowired private IApsMaterialManagementJobService apsMaterialManagementJobService; @Autowired private IApsWeldSeamStandardJobService apsWeldSeamStandardJobService; public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) { System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i)); } public void ryParams(String params) { System.out.println("执行有参方法:" + params); } public void ryNoParams() { System.out.println("执行无参方法"); } /** * 同步工单工序数据 */ public void syncWorkOrderProcessData(String status, Integer pageSize) { iApsWorkOrderProcessService.deleteApsWorkOrderProcess(); iApsWorkOrderProcessService.syncWorkOrderProcessData(status, pageSize); iApsWorkOrderProcessService.syncProcessRouteData(); } /** * 每日同步零件工单数据 * */ public void syncPartOrderData () { iApsWorkOrderJobService.syncPartOrderData(); } /** * 每日同步钣金工单数据 * */ public void syncPlateOrderData () { iApsWorkOrderJobService.syncPlateOrderData(); } /** * 每日同步气柜管路数据 * */ public void syncGasPipingData () { iApsWorkOrderJobService.syncGasPipingData(); } /** * 每日同步所有工单数据 * */ public void syncWorkOrderData() { 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(500); while (continueFlag){ param.setPageIndex(currentPage); continueFlag= iApsWorkOrderJobService.batchSaveByPager(param); currentPage++; } } /** * 每日同步所有工单数据 * */ public void syncAllWorkOrder() { iApsWorkOrderJobService.deleteAllWorkOrderJob(); boolean continueFlag = true; Integer currentPage = 1; ApsWorkOrderJobParam param=new ApsWorkOrderJobParam(); param.setPageIndex(currentPage); param.setDocState(Arrays.asList(0,1,2,4)); param.setPageSize(500); while (continueFlag){ param.setPageIndex(currentPage); continueFlag= iApsWorkOrderJobService.batchSaveByPager(param); currentPage++; } } /** * 将工单工序数据同步到业务表中 */ public void insertIntoApsProcessRoute() { iApsWorkOrderProcessService.syncProcessRouteData(); } /** * 同步零件、钣金、气柜管路的工单数据到业务表中、同步工序数据到工艺路线表中 */ public void syncAllTypeOrder() { iApsWorkOrderJobService.syncPartOrderData(); iApsWorkOrderJobService.syncPlateOrderData(); iApsWorkOrderJobService.syncGasPipingData(); iApsWorkOrderProcessService.syncProcessRouteData(); } /** * 同步全量BOM数据定时任务 */ public void syncBomDataJob(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList) { boolean res = iApsBomHeaderJobService.syncBomDataJob(pageIndex, pageSize, orgCode, itemCodeList); if(res){ remoteCoreService.setBomDataToRedis(SecurityConstants.INNER); } } /** * 同步全量库存数据定时任务 */ public void syncApsMaterialStorageDataJob(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList) { boolean res = apsMaterialStorageManagementJobService.syncApsMaterialStorageDataJob(pageIndex, pageSize, orgCode, itemCodeList); if(res){ remoteCoreService.setStorageDataToRedis(SecurityConstants.INNER); } } /** * 同步全量工艺路线数据定时任务 */ public void syncProcessRouteJob(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList) { boolean res = apsStandardProcessRouteHeaderJobService.syncProcessRouteDataJob(pageIndex, pageSize, orgCode, itemCodeList); if(res){ remoteCoreService.setProcessRouteDataToRedis(SecurityConstants.INNER); } } /** * 同步全量物料数据定时任务 */ public void syncApsMaterialDataJob(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList) { apsMaterialManagementJobService.syncApsMaterialDataJob(pageIndex, pageSize, orgCode, itemCodeList); } /** * 刷新钣金子单数据到Redis */ public void setPlateSubPlansToRedis(){ remoteCoreService.setPlateSubPlansToRedis(SecurityConstants.INNER); } /** * 同步物料标准焊缝数据 */ public void syncWeldSeamStandardData() { apsWeldSeamStandardJobService.syncWeldSeamStandardData(); } }