| | |
| | | } |
| | | |
| | | /** |
| | | * 科室编码去重,保持原顺序,避免 service_task.deptcode 超长和 service_taskdept 重复绑定 |
| | | */ |
| | | private String normalizeDeptCodes(String deptCodes) { |
| | | if (StringUtils.isEmpty(deptCodes)) { |
| | | return deptCodes; |
| | | } |
| | | return Arrays.stream(deptCodes.split(",")) |
| | | .map(String::trim) |
| | | .filter(code -> StringUtils.isNotEmpty(code)) |
| | | .distinct() |
| | | .collect(Collectors.joining(",")); |
| | | } |
| | | |
| | | /** |
| | | * 单一任务 |
| | | * |
| | | * @return 结果 |
| | |
| | | log.info("任务入参为空,请检查入参"); |
| | | throw new BaseException("任务入参为空,请检查入参"); |
| | | } |
| | | // 科室编码去重,避免 service_task.deptcode 超长及 service_taskdept 重复绑定 |
| | | serviceTaskVO.setDeptcode(normalizeDeptCodes(serviceTaskVO.getDeptcode())); |
| | | ServiceTask serviceTask = DtoConversionUtils.sourceToTarget(serviceTaskVO, ServiceTask.class); |
| | | if (CollectionUtils.isEmpty(serviceTaskVO.getPreachformList())) throw new BaseException("任务的发送方式为空"); |
| | | //将preachfromList放到serviceTask中的preachfrom中 |
| | |
| | | serviceSubtask.setInhospid(patTaskRelevance.getHospid()); |
| | | //新建完成就是待发送状态 |
| | | serviceSubtask.setSendstate(2L); |
| | | serviceSubtask.setDeptcode(StringUtils.isNotEmpty(patTaskRelevance.getDeptcode()) ? patTaskRelevance.getDeptcode() : serviceTaskVO.getDeptcode()); |
| | | String subtaskDeptCode = patTaskRelevance.getDeptcode(); |
| | | if (StringUtils.isEmpty(subtaskDeptCode) && StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) { |
| | | // service_subtask.deptcode 为单值字段,不能写入任务的多科室拼接串,取第一个科室兜底 |
| | | subtaskDeptCode = serviceTaskVO.getDeptcode().split(",")[0].trim(); |
| | | } |
| | | serviceSubtask.setDeptcode(subtaskDeptCode); |
| | | serviceSubtask.setDeptname(StringUtils.isNotEmpty(patTaskRelevance.getDeptName()) ? patTaskRelevance.getDeptName() : serviceTaskVO.getDeptname()); |
| | | serviceSubtask.setLeavehospitaldistrictcode(patTaskRelevance.getLeavehospitaldistrictcode()); |
| | | serviceSubtask.setLeavehospitaldistrictname(patTaskRelevance.getLeavehospitaldistrictname()); |
| | |
| | | if (StringUtils.isNotEmpty(serviceTaskVO.getAppltype())) { |
| | | if (serviceTaskVO.getAppltype().equals("1") || serviceTaskVO.getAppltype().equals("2")) { |
| | | if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) { |
| | | // 修改任务时先软删除旧的科室绑定,避免旧科室残留 |
| | | ServiceTaskdept oldDept = new ServiceTaskdept(); |
| | | oldDept.setTaskId(serviceTask.getTaskid()); |
| | | oldDept.setDeptType("1"); |
| | | serviceTaskdeptService.deleteServiceTaskdeptByTaskId(oldDept); |
| | | String[] deptcodes = serviceTaskVO.getDeptcode().split(","); |
| | | for (String deptCode : deptcodes) { |
| | | ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); |
| | |
| | | return resultMap; |
| | | } |
| | | |
| | | if (StringUtils.isEmpty(serviceSubtask.getPatidHis())) { |
| | | if (patArchive == null) { |
| | | resultMap.put("code", -1); |
| | | resultMap.put("message", "发送异常:" + "【公众号】未查询到患者档案信息,无法通过公众号发送"); |
| | | return resultMap; |
| | | } |
| | | |
| | | // his系统的患者id取自患者档案pat_archive.patid_his, |
| | | // service_subtask查询未关联该字段(serviceSubtask.getPatidHis()恒为空),不能用于校验 |
| | | if (StringUtils.isEmpty(patArchive.getPatidHis())) { |
| | | resultMap.put("code", -1); |
| | | resultMap.put("message", "发送异常:" + "【公众号】公众号发送失败,his系统的患者id为空"); |
| | | return resultMap; |