Selaa lähdekoodia

获取核查类型,判断当前用户有没有对应核查类型的角色显示核查相关按钮

songxinlu 4 vuotta sitten
vanhempi
commit
ec491dec3b
1 muutettua tiedostoa jossa 34 lisäystä ja 4 poistoa
  1. 34 4
      src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

+ 34 - 4
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -8,6 +8,7 @@ import com.diagbot.client.AuthServiceClient;
 import com.diagbot.dto.*;
 import com.diagbot.entity.*;
 import com.diagbot.enums.CheckStatusEnum;
+import com.diagbot.enums.CheckerRoleEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
@@ -170,7 +171,8 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
     SysHospitalSetFacade sysHospitalSetFacade;
     @Autowired
     QcCasesRelevanceEntryFacade qcCasesRelevanceEntryFacade;
-
+    @Autowired
+    SysUserRoleFacade sysUserRoleFacade;
 
 
     /**
@@ -295,15 +297,43 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
             } else {
                 res.put("mrStatus", 0);
             }
-            //新增如果当前用户不是核查人员返回标志位用户核查按钮隐藏显示
-            //获取病历核查人员id,该操作只能是核查员操作
+            //新增如果当前用户不是核查人员返回标志位用户核查按钮、修改、删除、隐藏显示
+            //1.获取病历核查人员id,该操作只能是核查员操作
             List<MedCheckInfo> medCheckInfos = medCheckInfoFacade.list(new QueryWrapper<MedCheckInfo>()
                     .eq("is_deleted", IsDeleteEnum.N.getKey())
                     .eq("hospital_id", hospitalId)
                     .eq("behospital_code", getDetailVO.getBehospitalCode()));
             if (medCheckInfos.size() == 1 && medCheckInfos.get(0).getCheckId() != null
                     && medCheckInfos.get(0).getCheckId().equals(Long.parseLong(SysUserUtils.getCurrentPrincipleID()))) {
-                res.put("checkShow", 1);
+                //2.1获取核查类型,判断当前用户有没有对应核查类型的角色
+                int jobType = medCheckInfoFacade.list(new QueryWrapper<MedCheckInfo>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("behospital_code",  getDetailVO.getBehospitalCode())
+                        .eq("hospital_id", hospitalId)
+                        .eq("check_id", SysUserUtils.getCurrentPrincipleID())).get(0).getJobType();
+                //2.2获取用户角色
+                List<Long> roleIds = sysUserRoleFacade.list(new QueryWrapper<SysUserRole>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("user_id", SysUserUtils.getCurrentPrincipleID())
+                ).stream().distinct().map(SysUserRole::getRoleId).collect(Collectors.toList());
+                switch (jobType){
+                    case 0:
+                        if(roleIds.contains(CheckerRoleEnum.DEPT_GENERAL.getKey()*1l)){res.put("checkShow", 1);}
+                        else {res.put("checkShow", 0);}
+                        break;
+                    case 1:
+                        if(roleIds.contains(CheckerRoleEnum.QUAT_GENERAL.getKey()*1l)){res.put("checkShow", 1);}
+                        else {res.put("checkShow", 0);}
+                        break;
+                    case 2:
+                        if(roleIds.contains(CheckerRoleEnum.HOSP_GENERAL.getKey()*1l)){res.put("checkShow", 1);}
+                        else {res.put("checkShow", 0);}
+                        break;
+                    default:
+                        res.put("checkShow", 0);
+                        break;
+                }
+
             } else {
                 res.put("checkShow", 0);
             }