소스 검색

feat: cms数据权限过滤

lixuesong 1 년 전
부모
커밋
4f4d1f3ab8

+ 12 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaAgentController.java

@@ -40,9 +40,12 @@ import org.springframework.web.bind.annotation.*;
 
 import java.time.LocalDateTime;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 
@@ -72,6 +75,7 @@ public class WmDaAgentController {
 	private final SysDeptRelationMapper sysDeptRelationMapper;
 	private final SysDeptMapper sysDeptMapper;
 	private final SysDeptRelationService sysDeptRelationService;
+	private final SysCsmUserRelationService sysCsmUserRelationService;
 
 	/**
 	 * 分页查询
@@ -733,6 +737,14 @@ public class WmDaAgentController {
 	 */
 	@GetMapping("/page1")
 	public R getWmDaAgentPage1(Page page, WmDaAgent wmDaAgent) {
+		if (SecurityUtils.getRoles().contains(19)) {
+			// CSM只能查看自己维护的企业下的用户, 以及下属维护的企业下的用户
+			Integer userId = SecurityUtils.getUser().getId();
+			// 递归查询下属关联的userId
+			Set<Integer> allUserIds = sysCsmUserRelationService.recurseCsmLowerUserId(Collections.singleton(userId), new AtomicInteger(10));
+			wmDaAgent.setCsmUserIdList(allUserIds);
+		}
+
 		return R.ok(wmDaAgentService.selectWmManagementList(page, wmDaAgent));
 	}
 

+ 11 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaDrugEntController.java

@@ -26,8 +26,10 @@ import org.springframework.web.bind.annotation.*;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 
@@ -46,11 +48,11 @@ public class WmDaDrugEntController {
 	private final WmDaAgentService wmDaAgentService;
 	private final SysUserService userService;
 	private final SysDeptService sysDeptService;
-	private final SysDeptSubService sysDeptSubService;
 	private final WmTaskTypeEntRefMapper wmTaskTypeEntRefMapper;
 	private final WmTaskTypeMapper wmTaskTypeMapper;
 	private final SysDeptMapper sysDeptMapper;
 	private final SysUserMapper sysUserMapper;
+	private final SysCsmUserRelationService sysCsmUserRelationService;
 	private final RedisTemplate redisTemplate;
 
 	/**
@@ -63,6 +65,14 @@ public class WmDaDrugEntController {
 	@GetMapping("/page")
 	@PreAuthorize("@pms.hasPermission('admin_wmdadrugent_view')")
 	public R getWmDaDrugEntPage(Page page, WmDaDrugEnt wmDaDrugEnt) {
+		if (SecurityUtils.getRoles().contains(19)) {
+			// CSM只能查看自己维护的企业下的用户, 以及下属维护的企业下的用户
+			Integer userId = SecurityUtils.getUser().getId();
+			// 递归查询下属关联的userId
+			Set<Integer> allUserIds = sysCsmUserRelationService.recurseCsmLowerUserId(Collections.singleton(userId), new AtomicInteger(10));
+			wmDaDrugEnt.setCsmUserIdList(allUserIds);
+		}
+
 		return R.ok(wmDaDrugEntService.selectPage(page, wmDaDrugEnt));
 	}
 

+ 19 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaDrugEntDrugtableController.java

@@ -27,9 +27,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEnt;
-import com.qunzhixinxi.hnqz.admin.entity.WmDaPharmacy;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
+import com.qunzhixinxi.hnqz.admin.service.SysCsmUserRelationService;
 import com.qunzhixinxi.hnqz.admin.service.SysDictItemService;
 import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
@@ -49,6 +49,8 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -68,6 +70,7 @@ public class WmDaDrugEntDrugtableController {
 	private final WmDaDrugEntService wmDaDrugEntService;
 	private final WmScorePackageService wmScorePackageService;
 	private final SysDictItemService sysDictItemService;
+	private final SysCsmUserRelationService sysCsmUserRelationService;
 
 	/**
 	 * 分页查询
@@ -103,6 +106,17 @@ public class WmDaDrugEntDrugtableController {
 			wmDaDrugEntDrugtable.setDrugEntName(null);
 		}
 
+		if (SecurityUtils.getRoles().contains(19)) {
+			// CSM只能查看自己维护的企业下的数据, 以及下属维护的企业下的数据
+			Integer userId = SecurityUtils.getUser().getId();
+			// 递归查询下属关联的userId
+			Set<Integer> allUserIds = sysCsmUserRelationService.recurseCsmLowerUserId(Collections.singleton(userId), new AtomicInteger(10));
+			queryWrapper.and(wrapper -> {
+				wrapper.in("create_user", allUserIds)
+						.or(wrapper2 -> wrapper2.isNull("create_user"));
+			});
+		}
+
 		wmDaDrugEntDrugtableService.page(page, queryWrapper);
 
 		if (CollUtil.isNotEmpty(page.getRecords())) {
@@ -190,6 +204,7 @@ public class WmDaDrugEntDrugtableController {
 
 
 		wmDaDrugEntDrugtable.setCreateTime(LocalDateTime.now());
+		wmDaDrugEntDrugtable.setCreateUser(SecurityUtils.getUser().getId());
 		return R.ok(wmDaDrugEntDrugtableService.save(wmDaDrugEntDrugtable));
 	}
 
@@ -222,6 +237,8 @@ public class WmDaDrugEntDrugtableController {
 //			}
 //		}
 
+		wmDaDrugEntDrugtable.setUpdateTime(LocalDateTime.now());
+		wmDaDrugEntDrugtable.setUpdateUser(SecurityUtils.getUser().getId());
 
 		return R.ok(wmDaDrugEntDrugtableService.updateById(wmDaDrugEntDrugtable));
 	}
@@ -274,7 +291,7 @@ public class WmDaDrugEntDrugtableController {
 	}
 
 
-	@SysLog("新增档案-药企药品")
+	@SysLog("药企药品-分配")
 	@PostMapping("/distribute")
 	public R distribute(@RequestBody WmDaDrugEntDrugtable wmDaDrugEntDrugtable) {
 		return wmDaDrugEntDrugtableService.distribute(wmDaDrugEntDrugtable);

+ 7 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmDaAgent.java

@@ -10,6 +10,7 @@ import lombok.EqualsAndHashCode;
 
 import java.time.LocalDateTime;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * 档案-代理商
@@ -169,4 +170,10 @@ public class WmDaAgent extends Model<WmDaAgent> {
 	 */
 	@TableField(exist = false)
 	private UpmsType.FinancialReviewType financialReviewType;
+
+	/**
+	 * csm用户id
+	 */
+	@TableField(exist = false)
+	private Set<Integer> csmUserIdList;
 }

+ 7 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmDaDrugEnt.java

@@ -10,6 +10,7 @@ import lombok.EqualsAndHashCode;
 
 import java.time.LocalDateTime;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * 档案-药企
@@ -104,4 +105,10 @@ public class WmDaDrugEnt extends Model<WmDaDrugEnt> {
 	@TableField(exist = false)
 	private UpmsType.FinancialReviewType financialReviewType;
 
+	/**
+	 * csm用户id
+	 */
+	@TableField(exist = false)
+	private Set<Integer> csmUserIdList;
+
 }

+ 11 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/SysCsmUserRelationService.java

@@ -3,6 +3,9 @@ package com.qunzhixinxi.hnqz.admin.service;
 import com.qunzhixinxi.hnqz.admin.entity.SysCsmUserRelation;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
+
 /**
 * @author li312
 * @description 针对表【sys_csm_user_relation(csm用户关系表)】的数据库操作Service
@@ -10,4 +13,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
 */
 public interface SysCsmUserRelationService extends IService<SysCsmUserRelation> {
 
+	/**
+	 * 递归查询CSM所有下级的用户ID
+	 *
+	 * @param parentIds  父级ID
+	 * @param limitCount 递归次数限制
+	 * @return {@link Set}<{@link Integer}> 结果
+	 */
+	Set<Integer> recurseCsmLowerUserId(Set<Integer> parentIds, AtomicInteger limitCount);
 }

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

@@ -1,20 +1,57 @@
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qunzhixinxi.hnqz.admin.entity.SysCsmUserRelation;
 import com.qunzhixinxi.hnqz.admin.mapper.SysCsmUserRelationMapper;
 import com.qunzhixinxi.hnqz.admin.service.SysCsmUserRelationService;
+import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
+
 /**
 * @author li312
 * @description 针对表【sys_csm_user_relation(csm用户关系表)】的数据库操作Service实现
 * @createDate 2024-03-04 10:08:51
 */
 @Service
+@AllArgsConstructor
 public class SysCsmUserRelationServiceImpl extends ServiceImpl<SysCsmUserRelationMapper, SysCsmUserRelation>
     implements SysCsmUserRelationService {
 
+	private final SysCsmUserRelationMapper sysCsmUserRelationMapper;
+
+	/**
+	 * 递归查询CSM所有下级的用户ID
+	 *
+	 * @param parentIds  父级ID
+	 * @param limitCount 递归次数限制
+	 * @return {@link Set}<{@link Integer}> 结果
+	 */
+	@Override
+	public Set<Integer> recurseCsmLowerUserId(Set<Integer> parentIds, AtomicInteger limitCount) {
+		Set<Integer> allIds = new HashSet<>();
+		allIds.addAll(parentIds);
+		// 限制调用次数
+		if (limitCount.decrementAndGet() <= 0) {
+			return allIds;
+		}
+
+		List<SysCsmUserRelation> csmUserRelations = sysCsmUserRelationMapper.selectList(Wrappers.<SysCsmUserRelation>lambdaQuery()
+				.in(SysCsmUserRelation::getParentId, parentIds));
+		if (CollUtil.isNotEmpty(csmUserRelations)) {
+			Set<Integer> userIds = csmUserRelations.stream().map(SysCsmUserRelation::getUserId).collect(Collectors.toSet());
+			allIds.addAll(this.recurseCsmLowerUserId(userIds, limitCount));
+		}
+
+		return allIds;
+	}
 }
 
 

+ 55 - 11
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/SysDeptServiceImpl.java

@@ -23,20 +23,23 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.map.MapUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qunzhixinxi.hnqz.admin.api.dto.DeptTree;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptCsm;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptRelation;
 import com.qunzhixinxi.hnqz.admin.api.vo.SysEnterpriseRelationVO;
 import com.qunzhixinxi.hnqz.admin.api.vo.TreeUtil;
 import com.qunzhixinxi.hnqz.admin.entity.base.HnqzPage;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.DeptLevelEnum;
+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.WmRelationMapper;
+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.common.data.datascope.DataScope;
@@ -48,6 +51,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -65,12 +69,14 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
 
 	private final SysDeptRelationService sysDeptRelationService;
 
-	private final WmRelationMapper wmRelationMapper;
-
 	private final SysDeptRelationMapper sysDeptRelationMapper;
 
 	private final SysDeptMapper deptMapper;
 
+	private final SysCsmUserRelationService sysCsmUserRelationService;
+
+	private final SysDeptCsmMapper sysDeptCsmMapper;
+
 	@Override
 	public List convertToName() {
 		return deptMapper.getDeptConvertToName();
@@ -163,7 +169,25 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
 
 	@Override
 	public List<SysDept> listScope(SysDept sysDept) {
-		return deptMapper.selectListByScope(Wrappers.query(sysDept), new DataScope());
+		QueryWrapper<SysDept> queryWrapper = Wrappers.query(sysDept);
+
+		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 Collections.emptyList();
+			}
+
+			Set<Integer> deptIds = deptCsms.stream().map(SysDeptCsm::getDeptId).collect(Collectors.toSet());
+			queryWrapper.in("dept_id", deptIds);
+		}
+
+		return deptMapper.selectListByScope(queryWrapper, new DataScope());
 	}
 
 	@Override
@@ -470,13 +494,39 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
 	 */
 	@Override
 	public Map<String, Object> listEntAndAgent(Page page, String deptName) {
-		// 药企
+		// 药企wrapper
 		LambdaQueryWrapper<SysDept> entWrapper = Wrappers.lambdaQuery();
 		entWrapper.eq(SysDept::getDelFlag, DelEnum.NOT_DEL.val());
 		entWrapper.eq(SysDept::getLevel, DeptLevelEnum.ENT.getVal());
 		if (StringUtils.isNotBlank(deptName)) {
 			entWrapper.like(SysDept::getName, deptName);
 		}
+
+		// CSO wrapper
+		LambdaQueryWrapper<SysDept> csoWrapper = Wrappers.lambdaQuery();
+		csoWrapper.eq(SysDept::getDelFlag, DelEnum.NOT_DEL.val());
+		csoWrapper.in(SysDept::getLevel, DeptLevelEnum.CSO_L1.getVal(), DeptLevelEnum.CSO_L2.getVal());
+		if (StringUtils.isNotBlank(deptName)) {
+			csoWrapper.like(SysDept::getName, deptName);
+		}
+
+		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 new HashMap<>();
+			}
+
+			Set<Integer> deptIds = deptCsms.stream().map(SysDeptCsm::getDeptId).collect(Collectors.toSet());
+			entWrapper.in(SysDept::getDeptId, deptIds);
+			csoWrapper.in(SysDept::getDeptId, deptIds);
+		}
+
 		Page<SysDept> entPage = this.page(page, entWrapper);
 		List<Map<String, Object>> entMapList = entPage.getRecords().stream().map(sysDept -> {
 			Map<String, Object> deptMap = MapUtil.newHashMap(2);
@@ -488,12 +538,6 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
 		entHnqzPage.setRecords(entMapList);
 
 		// CSO
-		LambdaQueryWrapper<SysDept> csoWrapper = Wrappers.lambdaQuery();
-		csoWrapper.eq(SysDept::getDelFlag, DelEnum.NOT_DEL.val());
-		csoWrapper.in(SysDept::getLevel, DeptLevelEnum.CSO_L1.getVal(), DeptLevelEnum.CSO_L2.getVal());
-		if (StringUtils.isNotBlank(deptName)) {
-			csoWrapper.like(SysDept::getName, deptName);
-		}
 		Page<SysDept> csoPage = this.page(page, csoWrapper);
 		List<Map<String, Object>> csoMapList = csoPage.getRecords().stream().map(sysDept -> {
 			Map<String, Object> deptMap = MapUtil.newHashMap(2);

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

@@ -115,7 +115,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
 	private final SysUserSubMapper sysUserSubMapper;
 
-	private final SysCsmUserRelationMapper sysCsmUserRelationMapper;
+	private final SysCsmUserRelationService sysCsmUserRelationService;
 
 	/**
 	 * @Modify: start
@@ -1046,7 +1046,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 				SysCsmUserRelation csmUserRelation = new SysCsmUserRelation();
 				csmUserRelation.setUserId(sysUser.getUserId());
 				csmUserRelation.setParentId(pId);
-				sysCsmUserRelationMapper.insert(csmUserRelation);
+				sysCsmUserRelationService.save(csmUserRelation);
 			});
 		}
 
@@ -1130,14 +1130,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 		if (SecurityUtils.getRoles().contains(1) || SecurityUtils.getRoles().contains(2)) {
 			return baseMapper.getUserVosPage(page, userDTO, new DataScope());
 		} else if (SecurityUtils.getRoles().contains(19)) {
-			Integer userId = SecurityUtils.getUser().getId();
 			// CSM只能查看自己维护的企业下的用户, 以及下属维护的企业下的用户
-			Set<Integer> userIdList = new HashSet<>();
-			userIdList.add(userId);
+			Integer userId = SecurityUtils.getUser().getId();
 			// 递归查询下属关联的userId
-			AtomicInteger limitCount = new AtomicInteger(10);
-			this.recurseCsmLowerUserId(userIdList, userIdList, limitCount);
-			userDTO.setCsmUserIdList(userIdList);
+			Set<Integer> allUserIds = sysCsmUserRelationService.recurseCsmLowerUserId(Collections.singleton(userId), new AtomicInteger(10));
+			userDTO.setCsmUserIdList(allUserIds);
 			return baseMapper.getUserVosPage(page, userDTO, new DataScope());
 		} else if (SecurityUtils.getRoles().contains(35)) {
 			// BC总负责人数据权限
@@ -1233,7 +1230,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 			return;
 		}
 
-		List<SysCsmUserRelation> csmUserRelations = sysCsmUserRelationMapper.selectList(Wrappers.<SysCsmUserRelation>lambdaQuery()
+		List<SysCsmUserRelation> csmUserRelations = sysCsmUserRelationService.list(Wrappers.<SysCsmUserRelation>lambdaQuery()
 				.in(SysCsmUserRelation::getParentId, parentIds));
 		if (CollUtil.isNotEmpty(csmUserRelations)) {
 			Set<Integer> userIds = csmUserRelations.stream().map(SysCsmUserRelation::getUserId).collect(Collectors.toSet());
@@ -1379,13 +1376,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
 		// 关联上级主管
 		if (CollUtil.isNotEmpty(userDto.getParentIdList())) {
-			sysCsmUserRelationMapper.delete(Wrappers.<SysCsmUserRelation>lambdaUpdate()
+			sysCsmUserRelationService.remove(Wrappers.<SysCsmUserRelation>lambdaUpdate()
 					.eq(SysCsmUserRelation::getUserId, sysUser.getUserId()));
 			userDto.getParentIdList().forEach(pId -> {
 				SysCsmUserRelation csmUserRelation = new SysCsmUserRelation();
 				csmUserRelation.setUserId(sysUser.getUserId());
 				csmUserRelation.setParentId(pId);
-				sysCsmUserRelationMapper.insert(csmUserRelation);
+				sysCsmUserRelationService.save(csmUserRelation);
 			});
 		}
 

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

@@ -37,11 +37,12 @@ import com.qunzhixinxi.hnqz.admin.service.SysDictItemService;
 import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntDrugtableService;
 import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
 import com.qunzhixinxi.hnqz.common.core.util.R;
+import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -175,6 +176,8 @@ public class WmDaDrugEntDrugtableServiceImpl extends ServiceImpl<WmDaDrugEntDrug
 
 		updateEntity.setId(wmDaDrugEntDrugtable.getId());
 		updateEntity.setDrugEntNum(deptList.size());
+		updateEntity.setUpdateUser(SecurityUtils.getUser().getId());
+		updateEntity.setUpdateTime(LocalDateTime.now());
 		this.baseMapper.updateById(updateEntity);
 
 

+ 10 - 0
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmDaAgentMapper.xml

@@ -78,6 +78,9 @@
 		a.*, d.dept_permissions, d.level as dept_level, d.financial_review_type
 		FROM wm_da_agent a
 		LEFT JOIN sys_dept d ON d.dept_id = a.dept_id
+		<if test="query.csmUserIdList != null and query.csmUserIdList.size() > 0">
+			left join sys_dept_csm dc on dc.dept_id = a.dept_id
+		</if>
 		<where>
 			AND d.dept_id IS NOT NULL
 			AND (d.level = 3 OR d.level = 4 OR d.level = 5)
@@ -117,6 +120,13 @@
 			<if test="query.qylx != null and query.qylx!=''">
 				AND qylx = #{query.qylx,jdbcType=VARCHAR}
 			</if>
+			<if test="query.csmUserIdList != null and query.csmUserIdList.size() > 0">
+				and dc.user_id in (
+				<foreach collection="query.csmUserIdList" item="userId" index="index" separator=",">
+					#{userId}
+				</foreach>
+				)
+			</if>
 		</where>
 		ORDER BY id DESC
 	</select>

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

@@ -66,7 +66,10 @@
 			e.subject_type,
 			d.dept_permissions,
 			d.financial_review_type
-		FROM wm_da_drug_ent e LEFT JOIN sys_dept d ON e.dept_id=d.dept_id
+		FROM wm_da_drug_ent e LEFT JOIN sys_dept d ON e.dept_id = d.dept_id
+		<if test="query.csmUserIdList != null and query.csmUserIdList.size() > 0">
+			left join sys_dept_csm dc on dc.dept_id = e.dept_id
+		</if>
 		<where>
 			<if test="query.entname != null and query.entname != ''">
 				AND e.entname LIKE CONCAT('%', #{query.entname, jdbcType=VARCHAR}, '%')
@@ -74,6 +77,13 @@
 			<if test="query.entcode != null and query.entcode != ''">
 				AND e.entcode = #{query.entcode, jdbcType=VARCHAR}
 			</if>
+			<if test="query.csmUserIdList != null and query.csmUserIdList.size() > 0">
+				and dc.user_id in (
+				<foreach collection="query.csmUserIdList" item="userId" index="index" separator=",">
+					#{userId}
+				</foreach>
+				)
+			</if>
 		</where>
 		ORDER BY e.create_time DESC
 	</select>