smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -342,7 +342,8 @@
            }
        }
        //2.药品宣教
        //2.药品宣教(省立同德的需求,其它地方没提)
        if (active.equals("sltd")) {
        for (PatMedInhosp patMedInhosp : patMedInhosps) {
            String medicalCode = patMedInhosp.getMedicalCode();
            if (StringUtils.isNotEmpty(medicalCode)) {
@@ -359,7 +360,7 @@
                    serviceTaskmedical.setMedicalCode(split[i]);
                    // 防止下标越界:如果数组长度不一致,取最小长度
                    if (i < medicalCompanyArray.length) {
                        serviceTaskmedical.setMedicalName(medicalCompanyArray[i]);
                            serviceTaskmedical.setMedicalCompany(medicalCompanyArray[i]);
                    } else {
                        log.warn("【药品宣教】药品编码{}对应的公司信息下标越界,medicalCompany 数组长度={}, 当前索引={}", split[i], medicalCompanyArray.length, i);
                        serviceTaskmedical.setMedicalName(""); // 越界时设置为空
@@ -367,13 +368,14 @@
                    List<ServiceTaskmedical> serviceTaskmedicals = serviceTaskmedicalMapper.selectServiceTaskmedicalList(serviceTaskmedical);
                    if (CollectionUtils.isNotEmpty(serviceTaskmedicals)) {
                        PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp.getPatid());
                        writeInSubTask(serviceTaskmedicals.get(0).getTaskId(), false, patMedInhosp, patArchive, 0, config);
                            // check=true,让 writeInSubTask 内部做去重校验
                            writeInSubTask(serviceTaskmedicals.get(0).getTaskId(), true, patMedInhosp, patArchive, 0, config);
                    }
                    //查不到的药品就是不需要宣教的,就不管了
                }
            }
        }
        }
        //3.出院随访 - 基于规则的任务生成
        // 获取所有需要处理的出院患者(科室维度未处理)
@@ -619,6 +621,13 @@
        List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st);
        ServiceTask serviceTask = null;
        if (CollectionUtils.isEmpty(serviceTasks)) {
            if (type == 0) {
                log.info("该患者药品宣教长期任务不存在,任务ID为:{}", taskid);
                patMedInhosp1.setMedcheckFlag("2");
                patMedInhosp1.setLongTaskReason(longTaskReason + " & 该患者药品宣教长期任务不存在,任务ID为:" + taskid);
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                return;
            }
            if (type == 1) {
                log.info("该患者出院随访长期任务不存在,任务ID为:{}", taskid);
                patMedInhosp1.setDeptcheckFlag("2");
@@ -828,6 +837,7 @@
            if (type == 1) patMedInhosp2.setDeptcheckFlag("2");
            if (type == 2) patMedInhosp2.setWardcheckFlag("2");
            if (type == 3) patMedInhosp2.setDiagcheckFlag("2");
            if (type == 0) patMedInhosp2.setMedcheckFlag("2");
            patMedInhosp2.setRemark("生成子任务报错回滚 " + type);
            patMedInhospMapper.updatePatMedInhosp(patMedInhosp2);
            e.printStackTrace();