陈昶聿
昨天 a2dd18982406d0b859ba8a6f3aa1696014faf966
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -249,7 +249,6 @@
                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                } else {
                    for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) {
                        //todo 1
                        writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 1, config);
                    }
                    patMedInhosp1.setDeptcheckFlag("1");
@@ -301,7 +300,6 @@
                        patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
                    } else {
                        for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) {
                            //todo 2
                            writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiBQ1, patArchive, 2, config);
                        }
                        pmiBQ1.setWardcheckFlag("1");
@@ -355,7 +353,6 @@
                        patMedInhospMapper.updatePatMedInhosp(pmiJB);
                    } else {
                        for (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) {
                            //todo 3
                            writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiJB, patArchive, 3, config);
                        }
                        pmiJB.setDiagcheckFlag("1");
@@ -539,7 +536,6 @@
        return calendar.getTime();
    }
    //todo
    //将患者放到subtask中
    private void writeInSubTask(Long taskid, Boolean check, PatMedInhosp patMedInhosp1, PatArchive patArchive, Integer type, String config) {
        String longTaskReason = patMedInhosp1.getLongTaskReason();
@@ -567,9 +563,9 @@
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                return;
            }
        }else {
            serviceTask = serviceTasks.get(0);
        }
        if (Objects.isNull(patMedInhosp1.getEndtime())) {
            return;
        }
@@ -587,7 +583,7 @@
        Integer i = 0;
        //先判断一下,是否需要校验
        if (check && serviceSubtask.getTaskSituation() != 6) {
        if (check && (Objects.isNull(serviceSubtask.getTaskSituation()) || serviceSubtask.getTaskSituation() != 6)) {
            //在新增之前,先通过患者ID,sendstate=2查询一下,在所有长期任务中,是不是还有该患者待执行的任务,有的话,比较之前的endtime是否小于当前的endtaime,如果之前的小于现在的,则直接将之前的停掉(原因再入院)
            ServiceSubtaskVO subtask = new ServiceSubtaskVO();
            subtask.setPatid(patArchive.getId());
@@ -605,8 +601,26 @@
                    if (type == 1 || type == 2) {
                        Date endTime = serviceSubtask.getEndtime();
                        Date endTime1 = serviceSubtask1.getEndtime();
                        String serviceType1 = serviceSubtask1.getServiceType();
                        if (endTime1.before(endTime) && "2".equals(serviceType1)) {
                        //出院时间判空,如果为空跳过
                        if(Objects.isNull(endTime)){
                            serviceSubtask.setResult("error");
                            serviceSubtask.setRemark("出院时间为空,serviceSubtask的Id为" + serviceSubtask.getId());
                            serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
                            serviceSubtask.setUpdateTime(new Date());
                            Boolean aBoolean = serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
                            if (aBoolean) i = 1;
                            continue;
                        }
                        if(Objects.isNull(endTime1)){
                            serviceSubtask1.setResult("error");
                            serviceSubtask1.setRemark("出院时间为空,serviceSubtask的Id为" + serviceSubtask1.getId());
                            serviceSubtask1.setUpdateBy(serviceTask.getUpdateBy());
                            serviceSubtask1.setUpdateTime(new Date());
                            Boolean aBoolean = serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
                            if (aBoolean) i = 1;
                            continue;
                        }
                        if (endTime1.before(endTime) && serviceSubtask1.getServiceType().equals("2")) {
                            //如果当前循环的子任务的出院时间在“准备新增的子任务”的出院时间之前,则将循环的子任务停掉
                            serviceSubtask1.setSendstate(4L);
                            if (StringUtils.isNotEmpty(serviceSubtask.getRemark()))