liusheng
2024-08-28 bedd0a1cef215538df64470df6b8d4a022189136
smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java
@@ -1,14 +1,13 @@
package com.smartor.service.impl;
import com.alibaba.fastjson2.JSON;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.smartor.domain.PatTaskRelevance;
import com.smartor.domain.SvyTask;
import com.smartor.domain.SvyTaskSingle;
import com.smartor.domain.SvyTaskVO;
import com.smartor.domain.*;
import com.smartor.mapper.SvyTaskSingleMapper;
import com.smartor.service.ISvyTaskService;
import com.smartor.service.ISvyTaskSingleService;
@@ -18,7 +17,10 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * 单一任务(问卷)Service业务层处理
@@ -133,7 +135,8 @@
                    svyTaskSingle.setPhone(patTaskRelevance.getPhone());
                    svyTaskSingle.setAddr(patTaskRelevance.getAddr());
                    svyTaskSingle.setPatid(patTaskRelevance.getPatid());
                    svyTaskSingle.setCreateTime(DateUtils.getNowDate());
                    svyTaskSingle.setSendstate(1L);
                    svyTaskSingle.setHospType(patTaskRelevance.getHospType());
                    svyTaskSingle.setCreateTime(DateUtils.getNowDate());
                    svyTaskSingleMapper.insertSvyTaskSingle(svyTaskSingle);
                    integer = svyTaskSingle.getId().intValue();
@@ -160,23 +163,95 @@
                    svyTaskSingle.setPhone(patTaskRelevance.getPhone());
                    svyTaskSingle.setAddr(patTaskRelevance.getAddr());
                    svyTaskSingle.setPatid(patTaskRelevance.getPatid());
                    svyTaskSingle.setHospType(patTaskRelevance.getHospType());
                    svyTaskSingle.setCreateTime(DateUtils.getNowDate());
                    svyTaskSingle.setTextParam(new Gson().toJson(svyTaskVO.getTextParamMap()));
                    if (patTaskRelevance.getIsoperation() != null) {
                        if (patTaskRelevance.getIsoperation() == 2)
                            svyTaskSingleMapper.updateSvyTaskSingle(svyTaskSingle);
                        if (patTaskRelevance.getIsoperation() == 1)
                            svyTaskSingleMapper.insertSvyTaskSingle(svyTaskSingle);
                        if (patTaskRelevance.getIsoperation() == 3)
                            //  通过taskid和patid去删除该条数据
                            svyTaskSingleMapper.deleteSvyTaskcallByCondition(svyTaskVO.getTaskid(), patTaskRelevance.getPatid());
                        optionHandle(svyTaskSingle, svyTaskVO.getTaskid(), patTaskRelevance.getIsoperation(), patTaskRelevance.getPatid());
                    } else if (patTaskRelevance.getIsoperation() == null) {
                        optionHandle(svyTaskSingle, svyTaskVO.getTaskid(), svyTaskVO.getIsoperation(), patTaskRelevance.getPatid());
                    }
                    integer = svyTaskSingle.getTaskid().intValue();
                }
            }
        }
        return integer;
    }
    @Override
    public SvyTaskVO queryTaskByCondition(SvyTaskSingle svyTaskSingle) {
        //定义患者与单一任务关联表集合
        List<PatTaskRelevance> patTaskRelevances = new ArrayList<>();
        List<SvyTaskSingle> list = selectSvyTaskSingleList(svyTaskSingle);
        if (CollectionUtils.isEmpty(list) || list.size() == 0) {
            return new SvyTaskVO();
        }
        SvyTask svyTask = svyTaskService.selectSvyTaskByTaskid(svyTaskSingle.getTaskid());
        //将查出来的数据倒入ivrTasksingleVO中
        SvyTaskVO svyTaskVO = DtoConversionUtils.sourceToTarget(list.get(0), SvyTaskVO.class);
        svyTaskVO.setShowDate(svyTask.getShowDate());
        svyTaskVO.setShowTimeMorn(svyTask.getShowTimeMorn());
        svyTaskVO.setShowTimeNoon(svyTask.getShowTimeNoon());
        svyTaskVO.setShowTimeNight(svyTask.getShowTimeNight());
        svyTaskVO.setPreachform(svyTask.getPreachform());
        String sendTimeSlot = svyTask.getSendTimeSlot();
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            //获取到发送时间的集合
            if (com.ruoyi.common.utils.StringUtils.isNotEmpty(sendTimeSlot)) {
                List<TaskSendTimeVO> taskSendTimeVOList = objectMapper.readValue(sendTimeSlot, List.class);
                svyTaskVO.setSendTimeSlot(taskSendTimeVOList);
                svyTaskVO.setSendType(svyTask.getSendType());
            }
            //文本变量参数
            if (com.ruoyi.common.utils.StringUtils.isNotEmpty(svyTask.getTextParam())) {
                Map<String, Map<String, String>> textParam = objectMapper.readValue(svyTask.getTextParam(), Map.class);
                svyTaskVO.setTextParam(textParam);
            }
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        for (SvyTaskSingle svyTaskSingle1 : list) {
            PatTaskRelevance patTaskRelevance = new PatTaskRelevance();
            if (!svyTaskSingle1.getHospType().equals("2")) {
                log.info("随访查询不为出院,{}", svyTaskSingle1.getHospType());
                //获取到患者信息,并放入到集合中
                patTaskRelevance.setName(svyTaskSingle1.getSendname());
                patTaskRelevance.setAge(svyTaskSingle1.getAge());
                patTaskRelevance.setSfzh(svyTaskSingle1.getSfzh());
                patTaskRelevance.setPhone(svyTaskSingle1.getPhone());
                patTaskRelevance.setAddr(svyTaskSingle1.getAddr());
                patTaskRelevance.setDiagname(svyTaskSingle1.getDiagname());
                patTaskRelevance.setPatid(svyTaskSingle1.getPatid());
                patTaskRelevance.setSendStatus(svyTaskSingle1.getSendstate());
                patTaskRelevances.add(patTaskRelevance);
            }
            if (svyTaskSingle1.getHospType().equals("2")) {
                log.info("随访查询为出院,{}", svyTaskSingle1.getHospType());
                patTaskRelevance.setName(svyTaskSingle1.getSendname());
                patTaskRelevance.setAge(svyTaskSingle1.getAge());
                patTaskRelevance.setSfzh(svyTaskSingle1.getSfzh());
                patTaskRelevance.setPhone(svyTaskSingle1.getPhone());
                patTaskRelevance.setAddr(svyTaskSingle1.getAddr());
                patTaskRelevance.setDeptName(svyTaskSingle1.getDeptname());
                patTaskRelevance.setBedNo(svyTaskSingle1.getBedno());
                patTaskRelevance.setDiagname(svyTaskSingle1.getDiagname());
                patTaskRelevance.setPatid(svyTaskSingle1.getPatid());
                patTaskRelevance.setSendStatus(svyTaskSingle1.getSendstate());
                patTaskRelevances.add(patTaskRelevance);
            }
        }
        svyTaskVO.setPatTaskRelevances(patTaskRelevances);
        return svyTaskVO;
    }
    private void optionHandle(SvyTaskSingle svyTaskSingle, Long taskId, Integer isoperation, Long patid) {
        if (isoperation == 1) {
            svyTaskSingle.setSendstate(1L);
            svyTaskSingleMapper.insertSvyTaskSingle(svyTaskSingle);
        } else if (isoperation == 2) svyTaskSingleMapper.updateSvyTaskSingle(svyTaskSingle);
        else if (isoperation == 3) svyTaskSingleMapper.deleteSvyTaskcallByCondition(taskId, patid);
    }
}