소스 검색

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

lixuesong 3 년 전
부모
커밋
e13595c65a

+ 3 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageStatusController.java

@@ -76,8 +76,10 @@ public class WmScorePackageStatusController {
 		orderItem.setAsc(false);
 		page.addOrder(orderItem);
 		Integer userId = SecurityUtils.getUser().getId();
+		Integer deptId = SecurityUtils.getUser().getDeptId();
 		wmScorePackageStatus.setUserId(String.valueOf(userId));
 		wmScorePackageStatus.setAdminUserId(String.valueOf(userId));
+		wmScorePackageStatus.setDeptId(String.valueOf(deptId));
         return R.ok(wmScorePackageStatusService.getWmScorePackageStatusPage(page,wmScorePackageStatus));
     }
 
@@ -161,6 +163,7 @@ public class WmScorePackageStatusController {
 			return R.failed("未查询到积分包id");
 		}
 		wmScorePackageStatus.setAdminUserId(String.valueOf(SecurityUtils.getUser().getId()));
+		wmScorePackageStatus.setDeptId(String.valueOf(SecurityUtils.getUser().getDeptId()));
 		return wmScorePackageStatusService.getPage(page, wmScorePackageStatus);
 	}
 

+ 16 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDeptTaskTypeConfigServiceImpl.java

@@ -19,6 +19,7 @@ import com.qunzhixinxi.hnqz.admin.entity.WmDeptTaskTypeConfig;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
+import com.qunzhixinxi.hnqz.admin.entity.WmTeam;
 import com.qunzhixinxi.hnqz.admin.entity.dto.WmDeptTaskTypeConfigDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.WmDeptTaskTypeConfigJsonDTO;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
@@ -32,6 +33,7 @@ import com.qunzhixinxi.hnqz.admin.mapper.WmDaAgentMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmDaDrugEntMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmDeptTaskTypeConfigMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.WmTeamMapper;
 import com.qunzhixinxi.hnqz.admin.service.WmDeptTaskTypeConfigService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
@@ -74,6 +76,8 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
 
 	private final WmDaAgentMapper wmDaAgentMapper;
 
+	private final WmTeamMapper wmTeamMapper;
+
 	/**
 	 * 兼职学术专员启用的任务类型
 	 */
@@ -356,6 +360,7 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
 	@Override
 	public IPage<WmTask> listTaskByConfig(Page<WmTask> page, String taskTypeName, String[] taskStatus) {
 		Integer deptId = SecurityUtils.getUser().getDeptId();
+		Integer userId = SecurityUtils.getUser().getId();
 		// 本级dept对应任务类型配置
 		WmDeptTaskTypeConfig deptTaskTypeConfig = this.getOne(Wrappers.<WmDeptTaskTypeConfig>lambdaQuery()
 				.eq(WmDeptTaskTypeConfig::getDeptId, deptId));
@@ -459,6 +464,17 @@ public class WmDeptTaskTypeConfigServiceImpl extends ServiceImpl<WmDeptTaskTypeC
 		taskWrapper.eq("t.del_flag", DelEnum.NOT_DEL.val());
 		taskWrapper.eq("t.real_flag", "0");
 		taskWrapper.in("t.task_status", taskStatus);
+		// 如果是个人承接-按积分值,判断当前用户是否配置了团队负责人
+		List<WmTeam> teamList = wmTeamMapper.selectList(Wrappers.<WmTeam>lambdaQuery()
+				.eq(WmTeam::getDeptId, deptId)
+				.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());
+			taskWrapper.in("p.package_user_scope", teamIdList);
+		}
 		taskWrapper.orderByDesc("t.lookinto_date");
 		return wmTaskMapper.listWmTaskByWrapper(page, taskWrapper);
 	}

+ 1 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskServiceImpl.java

@@ -1438,6 +1438,7 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 		wmTask.setDelFlag("0");
 		wmTask.setRealFlag("0");
 		wmTask.setAdminUserId(String.valueOf(SecurityUtils.getUser().getId()));
+		wmTask.setDeptId(String.valueOf(SecurityUtils.getUser().getDeptId()));
 		return R.ok(wmTaskMapper.getWmTaskList(page, wmTask));
 	}
 

+ 2 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTeamServiceImpl.java

@@ -124,6 +124,8 @@ public class WmTeamServiceImpl extends ServiceImpl<WmTeamMapper, WmTeam> impleme
 							return userMap;
 						}).collect(Collectors.toList());
 				resultMap.put("selectedLeaders", selectedLeaders);
+			} else {
+				resultMap.put("selectedLeaders", new ArrayList<>());
 			}
 			if (CollectionUtil.isNotEmpty(selectedMemberIds)) {
 				List<SysUser> selectedMemberUsers = sysUserMapper.selectBatchIds(selectedMemberIds);
@@ -138,7 +140,6 @@ public class WmTeamServiceImpl extends ServiceImpl<WmTeamMapper, WmTeam> impleme
 						}).collect(Collectors.toList());
 				resultMap.put("selectedMembers", selectedMembers);
 			} else {
-				resultMap.put("selectedLeaders", new ArrayList<>());
 				resultMap.put("selectedMembers", new ArrayList<>());
 			}
 			resultMap.put("teamName", team.getName());

+ 2 - 2
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmScorePackageMapper.xml

@@ -1236,7 +1236,7 @@
 		from wm_score_package p, sys_dept d
 		where (p.send_package_dept_id = d.dept_id and p.package_user_scope = '1'
 		and p.is_receive = '0' and p.enable_flag = '0' and p.enable_type != '2'
-		and (SELECT COUNT(1) FROM wm_team WHERE del_flag=0 and enable_flag=0 and FIND_IN_SET(#{query.zbId}, member)) = 0
+		and (SELECT COUNT(1) FROM wm_team WHERE del_flag=0 and enable_flag=0 and dept_id=#{query.deptId} and FIND_IN_SET(#{query.zbId}, member)) = 0
 		<if test="query.scorePackageName != null and query.scorePackageName != ''">
 			AND p.score_package_name like CONCAT('%',#{query.scorePackageName},'%')
 		</if>
@@ -1262,7 +1262,7 @@
 		or
 		(p.send_package_dept_id = d.dept_id and p.package_user_scope = '2'
 		and p.is_receive = '0' and p.enable_flag = '0' and p.enable_type != '2'
-		and (SELECT COUNT(1) FROM wm_team WHERE del_flag=0 and enable_flag=0 and FIND_IN_SET(#{query.zbId}, member)) = 0
+		and (SELECT COUNT(1) FROM wm_team WHERE del_flag=0 and enable_flag=0 and dept_id=#{query.deptId} and FIND_IN_SET(#{query.zbId}, member)) = 0
 		<if test="query.scorePackageName != null and query.scorePackageName != ''">
 			AND p.score_package_name like CONCAT('%',#{query.scorePackageName},'%')
 		</if>

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

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

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

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