|
@@ -402,37 +402,99 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
|
|
|
checkUserVOS.setDeptStations(Lists.newArrayList("住院"));
|
|
|
checkUserVOS.setHospitalId(hospitalId);
|
|
|
List<CheckUserDTO> checkUserDTOS = baseMapper.getCheckUser(checkUserVOS);
|
|
|
- //2.1获取科室详情
|
|
|
- //2.1.1获取院区核查的人员id
|
|
|
- List<Long> userIds = sysUserRoleFacade.list(new QueryWrapper<SysUserRole>()
|
|
|
- .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
- .eq("role_id",CheckerRoleEnum.HOSP_GENERAL.getKey())).stream()
|
|
|
- .map(SysUserRole::getUserId).collect(Collectors.toList());
|
|
|
- List<String> deptIds = sysUserDeptFacade.list(new QueryWrapper<SysUserDept>()
|
|
|
- .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
- .eq("hospital_id",hospitalId)
|
|
|
- .in("user_id",userIds)).stream()
|
|
|
- .map(SysUserDept::getDeptId).collect(Collectors.toList());
|
|
|
- Map<String,String> deptMap = basDeptInfoFacade.list(new QueryWrapper<BasDeptInfo>()
|
|
|
- .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
- .eq("hospital_id",hospitalId)
|
|
|
- .eq("station","住院")
|
|
|
- .in("dept_id",deptIds)).stream()
|
|
|
- .collect(Collectors.toMap(BasDeptInfo::getDeptId,BasDeptInfo::getDeptName, (v1, v2) -> v2));
|
|
|
- if(deptMap!=null&&!deptMap.isEmpty())
|
|
|
- {
|
|
|
+ //2.用户科室整合
|
|
|
+ margeDept(checkRoleMap,checkUserDTOS,CheckerRoleEnum.HOSP_SUPERVISOR.getKey()+"");
|
|
|
+// //2.1获取科室详情
|
|
|
+// //2.1.1获取院区核查的人员id
|
|
|
+// List<Long> userIds = sysUserRoleFacade.list(new QueryWrapper<SysUserRole>()
|
|
|
+// .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+// .eq("role_id",CheckerRoleEnum.HOSP_GENERAL.getKey())).stream()
|
|
|
+// .map(SysUserRole::getUserId).collect(Collectors.toList());
|
|
|
+// List<String> deptIds = sysUserDeptFacade.list(new QueryWrapper<SysUserDept>()
|
|
|
+// .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+// .eq("hospital_id",hospitalId)
|
|
|
+// .in("user_id",userIds)).stream()
|
|
|
+// .map(SysUserDept::getDeptId).collect(Collectors.toList());
|
|
|
+// Map<String,String> deptMap = basDeptInfoFacade.list(new QueryWrapper<BasDeptInfo>()
|
|
|
+// .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+// .eq("hospital_id",hospitalId)
|
|
|
+// .eq("station","住院")
|
|
|
+// .in("dept_id",deptIds)).stream()
|
|
|
+// .collect(Collectors.toMap(BasDeptInfo::getDeptId,BasDeptInfo::getDeptName, (v1, v2) -> v2));
|
|
|
+ if(!ListUtil.isEmpty(checkRoleMap.get(CheckerRoleEnum.HOSP_SUPERVISOR.getKey()+""))){
|
|
|
//2.3获取所有医生信息的核查数
|
|
|
CheckUserVO checkUserVO = new CheckUserVO();
|
|
|
checkUserVO.setJobType(CheckJobTypeEnum.HOSP_SUPERVISOR.getKey());
|
|
|
//通过核查人员id获取核查人员的核查任务数
|
|
|
List<DeptCheckUserDTO> userJobs = baseMapper.getDeptJobNumByUserId(checkUserVO);
|
|
|
- addCheckInfoMaps(checkRoleMap,deptMap,userJobs,checkUserDTOS,CheckerRoleEnum.HOSP_SUPERVISOR.getKey(),CheckJobTypeEnum.HOSP_SUPERVISOR.getKey());
|
|
|
+ addCheckInfoMaps(checkRoleMap,null,userJobs,checkUserDTOS,CheckerRoleEnum.HOSP_SUPERVISOR.getKey(),CheckJobTypeEnum.HOSP_SUPERVISOR.getKey());
|
|
|
}
|
|
|
else {
|
|
|
checkRoleMap.put(CheckerRoleEnum.HOSP_SUPERVISOR.getKey()+"",new ArrayList<>());
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ /**
|
|
|
+ * @Author songxl
|
|
|
+ * @Description 院区人员用户科室合并
|
|
|
+ * @Date 2021/6/1
|
|
|
+ * @Param [checkRoleMap, checkUserDTOS, s]
|
|
|
+ * @Return void
|
|
|
+ * @MethodName margeDept
|
|
|
+ */
|
|
|
+ private void margeDept(Map<String, List<CheckDeptDTO>> checkRoleMap, List<CheckUserDTO> checkUserDTOS, String roleId) {
|
|
|
+ if(ListUtil.isEmpty(checkUserDTOS)){return;}
|
|
|
+ Set<String> userIds = checkUserDTOS.stream().map(CheckUserDTO::getDoctorId).collect(Collectors.toSet());
|
|
|
+ try {
|
|
|
+ List<CheckDeptDTO> tempDepts = new ArrayList<>();
|
|
|
+ userIds.stream().forEach(userId -> {
|
|
|
+ //获取该用户的科室拼接
|
|
|
+ StringBuilder deptIdBuilder = new StringBuilder();
|
|
|
+ StringBuilder deptNameBuilder = new StringBuilder();
|
|
|
+ StringBuilder userName = new StringBuilder();
|
|
|
+ checkUserDTOS.stream().forEach(checkUserDTO -> {
|
|
|
+ if(userId.equals(checkUserDTO.getDoctorId())){
|
|
|
+ deptIdBuilder.append(checkUserDTO.getDeptId()).append(",");
|
|
|
+ deptNameBuilder.append(checkUserDTO.getDeptName()).append(",");
|
|
|
+ if(userName.length()==0){userName.append(checkUserDTO.getDoctorName());}
|
|
|
+ }
|
|
|
+ });
|
|
|
+ String deptId = deptIdBuilder.substring(0,deptIdBuilder.length()-1);
|
|
|
+ String deptName = deptNameBuilder.substring(0,deptNameBuilder.length()-1);
|
|
|
+ DeptCheckUserDTO deptCheckUserDTO = new DeptCheckUserDTO();
|
|
|
+ deptCheckUserDTO.setDoctorId(userId);
|
|
|
+ deptCheckUserDTO.setDoctorName(userName.toString());
|
|
|
+ deptCheckUserDTO.setDeptId(deptId);
|
|
|
+ deptCheckUserDTO.setDeptName(deptName);
|
|
|
+ if(tempDepts.stream().map(CheckDeptDTO::getDeptId).collect(Collectors.toList())
|
|
|
+ .contains(deptId)){
|
|
|
+ tempDepts.stream().filter(checkDeptDTO -> checkDeptDTO.getDeptId().equals(deptId)).forEach(checkDeptDTO -> {
|
|
|
+ if(!ListUtil.isEmpty(checkDeptDTO.getDeptcheckUsers())){
|
|
|
+ checkDeptDTO.getDeptcheckUsers().add(deptCheckUserDTO);
|
|
|
+ }else {
|
|
|
+ List<DeptCheckUserDTO> deptcheckUsers = new ArrayList();
|
|
|
+ deptcheckUsers.add(deptCheckUserDTO);
|
|
|
+ checkDeptDTO.setDeptcheckUsers(deptcheckUsers);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ CheckDeptDTO checkDeptDTO = new CheckDeptDTO();
|
|
|
+ checkDeptDTO.setDeptId(deptId);
|
|
|
+ checkDeptDTO.setDeptName(deptName);
|
|
|
+ List<DeptCheckUserDTO> deptcheckUsers = new ArrayList();
|
|
|
+ deptcheckUsers.add(deptCheckUserDTO);
|
|
|
+ checkDeptDTO.setDeptcheckUsers(deptcheckUsers);
|
|
|
+ tempDepts.add(checkDeptDTO);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ checkRoleMap.put(roleId+"",tempDepts);
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @Author songxl
|
|
|
* @Description 质控科管理员获取管理的科室以及科室包涵质控人员
|
|
@@ -562,37 +624,36 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
|
|
|
*/
|
|
|
private void addCheckInfoMaps(Map<String, List<CheckDeptDTO>> checkRoleMap, Map<String, String> deptMap,
|
|
|
List<DeptCheckUserDTO> userJobs, List<CheckUserDTO> checkUserDTOS, int roleId,int jobType) {
|
|
|
- if(deptMap.isEmpty()||checkUserDTOS.isEmpty()){}
|
|
|
- checkRoleMap.put(roleId+"",new ArrayList<CheckDeptDTO>());
|
|
|
- //遍历科室
|
|
|
- for(String deptId:deptMap.keySet())
|
|
|
- {
|
|
|
- //科室对象
|
|
|
- CheckDeptDTO checkDeptDTO = new CheckDeptDTO();
|
|
|
- checkDeptDTO.setDeptId(deptId);
|
|
|
- checkDeptDTO.setDeptName(deptMap.get(deptId));
|
|
|
- checkDeptDTO.setDeptcheckUsers(new ArrayList<DeptCheckUserDTO>());
|
|
|
- //遍历医生
|
|
|
- for(CheckUserDTO checkUserDTO:checkUserDTOS)
|
|
|
+ //非院区任务
|
|
|
+ if(CheckJobTypeEnum.HOSP_SUPERVISOR.getKey()!=jobType){
|
|
|
+ if(deptMap.isEmpty()||checkUserDTOS.isEmpty()){return;}
|
|
|
+ checkRoleMap.put(roleId+"",new ArrayList<>());
|
|
|
+ //遍历科室
|
|
|
+ for(String deptId:deptMap.keySet())
|
|
|
{
|
|
|
- //同一科室
|
|
|
- if(checkDeptDTO.getDeptId().equals(checkUserDTO.getDeptId()))
|
|
|
+ //科室对象
|
|
|
+ CheckDeptDTO checkDeptDTO = new CheckDeptDTO();
|
|
|
+ checkDeptDTO.setDeptId(deptId);
|
|
|
+ checkDeptDTO.setDeptName(deptMap.get(deptId));
|
|
|
+ checkDeptDTO.setDeptcheckUsers(new ArrayList<DeptCheckUserDTO>());
|
|
|
+ //遍历医生
|
|
|
+ for(CheckUserDTO checkUserDTO:checkUserDTOS)
|
|
|
{
|
|
|
- DeptCheckUserDTO deptCheckUserDTO = new DeptCheckUserDTO();
|
|
|
- deptCheckUserDTO.setDeptId(checkUserDTO.getDeptId());
|
|
|
- deptCheckUserDTO.setDeptName(checkUserDTO.getDeptName());
|
|
|
- deptCheckUserDTO.setDoctorId(checkUserDTO.getDoctorId());
|
|
|
- deptCheckUserDTO.setDoctorName(checkUserDTO.getDoctorName());
|
|
|
- checkDeptDTO.getDeptcheckUsers().add(deptCheckUserDTO);
|
|
|
+ //同一科室
|
|
|
+ if(checkDeptDTO.getDeptId().equals(checkUserDTO.getDeptId()))
|
|
|
+ {
|
|
|
+ DeptCheckUserDTO deptCheckUserDTO = new DeptCheckUserDTO();
|
|
|
+ deptCheckUserDTO.setDeptId(checkUserDTO.getDeptId());
|
|
|
+ deptCheckUserDTO.setDeptName(checkUserDTO.getDeptName());
|
|
|
+ deptCheckUserDTO.setDoctorId(checkUserDTO.getDoctorId());
|
|
|
+ deptCheckUserDTO.setDoctorName(checkUserDTO.getDoctorName());
|
|
|
+ checkDeptDTO.getDeptcheckUsers().add(deptCheckUserDTO);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- for(DeptCheckUserDTO deptCheckUserDTO:checkDeptDTO.getDeptcheckUsers())
|
|
|
- {
|
|
|
- //遍历数量
|
|
|
- for(DeptCheckUserDTO jobNumDto:userJobs)
|
|
|
+ for(DeptCheckUserDTO deptCheckUserDTO:checkDeptDTO.getDeptcheckUsers())
|
|
|
{
|
|
|
- //非院区任务
|
|
|
- if(CheckJobTypeEnum.HOSP_SUPERVISOR.getKey()!=jobType)
|
|
|
+ //遍历数量
|
|
|
+ for(DeptCheckUserDTO jobNumDto:userJobs)
|
|
|
{
|
|
|
//这个科室有这个人
|
|
|
if(deptCheckUserDTO.getDeptId().equals(jobNumDto.getDeptId()))
|
|
@@ -610,29 +671,29 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
- //院区任务不是同一科室的人员数量增加
|
|
|
- else if(CheckJobTypeEnum.HOSP_SUPERVISOR.getKey()==jobType)
|
|
|
- {
|
|
|
- if(!deptCheckUserDTO.getDeptId().equals(jobNumDto.getDeptId()))
|
|
|
- {
|
|
|
- if(deptCheckUserDTO.getDoctorId().equals(jobNumDto.getDoctorId()))
|
|
|
- {
|
|
|
- if(jobNumDto.getStatus()==0){
|
|
|
- deptCheckUserDTO.setJobNum(deptCheckUserDTO.getJobNum()+jobNumDto.getJobNum());
|
|
|
+ }
|
|
|
+ checkRoleMap.get(roleId+"").add(checkDeptDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //院区任务不是同一科室的人员数量增加
|
|
|
+ else if(CheckJobTypeEnum.HOSP_SUPERVISOR.getKey()==jobType)
|
|
|
+ {
|
|
|
+ checkRoleMap.get(roleId+"").stream().forEach(checkDeptDTO -> {
|
|
|
+ if(!ListUtil.isEmpty(checkDeptDTO.getDeptcheckUsers())){
|
|
|
+ checkDeptDTO.getDeptcheckUsers().stream().forEach(deptCheckUser -> {
|
|
|
+ userJobs.stream().forEach(userJob -> {
|
|
|
+ if(deptCheckUser.getDoctorId().equals(userJob.getDoctorId())){
|
|
|
+ if(userJob.getStatus()==0){
|
|
|
+ deptCheckUser.setJobNum(deptCheckUser.getJobNum()+userJob.getJobNum());
|
|
|
}
|
|
|
- if(jobNumDto.getStatus()==1){
|
|
|
-
|
|
|
- deptCheckUserDTO.setCheckNum(deptCheckUserDTO.getCheckNum()+jobNumDto.getJobNum());
|
|
|
+ if(userJob.getStatus()==1){
|
|
|
+ deptCheckUser.setCheckNum(deptCheckUser.getCheckNum()+userJob.getJobNum());
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
+ });
|
|
|
+ });
|
|
|
}
|
|
|
- }
|
|
|
- checkRoleMap.get(roleId+"").add(checkDeptDTO);
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
|