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;
@@ -11,8 +15,11 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -25,6 +32,7 @@
@Component("workOrderTask")
public class WorkOrderTask {
    private final WorkOrderService workOrderService;
    private final WorkOrderMapper workOrderMapper;
    private final SysConfigMapper configMapper;
@@ -74,4 +82,37 @@
            workOrderMapper.updateById(wo);
        }
    }
    public static List<String> errType = new ArrayList<>(List.of("图像异常","OSD异常","设备离线"));
    //工单下发定时任务, 工单因为更新导致 状态变为待下发,根据错误类型将需要直接下发工单
    //离线,图像异常,osd错误
    public void workOrderDistribute(){
        //查询今日待下发工单
        Date now = new Date();
        Date startDate = DateUtils.getDayStart(now);
        Date endDate = DateUtils.getDayEnd(now);
        //获得今日工单
        //不仅获得今日工单 而是获得所有工单
        List<WorkOrderVO> list = workOrderService.distributeList();
        log.error("获得工单:{}",list);
        List<String> workOrderNos = new ArrayList<>();
        for (WorkOrderVO workOrderVO : list){
            List<String> errTypeArray = Arrays.stream(workOrderVO.getErrorType().split("、")).toList();
            for (String errType : errTypeArray) {
                if (WorkOrderTask.errType.contains(errType)) {
                    //判断工单是否包含errType中的错误类型
                    workOrderNos.add(workOrderVO.getWorkOrderNo());
                    break;
                }
            }
        }
        log.error("工单打印{}",workOrderNos);
        DistributeWorkOrderQuery distributeWorkOrderQuery = new DistributeWorkOrderQuery();
        distributeWorkOrderQuery.setWorkOrderNOList(workOrderNos);
        //下发接口
        if(!CollectionUtils.isEmpty(workOrderNos)){
            workOrderService.selectedIdsDistribute(distributeWorkOrderQuery);
        }
    }
}