liusheng
2024-09-24 562a960261b75d70abd65aa10528f09aeece94e8
smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java
@@ -8,7 +8,9 @@
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.smartor.domain.*;
import com.smartor.mapper.ServiceSubtaskMapper;
import com.smartor.mapper.SvyTaskSingleMapper;
import com.smartor.service.IServiceTaskService;
import com.smartor.service.ISvyTaskService;
import com.smartor.service.ISvyTaskSingleService;
import lombok.extern.slf4j.Slf4j;
@@ -31,147 +33,82 @@
@Slf4j
@Service
public class SvyTaskSingleServiceImpl implements ISvyTaskSingleService {
    @Autowired
    private SvyTaskSingleMapper svyTaskSingleMapper;
    @Autowired
    private ISvyTaskService svyTaskService;
    private ServiceSubtaskMapper serviceSubtaskMapper;
    /**
     * 查询单一任务(问卷)
     *
     * @param id 单一任务(问卷)主键
     * @return 单一任务(问卷)
     */
    @Override
    public SvyTaskSingle selectSvyTaskSingleById(Long id) {
        return svyTaskSingleMapper.selectSvyTaskSingleById(id);
    }
    @Autowired
    private IServiceTaskService iServiceTaskService;
    /**
     * 查询单一任务(问卷)列表
     *
     * @param svyTaskSingle 单一任务(问卷)
     * @return 单一任务(问卷)
     */
    @Override
    public List<SvyTaskSingle> selectSvyTaskSingleList(SvyTaskSingle svyTaskSingle) {
        return svyTaskSingleMapper.selectSvyTaskSingleList(svyTaskSingle);
    }
    /**
     * 新增单一任务(问卷)
     *
     * @param svyTaskSingle 单一任务(问卷)
     * @return 结果
     */
    @Override
    public int insertSvyTaskSingle(SvyTaskSingle svyTaskSingle) {
        svyTaskSingle.setCreateTime(DateUtils.getNowDate());
        return svyTaskSingleMapper.insertSvyTaskSingle(svyTaskSingle);
    }
    /**
     * 修改单一任务(问卷)
     *
     * @param svyTaskSingle 单一任务(问卷)
     * @return 结果
     */
    @Override
    public int updateSvyTaskSingle(SvyTaskSingle svyTaskSingle) {
        svyTaskSingle.setUpdateTime(DateUtils.getNowDate());
        return svyTaskSingleMapper.updateSvyTaskSingle(svyTaskSingle);
    }
    /**
     * 批量删除单一任务(问卷)
     *
     * @param ids 需要删除的单一任务(问卷)主键
     * @return 结果
     */
    @Override
    public int deleteSvyTaskSingleByIds(Long[] ids) {
        return svyTaskSingleMapper.deleteSvyTaskSingleByIds(ids);
    }
    /**
     * 删除单一任务(问卷)信息
     *
     * @param id 单一任务(问卷)主键
     * @return 结果
     */
    @Override
    public int deleteSvyTaskSingleById(Long id) {
        return svyTaskSingleMapper.deleteSvyTaskSingleById(id);
    }
    @Override
    public int insertOrUpdateSvyTask(SvyTaskVO svyTaskVO) {
        if (ObjectUtils.isEmpty(svyTaskVO)) {
    public int insertOrUpdateSvyTask(ServiceTaskVO serviceTaskVO) {
        if (ObjectUtils.isEmpty(serviceTaskVO)) {
            log.info("问卷任务入参为空,请检查入参");
            throw new BaseException("问卷任务入参为空,请检查入参");
        }
        Integer integer = 1;
        SvyTask svyTask = DtoConversionUtils.sourceToTarget(svyTaskVO, SvyTask.class);
        svyTask.setTextParam(JSON.toJSONString(svyTaskVO.getTextParamMap()));
        if (svyTaskVO.getIsoperation() != null && svyTaskVO.getIsoperation() == 1) {
        ServiceTask serviceTask = DtoConversionUtils.sourceToTarget(serviceTaskVO, ServiceTask.class);
        serviceTask.setTextParam(JSON.toJSONString(serviceTaskVO.getTextParam()));
        if (serviceTaskVO.getIsoperation() != null && serviceTaskVO.getIsoperation() == 1) {
            //往任务表中,新增任务
            if (ObjectUtils.isNotEmpty(svyTaskVO.getSendTimeSlot()))
                svyTask.setSendTimeSlot(JSON.toJSONString(svyTaskVO.getSendTimeSlot()));
            if (svyTask.getSendState() == null) svyTask.setSendState("1");
            svyTask.setTemplateid(svyTaskVO.getLibtemplateid());
            svyTaskService.insertSvyTask(svyTask);
            if (ObjectUtils.isNotEmpty(serviceTaskVO.getSendTimeslot()))
                serviceTask.setSendTimeSlot(JSON.toJSONString(serviceTaskVO.getSendTimeslot()));
            if (serviceTask.getSendState() == null) serviceTask.setSendState(1L);
            serviceTask.setTemplateid(Long.valueOf(serviceTaskVO.getLibtemplateid()));
            iServiceTaskService.insertServiceTask(serviceTask);
            //将任务信息放到服务表中
            SvyTaskSingle svyTaskSingle = DtoConversionUtils.sourceToTarget(svyTaskVO, SvyTaskSingle.class);
            svyTaskSingle.setTaskid(svyTask.getTaskid());
            ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTaskVO, ServiceSubtask.class);
            serviceSubtask.setTaskid(serviceTask.getTaskid());
            //新增
            if (CollectionUtils.isNotEmpty(svyTaskVO.getPatTaskRelevances())) {
                for (PatTaskRelevance patTaskRelevance : svyTaskVO.getPatTaskRelevances()) {
            if (CollectionUtils.isNotEmpty(serviceTaskVO.getPatTaskRelevances())) {
                for (PatTaskRelevance patTaskRelevance : serviceTaskVO.getPatTaskRelevances()) {
                    //将任务信息新增到随访服务表中
                    svyTaskSingle.setSendname(patTaskRelevance.getName());
                    svyTaskSingle.setAge(patTaskRelevance.getAge());
                    svyTaskSingle.setSfzh(patTaskRelevance.getSfzh());
                    svyTaskSingle.setPhone(patTaskRelevance.getPhone());
                    svyTaskSingle.setAddr(patTaskRelevance.getAddr());
                    svyTaskSingle.setPatid(patTaskRelevance.getPatid());
                    svyTaskSingle.setSendstate(1L);
                    svyTaskSingle.setHospType(patTaskRelevance.getHospType());
                    svyTaskSingle.setCreateTime(DateUtils.getNowDate());
                    svyTaskSingleMapper.insertSvyTaskSingle(svyTaskSingle);
                    integer = svyTaskSingle.getId().intValue();
                    serviceSubtask.setSendname(patTaskRelevance.getName());
                    serviceSubtask.setAge(patTaskRelevance.getAge());
                    serviceSubtask.setSfzh(patTaskRelevance.getSfzh());
                    serviceSubtask.setPhone(patTaskRelevance.getPhone());
                    serviceSubtask.setAddr(patTaskRelevance.getAddr());
                    serviceSubtask.setPatid(patTaskRelevance.getPatid());
                    serviceSubtask.setSendstate(1L);
                    serviceSubtask.setHospType(patTaskRelevance.getHospType());
                    serviceSubtask.setCreateTime(DateUtils.getNowDate());
                    serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
                    integer = serviceSubtask.getId().intValue();
                }
            }
        } else if (svyTaskVO.getIsoperation() != null && svyTaskVO.getIsoperation() == 2) {
        } else if (serviceTaskVO.getIsoperation() != null && serviceTaskVO.getIsoperation() == 2) {
            //任务修改
            if (ObjectUtils.isNotEmpty(svyTaskVO.getSendTimeSlot()))
                svyTask.setSendTimeSlot(JSON.toJSONString(svyTaskVO.getSendTimeSlot()));
            if (ObjectUtils.isNotEmpty(serviceTaskVO.getSendTimeslot()))
                serviceTask.setSendTimeSlot(JSON.toJSONString(serviceTaskVO.getSendTimeslot()));
            //修改操作,需要将stopState状态+1
            SvyTask svyTask1 = svyTaskService.selectSvyTaskByTaskid(svyTaskVO.getTaskid());
            svyTask.setStopState(svyTask1.getStopState() + 1);
            svyTask.setTemplateid(svyTaskVO.getLibtemplateid());
            svyTaskService.updateSvyTask(svyTask);
            ServiceTask serviceTask2 = iServiceTaskService.selectServiceTaskByTaskid(serviceTaskVO.getTaskid());
            serviceTask2.setStopState(serviceTask.getStopState() + 1);
            serviceTask2.setTemplateid(Long.valueOf(serviceTaskVO.getLibtemplateid()));
            iServiceTaskService.updateServiceTask(serviceTask2);
            if (CollectionUtils.isNotEmpty(svyTaskVO.getPatTaskRelevances())) {
                for (PatTaskRelevance patTaskRelevance : svyTaskVO.getPatTaskRelevances()) {
            if (CollectionUtils.isNotEmpty(serviceTaskVO.getPatTaskRelevances())) {
                for (PatTaskRelevance patTaskRelevance : serviceTaskVO.getPatTaskRelevances()) {
                    SvyTaskSingle svyTaskSingle = DtoConversionUtils.sourceToTarget(svyTaskVO, SvyTaskSingle.class);
                    svyTaskSingle.setSendname(patTaskRelevance.getName());
                    svyTaskSingle.setAge(patTaskRelevance.getAge());
                    svyTaskSingle.setSfzh(patTaskRelevance.getSfzh());
                    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()));
                    ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTaskVO, ServiceSubtask.class);
                    serviceSubtask.setSendname(patTaskRelevance.getName());
                    serviceSubtask.setAge(patTaskRelevance.getAge());
                    serviceSubtask.setSfzh(patTaskRelevance.getSfzh());
                    serviceSubtask.setPhone(patTaskRelevance.getPhone());
                    serviceSubtask.setAddr(patTaskRelevance.getAddr());
                    serviceSubtask.setPatid(patTaskRelevance.getPatid());
                    serviceSubtask.setHospType(patTaskRelevance.getHospType());
                    serviceSubtask.setCreateTime(DateUtils.getNowDate());
                    serviceSubtask.setTextParam(new Gson().toJson(serviceTaskVO.getTextParam()));
                    if (patTaskRelevance.getIsoperation() != null) {
                        optionHandle(svyTaskSingle, svyTaskVO.getTaskid(), patTaskRelevance.getIsoperation(), patTaskRelevance.getPatid());
                        optionHandle(serviceSubtask, serviceTaskVO.getTaskid(), patTaskRelevance.getIsoperation(), patTaskRelevance.getPatid());
                    } else if (patTaskRelevance.getIsoperation() == null) {
                        optionHandle(svyTaskSingle, svyTaskVO.getTaskid(), svyTaskVO.getIsoperation(), patTaskRelevance.getPatid());
                        optionHandle(serviceSubtask, serviceTaskVO.getTaskid(), serviceTaskVO.getIsoperation(), patTaskRelevance.getPatid());
                    }
                    integer = svyTaskSingle.getTaskid().intValue();
                    integer = serviceSubtask.getTaskid().intValue();
                }
            }
        }
@@ -179,79 +116,81 @@
    }
    @Override
    public SvyTaskVO queryTaskByCondition(SvyTaskSingle svyTaskSingle) {
    public ServiceTaskVO queryTaskByCondition(ServiceSubtask serviceSubtask) {
        //定义患者与单一任务关联表集合
        List<PatTaskRelevance> patTaskRelevances = new ArrayList<>();
        List<SvyTaskSingle> list = selectSvyTaskSingleList(svyTaskSingle);
        if (CollectionUtils.isEmpty(list) || list.size() == 0) {
            return new SvyTaskVO();
        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        serviceSubtaskVO.setTaskid(serviceSubtask.getTaskid());
        List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
        if (CollectionUtils.isEmpty(selectServiceSubtaskList) || selectServiceSubtaskList.size() == 0) {
            return new ServiceTaskVO();
        }
        SvyTask svyTask = svyTaskService.selectSvyTaskByTaskid(svyTaskSingle.getTaskid());
        ServiceTask serviceTask = iServiceTaskService.selectServiceTaskByTaskid(serviceSubtask.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();
        ServiceTaskVO serviceTaskVO = DtoConversionUtils.sourceToTarget(selectServiceSubtaskList.get(0), ServiceTaskVO.class);
        serviceTaskVO.setShowDate(serviceTask.getShowDate());
        serviceTaskVO.setShowTimeMorn(serviceTask.getShowTimeMorn());
        serviceTaskVO.setShowTimeNoon(serviceTask.getShowTimeNoon());
        serviceTaskVO.setShowTimeNight(serviceTask.getShowTimeNight());
        serviceTaskVO.setPreachform(serviceTask.getPreachform());
        String sendTimeSlot = serviceTask.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());
                serviceTaskVO.setSendTimeslot(taskSendTimeVOList);
                serviceTaskVO.setSendType(serviceTask.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);
            if (com.ruoyi.common.utils.StringUtils.isNotEmpty(serviceTask.getTextParam())) {
                Map<String, Map<String, String>> textParam = objectMapper.readValue(serviceTask.getTextParam(), Map.class);
                serviceTaskVO.setTextParam(textParam);
            }
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        for (SvyTaskSingle svyTaskSingle1 : list) {
        for (ServiceSubtask serviceSubtask1 : selectServiceSubtaskList) {
            PatTaskRelevance patTaskRelevance = new PatTaskRelevance();
            if (!svyTaskSingle1.getHospType().equals("2")) {
                log.info("随访查询不为出院,{}", svyTaskSingle1.getHospType());
            if (!serviceSubtask1.getHospType().equals("2")) {
                log.info("随访查询不为出院,{}", serviceSubtask1.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());
                patTaskRelevance.setName(serviceSubtask1.getSendname());
                patTaskRelevance.setAge(serviceSubtask1.getAge());
                patTaskRelevance.setSfzh(serviceSubtask1.getSfzh());
                patTaskRelevance.setPhone(serviceSubtask1.getPhone());
                patTaskRelevance.setAddr(serviceSubtask1.getAddr());
                patTaskRelevance.setDiagname(serviceSubtask1.getDiagname());
                patTaskRelevance.setPatid(serviceSubtask1.getPatid());
                patTaskRelevance.setSendStatus(serviceSubtask1.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());
            if (serviceSubtask1.getHospType().equals("2")) {
                log.info("随访查询为出院,{}", serviceSubtask1.getHospType());
                patTaskRelevance.setName(serviceSubtask1.getSendname());
                patTaskRelevance.setAge(serviceSubtask1.getAge());
                patTaskRelevance.setSfzh(serviceSubtask1.getSfzh());
                patTaskRelevance.setPhone(serviceSubtask1.getPhone());
                patTaskRelevance.setAddr(serviceSubtask1.getAddr());
                patTaskRelevance.setDeptName(serviceSubtask1.getDeptname());
                patTaskRelevance.setBedNo(serviceSubtask1.getBedNo());
                patTaskRelevance.setDiagname(serviceSubtask1.getDiagname());
                patTaskRelevance.setPatid(serviceSubtask1.getPatid());
                patTaskRelevance.setSendStatus(serviceSubtask1.getSendstate());
                patTaskRelevances.add(patTaskRelevance);
            }
        }
        svyTaskVO.setPatTaskRelevances(patTaskRelevances);
        return svyTaskVO;
        serviceTaskVO.setPatTaskRelevances(patTaskRelevances);
        return serviceTaskVO;
    }
    private void optionHandle(SvyTaskSingle svyTaskSingle, Long taskId, Integer isoperation, Long patid) {
    private void optionHandle(ServiceSubtask serviceSubtask, 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);
            serviceSubtask.setSendstate(1L);
            serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
        } else if (isoperation == 2) serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
        else if (isoperation == 3) serviceSubtaskMapper.deleteServiceSubtaskByCondition(taskId, patid);
    }
}