gongchunyi
21 小时以前 6bab142343375e744e46f2042aa3b0fedea70b06
src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
@@ -122,10 +122,10 @@
                        SysUser::getNickName,
                        (existing, replacement) -> existing));
        //处理附件
        //处理附件 - 只查询巡检附件(type=20)
        List<CommonFile> commonFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
                .in(CommonFile::getCommonId, ids)
                .in(CommonFile::getType, Arrays.asList(FileNameType.INSPECTION.getValue(), FileNameType.INSPECTION_PRODUCTION_BEFORE.getValue(), FileNameType.INSPECTION_PRODUCTION_AFTER.getValue())));
                .in(CommonFile::getType, Arrays.asList(FileNameType.INSPECTION.getValue())));
        if(commonFiles == null){
            commonFiles = new ArrayList<>();
        }
@@ -158,20 +158,11 @@
            dto.setDateStr(inspectionTask.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
            // 初始化三个附件列表
            // 设置附件列表 - 统一使用 commonFileList
            List<CommonFile> taskFiles = finalCommonFiles.stream()
                    .filter(commonFile -> Objects.equals(commonFile.getCommonId(), inspectionTask.getId()))
                    .collect(Collectors.toList());
            dto.setCommonFileList(taskFiles.stream()
                    .filter(commonFile -> Objects.equals(commonFile.getType(), FileNameType.INSPECTION.getValue()))
                    .collect(Collectors.toList()));
            dto.setCommonFileListAfter(taskFiles.stream()
                    .filter(commonFile -> Objects.equals(commonFile.getType(), FileNameType.INSPECTION_PRODUCTION_AFTER.getValue()))
                    .collect(Collectors.toList()));
            dto.setCommonFileListBefore(taskFiles.stream()
                    .filter(commonFile -> Objects.equals(commonFile.getType(), FileNameType.INSPECTION_PRODUCTION_BEFORE.getValue()))
                    .collect(Collectors.toList()));
            dto.setCommonFileList(taskFiles);
            return dto;
        }).collect(Collectors.toList());
@@ -212,6 +203,25 @@
        BeanUtils.copyProperties(inspectionTaskDto, inspectionTask);
        inspectionTask.setRegistrantId(SecurityUtils.getLoginUser().getUserId());
        inspectionTask.setRegistrant(SecurityUtils.getLoginUser().getUsername());
        // 处理异常状态转换:hasException -> inspectionStatus
        // hasException = null -> 0(未巡检), false -> 1(正常), true -> 2(异常)
        Boolean hasException = inspectionTaskDto.getHasException();
        if (hasException != null) {
            inspectionTask.setInspectionStatus(hasException ? 2 : 1);
            // 如果有异常描述,设置异常描述
            if (hasException && inspectionTaskDto.getInspectionRemark() != null) {
                inspectionTask.setInspectionRemark(inspectionTaskDto.getInspectionRemark());
            }
        } else {
            inspectionTask.setInspectionStatus(0);
        }
        // 重新巡检时,重置验收状态
        inspectionTask.setAcceptStatus(0);
        inspectionTask.setInspectionAcceptorId(null);
        inspectionTask.setInspectionAcceptor(null);
        int i;
        if (Objects.isNull(inspectionTaskDto.getId())) {
            i = inspectionTaskMapper.insert(inspectionTask);
@@ -224,6 +234,25 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int acceptInspectionTask(Long id, Integer acceptStatus) {
        InspectionTask task = inspectionTaskMapper.selectById(id);
        if (task == null) {
            throw new RuntimeException("任务不存在");
        }
        if (task.getInspectionStatus() == null || task.getInspectionStatus() == 0) {
            throw new RuntimeException("该任务尚未巡检,无法验收");
        }
        task.setInspectionAcceptorId(SecurityUtils.getLoginUser().getUserId());
        task.setInspectionAcceptor(SecurityUtils.getLoginUser().getUser().getNickName());
        task.setAcceptStatus(acceptStatus);
        // 如果是退回(2),考虑到可能是重新巡检,可以保留之前的巡检记录但状态变为退回
        // APP端会根据 acceptStatus == 2 来放开巡检按钮
        return inspectionTaskMapper.updateById(task);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int delByIds(Long[] ids) {
        // 检查参数
        if (ids == null || ids.length == 0) {