liusheng
2025-11-11 d14b89b7e05aaf1c375468dc8e579cf0836e37b2
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -1,11 +1,12 @@
package com.smartor.service.impl;
import com.alibaba.fastjson2.JSON;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.dx.MessageSend;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.*;
import com.smartor.common.FtpService;
@@ -24,13 +25,9 @@
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.TimeUnit;
@@ -174,7 +171,19 @@
        ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
        if (CollectionUtils.isEmpty(list) || list.size() == 0) {
            return DtoConversionUtils.sourceToTarget(serviceTask, ServiceTaskVO.class);
            ServiceTaskVO serviceTaskVO = DtoConversionUtils.sourceToTarget(serviceTask, ServiceTaskVO.class);
            ObjectMapper objectMapper = new ObjectMapper();
            try {
                List<Map<String, Object>> mapList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class);
                serviceTaskVO.setPreachformList(mapList);
//
//                String result = mapList.stream().map(mapList1 -> mapList1.get("preachform")).map(String::valueOf).collect(Collectors.joining(","));
//                serviceTaskVO.setPreachform(result);
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
            return serviceTaskVO;
        }
        //将查出来的数据倒入ServiceSubtaskVO中
@@ -262,8 +271,17 @@
            serviceSubtaskPreachform.setTaskid(serviceTask.getTaskid());
            serviceSubtaskPreachform.setSubid(serviceSubtask1.getId());
            List<ServiceSubtaskPreachform> serviceSubtaskPreachformList = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
            serviceTaskVO.setPreachformList(serviceSubtaskPreachformList);
            List<Map<String, Object>> resultList = serviceSubtaskPreachformList.stream().map(item -> {
                Map<String, Object> map = new HashMap<>();
                map.put("sort", item.getSort());
                map.put("preachform", item.getPreachform());
                map.put("compensateTime", item.getCompensateTime());
                return map;
            }).collect(Collectors.toList());
            serviceTaskVO.setPreachformList(resultList);
//            String result = resultList.stream().map(mapList1 -> mapList1.get("preachform")).map(String::valueOf).collect(Collectors.joining(","));
//            serviceTaskVO.setPreachform(result);
        }
        serviceTaskVO.setPatTaskRelevances(patTaskRelevances);
@@ -431,7 +449,7 @@
        ObjectMapper mapper = new ObjectMapper();
        try {
            String preachformList = mapper.writeValueAsString(serviceTaskVO.getPreachformList());
            serviceTask.setPreachform(preachformList);
            serviceTask.setPreachformDesc(preachformList);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
@@ -554,6 +572,8 @@
            serviceSubtask.setTaskid(serviceTask.getTaskid().longValue());
            serviceSubtask.setTemplatename(tempName);
            serviceSubtask.setTemplateid(tempid);
            serviceSubtask.setLibtemplateid(ObjectUtils.isEmpty(serviceTaskVO.getLibtemplateid()) ? null : Long.valueOf(serviceTaskVO.getLibtemplateid()));
            serviceSubtask.setLibtemplatename(serviceTaskVO.getLibtemplatename());
            //新增
            if (CollectionUtils.isNotEmpty(serviceTaskVO.getPatTaskRelevances())) {
                for (PatTaskRelevance patTaskRelevance : serviceTaskVO.getPatTaskRelevances()) {
@@ -594,8 +614,12 @@
                    //需要按service_task里的preachform的顺序将发送方式保存到service_subtask_preachform表中
                    if (StringUtils.isNotEmpty(serviceTaskVO.getPreachformList())) {
                        List<ServiceSubtaskPreachform> pfList = serviceTaskVO.getPreachformList();
                        for (ServiceSubtaskPreachform serviceSubtaskPreachform : pfList) {
                        List<Map<String, Object>> pfList = serviceTaskVO.getPreachformList();
                        for (Map<String, Object> map : pfList) {
                            ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
                            serviceSubtaskPreachform.setSort(ObjectUtils.isEmpty(map.get("sort")) ? 0 : Long.valueOf(map.get("sort").toString()));
                            serviceSubtaskPreachform.setPreachform(ObjectUtils.isEmpty(map.get("preachform")) ? "" : map.get("preachform").toString());
                            serviceSubtaskPreachform.setCompensateTime(ObjectUtils.isEmpty(map.get("compensateTime")) ? "" : map.get("compensateTime").toString());
                            serviceSubtaskPreachform.setTaskid(serviceTask.getTaskid());
                            serviceSubtaskPreachform.setSubid(serviceSubtask.getId());
                            //这个sendstate需要在数据库设置一个默认值为“1”
@@ -626,6 +650,18 @@
            } else {
                if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1;
            }
            if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
                for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
                    log.error("sfSend需要移除的subId为:{}", serviceSubtask.getId().toString());
                    serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId());
                    redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString());
                    redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString());
                    redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString());
                    redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString());
                    redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString());
                    redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString());
                }
            }
            if (serviceTaskVO.getLibtemplateid() != null)
                serviceTask.setLibtemplateid(serviceTaskVO.getLibtemplateid().toString());
@@ -633,112 +669,114 @@
            serviceTask.setLongTask(serviceTaskVO.getLongTask());
            serviceTask.setUpdateTime(new Date());
            serviceTaskService.updateServiceTask(serviceTask);
            if (serviceTaskVO.getAppltype().equals("1") || serviceTaskVO.getAppltype().equals("2")) {
                if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) {
                    String[] deptcodes = serviceTaskVO.getDeptcode().split(",");
                    for (String deptCode : deptcodes) {
                        ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
                        serviceTaskdept.setTaskId(serviceTask.getTaskid());
                        serviceTaskdept.setTaskName(serviceTask.getTaskName());
                        serviceTaskdept.setLongtask(Long.valueOf(serviceTask.getLongTask()));
                        serviceTaskdept.setOrgid(serviceTaskVO.getOrgid());
                        serviceTaskdept.setDeptCode(deptCode);
                        serviceTaskdept.setDeptType("1");
                        serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
                        ServiceTaskdept st = new ServiceTaskdept();
                        st.setDeptCode(deptCode);
                        st.setTaskId(serviceTask.getTaskid());
                        List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(st);
                        if (CollectionUtils.isEmpty(serviceTaskdepts)) {
                            serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
                        } else {
                            serviceTaskdeptService.updateServiceTaskdept(serviceTaskdept);
            if (StringUtils.isNotEmpty(serviceTaskVO.getAppltype())) {
                if (serviceTaskVO.getAppltype().equals("1") || serviceTaskVO.getAppltype().equals("2")) {
                    if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) {
                        String[] deptcodes = serviceTaskVO.getDeptcode().split(",");
                        for (String deptCode : deptcodes) {
                            ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
                            serviceTaskdept.setTaskId(serviceTask.getTaskid());
                            serviceTaskdept.setTaskName(serviceTask.getTaskName());
                            serviceTaskdept.setLongtask(Long.valueOf(serviceTask.getLongTask()));
                            serviceTaskdept.setOrgid(serviceTaskVO.getOrgid());
                            serviceTaskdept.setDeptCode(deptCode);
                            serviceTaskdept.setDeptType("1");
                            serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
                            ServiceTaskdept st = new ServiceTaskdept();
                            st.setDeptCode(deptCode);
                            st.setTaskId(serviceTask.getTaskid());
                            List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(st);
                            if (CollectionUtils.isEmpty(serviceTaskdepts)) {
                                serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
                            } else {
                                serviceTaskdeptService.updateServiceTaskdept(serviceTaskdept);
                            }
                        }
                    }
                }
                if (StringUtils.isNotEmpty(serviceTaskVO.getLeavehospitaldistrictcode())) {
                    String[] leavehospitaldistrictcodes = serviceTaskVO.getLeavehospitaldistrictcode().split(",");
                    for (String districtcode : leavehospitaldistrictcodes) {
                        ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
                        serviceTaskdept.setTaskId(serviceTask.getTaskid());
                        serviceTaskdept.setTaskName(serviceTask.getTaskName());
                        serviceTaskdept.setLongtask(Long.valueOf(serviceTask.getLongTask()));
                        serviceTaskdept.setOrgid(serviceTaskVO.getOrgid());
                        serviceTaskdept.setDeptCode(districtcode);
                        serviceTaskdept.setDeptType("2");
                        serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
                        //先通过任务ID、部门code,判断ServiceTaskdept是否存在,不存在则新增,存在则修改
                        ServiceTaskdept st = new ServiceTaskdept();
                        st.setDeptCode(districtcode);
                        st.setTaskId(serviceTask.getTaskid());
                        List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(st);
                        if (CollectionUtils.isEmpty(serviceTaskdepts)) {
                            serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
                        } else {
                            serviceTaskdeptService.updateServiceTaskdept(serviceTaskdept);
                    if (StringUtils.isNotEmpty(serviceTaskVO.getLeavehospitaldistrictcode())) {
                        String[] leavehospitaldistrictcodes = serviceTaskVO.getLeavehospitaldistrictcode().split(",");
                        for (String districtcode : leavehospitaldistrictcodes) {
                            ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
                            serviceTaskdept.setTaskId(serviceTask.getTaskid());
                            serviceTaskdept.setTaskName(serviceTask.getTaskName());
                            serviceTaskdept.setLongtask(Long.valueOf(serviceTask.getLongTask()));
                            serviceTaskdept.setOrgid(serviceTaskVO.getOrgid());
                            serviceTaskdept.setDeptCode(districtcode);
                            serviceTaskdept.setDeptType("2");
                            serviceTaskdept.setServiceType(serviceTaskVO.getServiceType());
                            //先通过任务ID、部门code,判断ServiceTaskdept是否存在,不存在则新增,存在则修改
                            ServiceTaskdept st = new ServiceTaskdept();
                            st.setDeptCode(districtcode);
                            st.setTaskId(serviceTask.getTaskid());
                            List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(st);
                            if (CollectionUtils.isEmpty(serviceTaskdepts)) {
                                serviceTaskdeptService.insertServiceTaskdept(serviceTaskdept);
                            } else {
                                serviceTaskdeptService.updateServiceTaskdept(serviceTaskdept);
                            }
                        }
                    }
                }
            } else if (serviceTaskVO.getAppltype().equals("3")) {
                ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag();
                serviceTaskdiag.setTaskId(serviceTask.getTaskid());
                serviceTaskdiag.setTaskName(serviceTask.getTaskName());
                if (StringUtils.isEmpty(serviceTaskVO.getIcd10code())) {
                    throw new BaseException("疾病编码为空");
                }
                serviceTaskdiag.setLongtask(Long.valueOf(serviceTask.getLongTask()));
                serviceTaskdiag.setIcd10name(serviceTaskVO.getIcd10name());
                serviceTaskdiag.setGuid(serviceTask.getGuid());
                serviceTaskdiag.setOrgid(serviceTask.getOrgid());
                serviceTaskdiag.setUpdateTime(new Date());
                if (StringUtils.isNotEmpty(serviceTaskVO.getIcd10code())) {
                    String[] icd10codes = serviceTaskVO.getIcd10code().split(",");
                    for (String icdcode : icd10codes) {
                        //先查询一下是否存在
                        ServiceTaskdiag serviceTaskdiag2 = new ServiceTaskdiag();
                        serviceTaskdiag2.setTaskId(serviceTaskVO.getTaskid());
                        serviceTaskdiag2.setIcd10code(icdcode);
                        List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagService.selectServiceTaskdiagList(serviceTaskdiag2);
                        serviceTaskdiag.setIcd10code(icdcode);
                        log.info("----serviceTaskdiag更新的值为:{}", serviceTaskdiag);
                        if (CollectionUtils.isNotEmpty(serviceTaskdiags)) {
                            serviceTaskdiag.setId(serviceTaskdiags.get(0).getId());
                            serviceTaskdiagService.updateServiceTaskdiag(serviceTaskdiag);
                        } else {
                            serviceTaskdiagService.insertServiceTaskdiag(serviceTaskdiag);
                } else if (serviceTaskVO.getAppltype().equals("3")) {
                    ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag();
                    serviceTaskdiag.setTaskId(serviceTask.getTaskid());
                    serviceTaskdiag.setTaskName(serviceTask.getTaskName());
                    if (StringUtils.isEmpty(serviceTaskVO.getIcd10code())) {
                        throw new BaseException("疾病编码为空");
                    }
                    serviceTaskdiag.setLongtask(Long.valueOf(serviceTask.getLongTask()));
                    serviceTaskdiag.setIcd10name(serviceTaskVO.getIcd10name());
                    serviceTaskdiag.setGuid(serviceTask.getGuid());
                    serviceTaskdiag.setOrgid(serviceTask.getOrgid());
                    serviceTaskdiag.setUpdateTime(new Date());
                    if (StringUtils.isNotEmpty(serviceTaskVO.getIcd10code())) {
                        String[] icd10codes = serviceTaskVO.getIcd10code().split(",");
                        for (String icdcode : icd10codes) {
                            //先查询一下是否存在
                            ServiceTaskdiag serviceTaskdiag2 = new ServiceTaskdiag();
                            serviceTaskdiag2.setTaskId(serviceTaskVO.getTaskid());
                            serviceTaskdiag2.setIcd10code(icdcode);
                            List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagService.selectServiceTaskdiagList(serviceTaskdiag2);
                            serviceTaskdiag.setIcd10code(icdcode);
                            log.info("----serviceTaskdiag更新的值为:{}", serviceTaskdiag);
                            if (CollectionUtils.isNotEmpty(serviceTaskdiags)) {
                                serviceTaskdiag.setId(serviceTaskdiags.get(0).getId());
                                serviceTaskdiagService.updateServiceTaskdiag(serviceTaskdiag);
                            } else {
                                serviceTaskdiagService.insertServiceTaskdiag(serviceTaskdiag);
                            }
                        }
                    }
                }
            } else if (serviceTaskVO.getAppltype().equals("4")) {
                ServiceTaskoper serviceTaskoper = new ServiceTaskoper();
                if (StringUtils.isEmpty(serviceTaskVO.getOpcode())) {
                    throw new BaseException("手术编码为空");
                }
                } else if (serviceTaskVO.getAppltype().equals("4")) {
                    ServiceTaskoper serviceTaskoper = new ServiceTaskoper();
                    if (StringUtils.isEmpty(serviceTaskVO.getOpcode())) {
                        throw new BaseException("手术编码为空");
                    }
//                serviceTaskoper.setOpcode(serviceTaskVO.getOpcode());
                serviceTaskoper.setOpdesc(serviceTaskVO.getOpdesc());
                serviceTaskoper.setTaskId(serviceTask.getTaskid());
                serviceTaskoper.setTaskName(serviceTask.getTaskName());
                serviceTaskoper.setLongtask(Long.valueOf(serviceTask.getLongTask()));
                serviceTaskoper.setGuid(serviceTask.getGuid());
                serviceTaskoper.setOrgid(serviceTask.getOrgid());
                serviceTaskoper.setCreateTime(new Date());
                if (StringUtils.isNotEmpty(serviceTaskVO.getOpcode())) {
                    String[] opcodes = serviceTaskVO.getOpcode().split(",");
                    for (String opcode : opcodes) {
                        //先查询一下是否存在
                        ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper();
                        serviceTaskoper2.setTaskId(serviceTaskVO.getTaskid());
                        serviceTaskoper2.setOpcode(serviceTaskVO.getOpcode());
                        List<ServiceTaskoper> serviceTaskopers = serviceTaskoperService.selectServiceTaskoperList(serviceTaskoper2);
                    serviceTaskoper.setOpdesc(serviceTaskVO.getOpdesc());
                    serviceTaskoper.setTaskId(serviceTask.getTaskid());
                    serviceTaskoper.setTaskName(serviceTask.getTaskName());
                    serviceTaskoper.setLongtask(Long.valueOf(serviceTask.getLongTask()));
                    serviceTaskoper.setGuid(serviceTask.getGuid());
                    serviceTaskoper.setOrgid(serviceTask.getOrgid());
                    serviceTaskoper.setCreateTime(new Date());
                    if (StringUtils.isNotEmpty(serviceTaskVO.getOpcode())) {
                        String[] opcodes = serviceTaskVO.getOpcode().split(",");
                        for (String opcode : opcodes) {
                            //先查询一下是否存在
                            ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper();
                            serviceTaskoper2.setTaskId(serviceTaskVO.getTaskid());
                            serviceTaskoper2.setOpcode(serviceTaskVO.getOpcode());
                            List<ServiceTaskoper> serviceTaskopers = serviceTaskoperService.selectServiceTaskoperList(serviceTaskoper2);
                        serviceTaskoper.setOpcode(opcode);
                        log.info("----serviceTaskoper的值为:{}", serviceTaskoper);
                        if (CollectionUtils.isNotEmpty(serviceTaskopers)) {
                            serviceTaskoper.setId(serviceTaskopers.get(0).getId());
                            serviceTaskoperService.updateServiceTaskoper(serviceTaskoper);
                        } else {
                            serviceTaskoperService.insertServiceTaskoper(serviceTaskoper);
                            serviceTaskoper.setOpcode(opcode);
                            log.info("----serviceTaskoper的值为:{}", serviceTaskoper);
                            if (CollectionUtils.isNotEmpty(serviceTaskopers)) {
                                serviceTaskoper.setId(serviceTaskopers.get(0).getId());
                                serviceTaskoperService.updateServiceTaskoper(serviceTaskoper);
                            } else {
                                serviceTaskoperService.insertServiceTaskoper(serviceTaskoper);
                            }
                        }
                    }
                }
@@ -764,6 +802,8 @@
            if (CollectionUtils.isNotEmpty(serviceTaskVO.getPatTaskRelevances())) {
                for (PatTaskRelevance patTaskRelevance : serviceTaskVO.getPatTaskRelevances()) {
                    ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTaskVO, ServiceSubtask.class);
                    serviceSubtask.setLibtemplateid(ObjectUtils.isEmpty(serviceTaskVO.getLibtemplateid()) ? null : Long.valueOf(serviceTaskVO.getLibtemplateid()));
                    serviceSubtask.setLibtemplatename(serviceTaskVO.getLibtemplatename());
                    serviceSubtask.setSendname(patTaskRelevance.getName());
                    serviceSubtask.setAge(patTaskRelevance.getAge());
                    serviceSubtask.setSfzh(patTaskRelevance.getSfzh());
@@ -818,8 +858,12 @@
                ServiceSubtask serviceSubtask = ssTaskList.get(i);
                serviceSubtaskPreachformMapper.deleteServiceSubtaskPreachformBySubid(serviceSubtask.getId());
                if (StringUtils.isNotEmpty(serviceTaskVO.getPreachformList())) {
                    List<ServiceSubtaskPreachform> pfList = serviceTaskVO.getPreachformList();
                    for (ServiceSubtaskPreachform serviceSubtaskPreachform : pfList) {
                    List<Map<String, Object>> pfList = serviceTaskVO.getPreachformList();
                    for (Map<String, Object> map : pfList) {
                        ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
                        serviceSubtaskPreachform.setSort(ObjectUtils.isEmpty(map.get("sort")) ? 0 : Long.valueOf(map.get("sort").toString()));
                        serviceSubtaskPreachform.setPreachform(ObjectUtils.isEmpty(map.get("preachform")) ? "" : map.get("preachform").toString());
                        serviceSubtaskPreachform.setCompensateTime(ObjectUtils.isEmpty(map.get("compensateTime")) ? "" : map.get("compensateTime").toString());
                        serviceSubtaskPreachform.setTaskid(serviceTask.getTaskid());
                        serviceSubtaskPreachform.setSubid(serviceSubtask.getId());
                        //这个sendstate需要在数据库设置一个默认值为“1”
@@ -2053,6 +2097,36 @@
        return result;
    }
    @Override
    public List<PatArchiveSrmVO> sendMsgTemplate(List<PatArchiveSrmVO> patArchiveSrmVOS) {
        //用来记录发送失败的
        List<PatArchiveSrmVO> sendError = new ArrayList<>();
        for (PatArchiveSrmVO patArchiveSrmVO : patArchiveSrmVOS) {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY年MM月dd日HH:mm");
            String timestamp = simpleDateFormat.format(patArchiveSrmVO.getVisitTime());
            StringBuilder stringBuilder = new StringBuilder();
            if (patArchiveSrmVO.getSrmTemplate().equals("入院准备中心-无检查")) {
                stringBuilder.append(patArchiveSrmVO.getName() + ",您好!主管医生已为您安排住院,请于当天");
            } else if (patArchiveSrmVO.getSrmTemplate().equals("入院准备中心-空腹检查")) {
                stringBuilder.append(patArchiveSrmVO.getName() + ",您好!主管医生已为您安排住院,请当天空腹并于");
            } else if (patArchiveSrmVO.getSrmTemplate().equals("日间病房—择期病人检查")) {
                stringBuilder.append(patArchiveSrmVO.getName() + ",您好!主管医生已为您安排住院前检查,请当天空腹并于");
            }
            stringBuilder.append(timestamp + "之前携带医保卡或电子医保卡身份证凭此条短信到1号楼3楼南入院准备中心入院登记窗口,办理正式住院手续,完成各项检查后再到相应病区护士站报到。");
            stringBuilder.append("入院准备中心电话:89975977。入院办理须知:https://mp.weixin.qq.com/s/OCkotuRyQ8Ld2owFF0YErw");
            String data = MessageSend.sendMsg(stringBuilder.toString(), "2", patArchiveSrmVO.getPhone(), LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
            if (StringUtils.isNotEmpty(data) && data.contains("result=0")) {
                sendError.add(patArchiveSrmVO);
            }
        }
        return sendError;
    }
    /**
     * 获取随访统计比例
     *
@@ -2273,8 +2347,25 @@
                    serviceSubtaskStatistic.setAbnormalAgain(serviceSubtaskStatistic.getAbnormalAgain() + 1L);
                }
            }
            //随访情况
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 1) {
                serviceSubtaskStatistic.setTaskSituation1(serviceSubtaskStatistic.getTaskSituation1() + 1);
            }
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 2) {
                serviceSubtaskStatistic.setTaskSituation2(serviceSubtaskStatistic.getTaskSituation2() + 1);
            }
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 3) {
                serviceSubtaskStatistic.setTaskSituation3(serviceSubtaskStatistic.getTaskSituation3() + 1);
            }
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 4) {
                serviceSubtaskStatistic.setTaskSituation4(serviceSubtaskStatistic.getTaskSituation4() + 1);
            }
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 5) {
                serviceSubtaskStatistic.setTaskSituation5(serviceSubtaskStatistic.getTaskSituation5() + 1);
            }
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 6) {
                serviceSubtaskStatistic.setTaskSituation6(serviceSubtaskStatistic.getTaskSituation6() + 1);
            }
        }