| | |
| | | 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.smartor.domain.SvyTaskSingle; |
| | | import com.ruoyi.common.utils.DtoConversionUtils; |
| | | import com.smartor.domain.*; |
| | | import com.smartor.mapper.SvyTaskSingleMapper; |
| | | import com.smartor.service.ISvyTaskService; |
| | | import com.smartor.service.ISvyTaskSingleService; |
| | | 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.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 单一任务(问卷)Service业务层处理 |
| | |
| | | * @author ruoyi |
| | | * @date 2024-06-12 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class SvyTaskSingleServiceImpl implements ISvyTaskSingleService |
| | | { |
| | | public class SvyTaskSingleServiceImpl implements ISvyTaskSingleService { |
| | | @Autowired |
| | | private SvyTaskSingleMapper svyTaskSingleMapper; |
| | | |
| | | @Autowired |
| | | private ISvyTaskService svyTaskService; |
| | | |
| | | /** |
| | | * 查询单一任务(问卷) |
| | |
| | | * @return 单一任务(问卷) |
| | | */ |
| | | @Override |
| | | public SvyTaskSingle selectSvyTaskSingleById(Long id) |
| | | { |
| | | public SvyTaskSingle selectSvyTaskSingleById(Long id) { |
| | | return svyTaskSingleMapper.selectSvyTaskSingleById(id); |
| | | } |
| | | |
| | |
| | | * @return 单一任务(问卷) |
| | | */ |
| | | @Override |
| | | public List<SvyTaskSingle> selectSvyTaskSingleList(SvyTaskSingle svyTaskSingle) |
| | | { |
| | | public List<SvyTaskSingle> selectSvyTaskSingleList(SvyTaskSingle svyTaskSingle) { |
| | | return svyTaskSingleMapper.selectSvyTaskSingleList(svyTaskSingle); |
| | | } |
| | | |
| | |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int insertSvyTaskSingle(SvyTaskSingle svyTaskSingle) |
| | | { |
| | | public int insertSvyTaskSingle(SvyTaskSingle svyTaskSingle) { |
| | | svyTaskSingle.setCreateTime(DateUtils.getNowDate()); |
| | | return svyTaskSingleMapper.insertSvyTaskSingle(svyTaskSingle); |
| | | } |
| | |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int updateSvyTaskSingle(SvyTaskSingle svyTaskSingle) |
| | | { |
| | | public int updateSvyTaskSingle(SvyTaskSingle svyTaskSingle) { |
| | | svyTaskSingle.setUpdateTime(DateUtils.getNowDate()); |
| | | return svyTaskSingleMapper.updateSvyTaskSingle(svyTaskSingle); |
| | | } |
| | |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int deleteSvyTaskSingleByIds(Long[] ids) |
| | | { |
| | | public int deleteSvyTaskSingleByIds(Long[] ids) { |
| | | return svyTaskSingleMapper.deleteSvyTaskSingleByIds(ids); |
| | | } |
| | | |
| | |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public int deleteSvyTaskSingleById(Long id) |
| | | { |
| | | public int deleteSvyTaskSingleById(Long id) { |
| | | return svyTaskSingleMapper.deleteSvyTaskSingleById(id); |
| | | } |
| | | |
| | | @Override |
| | | public int insertOrUpdateSvyTask(SvyTaskVO svyTaskVO) { |
| | | if (ObjectUtils.isEmpty(svyTaskVO)) { |
| | | 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) { |
| | | //往任务表中,新增任务 |
| | | 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); |
| | | |
| | | //将任务信息放到服务表中 |
| | | SvyTaskSingle svyTaskSingle = DtoConversionUtils.sourceToTarget(svyTaskVO, SvyTaskSingle.class); |
| | | svyTaskSingle.setTaskid(svyTask.getTaskid()); |
| | | //新增 |
| | | if (CollectionUtils.isNotEmpty(svyTaskVO.getPatTaskRelevances())) { |
| | | for (PatTaskRelevance patTaskRelevance : svyTaskVO.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.setCreateTime(DateUtils.getNowDate()); |
| | | svyTaskSingleMapper.insertSvyTaskSingle(svyTaskSingle); |
| | | integer = svyTaskSingle.getId().intValue(); |
| | | } |
| | | } |
| | | |
| | | } else if (svyTaskVO.getIsoperation() != null && svyTaskVO.getIsoperation() == 2) { |
| | | //任务修改 |
| | | if (ObjectUtils.isNotEmpty(svyTaskVO.getSendTimeSlot())) |
| | | svyTask.setSendTimeSlot(JSON.toJSONString(svyTaskVO.getSendTimeSlot())); |
| | | //修改操作,需要将stopState状态+1 |
| | | SvyTask svyTask1 = svyTaskService.selectSvyTaskByTaskid(svyTaskVO.getTaskid()); |
| | | svyTask.setStopState(svyTask1.getStopState() + 1); |
| | | svyTask.setTemplateid(svyTaskVO.getLibtemplateid()); |
| | | svyTaskService.updateSvyTask(svyTask); |
| | | |
| | | if (CollectionUtils.isNotEmpty(svyTaskVO.getPatTaskRelevances())) { |
| | | for (PatTaskRelevance patTaskRelevance : svyTaskVO.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.setCreateTime(DateUtils.getNowDate()); |
| | | svyTaskSingle.setTextParam(new Gson().toJson(svyTaskVO.getTextParamMap())); |
| | | if (patTaskRelevance.getIsoperation() != null) { |
| | | 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()); |
| | | 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()); |
| | | 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); |
| | | } |
| | | } |