Преглед изворни кода

feat: 团队管理-根据团队过滤任务列表、审核列表、积分包列表

lixuesong пре 3 година
родитељ
комит
61a4007def

+ 13 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageController.java

@@ -102,6 +102,7 @@ public class WmScorePackageController {
 	private final WmScoreTaskTypeMapper wmScoreTaskTypeMapper;
 	private final WmDaDrugEntMapper wmDaDrugEntMapper;
 	private final WmDaAgentMapper wmDaAgentMapper;
+	private final WmTeamService wmTeamService;
 	private final StringRedisTemplate redisTemplate;
 
 
@@ -2425,6 +2426,7 @@ public class WmScorePackageController {
 	) {
 
 		Integer sendDeptId = SecurityUtils.getUser().getDeptId();
+		Integer userId = SecurityUtils.getUser().getId();
 
 		LambdaQueryWrapper<WmScorePackage> queryWrapper = Wrappers.<WmScorePackage>lambdaQuery()
 				.eq(WmScorePackage::getPackageType1, packageType1)
@@ -2439,6 +2441,17 @@ public class WmScorePackageController {
 			List<String> split = StrUtil.split(typeId, StrUtil.C_COMMA);
 			queryWrapper.in(WmScorePackage::getTypeid, split);
 		}
+		// 判断当前用户是否配置了团队负责人
+		List<WmTeam> teamList = wmTeamService.list(Wrappers.<WmTeam>lambdaQuery()
+				.eq(WmTeam::getDeptId, sendDeptId)
+				.eq(WmTeam::getEnableFlag, EnableEnum.ENABLE.val())
+				.eq(WmTeam::getDelFlag, DelEnum.NOT_DEL.val())
+				.apply("FIND_IN_SET({0}, leader)", String.valueOf(userId)));
+		if (CollectionUtil.isNotEmpty(teamList)) {
+			// 如果配置了,则只查询所在团队下发的积分包
+			List<String> teamIdList = teamList.stream().map(wmTeam -> String.valueOf(wmTeam.getId())).collect(Collectors.toList());
+			queryWrapper.in(WmScorePackage::getPackageUserScope, teamIdList);
+		}
 
 		Page<WmScorePackage> wmScorePackagePage = wmScorePackageMapper.selectPage(new Page<>(current, size), queryWrapper
 				.orderByDesc(WmScorePackage::getCreateTime));

+ 29 - 16
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTeamController.java

@@ -25,6 +25,8 @@ import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -47,6 +49,7 @@ import java.util.stream.Collectors;
  * @author lixuesong
  * @date 2021年12月08日 13:57
  */
+@Slf4j
 @RestController
 @RequestMapping("/team")
 @AllArgsConstructor
@@ -137,12 +140,14 @@ public class WmTeamController {
 		// 设置为禁用
 		wmTeamService.update(Wrappers.<WmTeam>lambdaUpdate()
 				.eq(WmTeam::getId, id)
-				.set(WmTeam::getDelFlag, DelEnum.DELETED.val()));
+				.set(WmTeam::getDelFlag, DelEnum.DELETED.val())
+				.set(WmTeam::getUpdateTime, LocalDateTime.now())
+				.set(WmTeam::getUpdateUser, SecurityUtils.getUser().getId()));
 		return R.ok();
 	}
 
 	/**
-	 * TODO
+	 * 批量导入
 	 *
 	 * @param teamExcelModelList
 	 * @return
@@ -150,6 +155,11 @@ public class WmTeamController {
 	@SysLog("团队批量导入")
 	@PostMapping("/batch-import")
 	public R<?> batchImport(@RequestExcel List<WmTeamExcelModel> teamExcelModelList) {
+		// 参数校验
+		if (CollectionUtils.isEmpty(teamExcelModelList)) {
+			log.error("空报表,不能上传");
+			return R.failed("空报表,不能上传");
+		}
 
 		return null;
 	}
@@ -273,11 +283,13 @@ public class WmTeamController {
 	public R<List<Map<String, Object>>> listPackageUserScope() {
 		List<Map<String, Object>> resultList = new ArrayList<>();
 		Integer deptId = SecurityUtils.getUser().getDeptId();
+		Integer userId = SecurityUtils.getUser().getId();
 		// 查询当前企业下的团队
 		List<WmTeam> list = wmTeamService.list(Wrappers.<WmTeam>lambdaQuery()
 				.eq(WmTeam::getDeptId, deptId)
 				.eq(WmTeam::getDelFlag, DelEnum.NOT_DEL.val())
-				.eq(WmTeam::getEnableFlag, EnableEnum.ENABLE.val()));
+				.eq(WmTeam::getEnableFlag, EnableEnum.ENABLE.val())
+				.apply("FIND_IN_SET({0}, leader)", String.valueOf(userId)));
 		if (CollectionUtil.isNotEmpty(list)) {
 			List<Map<String, Object>> mapList = list.stream().map(wmTeam -> {
 				Map<String, Object> teamMap = MapUtil.newHashMap(2);
@@ -286,19 +298,20 @@ public class WmTeamController {
 				return teamMap;
 			}).collect(Collectors.toList());
 			resultList.addAll(mapList);
-		}
-		// 拼上原有的字典数据项
-		List<SysDictItem> packageUserScopeDictList = sysDictItemService.list(Wrappers.<SysDictItem>lambdaQuery()
-				.eq(SysDictItem::getType, "package_user_scope")
-				.eq(SysDictItem::getDelFlag, DelEnum.NOT_DEL.val()));
-		if (CollectionUtil.isNotEmpty(packageUserScopeDictList)) {
-			List<Map<String, Object>> dictMapList = packageUserScopeDictList.stream().map(sysDictItem -> {
-				Map<String, Object> dictMap = MapUtil.newHashMap(2);
-				dictMap.put("label", sysDictItem.getLabel());
-				dictMap.put("value", sysDictItem.getValue());
-				return dictMap;
-			}).collect(Collectors.toList());
-			resultList.addAll(dictMapList);
+		} else {
+			// 原有的字典数据项
+			List<SysDictItem> packageUserScopeDictList = sysDictItemService.list(Wrappers.<SysDictItem>lambdaQuery()
+					.eq(SysDictItem::getType, "package_user_scope")
+					.eq(SysDictItem::getDelFlag, DelEnum.NOT_DEL.val()));
+			if (CollectionUtil.isNotEmpty(packageUserScopeDictList)) {
+				List<Map<String, Object>> dictMapList = packageUserScopeDictList.stream().map(sysDictItem -> {
+					Map<String, Object> dictMap = MapUtil.newHashMap(2);
+					dictMap.put("label", sysDictItem.getLabel());
+					dictMap.put("value", sysDictItem.getValue());
+					return dictMap;
+				}).collect(Collectors.toList());
+				resultList.addAll(dictMapList);
+			}
 		}
 
 		return R.ok(resultList);

+ 9 - 3
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmScorePackageStatusMapper.xml

@@ -55,9 +55,12 @@
 		left join wm_score_package p on p.id=s.package_id
 		left join sys_user u1 on u1.user_id = s.user_id
 		where s.del_flag=0
+		/* 判断接单对象范围package_user_scope小于1000则是普通任务,大于1000则是团队发的包。如果adminUserId不是任何一个团队的负责人则可以查看全部;
+			如果adminUserId是团队负责人且是下发该包的团队的,则可以看到该包对应的任务 */
 		and (p.package_user_scope &lt; '1000'
 			or (p.package_user_scope &gt;='1000'
-			        and FIND_IN_SET(#{query.adminUserId}, (SELECT member FROM wm_team WHERE id = p.package_user_scope))))
+				and ((SELECT COUNT(1) FROM wm_team WHERE del_flag=0 and enable_flag=0 and FIND_IN_SET(#{query.adminUserId}, leader)) = 0
+					or FIND_IN_SET(#{query.adminUserId}, (SELECT leader FROM wm_team WHERE id = p.package_user_scope)))))
 		<if test="query.id!=null and query.id!=''">
 			and s.id=#{query.id}
 		</if>
@@ -142,9 +145,12 @@
 		where  s.del_flag=0  and p.del_flag=0
 		  and p.typeid=4
 		  and p.source_type = '0'
+		/* 判断接单对象范围package_user_scope小于1000则是普通任务,大于1000则是团队发的包。如果adminUserId不是任何一个团队的负责人则可以查看全部;
+			如果adminUserId是团队负责人且是下发该包的团队的,则可以看到该包对应的任务 */
 		  and (p.package_user_scope &lt; '1000'
-		         or (p.package_user_scope &gt;='1000'
-		                 and FIND_IN_SET(#{query.adminUserId}, (SELECT member FROM wm_team WHERE id = p.package_user_scope))))
+			 or (p.package_user_scope &gt;='1000'
+				and ((SELECT COUNT(1) FROM wm_team WHERE del_flag=0 and enable_flag=0 and FIND_IN_SET(#{query.adminUserId}, leader)) = 0
+					or FIND_IN_SET(#{query.adminUserId}, (SELECT leader FROM wm_team WHERE id = p.package_user_scope)))))
 		<if test="query.id!=null and query.id!=''">
 			and s.id=#{query.id}
 		</if>

+ 4 - 1
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmTaskMapper.xml

@@ -976,9 +976,12 @@
 		where t.del_flag=0
 		and t.real_flag=0
 		and t.task_status !='1'
+		  /* 判断接单对象范围package_user_scope小于1000则是普通任务,大于1000则是团队发的包。如果adminUserId不是任何一个团队的负责人则可以查看全部;
+		     如果adminUserId是团队负责人且是下发该包的团队的,则可以看到该包对应的任务 */
 		and (p.package_user_scope &lt; '1000'
 			or (p.package_user_scope &gt;='1000'
-			        and FIND_IN_SET(#{query.adminUserId}, (SELECT member FROM wm_team WHERE id = p.package_user_scope))))
+			        and ((SELECT COUNT(1) FROM wm_team WHERE del_flag=0 and enable_flag=0 and FIND_IN_SET(#{query.adminUserId}, leader)) = 0
+			        	or FIND_IN_SET(#{query.adminUserId}, (SELECT leader FROM wm_team WHERE id = p.package_user_scope)))))
 		<if test="query.scorePackageDrugId!=null and query.scorePackageDrugId!=''">
 			and t.score_package_drug_id = #{query.scorePackageDrugId}
 		</if>