Jelajahi Sumber

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

lixuesong 3 tahun lalu
induk
melakukan
482747f71f

+ 4 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageStatusController.java

@@ -75,7 +75,9 @@ public class WmScorePackageStatusController {
 		orderItem.setColumn("create_time");
 		orderItem.setAsc(false);
 		page.addOrder(orderItem);
-		wmScorePackageStatus.setUserId(String.valueOf(SecurityUtils.getUser().getId()));
+		Integer userId = SecurityUtils.getUser().getId();
+		wmScorePackageStatus.setUserId(String.valueOf(userId));
+		wmScorePackageStatus.setAdminUserId(String.valueOf(userId));
         return R.ok(wmScorePackageStatusService.getWmScorePackageStatusPage(page,wmScorePackageStatus));
     }
 
@@ -158,6 +160,7 @@ public class WmScorePackageStatusController {
 		if(StringUtil.isEmpty(wmScorePackageStatus.getPackageId())){
 			return R.failed("未查询到积分包id");
 		}
+		wmScorePackageStatus.setAdminUserId(String.valueOf(SecurityUtils.getUser().getId()));
 		return wmScorePackageStatusService.getPage(page, wmScorePackageStatus);
 	}
 

+ 30 - 20
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTeamController.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.pig4cloud.plugin.excel.annotation.RequestExcel;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.entity.WmTeam;
@@ -17,6 +18,7 @@ import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
 import com.qunzhixinxi.hnqz.admin.enums.ScorePackageStatusEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.SysUserMapper;
+import com.qunzhixinxi.hnqz.admin.service.SysDictItemService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.admin.service.WmTeamService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
@@ -56,6 +58,8 @@ public class WmTeamController {
 
 	private final SysUserMapper sysUserMapper;
 
+	private final SysDictItemService sysDictItemService;
+
 	/**
 	 * 保存
 	 *
@@ -126,7 +130,7 @@ public class WmTeamController {
 		int packageCount = wmScorePackageService.count(Wrappers.<WmScorePackage>lambdaQuery()
 				.ge(WmScorePackage::getPackageUserScope, "1000")
 				.eq(WmScorePackage::getPackageUserScope, id)
-				.gt(WmScorePackage::getScorePackageStatus, ScorePackageStatusEnum.IN_PROGRESS.val()));
+				.ge(WmScorePackage::getScorePackageStatus, ScorePackageStatusEnum.IN_PROGRESS.val()));
 		if (packageCount > 0) {
 			return R.failed("该团队还有任务在进行,不能解散");
 		}
@@ -160,13 +164,13 @@ public class WmTeamController {
 	public R<WmTeam> getById(@PathVariable("id") Integer id) {
 		WmTeam team = wmTeamService.getById(id);
 		if (team != null) {
-			if (team.getLeader() != null) {
-				SysUser leaderUser = sysUserMapper.selectById(team.getLeader());
-				team.setLeaderName(leaderUser.getRealname());
+			if (ArrayUtil.isNotEmpty(team.getLeader())) {
+				List<SysUser> leaderList = sysUserMapper.selectBatchIds(CollectionUtil.toList(team.getLeader()));
+				team.setLeaderName(leaderList.stream().map(SysUser::getRealname).toArray(String[]::new));
 			}
 			if (ArrayUtil.isNotEmpty(team.getMember())) {
-				List<SysUser> userList = sysUserMapper.selectBatchIds(CollectionUtil.toList(team.getMember()));
-				team.setMemberName(userList.stream().map(SysUser::getRealname).toArray(String[]::new));
+				List<SysUser> memberList = sysUserMapper.selectBatchIds(CollectionUtil.toList(team.getMember()));
+				team.setMemberName(memberList.stream().map(SysUser::getRealname).toArray(String[]::new));
 			}
 		}
 		return R.ok(team);
@@ -184,9 +188,9 @@ public class WmTeamController {
 				.eq(WmTeam::getDeptId, SecurityUtils.getUser().getDeptId())
 				.eq(WmTeam::getDelFlag, DelEnum.NOT_DEL.val()));
 		teamManagePage.getRecords().forEach(wmTeamManage -> {
-			if (wmTeamManage.getLeader() != null) {
-				SysUser leaderUser = sysUserMapper.selectById(wmTeamManage.getLeader());
-				wmTeamManage.setLeaderName(leaderUser.getRealname());
+			if (ArrayUtil.isNotEmpty(wmTeamManage.getLeader())) {
+				List<SysUser> leaderList = sysUserMapper.selectBatchIds(CollectionUtil.toList(wmTeamManage.getLeader()));
+				wmTeamManage.setLeaderName(leaderList.stream().map(SysUser::getRealname).toArray(String[]::new));
 			}
 			if (ArrayUtil.isNotEmpty(wmTeamManage.getMember())) {
 				List<SysUser> userList = sysUserMapper.selectBatchIds(CollectionUtil.toList(wmTeamManage.getMember()));
@@ -212,9 +216,9 @@ public class WmTeamController {
 				.eq(WmTeam::getDeptId, deptId)
 				.eq(WmTeam::getDelFlag, DelEnum.NOT_DEL.val()));
 		teamManagePage.getRecords().forEach(wmTeamManage -> {
-			if (wmTeamManage.getLeader() != null) {
-				SysUser leaderUser = sysUserMapper.selectById(wmTeamManage.getLeader());
-				wmTeamManage.setLeaderName(leaderUser.getRealname());
+			if (ArrayUtil.isNotEmpty(wmTeamManage.getLeader())) {
+				List<SysUser> leaderList = sysUserMapper.selectBatchIds(CollectionUtil.toList(wmTeamManage.getLeader()));
+				wmTeamManage.setLeaderName(leaderList.stream().map(SysUser::getRealname).toArray(String[]::new));
 			}
 			if (ArrayUtil.isNotEmpty(wmTeamManage.getMember())) {
 				List<SysUser> userList = sysUserMapper.selectBatchIds(CollectionUtil.toList(wmTeamManage.getMember()));
@@ -269,6 +273,7 @@ public class WmTeamController {
 	public R<List<Map<String, Object>>> listPackageUserScope() {
 		List<Map<String, Object>> resultList = new ArrayList<>();
 		Integer deptId = SecurityUtils.getUser().getDeptId();
+		// 查询当前企业下的团队
 		List<WmTeam> list = wmTeamService.list(Wrappers.<WmTeam>lambdaQuery()
 				.eq(WmTeam::getDeptId, deptId)
 				.eq(WmTeam::getDelFlag, DelEnum.NOT_DEL.val())
@@ -282,14 +287,19 @@ public class WmTeamController {
 			}).collect(Collectors.toList());
 			resultList.addAll(mapList);
 		}
-		Map<String, Object> internalMap = MapUtil.newHashMap(2);
-		internalMap.put("label", "仅内部可见");
-		internalMap.put("value", "1");
-		Map<String, Object> allMap = MapUtil.newHashMap(2);
-		allMap.put("label", "全部可见");
-		allMap.put("value", "2");
-		resultList.add(internalMap);
-		resultList.add(allMap);
+		// 拼上原有的字典数据项
+		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);
 	}

+ 6 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmScorePackageStatus.java

@@ -169,4 +169,10 @@ public class WmScorePackageStatus extends Model<WmScorePackageStatus> {
 	 */
 	@TableField(exist = false)
 	private String userRealName;
+
+	/**
+	 * 管理员用户id
+	 */
+	@TableField(exist = false)
+	private String adminUserId;
 }

+ 6 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmTask.java

@@ -261,4 +261,10 @@ public class WmTask extends Model<WmTask> {
 	 */
 	@TableField(exist = false)
 	private String username;
+
+	/**
+	 * 管理员用户id
+	 */
+	@TableField(exist = false)
+	private String adminUserId;
 }

+ 2 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmTeam.java

@@ -44,13 +44,13 @@ public class WmTeam extends Model<WmTeam> {
 	/**
 	 * 团队负责人
 	 */
-	private Integer leader;
+	private String[] leader;
 
 	/**
 	 * 团队负责人名称
 	 */
 	@TableField(exist = false)
-	private String leaderName;
+	private String[] leaderName;
 
 	/**
 	 * 团队成员

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

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

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

@@ -57,7 +57,7 @@ public class WmTeamServiceImpl extends ServiceImpl<WmTeamMapper, WmTeam> impleme
 		deptTeamList.forEach(wmTeam -> {
 			if (StrUtil.isAllNotBlank(wmTeam.getMember())) {
 				Set<Integer> memberSet = Stream.of(wmTeam.getMember())
-						.map(s -> Integer.parseInt(s))
+						.map(Integer::parseInt)
 						.collect(Collectors.toSet());
 				assignedUserSet.addAll(memberSet);
 			}
@@ -97,13 +97,18 @@ public class WmTeamServiceImpl extends ServiceImpl<WmTeamMapper, WmTeam> impleme
 		// 已选择的人员(leader+member)
 		if (teamId != null) {
 			WmTeam team = this.getById(teamId);
+			List<String> selectedLeaderIds = CollectionUtil.toList(team.getLeader());
 			List<String> selectedMemberIds = CollectionUtil.toList(team.getMember());
-			SysUser leaderUser = sysUserMapper.selectById(team.getLeader());
-			Map<String, Object> leaderMap = MapUtil.newHashMap(3);
-			leaderMap.put("realName", leaderUser.getRealname());
-			leaderMap.put("phone", leaderUser.getUsername());
-			leaderMap.put("userId", leaderUser.getUserId());
-			leaderMap.put("isLeader", true);
+			List<SysUser> selectedLeaderUsers = sysUserMapper.selectBatchIds(selectedLeaderIds);
+			List<Map<String, Object>> selectedLeaders = selectedLeaderUsers.stream()
+					.map(sysUser -> {
+						Map<String, Object> userMap = MapUtil.newHashMap(3);
+						userMap.put("realName", sysUser.getRealname());
+						userMap.put("phone", sysUser.getUsername());
+						userMap.put("userId", sysUser.getUserId());
+						userMap.put("isLeader", true);
+						return userMap;
+					}).collect(Collectors.toList());
 			List<SysUser> selectedMemberUsers = sysUserMapper.selectBatchIds(selectedMemberIds);
 			List<Map<String, Object>> selectedMembers = selectedMemberUsers.stream()
 					.map(sysUser -> {
@@ -114,9 +119,10 @@ public class WmTeamServiceImpl extends ServiceImpl<WmTeamMapper, WmTeam> impleme
 						userMap.put("isLeader", false);
 						return userMap;
 					}).collect(Collectors.toList());
-			selectedMembers.add(0, leaderMap);
+			resultMap.put("selectedLeaders", selectedLeaders);
 			resultMap.put("selectedMembers", selectedMembers);
 		} else {
+			resultMap.put("selectedLeaders", new ArrayList<>());
 			resultMap.put("selectedMembers", new ArrayList<>());
 		}
 		resultMap.put("leaders", leaderList);

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

@@ -55,7 +55,9 @@
 		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
-
+		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))))
 		<if test="query.id!=null and query.id!=''">
 			and s.id=#{query.id}
 		</if>
@@ -140,6 +142,9 @@
 		where  s.del_flag=0  and p.del_flag=0
 		  and p.typeid=4
 		  and p.source_type = '0'
+		  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))))
 		<if test="query.id!=null and query.id!=''">
 			and s.id=#{query.id}
 		</if>

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

@@ -944,8 +944,6 @@
 		t.id AS id,
 		t.task_rule_id AS task_rule_id,
 		t.score AS score,
-		p2.id AS score_package_drug_id,
-		p1.id AS score_package_level1_id,
 		p.score_package_name AS score_package_id,
 		t.task_type_id AS task_type_id,
 		t.lookinto_date AS lookinto_date,
@@ -975,11 +973,12 @@
 		left join sys_user u on  u.user_id=t.task_user_id
 		left join sys_dept d on d.dept_id=t.dept_id
 		left join wm_score_package p on p.id=t.score_package_id
-		left join wm_score_package p1 on p1.id=t.score_package_level1_id
-		left join wm_score_package p2 on p1.id=t.score_package_drug_id
 		where t.del_flag=0
 		and t.real_flag=0
 		and t.task_status !='1'
+		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))))
 		<if test="query.scorePackageDrugId!=null and query.scorePackageDrugId!=''">
 			and t.score_package_drug_id = #{query.scorePackageDrugId}
 		</if>