Ver código fonte

fix: 批量任务审核-是否显示我的任务tab判断

lixuesong 3 anos atrás
pai
commit
68a4fb077c

+ 39 - 4
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDeptTaskTypeConfigController.java

@@ -1,12 +1,16 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
 import cn.hutool.core.util.ArrayUtil;
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptRelation;
 import com.qunzhixinxi.hnqz.admin.entity.WmDeptTaskTypeConfig;
 import com.qunzhixinxi.hnqz.admin.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.entity.dto.WmDeptTaskTypeConfigDTO;
+import com.qunzhixinxi.hnqz.admin.entity.dto.WmDeptTaskTypeConfigJsonDTO;
+import com.qunzhixinxi.hnqz.admin.service.SysDeptRelationService;
 import com.qunzhixinxi.hnqz.admin.service.WmDeptTaskTypeConfigService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
@@ -22,7 +26,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * 部门任务类型配置控制层
@@ -38,6 +44,8 @@ public class WmDeptTaskTypeConfigController {
 
 	private WmDeptTaskTypeConfigService wmDeptTaskTypeConfigService;
 
+	private SysDeptRelationService sysDeptRelationService;
+
 	/**
 	 * 保存任务类型配置
 	 *
@@ -71,14 +79,41 @@ public class WmDeptTaskTypeConfigController {
 	public R<?> isConfig() {
 		Map<String, Object> resultMap = new HashMap<>();
 		Integer deptId = SecurityUtils.getUser().getDeptId();
+		AtomicBoolean configed = new AtomicBoolean(false);
+		// 本级dept对应的任务类型
 		WmDeptTaskTypeConfig deptTaskTypeConfig = wmDeptTaskTypeConfigService.getOne(Wrappers.<WmDeptTaskTypeConfig>lambdaQuery()
 				.eq(WmDeptTaskTypeConfig::getDeptId, deptId));
 		if (deptTaskTypeConfig != null) {
-			resultMap.put("config", true);
-		} else {
-			resultMap.put("config", false);
+			List<WmDeptTaskTypeConfigJsonDTO> configJsonDTOList =
+					JSON.parseArray(deptTaskTypeConfig.getTaskTypeJson(), WmDeptTaskTypeConfigJsonDTO.class);
+			configJsonDTOList.forEach(configJsonDTO -> {
+				if (configJsonDTO.getQualifiedTask() || configJsonDTO.getZbdbStatusSelect() || configJsonDTO.getYydbStatusSelect()
+						|| configJsonDTO.getAssociateLower()) {
+					configed.set(true);
+				}
+			});
 		}
-
+		// 查询上级的deptId
+		SysDeptRelation ancestorDeptRelation = sysDeptRelationService.getOne(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) {
+				List<WmDeptTaskTypeConfigJsonDTO> ancestorConfigJsonDTOList =
+						JSON.parseArray(ancestorDeptTaskTypeConfig.getTaskTypeJson(), WmDeptTaskTypeConfigJsonDTO.class);
+				ancestorConfigJsonDTOList.forEach(configJsonDTO -> {
+					if (configJsonDTO.getQualifiedTask() || configJsonDTO.getZbdbStatusSelect() || configJsonDTO.getYydbStatusSelect()
+							|| configJsonDTO.getAssociateLower()) {
+						configed.set(true);
+					}
+				});
+			}
+		}
+		resultMap.put("config", configed.get());
 		return R.ok(resultMap);
 	}