zxl
2025-04-30 2f3bbf0372e5c1f8b6b1426db2c14b3595cb0968
ycl-server/src/main/java/com/ycl/task/WorkOrderTask.java
@@ -1,8 +1,12 @@
package com.ycl.task;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.ycl.platform.domain.entity.WorkOrder;
import com.ycl.platform.domain.query.DistributeWorkOrderQuery;
import com.ycl.platform.domain.vo.WorkOrderVO;
import com.ycl.platform.domain.vo.YwPointJobVO;
import com.ycl.platform.mapper.WorkOrderMapper;
import com.ycl.platform.service.WorkOrderService;
import com.ycl.system.domain.SysConfig;
import com.ycl.system.mapper.SysConfigMapper;
import com.ycl.utils.DateUtils;
@@ -13,6 +17,8 @@
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -25,6 +31,7 @@
@Component("workOrderTask")
public class WorkOrderTask {
    private final WorkOrderService workOrderService;
    private final WorkOrderMapper workOrderMapper;
    private final SysConfigMapper configMapper;
@@ -74,4 +81,30 @@
            workOrderMapper.updateById(wo);
        }
    }
    public static List<String> errType = new ArrayList<>(List.of("OSD","ABNORMALPIC","DEVICEOFFLINE"));
    //工单下发定时任务, 工单因为更新导致 状态变为待下发,根据错误类型将需要直接下发工单
    //离线,图形异常,osd错误
    public void workOrderDistribute(){
        //查询今日待下发工单
        Date now = new Date();
        Date startDate = DateUtils.getDayStart(now);
        Date endDate = DateUtils.getDayEnd(now);
        //获得今日工单
        List<WorkOrderVO> list = workOrderService.distributeList(startDate,endDate);
        List<String> workOrderNos = new ArrayList<>();
        for (WorkOrderVO workOrderVO : list){
           for (String errType : workOrderVO.getErrorTypeList()){
               if (WorkOrderTask.errType.contains(errType)){
                   //判断工单是否包含errType中的错误类型
                   workOrderNos.add(workOrderVO.getWorkOrderNo());
                   break;
               }
           }
        }
        DistributeWorkOrderQuery distributeWorkOrderQuery = new DistributeWorkOrderQuery();
        distributeWorkOrderQuery.setWorkOrderNOList(workOrderNos);
        //下发接口
        workOrderService.selectedIdsDistribute(distributeWorkOrderQuery);
    }
}