liusheng
9 天以前 34f78281cf395a24e1f3f1c3b861186ff8a03b7b
smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
@@ -5,6 +5,7 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.core.service.TemplateModuleDisabledException;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
@@ -20,6 +21,28 @@
import com.smartor.service.IServiceTaskService;
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.template.domain.HeLibrary;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import com.ruoyi.inhospvisit.domain.PatMedInhospVO;
import com.ruoyi.outpatientvisit.domain.PatMedOuthosp;
import com.ruoyi.outpatientvisit.domain.PatMedOuthospQueryReq;
import com.ruoyi.inhospvisit.api.InhospVisitFacade;
import com.ruoyi.outpatientvisit.api.OuthospDataFacade;
import com.ruoyi.template.domain.IvrTaskTemplateScript;
import com.ruoyi.template.domain.IvrTaskTemplateScriptVO;
import com.ruoyi.template.domain.IvrTaskTemplateTargetoption;
import com.ruoyi.template.mapper.IvrTaskTemplateScriptMapper;
import com.ruoyi.template.mapper.IvrTaskTemplateTargetoptionMapper;
import com.ruoyi.template.domain.SvyLibTemplateScript;
import com.ruoyi.template.domain.SvyLibTemplateTargetoption;
import com.ruoyi.template.domain.SvyTaskTemplateScript;
import com.ruoyi.template.domain.SvyTaskTemplateScriptVO;
import com.ruoyi.template.domain.SvyTaskTemplateTargetoption;
import com.ruoyi.template.mapper.SvyLibTemplateScriptMapper;
import com.ruoyi.template.mapper.SvyLibTemplateTargetoptionMapper;
import com.ruoyi.template.mapper.SvyTaskTemplateScriptMapper;
import com.ruoyi.template.mapper.SvyTaskTemplateTargetoptionMapper;
import com.ruoyi.template.api.TemplateFacade;
/**
 * 语音任务Service业务层处理
 *
@@ -31,6 +54,24 @@
public class ServiceTaskServiceImpl implements IServiceTaskService {
    @Autowired
    private ServiceTaskMapper serviceTaskMapper;
    /**
     * 模板数据一律经 ruoyi-template 的门面取用(跨模块数据访问原则)。
     */
    @Autowired
    private TemplateFacade templateFacade;
    /**
     * 跨模块访问一律经模块门面(禁止直连已搬走的 Mapper)。
     */
    @Autowired
    private OuthospDataFacade outhospDataFacade;
    /**
     * 跨模块访问一律经模块门面(禁止直连已搬走的 Mapper)。
     */
    @Autowired
    private InhospVisitFacade inhospVisitFacade;
    @Autowired
    private ServiceSubtaskMapper serviceSubtaskMapper;
    @Autowired
@@ -40,8 +81,6 @@
    @Autowired
    private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper;
    @Autowired
    private HeLibraryMapper heLibraryMapper;
    @Autowired
    private SvyTaskTemplateScriptMapper svyTaskTemplateScriptMapper;
    @Autowired
    private IvrTaskTemplateScriptMapper ivrTaskTemplateScriptMapper;
@@ -49,10 +88,6 @@
    private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper;
    @Autowired
    private PatArchiveMapper patArchiveMapper;
    @Autowired
    private PatMedInhospMapper patMedInhospMapper;
    @Autowired
    private PatMedOuthospMapper patMedOuthospMapper;
    @Autowired
    private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper;
    @Autowired
@@ -303,14 +338,14 @@
        if (StringUtils.isNotEmpty(zyserialnum)) {
            PatMedInhospVO patMedInhospVO = new PatMedInhospVO();
            patMedInhospVO.setSerialnum(zyserialnum);
            List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospListByCondition(patMedInhospVO);
            List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospListByCondition(patMedInhospVO);
            if (CollectionUtils.isNotEmpty(patMedInhospList)) {
                patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhospList.get(0).getPatid());
            }
        } else if (StringUtils.isNotEmpty(mzserialnum)) {
            PatMedOuthospQueryReq patMedOuthosp = new PatMedOuthospQueryReq();
            patMedOuthosp.setSerialnum(mzserialnum);
            List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.callSpQueryOuthosp(patMedOuthosp);
            List<PatMedOuthosp> patMedOuthosps = outhospDataFacade.callSpQueryOuthosp(patMedOuthosp);
            if (CollectionUtils.isNotEmpty(patMedOuthosps)) {
                patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosps.get(0).getPatid());
            }
@@ -619,7 +654,18 @@
                serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
            }
        }
        HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(Long.valueOf(templateId));
        HeLibrary heLibrary;
        try {
            heLibrary = templateFacade.findHeLibraryById(Long.valueOf(templateId));
        } catch (TemplateModuleDisabledException e) {
            // 模板模块被关闭(sys_config: template.enabled=false):
            // 这里降级为空列表,而**不是**让异常冒出去 ——
            // 患者打开的宣教页面照常可看、可提交("只要打开了页面就算成功"的后续状态更新照旧执行)。
            // 原实现在模板查不到时返回的也是 [null],前端本就能容错;空列表更干净。
            log.warn("【模板】宣教任务取模板被拒(模块已关闭),taskid={}, templateId={},本次返回空内容",
                    taskid, templateId);
            return new ArrayList();
        }
        List list = new ArrayList();
        list.add(heLibrary);
        return list;