Lius
2 天以前 eea27b448ec2d289f5c9665bf4b3678d580457ee
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java
@@ -1,12 +1,13 @@
package org.jeecg.modules.eam.job;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum;
import org.jeecg.modules.eam.constant.OrderCreationMethodEnum;
import org.jeecg.modules.eam.entity.EamInspectionOrderDetail;
import org.jeecg.modules.eam.entity.EamInspectionOrder;
import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
import org.jeecg.modules.eam.request.EamInspectionOrderRequest;
@@ -69,7 +70,7 @@
         */
        List<EamMaintenanceStandard> standardList = eamMaintenanceStandardService.queryListByCategory(MaintenanceCategoryEnum.POINT_INSPECTION.name());
        if (CollectionUtil.isEmpty(standardList)) {
            log.warn("没有配置任何周保标准,任务结束");
            log.warn("没有配置任何点检标准,任务结束");
            return;
        }
        //当前日期
@@ -85,21 +86,25 @@
                    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)) {
                    //还未到生成日期,跳过执行
                if (!generateDate.equals(now)) {
                    //加周期
                    do {
                        //初始日期设置的比较早,或任务长时间没执行,必须周期到今天才会生成工单
                        generateDate = generateDate.plusDays(standard.getMaintenancePeriod());
                    } while (now.isAfter(generateDate));
                    if (!now.isEqual(generateDate)) {
                        //还未到生成日期,跳过执行
                        continue;
                    }
                }
                //校验生成日期是否已有工单
                List<EamInspectionOrder> list = eamInspectionOrderService.list(new LambdaQueryWrapper<EamInspectionOrder>().eq(EamInspectionOrder::getEquipmentId, standard.getEquipmentId()).eq(EamInspectionOrder::getInspectionDate, DateUtils.localDateToDate(generateDate)));
                if (!CollectionUtil.isEmpty(list)) {
                    continue;
                }
                //获取保养项明细
                List<EamMaintenanceStandardDetail> standardDetailList = eamMaintenanceStandardDetailService.selectByStandardId(standard.getId());
                if(CollectionUtil.isEmpty(standardDetailList)) {
                if (CollectionUtil.isEmpty(standardDetailList)) {
                    log.error("点检标准没有保养明细,请先配置保养明细, standard:{}", standard);
                    continue;
                }
@@ -112,13 +117,11 @@
                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);
            }
            quartzLog.setIsSuccess(0);
        } catch (Exception e) {
            log.error("周保过生成执行定时任务失败,{}", e.getMessage(), e);
            log.error("点检生成执行定时任务失败,{}", e.getMessage(), e);
            quartzLog.setIsSuccess(-1);
            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
        }