Browse Source

feat: user cert update

shc 1 year ago
parent
commit
2bcdce52ea

+ 1 - 1
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/dto/SysUserDTO.java

@@ -40,7 +40,7 @@ public final class SysUserDTO {
         @NotNull(message = "所属企业必填")
         private Integer deptId;
 
-        private List<Integer> areaCode;
+        private List<Long> areaCodes;
 
         @NotEmpty(message = "认证文件必填")
         private List<Long> certFileIds;

+ 12 - 3
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysUserController.java

@@ -73,7 +73,6 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -680,7 +679,7 @@ public class SysUserController {
         UserDTO userDto = new UserDTO();
         userDto.setRole(role);
         userDto.setDeptId(deptId);
-        userDto.setAreaCodes(userDto.getAreaCodes());
+        userDto.setAreaCodes(resource.getAreaCodes());
         userDto.setUsername(username);
         userDto.setIdCardNumber(idCardNumber);
         userDto.setLockFlag(resource.getLockFlag());
@@ -754,6 +753,11 @@ public class SysUserController {
     @PreAuthorize("@pms.hasPermission('sys_user_edit')")
     public R<?> updateUser(@Valid @RequestBody UserDTO userDto) {
 
+
+        if (CollUtil.containsAny(userDto.getRole(), SALESMAN_ROLE_ID)){
+           return R.failed("当前业务规定不支持修改(全职/兼职)业务员信息");
+        }
+
         SysDept sysDept = sysDeptService.getById(userDto.getDeptId());
 
         if (null != userDto.getUserId()) {
@@ -1273,9 +1277,14 @@ public class SysUserController {
 
     @SysLog("备案管理员绑定备案产品")
     @PostMapping(value = "/cert/prod/bind")
-    public R<Boolean> bindProdToUserCert(@Validated @RequestBody SysUserDTO.OnProdBind resource){
+    public R<Boolean> bindProdToUserCert(@Validated @RequestBody SysUserDTO.OnProdBind resource) {
 
         return R.ok(userManager.bindProdToUserCert(resource, SecurityUtils.getUser()));
     }
 
+    @GetMapping(value = "/cert/list")
+    public R<List<Map<String, Object>>> listUserCerts(@RequestParam(value = "userId") Integer userId) {
+        return R.ok(userManager.listUserCerts(userId));
+    }
+
 }

+ 61 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/manager/SysUserManager.java

@@ -1,15 +1,19 @@
 package com.qunzhixinxi.hnqz.admin.manager;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.text.CharSequenceUtil;
 import cn.hutool.core.text.StrPool;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.qunzhixinxi.hnqz.admin.api.dto.SysUserDTO;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysFile;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUserCertificate;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEntDrugtable;
 import com.qunzhixinxi.hnqz.admin.service.SysFileService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserCertificateService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserService;
+import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntDrugtableService;
 import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import lombok.AllArgsConstructor;
@@ -38,6 +42,7 @@ public class SysUserManager {
 
     private final SysFileService fileService;
     private final SysUserService userService;
+    private final WmDaDrugEntDrugtableService drgEntDrugtableService;
     private final SysUserCertificateService userCertificateService;
 
 
@@ -111,4 +116,60 @@ public class SysUserManager {
 
         return Boolean.TRUE;
     }
+
+    /**
+     * 获取用户备案详情
+     *
+     * @param userId 用户ID
+     * @return 备案信息
+     */
+    public List<Map<String, Object>> listUserCerts(Integer userId) {
+
+        List<SysUserCertificate> certificates = userCertificateService.list(Wrappers.<SysUserCertificate>lambdaQuery().eq(SysUserCertificate::getUserId, userId));
+
+        if (CollUtil.isEmpty(certificates)) {
+            return Collections.emptyList();
+        }
+
+        // 查询药品
+        Set<String> prodIds = certificates.stream().filter(cert -> CharSequenceUtil.isNotBlank(cert.getProducts())).flatMap(cert -> CharSequenceUtil.split(cert.getProducts(), StrPool.COMMA).stream()).collect(Collectors.toSet());
+        Map<String, WmDaDrugEntDrugtable> collect;
+        if (CollUtil.isNotEmpty(prodIds)) {
+            collect = drgEntDrugtableService.listByIds(prodIds).stream().collect(Collectors.toMap(WmDaDrugEntDrugtable::getId, Function.identity()));
+        } else {
+            collect = Collections.emptyMap();
+        }
+
+        // 查询图片
+        Set<Long> fileIds = certificates.stream().mapToLong(SysUserCertificate::getFileId).boxed().collect(Collectors.toSet());
+        Map<Long, SysFile> fileIdToFileMap = fileService.listByIds(fileIds).stream().collect(Collectors.toMap(SysFile::getId, Function.identity()));
+
+
+        return certificates.stream().map(cert -> {
+            Map<String, Object> map = BeanUtil.copyProperties(cert, Map.class, "products", "fileId");
+
+            // 产品
+            String products = cert.getProducts();
+            List<Map<String, Object>> prods;
+            if (CharSequenceUtil.isNotBlank(products)) {
+                prods = CharSequenceUtil.split(products, StrPool.COMMA).stream().map(prodId -> {
+                    WmDaDrugEntDrugtable wmDaDrugEntDrugtable = collect.get(prodId);
+                    Map<String, Object> m = new HashMap<>(3);
+                    m.put("productId", wmDaDrugEntDrugtable.getId());
+                    m.put("productCommonName", wmDaDrugEntDrugtable.getDrugnameTy());
+                    m.put("productnName", wmDaDrugEntDrugtable.getDrugname());
+                    return m;
+                }).collect(Collectors.toList());
+            } else {
+                prods = Collections.emptyList();
+            }
+            map.put("products", prods);
+
+            // 图片
+            SysFile f = fileIdToFileMap.get(cert.getFileId());
+            map.put("file", f);
+
+            return map;
+        }).collect(Collectors.toList());
+    }
 }

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

@@ -2,6 +2,7 @@ package com.qunzhixinxi.hnqz.admin.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.lang.tree.Tree;
 import cn.hutool.core.util.ArrayUtil;
@@ -698,7 +699,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             return baseMapper.getUserVosPage(page, userDTO, new DataScope());
         } else if (SecurityUtils.getRoles().contains(2) || SecurityUtils.getRoles().contains(35)) {
             // 人数据权限
-            List<Integer> bcRoles = Stream.of(2, 3, 4, 5, 6, 7, 9, 10, 11, 13, 19, 31, 35, 37, 38, 39, 40, 41, 42, 43).collect(Collectors.toList());
+            List<Integer> bcRoles = Stream.of(2, 3, 4, 5, 6, 7, 9, 10, 11, 13, 19, 31, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47).collect(Collectors.toList());
             if (CollUtil.isNotEmpty(userDTO.getRole())) {
                 Collection<Integer> intersection = CollUtil.intersectionDistinct(bcRoles, userDTO.getRole());
                 if (CollUtil.isEmpty(intersection)) {
@@ -718,7 +719,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             return baseMapper.getUserVosPage(page, userDTO, new DataScope());
         } else if (SecurityUtils.getRoles().contains(35)) {
             // BC总负责人数据权限
-            List<Integer> bcRoles = Stream.of(3, 4, 5, 6, 7, 9, 10, 11, 13, 19, 31, 35, 37, 38, 39, 40, 41, 42, 43).collect(Collectors.toList());
+            List<Integer> bcRoles = Stream.of(3, 4, 5, 6, 7, 9, 10, 11, 13, 19, 31, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47).collect(Collectors.toList());
             if (CollUtil.isNotEmpty(userDTO.getRole())) {
                 Collection<Integer> intersection = CollUtil.intersectionDistinct(bcRoles, userDTO.getRole());
                 if (CollUtil.isEmpty(intersection)) {
@@ -729,6 +730,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 userDTO.setRole(bcRoles);
             }
             return baseMapper.getUserVosPage(page, userDTO, new DataScope());
+        } else if (SecurityUtils.getRoles().contains(47)) {
+            userDTO.setRole(ListUtil.of(5, 6));
+            return baseMapper.getUserVosPage(page, userDTO, new DataScope());
         }
         Integer deptId = userDTO.getDeptId();
         userDTO.setDeptId(SecurityUtils.getUser().getDeptId());

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

@@ -100,7 +100,7 @@ public class WmDaAgentServiceImpl extends ServiceImpl<WmDaAgentMapper, WmDaAgent
         String buildName = "";
         SysDept sysDept = sysDeptService.getById(deptId);
         if (null != sysDept) {
-            //buildName=sysDept.getName();
+            // buildName=sysDept.getName();
             SysDept sysDeptP1 = sysDeptService.getById(sysDept.getParentId());
             if (null != sysDeptP1) {
                 buildName = sysDeptP1.getName();
@@ -490,10 +490,10 @@ public class WmDaAgentServiceImpl extends ServiceImpl<WmDaAgentMapper, WmDaAgent
         // 对应的部门id
         List<String> deptIds = null;
         if (CollectionUtil.isNotEmpty(agentList)) {
-            //ids = agentList.stream().map(WmDaAgent::getId).collect(Collectors.toList());
+            // ids = agentList.stream().map(WmDaAgent::getId).collect(Collectors.toList());
             deptIds = agentList.stream().map(agent -> agent.getDeptId().toString()).collect(Collectors.toList());
         } else {
-            //ids = listEnts.stream().map(p -> p.getId()).collect(Collectors.toList());
+            // ids = listEnts.stream().map(p -> p.getId()).collect(Collectors.toList());
             deptIds = listEnts.stream().map(ent -> ent.getDeptId().toString()).collect(Collectors.toList());
         }
         List<WmRelation> newList = new ArrayList<>();
@@ -696,7 +696,7 @@ public class WmDaAgentServiceImpl extends ServiceImpl<WmDaAgentMapper, WmDaAgent
             if (CollUtil.isNotEmpty(sysDeptRelationList)) {
 
                 // 区域限制
-                List<Long>  areaId = sysUserAreaService.listUserAreas(Long.valueOf(SecurityUtils.getUser().getId()));
+                List<Long> areaId = sysUserAreaService.listUserAreas(Long.valueOf(SecurityUtils.getUser().getId()));
                 if (CollUtil.isNotEmpty(areaId)) {
                     areaId = areaEntityService.list(Wrappers.<SysAreaEntity>lambdaQuery()
                                     .in(SysAreaEntity::getAreaId, areaId)