liusheng
3 天以前 c462811cd33e81a80bc089e3677975c069d9cda5
smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
@@ -10,6 +10,7 @@
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.ruoyi.common.utils.http.HttpUtils;
import com.smartor.domain.entity.ServiceSubtaskEntity;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import com.smartor.domain.*;
@@ -169,10 +170,10 @@
        serviceSubtask.setTaskid(taskid);
        //查询子任务
        ServiceSubtaskVO serviceSubtaskVO = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskVO.class);
        ServiceSubtaskEntity serviceSubtaskVO = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskEntity.class);
        List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
        for (ServiceSubtask ss : serviceSubtaskList) {
            log.error("sfSend需要移除的subId为:{}", ss.getId().toString());
            log.info("sfSend需要移除的subId为:{}", ss.getId().toString());
            redisCache.removeElementFromList("cache-exist", ss.getId().toString());
            redisCache.removeElementFromList("cache-0", ss.getId().toString());
            redisCache.removeElementFromList("cache-1", ss.getId().toString());
@@ -229,32 +230,32 @@
    }
    @Override
    public Map<String, Object> getScriptInfoByCondition(Long taskid, Long patid, Boolean isFinish, String patfrom) {
    public Map<String, Object> getScriptInfoByCondition(Long taskid, Long patid, Boolean isFinish, String patfrom, Long subId) {
        Map<String, Object> map = new HashMap<>();
        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        serviceSubtaskVO.setPatid(patid);
        serviceSubtaskVO.setTaskid(taskid);
        serviceSubtaskVO.setSendstate(3L);
        ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
        if (subId != null) {
            serviceSubtaskVO.setSubId(subId);
        } else {
            serviceSubtaskVO.setPatid(patid);
            serviceSubtaskVO.setTaskid(taskid);
            serviceSubtaskVO.setSendstate(3L);
        }
        List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
//        //查询患者是否重覆做题
//        if (CollectionUtils.isEmpty(selectServiceSubtaskList)) {
//            Long submit = selectServiceSubtaskList.get(0).getSubmit();
//            if (submit == 1L) {
//                map.put("submit", "1");
//                return map;
//            }
//        }
        //通过任务ID获取模板ID
        ServiceTask serviceTask = selectServiceTaskByTaskid(taskid);
        if (serviceTask == null) {
            throw new BaseException("任务不存在或已被删除,taskid: " + taskid);
        }
        List info = new ArrayList();
        if (serviceTask.getType().equals("1")) {
            //随访
            log.error("文本随访问题");
            log.info("文本随访问题");
            info = sfInfo(serviceTask, patid, patfrom);
        } else if (serviceTask.getType().equals("2")) {
            //问卷
            log.error("文本问卷问题");
            info = wjInfo(serviceTask, patid, isFinish, patfrom);
            log.info("文本问卷问题");
            info = wjInfo(serviceTask, patid, isFinish, patfrom, subId);
        } else {
            //宣教
            info = xjInfo(Long.valueOf(serviceTask.getLibtemplateid()), taskid, patid, isFinish);
@@ -300,6 +301,9 @@
    public Map<String, Object> getScriptByCondition(Long taskid, String zyserialnum, String mzserialnum, String tsserialnum) {
        //通过任务ID获取模板ID
        ServiceTask serviceTask = selectServiceTaskByTaskid(taskid);
        if (serviceTask == null) {
            throw new BaseException("任务不存在或已被删除,taskid: " + taskid);
        }
        //通过模板ID获取问题信息
        SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript();
        svyTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid()));
@@ -318,9 +322,9 @@
                patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhospList.get(0).getPatid());
            }
        } else if (StringUtils.isNotEmpty(mzserialnum)) {
            PatMedOuthosp patMedOuthosp = new PatMedOuthosp();
            PatMedOuthospQueryReq patMedOuthosp = new PatMedOuthospQueryReq();
            patMedOuthosp.setSerialnum(mzserialnum);
            List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.selectPatMedOuthospList(patMedOuthosp);
            List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.callSpQueryOuthosp(patMedOuthosp);
            if (CollectionUtils.isNotEmpty(patMedOuthosps)) {
                patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosps.get(0).getPatid());
            }
@@ -332,7 +336,7 @@
        }
        //判断一下今天是否已经做过题,做过就不让再做了
        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
        serviceSubtaskVO.setTaskid(taskid);
        serviceSubtaskVO.setPatid(patArchive.getId());
        serviceSubtaskVO.setVisitTime(new Date());
@@ -366,7 +370,7 @@
                    }
                }
                //替换患者个人信息数据
                log.error("问题id:{},   问题内容:{}", svyTaskTemplateScriptVO.getId(), svyTaskTemplateScriptVO.getScriptContent());
                log.info("问题id:{},   问题内容:{}", svyTaskTemplateScriptVO.getId(), svyTaskTemplateScriptVO.getScriptContent());
                if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) {
                    svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : ""));
                    svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : ""));
@@ -459,12 +463,16 @@
     * @param patid
     * @return
     */
    private List wjInfo(ServiceTask serviceTask, Long patid, Boolean isFinish, String patfrom) {
    private List wjInfo(ServiceTask serviceTask, Long patid, Boolean isFinish, String patfrom, Long subId) {
        //用户点击了外链,就算他领取了
        //这样做会有一个问题,如果固定任务,会出现一个任务里,有多个该患者
        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        serviceSubtaskVO.setTaskid(serviceTask.getTaskid());
        serviceSubtaskVO.setPatid(patid);
        ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
        if (subId != null) {
            serviceSubtaskVO.setSubId(subId);
        } else {
            serviceSubtaskVO.setTaskid(serviceTask.getTaskid());
            serviceSubtaskVO.setPatid(patid);
        }
        List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
        if (CollectionUtils.isNotEmpty(serviceSubtaskList) && serviceSubtaskList.size() == 1) {
            if (serviceSubtaskList.get(0).getSendstate() == 3 && isFinish == true) {
@@ -478,6 +486,8 @@
        //通过模板ID获取问题信息
        SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript();
        svyTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid()));
        if (CollectionUtils.isNotEmpty(serviceSubtaskList) && serviceSubtaskList.get(0).getTemplateid() != null)
            svyTaskTemplateScript.setTemplateID(serviceSubtaskList.get(0).getTemplateid());
        svyTaskTemplateScript.setDelFlag("0");
        List<SvyTaskTemplateScript> svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
        if (CollectionUtils.isEmpty(svyTaskTemplateScripts) || svyTaskTemplateScripts.size() == 0) {
@@ -522,7 +532,7 @@
                    }
                }
                //替换患者个人信息数据
                log.error("问题id:{},   问题内容:{}", svyTaskTemplateScriptVO.getId(), svyTaskTemplateScriptVO.getScriptContent());
                log.info("问题id:{},   问题内容:{}", svyTaskTemplateScriptVO.getId(), svyTaskTemplateScriptVO.getScriptContent());
                if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) {
                    svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : ""));
                    svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : ""));