lohir
2024-10-23 4c55edc6f53989beb03bf36aabb469d76470b517
完成创建工单时对工单进行白名单判断
3个文件已修改
47 ■■■■ 已修改文件
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderWhiteMapper.java
@@ -52,4 +52,12 @@
    void batchDelete(@Param("ids") List<String> ids);
    WorkOrderWhite selectBySerialNumber(String serialNumber);
    /**
     * 查询所有白名单
     *
     * @return {@link List }<{@link WorkOrderWhite }>
     * @author
     */
    List<WorkOrderWhite> selectList();
}
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -110,6 +110,11 @@
    @Transactional(rollbackFor = Exception.class)
    public synchronized Boolean innerAddWorkOrder(List<WorkOrder> workOrderList) {
        int total = workOrderList.size();
        // 查询出白名单列表
        List<String> serialNumbers = workOrderWhiteMapper.selectList().stream().map(WorkOrderWhite::getSerialNumber).collect(Collectors.toList());
        // 遍历工单列表,判断是否在白名单中
        workOrderList.stream().filter(item -> !serialNumbers.contains(item.getSerialNumber()))
                        .collect(Collectors.toList());
        workOrderList.stream().filter(item -> {
            return StringUtils.hasText(item.getSerialNumber()) && Objects.nonNull(item.getStatus()) && !CollectionUtils.isEmpty(item.getErrorTypeList());
        });
@@ -324,19 +329,26 @@
            return Result.error("工单正在添加,请稍后再试");
        }
        WorkOrder entity = WorkOrderForm.getEntityByForm(form, null);
        entity.setCreateTime(DateUtils.getNowDate());
        entity.setStatus(WorkOrderStatusEnum.WAIT_DISTRIBUTE);
        Date now = new Date();
        entity.setCreateTime(now);
        entity.setUpdateTime(now);
        entity.setWorkOrderNo(IdUtils.workOrderNO(now, String.format("%05d", workOrderNum)));
        entity.setErrorType(String.join(",", form.getErrorType()));
        List<WorkOrderErrorType> workOrderErrorTypes = form.getErrorType().stream().map(errorType -> new WorkOrderErrorType(entity.getWorkOrderNo(), errorType)).toList();
        workOrderErrorTypeService.getBaseMapper().insertWorkOrderErrorTypeList(workOrderErrorTypes);
        if (baseMapper.insert(entity) > 0) {
            return Result.ok("添加成功");
        // 查询出白名单列表
        List<String> serialNumbers = workOrderWhiteMapper.selectList().stream().map(WorkOrderWhite::getSerialNumber).collect(Collectors.toList());
        // 遍历工单列表,判断是否在白名单中
         if (serialNumbers.contains(entity.getSerialNumber())){
            return Result.error("该设备在白名单中,不能添加工单");
        }else {
            entity.setCreateTime(DateUtils.getNowDate());
            entity.setStatus(WorkOrderStatusEnum.WAIT_DISTRIBUTE);
            Date now = new Date();
            entity.setCreateTime(now);
            entity.setUpdateTime(now);
            entity.setWorkOrderNo(IdUtils.workOrderNO(now, String.format("%05d", workOrderNum)));
            entity.setErrorType(String.join(",", form.getErrorType()));
            List<WorkOrderErrorType> workOrderErrorTypes = form.getErrorType().stream().map(errorType -> new WorkOrderErrorType(entity.getWorkOrderNo(), errorType)).toList();
            workOrderErrorTypeService.getBaseMapper().insertWorkOrderErrorTypeList(workOrderErrorTypes);
            if (baseMapper.insert(entity) > 0) {
                return Result.ok("添加成功");
            }
            return Result.error("添加失败");
        }
        return Result.error("添加失败");
    }
    /**
ycl-server/src/main/resources/mapper/zgyw/WorkOrderWhiteMapper.xml
@@ -27,6 +27,9 @@
        <include refid="selectWorkOrderWhiteVo"/>
        where serial_number = #{serialNumber}
    </select>
    <select id="selectList" resultType="com.ycl.platform.domain.entity.WorkOrderWhite">
        <include refid="selectWorkOrderWhiteVo"/>
    </select>
    <insert id="insert" parameterType="WorkOrderWhite" useGeneratedKeys="true" keyProperty="id">
        insert into t_work_order_white