lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java
@@ -13,7 +13,6 @@ import org.jeecg.modules.eam.service.IEamInspectionOrderService; import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService; import org.jeecg.modules.eam.service.IEamMaintenanceStandardService; import org.jeecg.modules.mdc.util.ThrowableUtil; import org.jeecg.modules.quartz.entity.QuartzJob; import org.jeecg.modules.quartz.entity.SysQuartzLog; import org.jeecg.modules.quartz.service.IQuartzJobService; @@ -24,7 +23,6 @@ import org.quartz.JobExecutionException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.util.Date; @@ -54,7 +52,6 @@ * @throws JobExecutionException */ @Override @Transactional(rollbackFor = Exception.class) public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { //任务日志 SysQuartzLog quartzLog = new SysQuartzLog(); @@ -69,59 +66,57 @@ */ List<EamMaintenanceStandard> standardList = eamMaintenanceStandardService.queryListByCategory(MaintenanceCategoryEnum.POINT_INSPECTION.name()); if (CollectionUtil.isEmpty(standardList)) { log.warn("没有配置任何周保标准,任务结束"); log.warn("没有配置任何点检标准,任务结束"); return; } //当前日期 LocalDate now = LocalDate.now(); try { for (EamMaintenanceStandard standard : standardList) { if (standard.getMaintenancePeriod() == null || standard.getMaintenancePeriod() < 1) { log.error("点检标准周期设置错误,请先配置标准周期, standard:{}", standard); continue; } if (standard.getInitialDate() == null) { //设置初始日期为前一天 standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1))); } LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate()); if (standard.getLastGenerateTime() != null) { generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime()); } //加周期 do { //初始日期设置的比较早,或任务长时间没执行,必须周期到今天才会生成工单 generateDate = generateDate.plusDays(standard.getMaintenancePeriod()); } while (now.isAfter(generateDate)); if(!now.isEqual(generateDate)) { //还未到生成日期,跳过执行 continue; } //获取保养项明细 List<EamMaintenanceStandardDetail> standardDetailList = eamMaintenanceStandardDetailService.selectByStandardId(standard.getId()); if(CollectionUtil.isEmpty(standardDetailList)) { log.error("点检标准没有保养明细,请先配置保养明细, standard:{}", standard); continue; } //开始生成 EamInspectionOrderRequest request = new EamInspectionOrderRequest(); request.setEquipmentId(standard.getEquipmentId()); request.setStandardId(standard.getId()); request.setInspectionDate(DateUtils.localDateToDate(generateDate)); request.setExpirationTime(DateUtils.localDateToDate(generateDate.plusDays(standard.getMaintenancePeriod()))); request.setCreationMethod(OrderCreationMethodEnum.AUTO.name()); String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.INSPECTION_ORDER_CODE_RULE); request.setOrderNum(codeSeq); List<EamInspectionOrderDetail> collect = standardDetailList.stream().map(EamInspectionOrderDetail::new).collect(Collectors.toList()); request.setTableDetailList(collect); eamInspectionOrderService.addInspectionOrder(request); for (EamMaintenanceStandard standard : standardList) { if (standard.getMaintenancePeriod() == null || standard.getMaintenancePeriod() < 1) { log.error("点检标准周期设置错误,请先配置标准周期, standard:{}", standard); continue; } quartzLog.setIsSuccess(0); } catch (Exception e) { log.error("周保过生成执行定时任务失败,{}", e.getMessage(), e); quartzLog.setIsSuccess(-1); quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); if (standard.getInitialDate() == null) { //设置初始日期为前一天 standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1))); } LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate()); if (standard.getLastGenerateTime() != null) { generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime()); } //加周期 do { //初始日期设置的比较早,或任务长时间没执行,必须周期到今天才会生成工单 generateDate = generateDate.plusDays(standard.getMaintenancePeriod()); } while (now.isAfter(generateDate)); if(!now.isEqual(generateDate)) { //还未到生成日期,跳过执行 continue; } //获取保养项明细 List<EamMaintenanceStandardDetail> standardDetailList = eamMaintenanceStandardDetailService.selectByStandardId(standard.getId()); if(CollectionUtil.isEmpty(standardDetailList)) { log.error("点检标准没有保养明细,请先配置保养明细, standard:{}", standard); continue; } //开始生成 EamInspectionOrderRequest request = new EamInspectionOrderRequest(); request.setEquipmentId(standard.getEquipmentId()); request.setStandardId(standard.getId()); request.setInspectionDate(DateUtils.localDateToDate(generateDate)); request.setExpirationTime(DateUtils.localDateToDate(generateDate.plusDays(standard.getMaintenancePeriod()))); request.setCreationMethod(OrderCreationMethodEnum.AUTO.name()); String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.INSPECTION_ORDER_CODE_RULE); request.setOrderNum(codeSeq); List<EamInspectionOrderDetail> collect = standardDetailList.stream().map(EamInspectionOrderDetail::new).collect(Collectors.toList()); request.setTableDetailList(collect); try { eamInspectionOrderService.addInspectionOrder(request); } catch (Exception e) { log.error("点检生成执行定时任务失败,{}", e.getMessage(), e); } } quartzLog.setIsSuccess(0); long endTime = System.currentTimeMillis(); quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); sysQuartzLogService.save(quartzLog); lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java
@@ -13,7 +13,6 @@ import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService; import org.jeecg.modules.eam.service.IEamMaintenanceStandardService; import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService; import org.jeecg.modules.mdc.util.ThrowableUtil; import org.jeecg.modules.quartz.entity.QuartzJob; import org.jeecg.modules.quartz.entity.SysQuartzLog; import org.jeecg.modules.quartz.service.IQuartzJobService; @@ -24,7 +23,6 @@ import org.quartz.JobExecutionException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.util.Date; @@ -54,7 +52,6 @@ * @throws JobExecutionException */ @Override @Transactional(rollbackFor = Exception.class) public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { //任务日志 SysQuartzLog quartzLog = new SysQuartzLog(); @@ -74,53 +71,51 @@ } //当前日期 LocalDate now = LocalDate.now(); try { for (EamMaintenanceStandard standard : standardList) { if (standard.getMaintenancePeriod() == null || standard.getMaintenancePeriod() < 1) { log.error("周保标准周期设置错误,请先配置标准周期, standard:{}", standard); continue; } if (standard.getInitialDate() == null) { //设置初始日期为前一天 standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1))); } LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate()); if (standard.getLastGenerateTime() != null) { generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime()); } //加周期 do { //初始日期设置的比较早,或任务长时间没执行,必须周期到今天才会生成工单 generateDate = generateDate.plusDays(standard.getMaintenancePeriod()); } while (now.isAfter(generateDate)); if(!now.isEqual(generateDate)) { //还未到生成日期,跳过执行 continue; } //获取保养项明细 List<EamMaintenanceStandardDetail> standardDetailList = eamMaintenanceStandardDetailService.selectByStandardId(standard.getId()); if(CollectionUtil.isEmpty(standardDetailList)) { log.error("周保标准没有保养明细,请先配置保养明细, standard:{}", standard); continue; } //开始生成 EamWeekMaintenanceRequest request = new EamWeekMaintenanceRequest(); request.setEquipmentId(standard.getEquipmentId()); request.setStandardId(standard.getId()); request.setMaintenanceDate(DateUtils.localDateToDate(generateDate)); String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.WEEK_MAINTENANCE_CODE_RULE); request.setOrderNum(codeSeq); request.setCreationMethod(OrderCreationMethodEnum.AUTO.name()); List<EamWeekMaintenanceOrderDetail> collect = standardDetailList.stream().map(EamWeekMaintenanceOrderDetail::new).collect(Collectors.toList()); request.setTableDetailList(collect); eamWeekMaintenanceOrderService.addWeekMaintenance(request); for (EamMaintenanceStandard standard : standardList) { if (standard.getMaintenancePeriod() == null || standard.getMaintenancePeriod() < 1) { log.error("周保标准周期设置错误,请先配置标准周期, standard:{}", standard); continue; } quartzLog.setIsSuccess(0); } catch (Exception e) { log.error("周保过生成执行定时任务失败,{}", e.getMessage(), e); quartzLog.setIsSuccess(-1); quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e)); if (standard.getInitialDate() == null) { //设置初始日期为前一天 standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1))); } LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate()); if (standard.getLastGenerateTime() != null) { generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime()); } //加周期 do { //初始日期设置的比较早,或任务长时间没执行,必须周期到今天才会生成工单 generateDate = generateDate.plusDays(standard.getMaintenancePeriod()); } while (now.isAfter(generateDate)); if(!now.isEqual(generateDate)) { //还未到生成日期,跳过执行 continue; } //获取保养项明细 List<EamMaintenanceStandardDetail> standardDetailList = eamMaintenanceStandardDetailService.selectByStandardId(standard.getId()); if(CollectionUtil.isEmpty(standardDetailList)) { log.error("周保标准没有保养明细,请先配置保养明细, standard:{}", standard); continue; } //开始生成 EamWeekMaintenanceRequest request = new EamWeekMaintenanceRequest(); request.setEquipmentId(standard.getEquipmentId()); request.setStandardId(standard.getId()); request.setMaintenanceDate(DateUtils.localDateToDate(generateDate)); String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.WEEK_MAINTENANCE_CODE_RULE); request.setOrderNum(codeSeq); request.setCreationMethod(OrderCreationMethodEnum.AUTO.name()); List<EamWeekMaintenanceOrderDetail> collect = standardDetailList.stream().map(EamWeekMaintenanceOrderDetail::new).collect(Collectors.toList()); request.setTableDetailList(collect); try { eamWeekMaintenanceOrderService.addWeekMaintenance(request); } catch (Exception e) { log.error("周保生成执行定时任务失败,{}", e.getMessage(), e); } } quartzLog.setIsSuccess(0); long endTime = System.currentTimeMillis(); quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime))); sysQuartzLogService.save(quartzLog);