Selaa lähdekoodia

字典管理新增获取方法

songxinlu 3 vuotta sitten
vanhempi
commit
fe3dd4b062

+ 1 - 1
common/src/main/java/com/lantone/common/vo/AddUserVO.java

@@ -51,7 +51,7 @@ public class AddUserVO implements Serializable {
     private String titleId;
 
     @ApiModelProperty(value = "工号")
-    private Long jobNo;
+    private String jobNo;
 
     @ApiModelProperty(value = "排序")
     private Integer orderNo;

+ 1 - 1
common/src/main/java/com/lantone/common/vo/UpdateUserVO.java

@@ -51,7 +51,7 @@ public class UpdateUserVO implements Serializable {
     private String titleId;
 
     @ApiModelProperty(value = "工号")
-    private Long jobNo;
+    private String jobNo;
 
     @ApiModelProperty(value = "排序")
     private Integer orderNo;

+ 48 - 0
dblayer-mbg/src/main/java/com/lantone/dblayermbg/facade/DictionaryInfoFacade.java

@@ -1,15 +1,23 @@
 package com.lantone.dblayermbg.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import com.lantone.common.constant.AuthConstant;
+import com.lantone.common.dto.GetDictionaryInfoByTypeDTO;
 import com.lantone.common.enums.IsDeleteEnum;
 import com.lantone.common.enums.StatusEnum;
 import com.lantone.common.service.RedisService;
+import com.lantone.common.util.ListUtil;
 import com.lantone.dblayermbg.entity.DictionaryInfo;
 import com.lantone.dblayermbg.service.impl.DictionaryInfoServiceImpl;
+import org.apache.commons.collections.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
@@ -48,4 +56,44 @@ public class DictionaryInfoFacade extends DictionaryInfoServiceImpl {
         return dicMap;
     }
 
+    /**
+     * @param returnType 返回类型
+     * @param groupTypes 分组集合
+     * @Description获取指定groupTyeps的字典集
+     * @Return java.util.Map<java.lang.String, java.util.Map < java.lang.String, java.lang.String>>
+     */
+    public Map<String, Map<String, String>> getDicMap(String returnType, List<String> groupTypes) {
+        Map<String, Map<String, String>> outDicMap = new HashMap<>();
+        Map<String, Map<String, Map<String, String>>> dicMap = (Map<String, Map<String, Map<String, String>>>) redisService.get(AuthConstant.DIC_MAP_KEY);
+        Map<String, Map<String, String>> returnDicMap = dicMap.get(returnType);
+        if (MapUtils.isNotEmpty(returnDicMap) && ListUtil.isNotEmpty(groupTypes)) {
+            groupTypes.stream().forEach(groupType -> {
+                outDicMap.put(groupType, returnDicMap.get(groupType));
+            });
+        }
+        return outDicMap;
+    }
+
+
+    /**
+     * @param returnType 返回类型
+     * @param groupTypes 分组集合
+     * @Description获取指定groupTyeps的字典集(返回结果集为对象形式)
+     * @Return java.util.Map<java.lang.String,java.util.List<com.lantone.common.dto.GetDictionaryInfoByTypeDTO>>
+     */
+    public Map<String, List<GetDictionaryInfoByTypeDTO>> getDicMapObj(String returnType, List<String> groupTypes) {
+        Map<String, List<GetDictionaryInfoByTypeDTO>> outDicMap = new HashMap<>();
+        Map<String, Map<String, String>> dicMap = getDicMap(returnType, groupTypes);
+        dicMap.keySet().stream().forEach(groupType -> {
+            List<GetDictionaryInfoByTypeDTO> tempObjs = new ArrayList<>();
+            dicMap.get(groupType).keySet().stream().forEach(name -> {
+                GetDictionaryInfoByTypeDTO tempObj = new GetDictionaryInfoByTypeDTO();
+                tempObj.setName(name);
+                tempObj.setVal(dicMap.get(groupType).get(name));
+                tempObjs.add(tempObj);
+            });
+            outDicMap.put(groupType, tempObjs);
+        });
+        return outDicMap;
+    }
 }

+ 43 - 0
security-center/src/main/java/com/lantone/security/enums/ReturnTypeEnum.java

@@ -0,0 +1,43 @@
+package com.lantone.security.enums;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description: 字典返回值returnType
+ * @author: gaodm
+ * @time: 2018/9/3 16:01
+ */
+public enum ReturnTypeEnum {
+
+    ALL("0", "全部"),
+    CONSOLE("1", "后台"),
+    INTERFACE("2", "界面");
+
+    @Getter
+    @Setter
+    private String key;
+
+    @Getter
+    @Setter
+    private String name;
+
+    ReturnTypeEnum(String key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static ReturnTypeEnum getEnum(String key) {
+        for (ReturnTypeEnum item : ReturnTypeEnum.values()) {
+            if (item.key.equals(key)) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(String key) {
+        ReturnTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+}

+ 15 - 12
security-center/src/main/java/com/lantone/security/facade/HospitalManagementFacade.java

@@ -5,7 +5,9 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.google.common.collect.Lists;
 import com.lantone.common.dto.DownBoxRegionDTO;
+import com.lantone.common.dto.GetDictionaryInfoByTypeDTO;
 import com.lantone.common.dto.GetHospitalByIdDTO;
 import com.lantone.common.dto.GetHospitalListInfoDTO;
 import com.lantone.common.dto.GetHospitalTreeDTO;
@@ -42,6 +44,7 @@ import com.lantone.dblayermbg.facade.UserFacade;
 import com.lantone.dblayermbg.facade.UserRoleFacade;
 import com.lantone.security.enums.DictionaryEnum;
 import com.lantone.security.enums.HospitalTypeEnum;
+import com.lantone.security.enums.ReturnTypeEnum;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -375,9 +378,15 @@ public class HospitalManagementFacade {
      * @Description组织管理列表页管理员下拉框筛选类型、病区查询
      * @Return java.util.Map<java.lang.String, java.lang.Object>
      */
-    public Map<Integer, Object> getManagerBoxInfo() {
-        Map<Integer, Object> outMap = new HashMap<>();
-        Map<Integer, String> hospitalTypeMap = new HashMap<>();
+    public Map<String, Object> getManagerBoxInfo() {
+        Map<String, Object> outMap = new HashMap<>();
+        Map<String, List<GetDictionaryInfoByTypeDTO>> dicMapObj= dictionaryInfoFacade.getDicMapObj(ReturnTypeEnum.INTERFACE.getKey(),
+                Lists.newArrayList(DictionaryEnum.TITLE.getKey()+"",
+                        DictionaryEnum.STATUS.getKey()+"",
+                        DictionaryEnum.HOSPITAL_TYPE.getKey()+"",
+                        DictionaryEnum.DATA_AUTH.getKey()+""));
+        outMap.putAll(dicMapObj);
+        outMap.remove(DictionaryEnum.HOSPITAL_TYPE.getKey()+"");
         //1.获取当前用户的组织类型
         int hospitalType = -1;
         Hospital hospital = hospitalFacade.getById(SysUserUtils.getCurrentHospitalId());
@@ -395,19 +404,13 @@ public class HospitalManagementFacade {
                 BeanUtils.copyProperties(region, downBoxRegionDTO);
                 downBoxRegions.add(downBoxRegionDTO);
             });
-            outMap.put(DictionaryEnum.REGION.getKey(), downBoxRegions);
+            outMap.put(DictionaryEnum.REGION.getKey()+"", downBoxRegions);
         } else {
-            String type = dictionaryInfoFacade.getBaseMapper().getDictionaryInfoByType(DictionaryEnum.HOSPITAL_TYPE.getKey()).get(hospitalType).getVal();
+            String type = dicMapObj.get(DictionaryEnum.HOSPITAL_TYPE.getKey()+"").get(hospitalType).getVal();
             if(StringUtil.isNotEmpty(type)){
-                outMap.put(DictionaryEnum.HOSPITAL_TYPE.getKey(), JSONArray.parseArray(type));
+                outMap.put(DictionaryEnum.HOSPITAL_TYPE.getKey()+"", JSONArray.parseArray(type));
             }
         }
-        //添加职称信息
-        outMap.put(DictionaryEnum.TITLE.getKey(), dictionaryInfoFacade.getBaseMapper().getDictionaryInfoByType(DictionaryEnum.TITLE.getKey()));
-        //添加status信息
-        outMap.put(DictionaryEnum.STATUS.getKey(), dictionaryInfoFacade.getBaseMapper().getDictionaryInfoByType(DictionaryEnum.STATUS.getKey()));
-        //添加数据权限信息
-        outMap.put(DictionaryEnum.DATA_AUTH.getKey(), dictionaryInfoFacade.getBaseMapper().getDictionaryInfoByType(DictionaryEnum.DATA_AUTH.getKey()));
         return outMap;
     }
 

+ 15 - 12
security-center/src/main/java/com/lantone/security/facade/UserManagementFacade.java

@@ -21,6 +21,7 @@ import com.lantone.common.exception.Asserts;
 import com.lantone.common.util.DateUtil;
 import com.lantone.common.util.EntityUtil;
 import com.lantone.common.util.ListUtil;
+import com.lantone.common.util.StringUtil;
 import com.lantone.common.util.SysUserUtils;
 import com.lantone.common.vo.AddHospitalTreeVO;
 import com.lantone.common.vo.AddUserVO;
@@ -28,6 +29,7 @@ import com.lantone.common.vo.GetUserPageVO;
 import com.lantone.common.vo.LoginVO;
 import com.lantone.common.vo.UpdateUserVO;
 import com.lantone.dblayermbg.entity.DeptUser;
+import com.lantone.dblayermbg.entity.Doctor;
 import com.lantone.dblayermbg.entity.Hospital;
 import com.lantone.dblayermbg.entity.HospitalUser;
 import com.lantone.dblayermbg.entity.MedoupDoctor;
@@ -36,6 +38,7 @@ import com.lantone.dblayermbg.entity.User;
 import com.lantone.dblayermbg.entity.UserRole;
 import com.lantone.dblayermbg.facade.DeptFacade;
 import com.lantone.dblayermbg.facade.DeptUserFacade;
+import com.lantone.dblayermbg.facade.DoctorFacade;
 import com.lantone.dblayermbg.facade.HospitalFacade;
 import com.lantone.dblayermbg.facade.HospitalUserFacade;
 import com.lantone.dblayermbg.facade.MedoupDoctorFacade;
@@ -88,6 +91,8 @@ public class UserManagementFacade {
     private RoleFacade roleFacade;
     @Autowired
     private MedoupDoctorFacade medoupDoctorFacade;
+    @Autowired
+    private DoctorFacade doctorfacade;
 
     public CommonResult login(LoginVO loginVO) {
         Map<String, String> params = new HashMap<>();
@@ -146,9 +151,6 @@ public class UserManagementFacade {
         user.setCreator(SysUserUtils.getCurrentPrincipleId() + "");
         user.setGmtCreate(DateUtil.now());
         user.setPassword(BCrypt.hashpw(user.getPassword()));
-        if (addUserVO.getJobNo() != null) {
-            addUserVO.setDoctorId(addUserVO.getJobNo());
-        }
         //1.1校验用户
         boolean deptFlag = false;
         if (ListUtil.isNotEmpty(addUserVO.getAddHospitalTreeVO().getDepts())) {
@@ -210,14 +212,19 @@ public class UserManagementFacade {
         }
         //医疗组(无医生信息,就不会有医疗组;有医生信息无医疗组)
         boolean groupFlag = false;
-        if (user.getDoctorId() == null) {
+        if (StringUtil.isEmpty(user.getJobNo())) {
             groupFlag = true;
         } else {
-            List<MedoupDoctor> medoupDoctors = medoupDoctorFacade.list(new QueryWrapper<MedoupDoctor>()
-                    .eq("dcotor_id", user.getDoctorId())
+            List<Doctor> doctors  = doctorfacade.list(new QueryWrapper<Doctor>()
+                    .eq("code", user.getJobNo())
                     .eq("is_deleted", IsDeleteEnum.N.getKey()));
-            if (ListUtil.isEmpty(medoupDoctors)) {
-                groupFlag = true;
+            if(ListUtil.isNotEmpty(doctors)){
+                List<MedoupDoctor> medoupDoctors = medoupDoctorFacade.list(new QueryWrapper<MedoupDoctor>()
+                        .in("dcotor_id", doctors.stream().map(Doctor::getId).collect(Collectors.toList()))
+                        .eq("is_deleted", IsDeleteEnum.N.getKey()));
+                if (ListUtil.isEmpty(medoupDoctors)) {
+                    groupFlag = true;
+                }
             }
         }
         if (!groupFlag) {
@@ -404,10 +411,6 @@ public class UserManagementFacade {
     public boolean updateUser(UpdateUserVO updateUserVO) {
         //1.删除该用户关联的科室、医院
         if (delUserHospitalORDept(updateUserVO.getId())) {
-            //工号为医生号
-            if (updateUserVO.getJobNo() != null) {
-                updateUserVO.setDoctorId(updateUserVO.getJobNo());
-            }
             User user = new User();
             BeanUtils.copyProperties(updateUserVO, user);
             user.setPassword(BCrypt.hashpw(user.getPassword()));

+ 1 - 1
security-center/src/main/java/com/lantone/security/web/HospitalManagementController.java

@@ -72,7 +72,7 @@ public class HospitalManagementController {
 
     @ApiOperation(value = "组织管理列表页管理员下拉框筛选类型、病区、职称查询 [by:songxl]")
     @PostMapping("/getManagerBoxInfo")
-    public CommonResult<Map<Integer,Object>> getManagerBoxInfo() {
+    public CommonResult<Map<String,Object>> getManagerBoxInfo() {
         return CommonResult.success(hospitalManagementFacade.getManagerBoxInfo());
     }
     @ApiOperation(value = "组织管理列表页查询 [by:songxl]")