diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/util/ImportUtil.java b/laws-modules/src/main/java/com/jero/modules/laws/common/util/ImportUtil.java index f4c872b1..593d9047 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/util/ImportUtil.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/util/ImportUtil.java @@ -88,6 +88,7 @@ public class ImportUtil { // 从数据行开始遍历 for (int i = 3; i < sheet.getPhysicalNumberOfRows(); i++) { + Map keyMap = new HashMap<>(); int line = i + 1; StringBuilder errMsg = new StringBuilder("第" + line + "行"); Map parameterMap = new HashMap<>(); @@ -144,34 +145,44 @@ public class ImportUtil { parameterMap.put(FieldCommon.STANDARD_CATEGORY_CODE, this.convertDictValue("standard_category_code", categoryCode)); parameterMap.put(FieldCommon.YEAR_NUMBER, yearCode); } - } - // 校验编号唯一性 - if (TableNameEnum.ENTERPRISE_STANDARDS.getValue().equals(tag.getIsModel())) { - LawsEnterpriseStandard lawsEnterpriseStandard = lawsEnterpriseStandardService.queryByStandardNumber(cellValue); - if (lawsEnterpriseStandard != null) { - log.error("第" + row + "列输入的" + tag.getDbFieldTxt() + "已存在 "); - errMsg.append("第").append(row).append("列输入的").append(tag.getDbFieldTxt()).append("已存在 "); - } - } - if (TableNameEnum.DOMESTIC_REGULATIONS.getValue().equals(tag.getIsModel())) { - QueryWrapper domesticStandardQueryWrapper = new QueryWrapper<>(); - domesticStandardQueryWrapper.eq(FieldCommon.STANDARD_NUMBER, cellValue); - LawsDomesticStandard lawsDomesticStandard = lawsDomeStandardService.getOne(domesticStandardQueryWrapper); - if (lawsDomesticStandard != null) { - log.error("第" + row + "列输入的" + tag.getDbFieldTxt() + "已存在 "); - errMsg.append("第").append(row).append("列输入的").append(tag.getDbFieldTxt()).append("已存在 "); - } - } - if (TableNameEnum.FOREIGN_REGULATIONS.getValue().equals(tag.getIsModel())) { - QueryWrapper foreignStandardQueryWrapper = new QueryWrapper<>(); - foreignStandardQueryWrapper.eq(FieldCommon.STANDARD_NUMBER, cellValue); - LawsOverseasStandard lawsOverseasStandard = overseasStandardService.getOne(foreignStandardQueryWrapper); - if (lawsOverseasStandard != null) { - log.error("第" + row + "列输入的" + tag.getDbFieldTxt() + "已存在 "); - errMsg.append("第").append(row).append("列输入的").append(tag.getDbFieldTxt()).append("已存在 "); + // 判断是否有重复数据 + if (keyMap.containsKey(cellValue)) { + errMsgList.add("第" + keyMap.get(cellValue) + "行'标准编号'与第" + line + "行数据重复。"); + } else { + // 5. 如果不存在,则将 GradeName 和其行号添加到 HashMap 中 + keyMap.put(cellValue, line); } } } + // TODO 国标编号校验 + // TODO 外标编号校验 + // 校验编号唯一性 + if (TableNameEnum.ENTERPRISE_STANDARDS.getValue().equals(tag.getIsModel())) { + LawsEnterpriseStandard lawsEnterpriseStandard = lawsEnterpriseStandardService.queryByStandardNumber(cellValue); + if (lawsEnterpriseStandard != null) { + log.error("第" + row + "列输入的" + tag.getDbFieldTxt() + "已存在 "); + errMsg.append("第").append(row).append("列输入的").append(tag.getDbFieldTxt()).append("已存在 "); + } + } + if (TableNameEnum.DOMESTIC_REGULATIONS.getValue().equals(tag.getIsModel())) { + QueryWrapper domesticStandardQueryWrapper = new QueryWrapper<>(); + domesticStandardQueryWrapper.eq(FieldCommon.STANDARD_NUMBER, cellValue); + LawsDomesticStandard lawsDomesticStandard = lawsDomeStandardService.getOne(domesticStandardQueryWrapper); + if (lawsDomesticStandard != null) { + log.error("第" + row + "列输入的" + tag.getDbFieldTxt() + "已存在 "); + errMsg.append("第").append(row).append("列输入的").append(tag.getDbFieldTxt()).append("已存在 "); + } + } + if (TableNameEnum.FOREIGN_REGULATIONS.getValue().equals(tag.getIsModel())) { + QueryWrapper foreignStandardQueryWrapper = new QueryWrapper<>(); + foreignStandardQueryWrapper.eq(FieldCommon.STANDARD_NUMBER, cellValue); + LawsOverseasStandard lawsOverseasStandard = overseasStandardService.getOne(foreignStandardQueryWrapper); + if (lawsOverseasStandard != null) { + log.error("第" + row + "列输入的" + tag.getDbFieldTxt() + "已存在 "); + errMsg.append("第").append(row).append("列输入的").append(tag.getDbFieldTxt()).append("已存在 "); + } + } + // 字段长度校验 if (FieldShowTypeEnum.TEXT_BOX.getValue().equals(tag.getFieldShowType())) { if (cellValue.length() > 50) {