Pārlūkot izejas kodu

v2025.8.11
1、医生授权管理查询
2、证书管理,查询证书列表

jinhu 1 nedēļu atpakaļ
vecāks
revīzija
1aa3c5a5cf

+ 14 - 0
src/main/java/com/kcim/controller/QualificationManageController.java

@@ -78,6 +78,20 @@ public class QualificationManageController {
         return Result.ok(qualificationManageService.listAvailableQualification(queryCondition,expireDate,current,pageSize));
     }
 
+    /**
+     * 获取所有医生附件
+     */
+    @ApiOperation("获取所有医生附件")
+    @GetMapping("listAllDoctorAttachments")
+    public Result listAllDoctorAttachments(@RequestParam(value = "doctorName",required = false) String doctorName,
+                                           @RequestParam(value = "deptCode",required = false) String deptCode,
+                                           @RequestParam(value = "attachmentName",required = false) String attachmentName,
+                                           @RequestParam(value = "expireDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date expireDate,
+                                           @RequestParam(value = "current", required = false, defaultValue = "1") Integer current,
+                                           @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize){
+        return Result.ok(qualificationManageService.listAllDoctorAttachments(doctorName,deptCode,attachmentName,expireDate,current,pageSize));
+    }
+
     /**
      * 查询我的所有有效资质
      */

+ 5 - 0
src/main/java/com/kcim/dao/model/DoctorAttachment.java

@@ -121,4 +121,9 @@ public class DoctorAttachment implements Serializable {
 	@TableLogic(value = "0",delval = "1")
 	private Integer delFlag;
 
+	/**
+	 * 医生姓名和工号
+	 */
+	@TableField(exist = false)
+	private String empNameAndCode;
 }

+ 16 - 0
src/main/java/com/kcim/dao/repository/DoctorAttachmentRepository.java

@@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kcim.constants.NumberConstant;
 import com.kcim.dao.mapper.DoctorAttachmentMapper;
 import com.kcim.dao.model.DoctorAttachment;
+import com.kcim.dao.model.QualificationApply;
 import com.kcim.util.BaseUtil;
 import org.springframework.stereotype.Repository;
 
+import java.util.Date;
 import java.util.List;
 
 @Repository
@@ -20,4 +22,18 @@ public class DoctorAttachmentRepository extends ServiceImpl<DoctorAttachmentMapp
         queryWrapper.eq(DoctorAttachment::getDelFlag, NumberConstant.ZERO);
         return this.list(queryWrapper);
     }
+
+    public List<DoctorAttachment> list(String attachmentName, Date expireDate) {
+
+        LambdaQueryWrapper<DoctorAttachment> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(DoctorAttachment::getHospId, BaseUtil.getCurrentLoginHospId());
+        queryWrapper.eq(DoctorAttachment::getDelFlag, NumberConstant.ZERO);
+        queryWrapper.like(DoctorAttachment::getFileName, attachmentName);
+        //expireDate不为空
+        if(expireDate != null){
+            queryWrapper.le(DoctorAttachment::getExpireDate, expireDate);
+        }
+
+        return this.list(queryWrapper);
+    }
 }

+ 2 - 0
src/main/java/com/kcim/service/QualificationManageService.java

@@ -45,4 +45,6 @@ public interface QualificationManageService extends IService<QualificationApply>
     Object editDoctorAttachment(DoctorAttachment doctorAttachments);
 
     Object deleteDoctorAttachment(Integer id);
+
+    Object listAllDoctorAttachments(String doctorName, String deptCode, String attachmentName, Date expireDate, Integer current, Integer pageSize);
 }

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

@@ -84,59 +84,6 @@ public class QualificationManageServiceImpl extends ServiceImpl<QualificationApp
             listReturn.add(qualificationManage);
         });
 
-
-//有效的资质授权
-//        List<QualificationApply> list = qualificationApplyRepository.listByQualification();
-//
-//        for(QualificationApply qualificationApply : list){
-//
-//            //资质字典信息
-//            Qualification qualification = qualificationMap.get(qualificationApply.getQualificationCode());
-//
-//            //资质名称
-//            String qualificationName = qualification.getName();
-//            //资质分类
-//            QualificationType qualificationType = qualificationTypeMap.get(qualification.getQualificationTypeCode());
-//            //资质分类编码
-//            String typeCode = qualificationType.getCode();
-//            //资质分类名称
-//            String typeName = qualificationType.getName();
-//            qualification.setQualificationTypeName(typeName);
-//
-//            //名称过滤
-//            if(!StringUtils.isEmpty(name) && !qualificationName.contains(name)){
-//                continue;
-//            }
-//            //分类过滤
-//            if(!qualificationTypeCode.equals("0")){
-//                List<String> typeCodeList = qualificationService.getQualificationTypeCodeRecursion(qualificationTypeList,qualificationTypeCode);
-//                if(!typeCodeList.contains(typeCode)){
-//                    continue;
-//                }
-//            }
-//            //手术标志过滤
-//            if(operationFlag != null && operationFlag.equals(NumberConstant.ONE) && qualification.getOperationFlag().equals(NumberConstant.ZERO)){
-//                continue;
-//            }
-//            //医疗技术标志过滤
-//            if(techFlag != null && techFlag.equals(NumberConstant.ONE) && qualification.getTechFlag().equals(NumberConstant.ZERO)){
-//                continue;
-//            }
-//            //手术级别过滤
-//            if(!StringUtils.isEmpty(operationLevelCode) && !qualification.getOperationLevelCode().equals(operationLevelCode)){
-//                continue;
-//            }
-//
-//            Optional<QualificationManage> returnItem = listReturn.stream().filter(q -> q.getQualification().getCode().equals(qualificationApply.getQualificationCode())).findFirst();
-//            //添加1项
-//            if(!returnItem.isPresent()) {
-//                QualificationManage newItem = new QualificationManage();
-//                //资质字典
-//                newItem.setQualification(qualification);
-//                listReturn.add(newItem);
-//            }
-//        }
-
         // 对listReturn进行分页处理
         int total = listReturn.size();
         int startIndex = (current - 1) * pageSize;
@@ -182,29 +129,28 @@ public class QualificationManageServiceImpl extends ServiceImpl<QualificationApp
         //返回的集合
         List<QualificationManageForDoctor> listReturn = new ArrayList<>();
 
-        //所有有效的资质
-        List<Qualification> qualificationList = qualificationRepository.list();
-        Map<String,Qualification> qualificationMap = qualificationList.stream().collect(Collectors.toMap(Qualification::getCode, vo -> vo, (a, b) -> b));
-
         //人员列表
         List<UserInfo> empList = userInfoRepository.list();
         Map<Long,UserInfo> empMap = empList.stream().collect(Collectors.toMap(UserInfo::getId, vo -> vo, (a, b) -> b));
 
-        //遍历每个医生
-        empMap.forEach((empId,emp) -> {
+        //过滤的科室代码和其下级代码组成的列表
+        List<String> listDept = getDepartmentCodeRecursion(departmentRepository.list(),deptCode);
+
+        //遍历 empList
+        for(UserInfo emp : empList){
             //姓名过滤
             if(!StringUtils.isEmpty(userName) && !emp.getName().contains(userName)){
-                return;
+                continue;
             }
             //科室过滤
-            if(!StringUtils.isEmpty(deptCode) && !emp.getDeptCode().equals(deptCode)){
-                return;
+            if(!StringUtils.isEmpty(deptCode) && !listDept.contains(emp.getDeptCode())){
+                continue;
             }
             QualificationManageForDoctor qualificationManageForDoctor = new QualificationManageForDoctor();
             qualificationManageForDoctor.setUserInfo(emp);
             qualificationManageForDoctor.setQualificationList("-");
             listReturn.add(qualificationManageForDoctor);
-        });
+        }
 
         // 对listReturn进行分页处理
         int total = listReturn.size();
@@ -218,81 +164,6 @@ public class QualificationManageServiceImpl extends ServiceImpl<QualificationApp
         }
 
         return new PageUtils(pagedList, total, pageSize, current);
-
-        //有效的资质授权
-//        List<QualificationApply> list = qualificationApplyRepository.listByQualification();
-//
-//        //过滤的科室代码和其下级代码组成的列表
-//        List<String> listDept = getDepartmentCodeRecursion(departmentRepository.list(),deptCode);
-//
-//        for(QualificationApply qualificationApply : list){
-//
-//            //资质字典
-//            Qualification qualification = qualificationList.stream().filter(q -> q.getCode().equals(qualificationApply.getQualificationCode())).findFirst().get();
-//            //资质名称
-//            String qualificationName = qualification.getName();
-//
-//            //科室过滤
-//            if(!StringUtils.isEmpty(deptCode) && !listDept.contains(qualificationApply.getUserInfo().getDeptCode())){
-//                continue;
-//            }
-//            //姓名过滤
-//            if(!StringUtils.isEmpty(userName) && !qualificationApply.getUserInfo().getName().contains(userName)){
-//                continue;
-//            }
-//            if(!CollectionUtils.isEmpty(qualificationApply.getApplyAdjust())){
-//                //调整历史-调整人姓名
-//                for(QualificationApplyAdjust adjust : qualificationApply.getApplyAdjust()){
-//                    adjust.setAdjustUserName(empMap.get(adjust.getUserId()).getName());
-//                }
-//            }
-//
-//            Optional<QualificationManageForDoctor> returnItem = listReturn.stream().filter(q -> q.getUserInfo().getId().equals(qualificationApply.getUserId())).findFirst();
-//            //添加1项
-//            if(!returnItem.isPresent()) {
-//                QualificationManageForDoctor newItem = new QualificationManageForDoctor();
-//                //医生信息
-//                newItem.setUserInfo(userInfoRepository.getUserInfoById(qualificationApply.getUserId()));
-//                //资质名称列表
-//                if(qualificationApply.getCurrentStatus().equals("授权中")){
-//                    newItem.setQualificationList(qualificationName);
-//                }
-//                else{
-//                    newItem.setQualificationList(""); //新建时如果不是授权中状态,则给一个空字符串,避免出现null文本
-//                }
-//                //申请列表
-//                List<QualificationApply> applyList = new ArrayList<>();
-//                applyList.add(qualificationApply);
-//                newItem.setApplyList(applyList);
-//
-//                listReturn.add(newItem);
-//            }
-//            //更新项
-//            else{
-//                //资质名称列表
-//                if(qualificationApply.getCurrentStatus().equals("授权中")){
-//                    String newQualificationList = returnItem.get().getQualificationList() + "," + qualificationName;
-//                    newQualificationList = StringUtils.trimLeadingCharacter(newQualificationList,','); //去掉最左边的逗号
-//                    returnItem.get().setQualificationList(newQualificationList);
-//                }
-//                //申请列表
-//                returnItem.get().getApplyList().add(qualificationApply);
-//            }
-//        }
-//
-//        //设置「允许重新授权状态」,已过期的授权,如果没有对应的授权中的授权时,才可以重新授权
-//        for(QualificationManageForDoctor item : listReturn ){
-//            for(QualificationApply apply : item.getApplyList()){
-//                if(apply.getCurrentStatus().equals("已过期")) {
-//                    if(item.getApplyList().stream().filter(a -> a.getCurrentStatus().equals("授权中"))
-//                                                   .noneMatch(a -> a.getQualificationInfo().getCode().equals(apply.getQualificationInfo().getCode()))) {
-//                        apply.setAllowReAuthorize(NumberConstant.ONE);
-//                    }
-//                }
-//            }
-//        }
-//
-//        return new PageUtils(listReturn, Math.toIntExact(listReturn.size()),pageSize,current);
     }
 
     /**
@@ -490,6 +361,59 @@ public class QualificationManageServiceImpl extends ServiceImpl<QualificationApp
         return doctorAttachmentRepository.removeById(id);
     }
 
+    @Override
+    public Object listAllDoctorAttachments(String doctorName, String deptCode, String attachmentName , Date expireDate, Integer current, Integer pageSize){
+
+        List<DoctorAttachment> listReturn = new ArrayList<>();
+
+        //人员列表
+        List<UserInfo> empList = userInfoRepository.list();
+        Map<Long,UserInfo> empMap = empList.stream().collect(Collectors.toMap(UserInfo::getId, vo -> vo, (a, b) -> b));
+
+        //需要过滤科室
+        boolean needDeptFilter = !StringUtils.isEmpty(deptCode) && !deptCode.equals("0");
+
+        List<String> listDept = new ArrayList<>();
+        //过滤的科室代码和其下级代码组成的列表
+        if(needDeptFilter){
+            listDept = getDepartmentCodeRecursion(departmentRepository.list(),deptCode);
+        }
+
+        List<DoctorAttachment> list = doctorAttachmentRepository.list(attachmentName, expireDate);
+        for(DoctorAttachment doctorAttachment : list){
+            //姓名过滤
+            if(!StringUtils.isEmpty(doctorName)){
+                String empName = empMap.get(doctorAttachment.getUserId()).getName();
+                if(!empName.contains(doctorName)){
+                    continue;
+                }
+            }
+            //科室过滤
+            if(needDeptFilter){
+                String userDeptCode = empMap.get(doctorAttachment.getUserId()).getDeptCode();
+                if(!listDept.contains(userDeptCode)){
+                    continue;
+                }
+            }
+            UserInfo empInfo = empMap.get(doctorAttachment.getUserId());
+            doctorAttachment.setEmpNameAndCode(empInfo.getName() + "(" + empInfo.getAccount() + ")");
+            listReturn.add(doctorAttachment);
+        }
+
+        // 对listReturn进行分页处理
+        int total = listReturn.size();
+        int startIndex = (current - 1) * pageSize;
+        int endIndex = Math.min(startIndex + pageSize, total);
+
+        // 如果起始索引超出范围,则返回空列表
+        List<DoctorAttachment> pagedList = new ArrayList<>();
+        if (startIndex < total) {
+            pagedList = listReturn.subList(startIndex, endIndex);
+        }
+
+        return new PageUtils(pagedList, total, pageSize, current);
+    }
+
     private String getChildDepartmentFilter(String code,String name,List<Department> list) {
 
         val filter = new StringBuilder();