陈昶聿
9 天以前 f7307b96f58e4dda1e799d8302c84a4831e885d7
【景宁】任务组开发
已修改7个文件
167 ■■■■ 文件已修改
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceTaskSchedule.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceTaskdept.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceTaskdiag.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IPatMedInhospService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -562,20 +562,20 @@
        }
    }
//    /**
//     * 处理患者信息,进入子任务表
//     */
//    public void dealOutHospInfoByDimension() {
//        String config = configService.selectConfigByKey("visit.early.day");
//        if (port.equals("8095")) {
//            //出院表
//            iPatMedInhospService.dealOutHospInfoByDimension(config);
//            //门诊表(新华的暂时不做门诊随访)
    /**
     * 处理患者信息,进入子任务表(任务组)
     */
    public void dealOutHospInfoBySchedule() {
        String config = configService.selectConfigByKey("visit.early.day");
        if (port.equals("8095")) {
            //出院表
            iPatMedInhospService.dealOutHospInfoBySchedule(config);
            //门诊表(新华的暂时不做门诊随访)
//            if (!active.equals("xh")) {
//                //iPatMedOuthospService.dealOutpatientInfo();
//            }
//        }
//    }
        }
    }
    /**
smartor/src/main/java/com/smartor/domain/ServiceTaskSchedule.java
@@ -99,6 +99,31 @@
    private Date scheduleBenchmarkCustomTime;
    /**
     * 对应科室
     */
    @ApiModelProperty("对应科室")
    private String deptcodes;
    /**
     * 出院病区
     */
    @ApiModelProperty("出院病区")
    private String leavehospitaldistrictcode;
    /**
     * icd10编码
     */
    @ApiModelProperty("icd10编码")
    private String icdcodes;
    /**
     * 手术等级代码
     */
    @ApiModelProperty("手术等级代码")
    @Excel(name = "手术等级代码")
    private String oplevelcodes;
    /**
     * 删除标记(0存在 1删除)
     */
    @ApiModelProperty("删除标记(0存在 1删除)")
smartor/src/main/java/com/smartor/domain/ServiceTaskdept.java
@@ -84,17 +84,5 @@
    @ApiModelProperty("删除标志(0:未删除 1:已删除)")
    private String delFlag;
    /**
     * 查询用(非表字段):排除的 appltype。主扫描传 "5" 以排除任务组。
     */
    @ApiModelProperty("查询用:排除的appltype(如5,主扫描排除任务组)")
    private String excludeAppltype;
    /**
     * 查询用(非表字段):限定的 appltype。任务组扫描传 "5" 只查任务组。
     */
    @ApiModelProperty("查询用:限定的appltype(如5,只查任务组)")
    private String queryAppltype;
}
smartor/src/main/java/com/smartor/domain/ServiceTaskdiag.java
@@ -135,17 +135,5 @@
    @Excel(name = "父ID")
    private Long pid;
    /**
     * 查询用(非表字段):排除的 appltype。主扫描传 "5" 以排除任务组。
     */
    @ApiModelProperty("查询用:排除的appltype(如5,主扫描排除任务组)")
    private String excludeAppltype;
    /**
     * 查询用(非表字段):限定的 appltype。任务组扫描传 "5" 只查任务组。
     */
    @ApiModelProperty("查询用:限定的appltype(如5,只查任务组)")
    private String queryAppltype;
}
smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
@@ -93,12 +93,12 @@
    public int dealOutHospInfo(String config);
    /**
     * 处理从his取来的出院数据
     * 处理从his取来的出院数据 任务组生成
     *
     * @param
     * @return 结果
     */
    public int dealOutHospInfoByDimension(String config);
    public int dealOutHospInfoBySchedule(String config);
    /**
     * 获取出院,住院,门诊服务人次
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -329,12 +329,13 @@
    }
    /**
     * 多维度随访
     * 任务组随访
     *
     * @param config
     * @return
     */
    public int dealOutHospInfoByDimension(String config) {
    public int dealOutHospInfoBySchedule(String config) {
        // 一次性查出所有需要处理的出院患者(三个维度任意一个未完成)
        List<PatMedInhosp> patList = patMedInhospMapper.selectNeedProcessList();
        log.info("【统一扫描】待处理患者数:{}", patList.size());
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -747,10 +747,10 @@
                    scheduleVO.setOrgid(serviceTask.getOrgid());
                    scheduleVO.setCampusid(serviceTask.getCampusid());
                    scheduleVO.setCreateBy(serviceTask.getCreateBy());
                    scheduleVO.setDeptcodes(serviceTask.getDeptcode());
                    scheduleVO.setLeavehospitaldistrictcode(serviceTask.getLeavehospitaldistrictcode());
                    log.info("----serviceTaskSchedule的值为:{}", scheduleVO);
                    serviceTaskScheduleService.saveScheduleWithDetail(scheduleVO);
                    // 绑定维度写条件表(供 HIS 自动纳入匹配,longtask 恒=1)
                    bindDimensionCondition(serviceTask, serviceTaskVO);
                } else {
                    ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
                    serviceTaskdept.setTaskId(serviceTask.getTaskid());
@@ -1078,9 +1078,6 @@
                    scheduleVO.setCampusid(serviceTask.getCampusid());
                    scheduleVO.setCreateBy(serviceTask.getUpdateBy());
                    serviceTaskScheduleService.saveScheduleWithDetail(scheduleVO);
                    // 先清旧维度条件表,再按最新入参重写(防过期维度残留导致误纳入)
                    clearDimensionCondition(serviceTask.getTaskid());
                    bindDimensionCondition(serviceTask, serviceTaskVO);
                }
            }
            if (ObjectUtils.isNotEmpty(serviceTaskVO.getIvrTaskTemplateVO())) {
@@ -1199,86 +1196,6 @@
        Map<String, Integer> map = new HashMap<>();
        map.put("taskId", serviceTask.getTaskid().intValue());
        return map;
    }
    /**
     * 任务组(appltype=5)绑定维度写条件表,供 HIS 自动纳入匹配。
     * longtask 恒=1(否则独立扫描/主扫描按 longtask=1 查不到)。
     * 复用现有 service_taskdept(科室deptType=1/病区deptType=2)、service_taskdiag(疾病)。
     * 手术维度本期不写(暂不支持自动纳入)。
     */
    private void bindDimensionCondition(ServiceTask serviceTask, ServiceTaskVO vo) {
        // 科室
        if (StringUtils.isNotEmpty(vo.getDeptcode())) {
            for (String deptCode : vo.getDeptcode().split(",")) {
                if (StringUtils.isEmpty(deptCode)) continue;
                ServiceTaskdept d = new ServiceTaskdept();
                d.setTaskId(serviceTask.getTaskid());
                d.setTaskName(serviceTask.getTaskName());
                d.setOrgid(serviceTask.getOrgid());
                d.setLongtask(1L);
                d.setDeptCode(deptCode);
                d.setDeptType("1");
                d.setServiceType(vo.getServiceType());
                serviceTaskdeptService.insertServiceTaskdept(d);
            }
        }
        // 病区
        if (StringUtils.isNotEmpty(vo.getLeavehospitaldistrictcode())) {
            for (String wardCode : vo.getLeavehospitaldistrictcode().split(",")) {
                if (StringUtils.isEmpty(wardCode)) continue;
                ServiceTaskdept d = new ServiceTaskdept();
                d.setTaskId(serviceTask.getTaskid());
                d.setTaskName(serviceTask.getTaskName());
                d.setOrgid(serviceTask.getOrgid());
                d.setLongtask(1L);
                d.setDeptCode(wardCode);
                d.setDeptType("2");
                d.setServiceType(vo.getServiceType());
                serviceTaskdeptService.insertServiceTaskdept(d);
            }
        }
        // 疾病(用 split(","),勿照抄 appltype=3 现网的 split("$") bug)
        if (StringUtils.isNotEmpty(vo.getIcd10code())) {
            String[] codes = vo.getIcd10code().split(",");
            String[] names = StringUtils.isNotEmpty(vo.getIcd10name()) ? vo.getIcd10name().split(",") : new String[0];
            for (int i = 0; i < codes.length; i++) {
                if (StringUtils.isEmpty(codes[i])) continue;
                ServiceTaskdiag dg = new ServiceTaskdiag();
                dg.setTaskId(serviceTask.getTaskid());
                dg.setTaskName(serviceTask.getTaskName());
                dg.setOrgid(serviceTask.getOrgid());
                dg.setLongtask(1L);
                dg.setServiceType(vo.getServiceType());
                dg.setIcd10code(codes[i]);
                dg.setIcd10name(i < names.length ? names[i] : null);
                dg.setGuid(serviceTask.getGuid());
                dg.setCreateTime(new Date());
                serviceTaskdiagService.insertServiceTaskdiag(dg);
            }
        }
    }
    /**
     * 任务组修改时,先软删该 task 旧的维度条件表记录(防过期维度残留导致误纳入)。
     */
    private void clearDimensionCondition(Long taskId) {
        ServiceTaskdept dq = new ServiceTaskdept();
        dq.setTaskId(taskId);
        List<ServiceTaskdept> depts = serviceTaskdeptService.selectServiceTaskdeptList(dq);
        if (CollectionUtils.isNotEmpty(depts)) {
            for (ServiceTaskdept d : depts) {
                serviceTaskdeptService.deleteServiceTaskdeptById(d.getId());
            }
        }
        ServiceTaskdiag gq = new ServiceTaskdiag();
        gq.setTaskId(taskId);
        List<ServiceTaskdiag> diags = serviceTaskdiagService.selectServiceTaskdiagList(gq);
        if (CollectionUtils.isNotEmpty(diags)) {
            for (ServiceTaskdiag g : diags) {
                serviceTaskdiagService.deleteServiceTaskdiagById(g.getId());
            }
        }
    }
    @Override