liusheng
2024-09-21 d3bf339bd64d7b7efddc0afdd4beb1866b8b5a04
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -15,6 +15,7 @@
import com.smartor.mapper.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -37,7 +38,7 @@
    private PatArchiveMapper patArchiveMapper;
    @Autowired
    private IvrLibaTemplateMapper ivrLibaTemplateMapper;
    private TemplateDeptMapper templateDeptMapper;
    @Autowired
    private IvrTaskTemplateMapper ivrTaskTemplateMapper;
@@ -182,6 +183,16 @@
    public int deletePatMedInhospByInhospid(Long inhospid) {
        return patMedInhospMapper.deletePatMedInhospByInhospid(inhospid);
    }
    /**
     * 删除患者住院记录信息
     *
     * @param inhospno 患者住院编码
     * @return 结果
     */
    @Override
    public int deletePatMedInhospByInhospno(String inhospno) {
        return patMedInhospMapper.deletePatMedInhospByInhospno(inhospno);
    }
    @Override
@@ -195,10 +206,20 @@
        for (PatMedInhosp patMedInhosp1 : patMedInhosps) {
            //根据患者所在科室,获取该科室的长期任务模板
            Long taskid = null;
            SvyTaskTemplate svyTaskTemplate = new SvyTaskTemplate();
            svyTaskTemplate.setDeptCode(patMedInhosp1.getLeaveldeptcode());
            svyTaskTemplate.setLongTemp(1);
            List<SvyTaskTemplate> svyTaskTemplates = svyTaskTemplateMapper.selectSvyTaskTemplateList(svyTaskTemplate);
            //通过deptCode获取关联的长期任务模板
            TemplateDept templateDept = new TemplateDept();
            templateDept.setDeptCode(patMedInhosp1.getLeaveldeptcode());
            templateDept.setLongTemp(1);
            templateDept.setType(11L);
            List<TemplateDept> templateDepts = templateDeptMapper.selectTemplateDeptList(templateDept);
            //根据获取的长期任务模板ID,获取任务模板详情
            List<SvyTaskTemplate> svyTaskTemplates = new ArrayList<>();
            if (CollectionUtils.isNotEmpty(templateDepts)) {
                for (TemplateDept templateDept1 : templateDepts) {
                    SvyTaskTemplate svyTaskTemplate = svyTaskTemplateMapper.selectSvyTaskTemplateBySvyid(templateDept1.getTempid());
                    if (ObjectUtils.isNotEmpty(svyTaskTemplate)) svyTaskTemplates.add(svyTaskTemplate);
                }
            }
            //如果部门模板为空(暂定,将出入院表的check_flag设置为2  ,long_task_reason 记录原因)
            if (CollectionUtils.isEmpty(svyTaskTemplates) || svyTaskTemplates.size() == 0) {
                patMedInhosp1.setCheckFlag("2");
@@ -285,17 +306,27 @@
            ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
            serviceSubtask.setTaskid(serviceTask.getTaskid());
            serviceSubtask.setLibtemplateid(stt.getTemplateid());
            serviceSubtask.setNurseId(patMedInhosp1.getNurseId());
            serviceSubtask.setNurseName(patMedInhosp1.getNurseName());
            serviceSubtask.setDrcode(patMedInhosp1.getDrcode());
            serviceSubtask.setDrname(patMedInhosp1.getDrname());
            serviceSubtask.setDeptname(patMedInhosp1.getLeaveldeptname());
            serviceSubtask.setTemplateid(stt.getId());
            serviceSubtask.setTemplatename(stt.getSvyname());
            serviceSubtask.setPatid(patArchive.getId());
            serviceSubtask.setSendname(patArchive.getName());
            serviceSubtask.setSfzh(patArchive.getIdcardno());
            serviceSubtask.setPhone(patArchive.getTelcode());
            serviceSubtask.setSex(patArchive.getSex());
            serviceSubtask.setAge(patArchive.getAge());
            serviceSubtask.setSendstate(2L);
            serviceSubtask.setStarttime(patMedInhosp1.getStarttime());
            serviceSubtask.setEndtime(patMedInhosp1.getEndtime());
            serviceSubtask.setServiceType("2");
            serviceSubtask.setServiceform(serviceTask.getPreachform());
            serviceSubtask.setHospType("2");
            serviceSubtask.setLeavehospitaldistrictcode(patMedInhosp1.getLeavehospitaldistrictcode());
            serviceSubtask.setLeavehospitaldistrictname(patMedInhosp1.getLeavehospitaldistrictname());
            //设置发送时间
            Date newDate = addDays(patMedInhosp1.getEndtime(), stt.getSendDay());
            serviceSubtask.setLongSendTime(newDate);