فهرست منبع

fix: csm负责人支持设置为空2

lixuesong 1 سال پیش
والد
کامیت
58b3dfd4d6

+ 21 - 7
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysDeptController.java

@@ -49,6 +49,7 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -622,11 +623,17 @@ public class SysDeptController {
 			return R.failed("deptIds必填");
 		}
 
-		if (CollUtil.isEmpty(cmsUserIds)) {
-			// 删除关联关系
-			sysDeptCsmMapper.delete(Wrappers.<SysDeptCsm>lambdaUpdate()
-					.in(SysDeptCsm::getDeptId, deptIds));
-		} else {
+		Map<Integer, SysDeptCsm> deptCsmMap = new HashMap<>();
+		List<SysDeptCsm> sysDeptCsms = sysDeptCsmMapper.listDistinctUserCsm(cmsUserIds);
+		if (CollUtil.isNotEmpty(sysDeptCsms)) {
+			deptCsmMap.putAll(sysDeptCsms.stream().collect(Collectors.toMap(SysDeptCsm::getUserId, Function.identity())));
+		}
+
+		// 删除关联关系
+		sysDeptCsmMapper.delete(Wrappers.<SysDeptCsm>lambdaUpdate()
+				.in(SysDeptCsm::getDeptId, deptIds));
+
+		if (CollUtil.isNotEmpty(cmsUserIds)) {
 			// 建立关联关系
 			deptIds.forEach(deptId -> {
 				cmsUserIds.forEach(userId -> {
@@ -639,8 +646,15 @@ public class SysDeptController {
 						insert.setDeptId(deptId);
 						insert.setUserId(userId);
 						insert.setCsmName(user.getRealname());
-						insert.setQrCodeId(" ");
-						insert.setCorpId(" ");
+						SysDeptCsm sysDeptCsm = deptCsmMap.get(userId);
+						if (sysDeptCsm == null) {
+							insert.setQrCodeId(" ");
+							insert.setCorpId(" ");
+						} else {
+							// 复制该csm的原有配置信息
+							insert.setQrCodeId(StrUtil.isNotBlank(sysDeptCsm.getQrCodeId()) ?  sysDeptCsm.getQrCodeId() : " ");
+							insert.setCorpId(StrUtil.isNotBlank(sysDeptCsm.getCorpId()) ?  sysDeptCsm.getQrCodeId() : " ");
+						}
 						sysDeptCsmMapper.insert(insert);
 					}
 				});

+ 19 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/SysDeptCsmMapper.java

@@ -3,6 +3,10 @@ package com.qunzhixinxi.hnqz.admin.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptCsm;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
 
 /**
  * 部门客户成功mapper
@@ -13,4 +17,19 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface SysDeptCsmMapper extends BaseMapper<SysDeptCsm> {
+
+	/**
+	 * 列出非重复用户CSM的配置信息
+	 *
+	 * @param userIds 用户 ID
+	 * @return {@link List}<{@link SysDeptCsm}> 结果
+	 */
+	@Select("<script>" +
+			"select distinct wl_qrcode_id as qr_code_id, corp_id, user_id from sys_dept_csm where wl_qrcode_id is not null " +
+			"and corp_id is not null and user_id in " +
+			"    <foreach item='item' index='index' collection='userIds' open='(' separator=',' close=')'>" +
+			"       #{item}" +
+			"    </foreach>" +
+			"</script>")
+	List<SysDeptCsm> listDistinctUserCsm(@Param("userIds") List<Integer> userIds);
 }