| | |
| | | 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; |
| | |
| | | @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(1); |
| | | serviceTask.setTemplateid(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(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(); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | @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); |
| | | } |
| | | } |