浏览代码

feat: 校验模板内名称是否重复

shc 3 年之前
父节点
当前提交
846049465c

+ 14 - 4
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageController.java

@@ -2678,7 +2678,7 @@ public class WmScorePackageController {
 
 		log.warn("==========================================批量导入积分包:开始=====================================================");
 
-		Multimap<String, Integer> errorMap = ArrayListMultimap.create();
+		Multimap<String, Object> errorMap = ArrayListMultimap.create();
 
 		// 获取操作人
 		HnqzUser user = SecurityUtils.getUser();
@@ -2694,6 +2694,16 @@ public class WmScorePackageController {
 			targetType = TargetType.PART_TIME;
 		}
 
+		// 重复的模型
+		Map<String, List<BatchPackageExcelModel>> dupNameModel = batchPackageExcelModels.stream()
+				.collect(Collectors.groupingBy(BatchPackageExcelModel::getScorePackageName));
+
+		for (Map.Entry<String, List<BatchPackageExcelModel>> entry : dupNameModel.entrySet()){
+			String name = entry.getKey();
+			if (entry.getValue().size() > 1){
+				errorMap.put("模板内积分包名称重复", name);
+			}
+		}
 
 		// 业务校验
 		for (int i = 0, batchScoreTotal = 0, rows = batchPackageExcelModels.size(); i < rows; i++) {
@@ -2711,9 +2721,9 @@ public class WmScorePackageController {
 		if (!errorMap.isEmpty()) {
 
 			List<Map<String, Object>> resultList = new ArrayList<>(errorMap.size());
-			Map<String, Collection<Integer>> asMap = errorMap.asMap();
+			Map<String, Collection<Object>> asMap = errorMap.asMap();
 
-			for (Map.Entry<String, Collection<Integer>> entry : asMap.entrySet()) {
+			for (Map.Entry<String, Collection<Object>> entry : asMap.entrySet()) {
 
 				Map<String, Object> m = new HashMap<>(2);
 
@@ -2768,7 +2778,7 @@ public class WmScorePackageController {
 	 * @param deptId     所属企业
 	 */
 	private Integer checkColumn(BatchPackageExcelModel model, TargetType targetType,
-								Multimap<String, Integer> errorMap, Integer row, Integer deptId) {
+								Multimap<String, Object> errorMap, Integer row, Integer deptId) {
 
 		log.warn("==========================================校验批量下发积分包model:开始=====================================================");