diff --git a/laws-module-system/src/main/java/com/jero/modules/system/entity/SysDepart.java b/laws-module-system/src/main/java/com/jero/modules/system/entity/SysDepart.java
index 4a9ae3f7..72acb29c 100644
--- a/laws-module-system/src/main/java/com/jero/modules/system/entity/SysDepart.java
+++ b/laws-module-system/src/main/java/com/jero/modules/system/entity/SysDepart.java
@@ -10,8 +10,7 @@ import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
-import java.util.Date;
-import java.util.Objects;
+import java.util.*;
/**
*
@@ -164,4 +163,35 @@ public class SysDepart implements Serializable {
delFlag, createBy, createTime, updateBy, updateTime,
company, headOfDepartment, leadersInCharge, deputyLeader);
}
+
+ public static Map buildPaths(List departments) {
+ Map paths = new HashMap<>();
+ Map departmentMap = new HashMap<>();
+
+ // Store departments in a map by ID for quick lookup
+ for (SysDepart dept : departments) {
+ departmentMap.put(dept.getId(), dept);
+ }
+
+ // Build path for each department
+ for (SysDepart dept : departments) {
+ String path = buildPath(dept, departmentMap);
+ paths.put(path, dept.getId());
+ }
+
+ return paths;
+ }
+
+ private static String buildPath(SysDepart dept, Map departmentMap) {
+ if (dept.getParentId() == null || dept.getParentId().isEmpty()) {
+ return dept.getDepartName(); // Return just this department's name if no parent
+ } else {
+ SysDepart parent = departmentMap.get(dept.getParentId());
+ if (parent == null) {
+ return dept.getDepartName(); // Parent does not exist in the map
+ } else {
+ return buildPath(parent, departmentMap) + "/" + dept.getDepartName();
+ }
+ }
+ }
}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java
index cdaa301e..e6c8b029 100644
--- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java
+++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java
@@ -1396,20 +1396,13 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
**/
@Override
public void setStandardNumber(Map parameterMap) {
- // 标准类别
- String standardClass = (String) parameterMap.get(FieldCommon.STANDARD_CLASS);
// 法规编号不能为空(新增页面)
String standardNumber = (String) parameterMap.get(FieldCommon.STANDARD_NUMBER_TEMP);
// 年代号
String yearNumber = (String) parameterMap.get(FieldCommon.YEAR_NUMBER);
- if (StringUtils.isBlank(standardClass)) {
- throw new JeroBootException(ResultCommon.EMPTY_COMMON, FieldCommon.STANDARD_CLASS);
- }
if (StringUtils.isBlank(standardNumber)) {
throw new JeroBootException(ResultCommon.EMPTY_STANDARD_NUMBER);
}
- // 最后生成的法规编号
- standardNumber = standardClass + " " + standardNumber;
if (StringUtils.isNotBlank(yearNumber)) {
standardNumber = standardNumber + "—" + yearNumber;
}
@@ -1690,19 +1683,22 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
throw new JeroBootException(MessageUtils.getMessage(ResultCommon.IMPORT_TEMPLATE_ERROR));
}
String excelName = excelfilelist.get(0).getName();
+ String moduleCode = "";
if (tableName.equals(TableNameEnum.ENTERPRISE_STANDARDS.getTableName())) {
// 检查Excel的文件名
- if (!excelName.equals("企业标准导入模板.xls")) {
+ if (!excelName.equals("企业标准法规导入模板.xls")) {
FileUnZip.deleteDir(saveDirectory);
throw new JeroBootException(MessageUtils.getMessage(ResultCommon.IMPORT_TEMPLATE_ERROR));
}
+ moduleCode = TableNameEnum.ENTERPRISE_STANDARDS.getValue();
}
if (tableName.equals(TableNameEnum.DOMESTIC_REGULATIONS.getTableName())) {
// 检查Excel的文件名
- if (!excelName.equals("外部标准导入模板.xls")) {
+ if (!excelName.equals("外来标准法规导入模板.xls")) {
FileUnZip.deleteDir(saveDirectory);
throw new JeroBootException(MessageUtils.getMessage(ResultCommon.IMPORT_TEMPLATE_ERROR));
}
+ moduleCode = TableNameEnum.DOMESTIC_REGULATIONS.getValue();
}
// 数据内容格式校验
Map fileMap = new HashMap<>();
@@ -1735,6 +1731,14 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
Map headerMap = fieldList.stream().collect(Collectors.toMap(
LawsTag::getDbFieldTxt, lawsTag -> lawsTag
));
+ // 准备体系校验的数据
+ List treeNodeList = this.getTreeNodeList(moduleCode);
+ Map> treeNodeMap = treeNodeList.stream().collect(Collectors.groupingBy(LawsTreeNode::getNodeName));
+ Map treeNodePathMap = LawsTreeNode.buildPaths(treeNodeList);
+ // 准备部门校验的数据
+ List departList = sysDepartService.list();
+ Map> sysDeaprtMap = departList.stream().collect(Collectors.groupingBy(SysDepart::getDepartName));
+ Map sysDepartPathMap = SysDepart.buildPaths(departList);
// 按照实际顺序创建headerList
List headerList = new ArrayList<>();
for (Cell cell : hearderRow) {
@@ -1758,11 +1762,19 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
// headerList.add(inspectContentTag);
// }
// 获取错误信息
- errMsgList = importUtil.validExcelData(sheet, headerList, fileMap, insertDataList);
+ errMsgList = importUtil.validExcelData(sheet, headerList, fileMap, insertDataList,
+ treeNodeMap, treeNodePathMap,
+ sysDeaprtMap,sysDepartPathMap);
}
return errMsgList;
}
+ private List getTreeNodeList(String moduleCode) {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(LawsTreeNode::getModuleCode, moduleCode);
+ return lawsTreeNodeService.list(queryWrapper);
+ }
+
private static void populateFileMap(File rootDir, File currentDir, Map fileMap) {
File[] files = currentDir.listFiles(); // 列出所有文件和子目录
if (files != null) {
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 b698ebdd..e28ccf85 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
@@ -69,10 +69,16 @@ public class ImportUtil {
private ILawsDomesticStandardService lawsDomeStandardService;
@Resource
- private ILawsPartNameService IPartNameService;
+ private ILawsPartNameService partNameService;
- public List validExcelData(Sheet sheet, List headerList, Map fileMap, List