Explorar el Código

fix: 1.csm负责人支持设置为空;2.企业管理停用的也展示;3.新增csm查询企业

lixuesong hace 1 año
padre
commit
18a3335428

+ 49 - 18
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysDeptController.java

@@ -18,8 +18,10 @@ import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.DeptLevelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.SysDeptCsmMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.SysDeptMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.SysDeptRelationMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.SysUserMapper;
+import com.qunzhixinxi.hnqz.admin.service.SysCsmUserRelationService;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptRelationService;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.WmDaAgentService;
@@ -40,11 +42,13 @@ import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 /**
@@ -64,6 +68,8 @@ public class SysDeptController {
 
 	private final SysDeptService sysDeptService;
 
+	private final SysDeptMapper sysDeptMapper;
+
 	private final WmDaDrugEntService wmDaDrugEntService;
 
 	private final WmDaAgentService wmDaAgentService;
@@ -76,6 +82,8 @@ public class SysDeptController {
 
 	private final SysDeptRelationMapper sysDeptRelationMapper;
 
+	private final SysCsmUserRelationService sysCsmUserRelationService;
+
 	/**
 	 * 获取登录用户企业的有效期
 	 *
@@ -528,8 +536,24 @@ public class SysDeptController {
 			queryWrapper.eq(SysDept::getLevel, level);
 		}
 
+		if (SecurityUtils.getRoles().contains(19)) {
+			// CSM只能查看自己维护的企业下的用户, 以及下属维护的企业下的用户
+			Integer userId = SecurityUtils.getUser().getId();
+			// 递归查询下属关联的userId
+			Set<Integer> allUserIds = sysCsmUserRelationService.recurseCsmLowerUserId(Collections.singleton(userId), new AtomicInteger(10));
+			// 查询企业id
+			List<SysDeptCsm> deptCsms = sysDeptCsmMapper.selectList(Wrappers.<SysDeptCsm>lambdaQuery()
+					.in(SysDeptCsm::getUserId, allUserIds));
+			if (CollUtil.isEmpty(deptCsms)) {
+				return R.ok(page);
+			}
+
+			Set<Integer> deptIds = deptCsms.stream().map(SysDeptCsm::getDeptId).collect(Collectors.toSet());
+			queryWrapper.in(SysDept::getDeptId, deptIds);
+		}
+
 		queryWrapper.ne(SysDept::getLevel, DeptLevelEnum.ADMIN.getVal());
-		sysDeptService.page(page, queryWrapper);
+		sysDeptMapper.pageAllDept(page, queryWrapper);
 
 		List<SysDept> records = page.getRecords();
 		if (CollUtil.isEmpty(records)) {
@@ -595,26 +619,33 @@ public class SysDeptController {
 		List<Integer> cmsUserIds = (List<Integer>) params.get("userIds");
 		List<Integer> deptIds = (List<Integer>) params.get("deptIds");
 		if (CollUtil.isEmpty(cmsUserIds) || CollUtil.isEmpty(deptIds)) {
-			return R.failed("userIds和deptIds必填");
+			return R.failed("deptIds必填");
 		}
 
-		deptIds.forEach(deptId -> {
-			cmsUserIds.forEach(userId -> {
-				Integer count = sysDeptCsmMapper.selectCount(Wrappers.<SysDeptCsm>lambdaQuery()
-						.eq(SysDeptCsm::getDeptId, deptId)
-						.eq(SysDeptCsm::getUserId, userId));
-				if (count <= 0) {
-					SysUser user = sysUserMapper.selectById(userId);
-					SysDeptCsm insert = new SysDeptCsm();
-					insert.setDeptId(deptId);
-					insert.setUserId(userId);
-					insert.setCsmName(user.getRealname());
-					insert.setQrCodeId(" ");
-					insert.setCorpId(" ");
-					sysDeptCsmMapper.insert(insert);
-				}
+		if (CollUtil.isEmpty(cmsUserIds)) {
+			// 删除关联关系
+			sysDeptCsmMapper.delete(Wrappers.<SysDeptCsm>lambdaUpdate()
+					.in(SysDeptCsm::getDeptId, deptIds));
+		} else {
+			// 建立关联关系
+			deptIds.forEach(deptId -> {
+				cmsUserIds.forEach(userId -> {
+					Integer count = sysDeptCsmMapper.selectCount(Wrappers.<SysDeptCsm>lambdaQuery()
+							.eq(SysDeptCsm::getDeptId, deptId)
+							.eq(SysDeptCsm::getUserId, userId));
+					if (count <= 0) {
+						SysUser user = sysUserMapper.selectById(userId);
+						SysDeptCsm insert = new SysDeptCsm();
+						insert.setDeptId(deptId);
+						insert.setUserId(userId);
+						insert.setCsmName(user.getRealname());
+						insert.setQrCodeId(" ");
+						insert.setCorpId(" ");
+						sysDeptCsmMapper.insert(insert);
+					}
+				});
 			});
-		});
+		}
 
 		return R.ok(Boolean.TRUE);
 	}

+ 13 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/SysDeptMapper.java

@@ -19,6 +19,10 @@
 
 package com.qunzhixinxi.hnqz.admin.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
@@ -80,6 +84,15 @@ public interface SysDeptMapper extends DataScopeMapper<SysDept> {
 	 */
 	List<SysDept> listAllDept();
 
+	/**
+	 * 分页查询所有dept
+	 *
+	 * @param page         页
+	 * @param queryWrapper 查询包装器
+	 * @return {@link IPage}<{@link SysDept}> 结果
+	 */
+	IPage<SysDept> pageAllDept(Page<SysDept> page, @Param(Constants.WRAPPER) LambdaQueryWrapper<SysDept> queryWrapper);
+
 	/**
 	 * 根据id批量查询
 	 *

+ 14 - 0
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/SysDeptMapper.xml

@@ -233,6 +233,20 @@
 		FROM sys_dept
 	</select>
 
+	<!-- 分页查询所有dept -->
+	<select id="pageAllDept" resultMap="sysDeptMap">
+		SELECT *
+		FROM sys_dept
+		<where>
+			<if test="ew != null">
+				<if test="ew.nonEmptyOfWhere">
+					AND
+				</if>
+				${ew.sqlSegment}
+			</if>
+		</where>
+	</select>
+
 	<!-- 根据id批量查询 -->
 	<select id="selectByIds" resultMap="sysDeptMap">
 		select * from sys_dept where dept_id in