Переглянути джерело

v2025.8.11
资质授权管理查询,查看详细信息速度优化

jinhu 1 тиждень тому
батько
коміт
f5363ade9a

+ 69 - 1
src/main/java/com/kcim/dao/repository/QualificationApplyRepository.java

@@ -171,6 +171,12 @@ public class QualificationApplyRepository extends ServiceImpl<QualificationApply
             queryWrapper.eq(QualificationApply::getUserId, userId);
         }
 
+        List<QualificationApply> list = this.list(queryWrapper);
+        //如果 list 为空,直接返回
+        if(CollectionUtils.isEmpty(list)){
+            return list;
+        }
+
         //用户信息
         List<UserInfo> empList = userInfoRepository.list();
         Map<Long,UserInfo> empMap = empList.stream().collect(Collectors.toMap(UserInfo::getId, vo -> vo, (a, b) -> b));
@@ -191,7 +197,7 @@ public class QualificationApplyRepository extends ServiceImpl<QualificationApply
         List<QualificationApplyAdjust> listApplyAdjust = applyAdjustRepository.list();
         Map<Integer, List<QualificationApplyAdjust>> qualificationApplyAdjustMap = listApplyAdjust.stream().collect(Collectors.groupingBy(QualificationApplyAdjust::getQualificationApplyId));
 
-        List<QualificationApply> list = this.list(queryWrapper);
+
         for(QualificationApply apply: list){
 
             //医生信息
@@ -238,6 +244,68 @@ public class QualificationApplyRepository extends ServiceImpl<QualificationApply
         return list;
     }
 
+    public List<QualificationApply> listQualificationApplyByQualificationCode(String qualificationCode){
+        //ApplyStatus 当前状态 1草稿 2待科主任审核 3待医务部审核 4待院长审核 5审核通过 6驳回
+        LambdaQueryWrapper<QualificationApply> queryWrapper = new LambdaQueryWrapper<>();
+
+        queryWrapper.eq(QualificationApply::getHospId, BaseUtil.getCurrentLoginHospId());
+        queryWrapper.eq(QualificationApply::getDelFlag, NumberConstant.ZERO);
+        queryWrapper.eq(QualificationApply::getApplyStatus, NumberConstant.FIVE);
+        queryWrapper.eq(QualificationApply::getQualificationCode, qualificationCode);
+
+        List<QualificationApply> list = this.list(queryWrapper);
+        //如果 list 为空,直接返回
+        if(CollectionUtils.isEmpty(list)){
+            return list;
+        }
+
+        //用户信息
+        List<UserInfo> empList = userInfoRepository.list();
+        Map<Long,UserInfo> empMap = empList.stream().collect(Collectors.toMap(UserInfo::getId, vo -> vo, (a, b) -> b));
+
+        //手术级别字典
+        List<SysDictionary> dicOperationLevel = sysDictionaryRepository.listByType("SURGICAL_AND_OPERATIONAL_LEVELS");
+        Map<String,SysDictionary> operationLevelMap = dicOperationLevel.stream().collect(Collectors.toMap(SysDictionary::getCode, vo -> vo, (a, b) -> b));
+
+        //资质信息
+        Qualification qualification = qualificationRepository.getByCode(qualificationCode);
+        //资质分类
+        QualificationType qualificationType = qualificationTypeRepository.getByCode(qualification.getQualificationTypeCode());
+        //资质分类名称
+        qualification.setQualificationTypeName(qualificationType.getName());
+
+        //调整记录
+        List<QualificationApplyAdjust> listApplyAdjust = applyAdjustRepository.list();
+        Map<Integer, List<QualificationApplyAdjust>> qualificationApplyAdjustMap = listApplyAdjust.stream().collect(Collectors.groupingBy(QualificationApplyAdjust::getQualificationApplyId));
+
+        for(QualificationApply apply: list){
+            //医生信息
+            apply.setUserInfo(empMap.get(apply.getUserId()));
+            //资质信息
+            apply.setQualificationInfo(qualification);
+            //手术等级
+            if(!StringUtils.isEmpty(qualification.getOperationLevelCode())){
+                SysDictionary operationLevel = operationLevelMap.get(qualification.getOperationLevelCode());
+                if(operationLevel != null){
+                    qualification.setOperationLevelName(operationLevel.getName());
+                }
+            }
+            apply.setQualificationInfo(qualification);
+
+            //调整历史
+            List<QualificationApplyAdjust> applyAdjustList = qualificationApplyAdjustMap.get(apply.getId());
+            if(!CollectionUtils.isEmpty(applyAdjustList)) {
+                //调整历史-调整人姓名
+                for(QualificationApplyAdjust adjust : applyAdjustList){
+                    adjust.setAdjustUserName(empMap.get(adjust.getUserId()).getName());
+                }
+                apply.setApplyAdjust(applyAdjustList);
+            }
+        }
+        list.sort((Comparator.comparing(QualificationApply::getCurrentStatus, Comparator.reverseOrder()).thenComparing(QualificationApply::getApplyDate, Comparator.reverseOrder())));
+        return list;
+    }
+
     public QualificationApply findByUserIdAndQualificationCode(Long userId,String qualificationCode,Boolean includeDraft){
         LambdaQueryWrapper<QualificationApply> queryWrapper = new LambdaQueryWrapper<>();
 

+ 1 - 1
src/main/java/com/kcim/service/impl/QualificationManageServiceImpl.java

@@ -160,7 +160,7 @@ public class QualificationManageServiceImpl extends ServiceImpl<QualificationApp
 
     @Override
     public Object listQualificationApply(String qualificationCode){
-        List<QualificationApply> list = qualificationApplyRepository.listByQualification(qualificationCode,null);
+        List<QualificationApply> list = qualificationApplyRepository.listQualificationApplyByQualificationCode(qualificationCode);
         return geneQualificationStatus(list);
     }