lyh
2025-07-09 74a2422fd20075e3aca6e2b059073bd65d895cc4
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
@@ -181,7 +181,7 @@
        //删除标记
        entity.setDelFlag(CommonConstant.DEL_FLAG_0);
        //重复性校验
        EamMaintenanceStandard exist = checkDuplicate(entity.getEquipmentId(), entity.getMaintenanceCategory());
        EamMaintenanceStandard exist = checkDuplicate(entity.getEquipmentId(), entity.getMaintenanceCategory(),MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
        if(exist != null){
            throw new JeecgBootException("设备标准已存在,不能重复添加!");
        }
@@ -265,7 +265,7 @@
        //删除标记
        newEntity.setDelFlag(CommonConstant.DEL_FLAG_0);
        //重复性校验
        EamMaintenanceStandard exist = checkDuplicate(newEntity.getEquipmentId(), newEntity.getMaintenanceCategory());
        EamMaintenanceStandard exist = checkDuplicate(newEntity.getEquipmentId(), newEntity.getMaintenanceCategory(),MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
        if(exist != null){
            throw new JeecgBootException("设备标准已存在,不能重复添加!");
        }
@@ -286,12 +286,12 @@
    }
    @Override
    public EamMaintenanceStandard checkDuplicate(String equipmentId, String maintenanceCategory) {
    public EamMaintenanceStandard checkDuplicate(String equipmentId, String maintenanceCategory,String standardStatus) {
        LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(EamMaintenanceStandard::getEquipmentId, equipmentId);
        queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory);
        queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, standardStatus);
        queryWrapper.orderByDesc(EamMaintenanceStandard::getStandardVersion);
        List<EamMaintenanceStandard> list = eamMaintenanceStandardMapper.selectList(queryWrapper);
@@ -567,6 +567,12 @@
            }
            eamMaintenanceStandard.setStandardName(name);
            EamMaintenanceStandard exist = checkDuplicate(eamMaintenanceStandard.getEquipmentId(), eamMaintenanceStandard.getMaintenanceCategory(),MaintenanceStandardStatusEnum.START.name());
            if(exist != null){
                return Result.error(name + ": 设备标准已存在,不能重复添加");
            }
            eamMaintenanceStandardMapper.insert(eamMaintenanceStandard);
            // 2. 提取每日点检项目
@@ -967,13 +973,17 @@
                    }
                    // 提取设备信息
                    standard = extractDeviceInfo(table);
                    standard = extractDeviceInfo(table,type);
                    if (standard == null) {
                        return Result.error(fileName + ": 设备信息提取失败");
                    }
                    // 配置类型相关参数
                    configureStandard(standard, type, file);
                    EamMaintenanceStandard exist = checkDuplicate(standard.getEquipmentId(), standard.getMaintenanceCategory(),MaintenanceStandardStatusEnum.START.name());
                    if(exist != null){
                        return Result.error(fileName + ": 设备标准已存在,不能重复添加");
                    }
                    eamMaintenanceStandardMapper.insert(standard);
                    standardId = standard.getId();
@@ -1257,7 +1267,7 @@
    /**
     * 提取设备基本信息
     */
    private EamMaintenanceStandard extractDeviceInfo(XWPFTable table) {
    private EamMaintenanceStandard extractDeviceInfo(XWPFTable table,String type) {
        if (table.getNumberOfRows() < 2) return null;
        // 提取前两行数据
@@ -1279,15 +1289,15 @@
            }else {
                standard.setEquipmentId(equipments.getId());
            }
            if (type.equals("THIRD")){
                EamEquipmentExtend eamEquipmentExtend=eamEquipmentExtendService.getById(standard.getEquipmentId());
                standard.setMaintenancePeriod(eamEquipmentExtend.getThirdMaintenancePeriod());
            }
        }
        return standard;
    }
    // 简易版字符串非空判断
    private boolean isNotBlank(String str) {
        return str != null && !str.trim().isEmpty();
    }
    /**
     * 表格行数据解析
@@ -1371,21 +1381,6 @@
    }
    /**
     * 创建保养项目
     */
    private EamMaintenanceStandardDetail createItem(
            EamMaintenanceStandardDetailCategory category,
            String content,
            String standardId) {
        EamMaintenanceStandardDetail item = new EamMaintenanceStandardDetail();
        item.setItemCategory(category.name());
        item.setStandardId(standardId);
        item.setItemName(cleanContent(content));
        return item;
    }
    /**
     * 兼容版单元格文本提取
     */
    private String getCellText(XWPFTableCell cell) {
@@ -1405,28 +1400,6 @@
            }
        }
        return text.toString();
    }
    /**
     * 内容清理
     */
    private String cleanContent(String text) {
        if (text == null) return "";
        // 替换特殊空格和合并连续空格
        text = text.replace('\u00A0', ' ')
                .replace('\u2007', ' ')
                .replace('\u202F', ' ')
                .replaceAll("\\s+", " ");
        // 规范标点符号
        return text.replace(',', '、')
                .replace(',', '、')
                .replace(';', ';')
                .replace(';', ';')
                .replace(':', ':')
                .replace(':', ':')
                .trim();
    }
    /**