陈昶聿
5 天以前 74df9e81909e157ee184f5c1fe9799441c907492
【丽水】丽水中微信发送调整
已修改4个文件
54 ■■■■■ 文件已修改
smartor/src/main/java/com/smartor/service/IServiceTaskdeptService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceTaskdeptServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceTaskdeptMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IServiceTaskdeptService.java
@@ -67,4 +67,12 @@
     * @return 结果
     */
    public int deleteServiceTaskdeptById(Long id);
    /**
     * 按任务ID删除科室关联,可指定科室类型
     *
     * @param serviceTaskdept 模板科室关联
     * @return 结果
     */
    public int deleteServiceTaskdeptByTaskId(ServiceTaskdept serviceTaskdept);
}
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -1312,6 +1312,20 @@
    }
    /**
     * 科室编码去重,保持原顺序,避免 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 结果
@@ -1323,6 +1337,8 @@
            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中
@@ -1557,7 +1573,12 @@
                    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());
@@ -1697,6 +1718,11 @@
            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();
@@ -5762,7 +5788,15 @@
                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;
smartor/src/main/java/com/smartor/service/impl/ServiceTaskdeptServiceImpl.java
@@ -106,4 +106,9 @@
    public int deleteServiceTaskdeptById(Long id) {
        return serviceTaskdeptMapper.deleteServiceTaskdeptById(id);
    }
    @Override
    public int deleteServiceTaskdeptByTaskId(ServiceTaskdept serviceTaskdept) {
        return serviceTaskdeptMapper.deleteServiceTaskdeptByTaskId(serviceTaskdept);
    }
}
smartor/src/main/resources/mapper/smartor/ServiceTaskdeptMapper.xml
@@ -196,6 +196,9 @@
        where 1=1
            <if test="id != null">and id = #{id}</if>
            <if test="taskId != null">and task_id = #{taskId}</if>
            <if test="deptType != null and deptType != ''">
                AND dept_type = #{deptType}
            </if>
            <if test="orgid != null and orgid != ''">
                AND orgid = #{orgid}
            </if>