smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -249,6 +249,7 @@
                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                } else {
                    for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) {
                        //todo 1
                        writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 1, config);
                    }
                    patMedInhosp1.setDeptcheckFlag("1");
@@ -300,6 +301,7 @@
                        patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
                    } else {
                        for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) {
                            //todo 2
                            writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiBQ1, patArchive, 2, config);
                        }
                        pmiBQ1.setWardcheckFlag("1");
@@ -353,6 +355,7 @@
                        patMedInhospMapper.updatePatMedInhosp(pmiJB);
                    } else {
                        for (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) {
                            //todo 3
                            writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiJB, patArchive, 3, config);
                        }
                        pmiJB.setDiagcheckFlag("1");
@@ -536,6 +539,7 @@
        return calendar.getTime();
    }
    //todo
    //将患者放到subtask中
    private void writeInSubTask(Long taskid, Boolean check, PatMedInhosp patMedInhosp1, PatArchive patArchive, Integer type, String config) {
        String longTaskReason = patMedInhosp1.getLongTaskReason();
@@ -544,24 +548,27 @@
        st.setTaskid(taskid);
        st.setSendState(2L);
        List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st);
        if (CollectionUtils.isEmpty(serviceTasks) && type == 1) {
            log.info("该患者出院随访长期任务不存在,任务ID为:{}", taskid);
            patMedInhosp1.setDeptcheckFlag("2");
            patMedInhosp1.setLongTaskReason(longTaskReason + " & 该患者离院科室长期任务不存在,任务ID为:" + taskid);
            patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
            return;
        } else if (CollectionUtils.isEmpty(serviceTasks) && type == 2) {
            patMedInhosp1.setWardcheckFlag("2");
            patMedInhosp1.setLongTaskReason(longTaskReason + " & 该患者离院病区长期任务不存在,任务ID为:" + taskid);
            patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
            return;
        } else if (CollectionUtils.isEmpty(serviceTasks) && type == 3) {
            patMedInhosp1.setDiagcheckFlag("2");
            patMedInhosp1.setLongTaskReason(longTaskReason + " & 该患者疾病长期任务不存在,任务ID为:" + taskid);
            patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
            return;
        ServiceTask serviceTask = null;
        if(CollectionUtils.isEmpty(serviceTasks)){
            if (type == 1) {
                log.info("该患者出院随访长期任务不存在,任务ID为:{}", taskid);
                patMedInhosp1.setDeptcheckFlag("2");
                patMedInhosp1.setLongTaskReason(longTaskReason + " & 该患者离院科室长期任务不存在,任务ID为:" + taskid);
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                return;
            } else if (type == 2) {
                patMedInhosp1.setWardcheckFlag("2");
                patMedInhosp1.setLongTaskReason(longTaskReason + " & 该患者离院病区长期任务不存在,任务ID为:" + taskid);
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                return;
            } else if (type == 3) {
                patMedInhosp1.setDiagcheckFlag("2");
                patMedInhosp1.setLongTaskReason(longTaskReason + " & 该患者疾病长期任务不存在,任务ID为:" + taskid);
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                return;
            }
            serviceTask = serviceTasks.get(0);
        }
        ServiceTask serviceTask = serviceTasks.get(0);
        if (Objects.isNull(patMedInhosp1.getEndtime())) {
            return;
@@ -596,7 +603,10 @@
                    }
                    //type = 1或2 表示 ”科室、病区“
                    if (type == 1 || type == 2) {
                        if (serviceSubtask1.getEndtime().before(serviceSubtask.getEndtime()) && serviceSubtask1.getServiceType().equals("2")) {
                        Date endTime = serviceSubtask.getEndtime();
                        Date endTime1 = serviceSubtask1.getEndtime();
                        String serviceType1 = serviceSubtask1.getServiceType();
                        if (endTime1.before(endTime) && "2".equals(serviceType1)) {
                            //如果当前循环的子任务的出院时间在“准备新增的子任务”的出院时间之前,则将循环的子任务停掉
                            serviceSubtask1.setSendstate(4L);
                            if (StringUtils.isNotEmpty(serviceSubtask.getRemark()))