fuliqi
2024-10-31 d715a933d9f599c9586b07a34e076a6c614916b8
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -14,6 +14,7 @@
import com.ycl.config.ServerConfig;
import com.ycl.exception.ServiceException;
import com.ycl.platform.domain.entity.*;
import com.ycl.platform.domain.excel.PointExport;
import com.ycl.platform.domain.form.*;
import com.ycl.platform.domain.query.*;
import com.ycl.platform.domain.vo.*;
@@ -113,11 +114,11 @@
        // 查询出白名单列表
        List<String> serialNumbers = workOrderWhiteMapper.selectList().stream().map(WorkOrderWhite::getSerialNumber).collect(Collectors.toList());
        // 遍历工单列表,判断是否在白名单中
        workOrderList.stream().filter(item -> !serialNumbers.contains(item.getSerialNumber()))
        workOrderList = workOrderList.stream().filter(item -> !serialNumbers.contains(item.getSerialNumber()))
                        .collect(Collectors.toList());
        workOrderList.stream().filter(item -> {
        workOrderList = workOrderList.stream().filter(item -> {
            return StringUtils.hasText(item.getSerialNumber()) && Objects.nonNull(item.getStatus()) && !CollectionUtils.isEmpty(item.getErrorTypeList());
        });
        }).collect(Collectors.toList());
        if (CollectionUtils.isEmpty(workOrderList)) {
            return Boolean.TRUE;
        }
@@ -169,7 +170,10 @@
                            willAddErrorType.add(workOrderErrorType);
                        }
                    }
                    databaseWorkOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
                    //避免代下发的工单直接变成下发
                    if(!databaseWorkOrder.getStatus().equals(WorkOrderStatusEnum.WAIT_DISTRIBUTE)) {
                        databaseWorkOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
                    }
                    databaseWorkOrder.setUpdateTime(now);
                    willUpdateStatusWorkOrderList.add(databaseWorkOrder);
                    updateNum++;
@@ -1053,4 +1057,26 @@
        workOrderWhiteMapper.batchDelete(ids);
        return Result.ok();
    }
    /**
     * 批量导入白名单
     *
     * @param dataList 数据列表
     * @author
     */
    @Override
    public void batchImportWhite(List<PointExport> dataList) {
        // 获得所有需要新增的白名单对象
        List<WorkOrderWhite> whitelist = dataList.stream().map(pointExport ->
                        new WorkOrderWhite(pointExport.getSerialNumber(), pointExport.getPointName(), SecurityUtils.getUsername()))
                .collect(Collectors.toList());
        // 获得所有已存在的白名单设备编码
        List<String> serialNumbers = workOrderWhiteMapper.selectList().stream().map(WorkOrderWhite::getSerialNumber).collect(Collectors.toList());
        // 筛选出新增、修改的白名单对象
        List<WorkOrderWhite> updateWhiteList = whitelist.stream().filter(white -> serialNumbers.contains(white.getSerialNumber())).collect(Collectors.toList());
        List<WorkOrderWhite> insertWhiteList = whitelist.stream().filter(white ->!serialNumbers.contains(white.getSerialNumber())).collect(Collectors.toList());
        // 新增/修改白名单设备记录
        updateWhiteList.stream().forEach(white -> workOrderWhiteMapper.updateBySerialNumber(white));
        insertWhiteList.stream().forEach(white -> workOrderWhiteMapper.insert(white));
    }
}