Ver Fonte

fix: many to one

shc há 2 anos atrás
pai
commit
fe736788cd

+ 16 - 12
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDeptTaskTypeConfigController.java

@@ -1,5 +1,6 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ArrayUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -28,7 +29,9 @@ import org.springframework.web.bind.annotation.RestController;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.stream.Collectors;
 
 /**
  * 部门任务类型配置控制层
@@ -93,23 +96,24 @@ public class WmDeptTaskTypeConfigController {
 			});
 		}
 		// 查询上级的deptId
-		SysDeptRelation ancestorDeptRelation = sysDeptRelationService.getOne(Wrappers.<SysDeptRelation>lambdaQuery()
+		List<SysDeptRelation> ancestorDeptRelations = sysDeptRelationService.list(Wrappers.<SysDeptRelation>lambdaQuery()
 				.eq(SysDeptRelation::getDescendant, deptId)
 				.ne(SysDeptRelation::getAncestor, deptId)
 				.ne(SysDeptRelation::getAncestor, 1));
 		// 上级dept对应任务类型配置
-		if (ancestorDeptRelation != null) {
-			WmDeptTaskTypeConfig ancestorDeptTaskTypeConfig = wmDeptTaskTypeConfigService.getOne(Wrappers.<WmDeptTaskTypeConfig>lambdaQuery()
-					.eq(WmDeptTaskTypeConfig::getDeptId, ancestorDeptRelation.getAncestor()));
-			if (ancestorDeptTaskTypeConfig != null) {
+		if (CollUtil.isNotEmpty(ancestorDeptRelations)) {
+			List<Integer> ancestorIds = ancestorDeptRelations.stream().mapToInt(SysDeptRelation::getAncestor).boxed().collect(Collectors.toList());
+			List<WmDeptTaskTypeConfig> ancestorDeptTaskTypeConfigs = wmDeptTaskTypeConfigService.list(Wrappers.<WmDeptTaskTypeConfig>lambdaQuery().eq(WmDeptTaskTypeConfig::getDeptId, ancestorIds));
+			if (CollUtil.isNotEmpty(ancestorDeptTaskTypeConfigs)) {
 				List<WmDeptTaskTypeConfigJsonDTO> ancestorConfigJsonDTOList =
-						JSON.parseArray(ancestorDeptTaskTypeConfig.getTaskTypeJson(), WmDeptTaskTypeConfigJsonDTO.class);
-				ancestorConfigJsonDTOList.stream()
-						.forEach(configJsonDTO -> {
-							if (configJsonDTO.getQualifiedTask() && configJsonDTO.getAssociateLower()) {
-								configed.set(true);
-							}
-						});
+						ancestorDeptTaskTypeConfigs.stream()
+								.flatMap(config -> JSON.parseArray(config.getTaskTypeJson(), WmDeptTaskTypeConfigJsonDTO.class).stream()).collect(Collectors.toList());
+
+				ancestorConfigJsonDTOList.forEach(configJsonDTO -> {
+					if (configJsonDTO.getQualifiedTask() && configJsonDTO.getAssociateLower()) {
+						configed.set(true);
+					}
+				});
 			}
 		}
 		resultMap.put("config", configed.get());