lohir
2024-10-24 99cc61dad74f04a7616c3541f5e87762585abb93
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.*;
@@ -1053,4 +1054,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));
    }
}