ÎļþÃû´Ó smartor/src/main/java/com/smartor/service/impl/IvrTaskSingleServiceImpl.java ÐÞ¸Ä |
| | |
| | | import com.ruoyi.common.exception.base.BaseException; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.DtoConversionUtils; |
| | | import com.ruoyi.common.utils.RSAPublicKeyExample; |
| | | import com.smartor.config.PhoneUtils; |
| | | import com.smartor.domain.*; |
| | | import com.smartor.mapper.*; |
| | | import com.smartor.service.IIvrTaskService; |
| | | import com.smartor.service.IIvrTaskSingleService; |
| | | import com.smartor.service.IServiceSubtaskService; |
| | | import com.smartor.service.IServiceTaskService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class IvrTaskSingleServiceImpl implements IIvrTaskSingleService { |
| | | public class ServiceSubtaskServiceImpl implements IServiceSubtaskService { |
| | | @Autowired |
| | | private IvrTaskSingleMapper ivrTaskSingleMapper; |
| | | private ServiceSubtaskMapper serviceSubtaskMapper; |
| | | |
| | | @Autowired |
| | | private IIvrTaskService ivrTaskService; |
| | | private IvrTaskcalldetailMapper ivrTaskcalldetailMapper; |
| | | @Autowired |
| | | private SvyTasksingledetailMapper svyTasksingledetailMapper; |
| | | |
| | | @Autowired |
| | | private IvrTaskTemplateTargetoptionMapper ivrTaskScriptTargetoptionMapper; |
| | | private IServiceTaskService serviceTaskService; |
| | | |
| | | @Autowired |
| | | private IvrLibaTemplateScriptMapper ivrTaskTemplateScriptMapper; |
| | | private IvrTaskTemplateTargetoptionMapper serviceTaskScriptTargetoptionMapper; |
| | | |
| | | @Autowired |
| | | private IvrTaskVisitResultMapper ivrTaskVisitResultMapper; |
| | | private IvrLibaTemplateScriptMapper ivrLibaTemplateScriptMapper; |
| | | |
| | | @Autowired |
| | | private IvrTaskVisitResultMapper serviceTaskVisitResultMapper; |
| | | |
| | | @Autowired |
| | | private RedisCache redisCache; |
| | | |
| | | @Autowired |
| | | private IvrLibaExtemplatescriptMapper ivrLibaExtemplatescriptMapper; |
| | | |
| | | @Value("${pri_key}") |
| | | private String pri_key; |
| | | |
| | | |
| | | /** |
| | |
| | | * @return åä¸ä»»å¡ï¼éè®¿ï¼ |
| | | */ |
| | | @Override |
| | | public IvrTaskSingle selectIvrTaskcallById(Long id) { |
| | | return ivrTaskSingleMapper.selectIvrTaskcallById(id); |
| | | public ServiceSubtask selectServiceSubtaskById(Long id) { |
| | | return serviceSubtaskMapper.selectServiceSubtaskById(id); |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢åä¸ä»»å¡ï¼é访ï¼å表 |
| | | * |
| | | * @param ivrTaskcall åä¸ä»»å¡ï¼éè®¿ï¼ |
| | | * @param ServiceSubtask åä¸ä»»å¡ï¼éè®¿ï¼ |
| | | * @return åä¸ä»»å¡ï¼éè®¿ï¼ |
| | | */ |
| | | @Override |
| | | public List<IvrTaskSingle> selectIvrTaskcallList(IvrTaskSingle ivrTaskcall) { |
| | | return ivrTaskSingleMapper.selectIvrTaskcallList(ivrTaskcall); |
| | | public List<ServiceSubtask> selectServiceSubtaskList(ServiceSubtask ServiceSubtask) { |
| | | return serviceSubtaskMapper.selectServiceSubtaskList(ServiceSubtask); |
| | | } |
| | | |
| | | @Override |
| | | public IvrTaskVO queryTaskByCondition(IvrTaskSingle ivrTaskcall) { |
| | | public ServiceTaskVO queryTaskByCondition(ServiceSubtask ServiceSubtask) { |
| | | //å®ä¹æ£è
ä¸åä¸ä»»å¡å
³è表éå |
| | | List<PatTaskRelevance> patTaskRelevances = new ArrayList<>(); |
| | | List<IvrTaskSingle> list = selectIvrTaskcallList(ivrTaskcall); |
| | | List<ServiceSubtask> list = selectServiceSubtaskList(ServiceSubtask); |
| | | if (CollectionUtils.isEmpty(list) || list.size() == 0) { |
| | | return new IvrTaskVO(); |
| | | return new ServiceTaskVO(); |
| | | } |
| | | IvrTask ivrTask = ivrTaskService.selectIvrTaskByTaskid(ivrTaskcall.getTaskid()); |
| | | //å°æ¥åºæ¥çæ°æ®åå
¥ivrTasksingleVOä¸ |
| | | IvrTaskVO ivrTaskVO = DtoConversionUtils.sourceToTarget(list.get(0), IvrTaskVO.class); |
| | | ivrTaskVO.setShowDate(ivrTask.getShowDate()); |
| | | ivrTaskVO.setShowTimeMorn(ivrTask.getShowTimeMorn()); |
| | | ivrTaskVO.setShowTimeNoon(ivrTask.getShowTimeNoon()); |
| | | ivrTaskVO.setShowTimeNight(ivrTask.getShowTimeNight()); |
| | | ivrTaskVO.setPreachform(ivrTask.getPreachform()); |
| | | String sendTimeSlot = ivrTask.getSendTimeSlot(); |
| | | ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(ServiceSubtask.getTaskid()); |
| | | //å°æ¥åºæ¥çæ°æ®åå
¥ServiceSubtaskVOä¸ |
| | | ServiceTaskVO serviceTaskVO = DtoConversionUtils.sourceToTarget(list.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); |
| | | ivrTaskVO.setSendTimeslot(taskSendTimeVOList); |
| | | ivrTaskVO.setSendType(ivrTask.getSendType()); |
| | | serviceTaskVO.setSendTimeslot(taskSendTimeVOList); |
| | | serviceTaskVO.setSendType(serviceTask.getSendType()); |
| | | } |
| | | //ææ¬åéåæ° |
| | | if (com.ruoyi.common.utils.StringUtils.isNotEmpty(ivrTask.getTextParam())) { |
| | | Map<String, Map<String, String>> textParam = objectMapper.readValue(ivrTask.getTextParam(), Map.class); |
| | | ivrTaskVO.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 (IvrTaskSingle ivrTaskcall1 : list) { |
| | | for (ServiceSubtask serviceSubtask1 : list) { |
| | | PatTaskRelevance patTaskRelevance = new PatTaskRelevance(); |
| | | if (!ivrTaskcall1.getHospType().equals("2")) { |
| | | log.info("é访æ¥è¯¢ä¸ä¸ºåºé¢ï¼{}", ivrTaskcall1.getHospType()); |
| | | if (!serviceSubtask1.getHospType().equals("2")) { |
| | | log.info("é访æ¥è¯¢ä¸ä¸ºåºé¢ï¼{}", serviceSubtask1.getHospType()); |
| | | //è·åå°æ£è
ä¿¡æ¯ï¼å¹¶æ¾å
¥å°éåä¸ |
| | | patTaskRelevance.setName(ivrTaskcall1.getSendname()); |
| | | patTaskRelevance.setAge(ivrTaskcall1.getAge()); |
| | | patTaskRelevance.setSfzh(ivrTaskcall1.getSfzh()); |
| | | patTaskRelevance.setPhone(ivrTaskcall1.getPhone()); |
| | | patTaskRelevance.setAddr(ivrTaskcall1.getAddr()); |
| | | patTaskRelevance.setDiagname(ivrTaskcall1.getDiagname()); |
| | | patTaskRelevance.setPatid(ivrTaskcall1.getPatid()); |
| | | 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.setSendState(serviceSubtask1.getSendstate()); |
| | | patTaskRelevances.add(patTaskRelevance); |
| | | } |
| | | if (ivrTaskcall1.getHospType().equals("2")) { |
| | | log.info("é访æ¥è¯¢ä¸ºåºé¢ï¼{}", ivrTaskcall1.getHospType()); |
| | | patTaskRelevance.setName(ivrTaskcall1.getSendname()); |
| | | patTaskRelevance.setAge(ivrTaskcall1.getAge()); |
| | | patTaskRelevance.setSfzh(ivrTaskcall1.getSfzh()); |
| | | patTaskRelevance.setPhone(ivrTaskcall1.getPhone()); |
| | | patTaskRelevance.setAddr(ivrTaskcall1.getAddr()); |
| | | patTaskRelevance.setDeptName(ivrTaskcall1.getDeptname()); |
| | | patTaskRelevance.setBedNo(ivrTaskcall1.getBedNo()); |
| | | patTaskRelevance.setDiagname(ivrTaskcall1.getDiagname()); |
| | | patTaskRelevance.setPatid(ivrTaskcall1.getPatid()); |
| | | 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.setSendState(serviceSubtask1.getSendstate()); |
| | | patTaskRelevances.add(patTaskRelevance); |
| | | } |
| | | } |
| | | |
| | | ivrTaskVO.setPatTaskRelevances(patTaskRelevances); |
| | | return ivrTaskVO; |
| | | serviceTaskVO.setPatTaskRelevances(patTaskRelevances); |
| | | return serviceTaskVO; |
| | | } |
| | | |
| | | @Override |
| | | public List<IvrTaskSingle> patItem(IvrTaskSingle ivrTaskSingle) { |
| | | public List<ServiceSubtask> patItem(ServiceSubtask serviceSubtask) { |
| | | |
| | | |
| | | return this.selectIvrTaskcallList(ivrTaskSingle); |
| | | return this.selectServiceSubtaskList(serviceSubtask); |
| | | } |
| | | |
| | | /** |
| | | * æ°å¢åä¸ä»»å¡ï¼éè®¿ï¼ |
| | | * |
| | | * @param ivrTaskcall åä¸ä»»å¡ï¼éè®¿ï¼ |
| | | * @param serviceSubtask åä¸ä»»å¡ï¼éè®¿ï¼ |
| | | * @return ç»æ |
| | | */ |
| | | @Override |
| | | public int insertIvrTaskcall(IvrTaskSingle ivrTaskcall) { |
| | | ivrTaskcall.setCreateTime(DateUtils.getNowDate()); |
| | | return ivrTaskSingleMapper.insertIvrTaskcall(ivrTaskcall); |
| | | public int insertServiceSubtask(ServiceSubtask serviceSubtask) { |
| | | serviceSubtask.setCreateTime(DateUtils.getNowDate()); |
| | | return serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); |
| | | } |
| | | |
| | | /** |
| | | * ä¿®æ¹åä¸ä»»å¡ï¼éè®¿ï¼ |
| | | * |
| | | * @param ivrTaskcall åä¸ä»»å¡ï¼éè®¿ï¼ |
| | | * @param serviceSubtask åä¸ä»»å¡ï¼éè®¿ï¼ |
| | | * @return ç»æ |
| | | */ |
| | | @Override |
| | | public Boolean updateIvrTaskcall(IvrTaskSingle ivrTaskcall) { |
| | | ivrTaskcall.setUpdateTime(DateUtils.getNowDate()); |
| | | return ivrTaskSingleMapper.updateIvrTaskcall(ivrTaskcall); |
| | | public Boolean updateServiceSubtask(ServiceSubtask serviceSubtask) { |
| | | serviceSubtask.setUpdateTime(DateUtils.getNowDate()); |
| | | return serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return ç»æ |
| | | */ |
| | | @Override |
| | | public int deleteIvrTaskcallByIds(Long[] ids) { |
| | | public int deleteServiceSubtaskByIds(Long[] ids) { |
| | | Integer i = 0; |
| | | for (Long id : ids) { |
| | | i = ivrTaskSingleMapper.deleteIvrTaskcallById(id); |
| | | i = serviceSubtaskMapper.deleteServiceSubtaskById(id); |
| | | } |
| | | return i; |
| | | } |
| | |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public int insertOrUpdateTask(IvrTaskVO ivrTaskVO) { |
| | | if (ObjectUtils.isEmpty(ivrTaskVO)) { |
| | | public int insertOrUpdateTask(ServiceTaskVO serviceTaskVO) { |
| | | if (ObjectUtils.isEmpty(serviceTaskVO)) { |
| | | log.info("ä»»å¡å
¥å为空ï¼è¯·æ£æ¥å
¥å"); |
| | | throw new BaseException("ä»»å¡å
¥å为空ï¼è¯·æ£æ¥å
¥å"); |
| | | } |
| | | Integer integer = 1; |
| | | IvrTask ivrTask = DtoConversionUtils.sourceToTarget(ivrTaskVO, IvrTask.class); |
| | | ivrTask.setTextParam(JSON.toJSONString(ivrTaskVO.getTextParam())); |
| | | if (ivrTaskVO.getIsoperation() != null && ivrTaskVO.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(ivrTaskVO.getSendTimeslot())) |
| | | ivrTask.setSendTimeSlot(JSON.toJSONString(ivrTaskVO.getSendTimeslot())); |
| | | if (ivrTask.getSendState() == null) ivrTask.setSendState(1); |
| | | ivrTask.setTemplateid(ivrTaskVO.getLibtemplateid()); |
| | | ivrTaskService.insertIvrTask(ivrTask); |
| | | if (ObjectUtils.isNotEmpty(serviceTaskVO.getSendTimeslot())) |
| | | serviceTask.setSendTimeSlot(JSON.toJSONString(serviceTaskVO.getSendTimeslot())); |
| | | if (serviceTask.getSendState() == null) serviceTask.setSendState(1); |
| | | serviceTask.setTemplateid(serviceTaskVO.getLibtemplateid()); |
| | | serviceTaskService.insertServiceTask(serviceTask); |
| | | |
| | | //å°ä»»å¡ä¿¡æ¯æ¾å°æå¡è¡¨ä¸ |
| | | IvrTaskSingle ivrTaskcall = DtoConversionUtils.sourceToTarget(ivrTaskVO, IvrTaskSingle.class); |
| | | ivrTaskcall.setTaskid(ivrTask.getTaskid().longValue()); |
| | | ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTaskVO, ServiceSubtask.class); |
| | | serviceSubtask.setTaskid(serviceTask.getTaskid().longValue()); |
| | | //æ°å¢ |
| | | if (CollectionUtils.isNotEmpty(ivrTaskVO.getPatTaskRelevances())) { |
| | | for (PatTaskRelevance patTaskRelevance : ivrTaskVO.getPatTaskRelevances()) { |
| | | if (CollectionUtils.isNotEmpty(serviceTaskVO.getPatTaskRelevances())) { |
| | | for (PatTaskRelevance patTaskRelevance : serviceTaskVO.getPatTaskRelevances()) { |
| | | //å°ä»»å¡ä¿¡æ¯æ°å¢å°é访æå¡è¡¨ä¸ |
| | | ivrTaskcall.setSendname(patTaskRelevance.getName()); |
| | | ivrTaskcall.setAge(patTaskRelevance.getAge()); |
| | | ivrTaskcall.setSfzh(patTaskRelevance.getSfzh()); |
| | | ivrTaskcall.setPhone(patTaskRelevance.getPhone()); |
| | | ivrTaskcall.setAddr(patTaskRelevance.getAddr()); |
| | | ivrTaskcall.setPatid(patTaskRelevance.getPatid()); |
| | | ivrTaskcall.setCreateTime(DateUtils.getNowDate()); |
| | | ivrTaskcall.setSendstate(1L); |
| | | ivrTaskcall.setType(ivrTaskVO.getHospType()); |
| | | ivrTaskSingleMapper.insertIvrTaskcall(ivrTaskcall); |
| | | integer = ivrTaskcall.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.setCreateTime(DateUtils.getNowDate()); |
| | | serviceSubtask.setSendstate(1L); |
| | | serviceSubtask.setType(serviceTaskVO.getHospType()); |
| | | serviceSubtask.setHospType(patTaskRelevance.getHospType()); |
| | | serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); |
| | | integer = serviceSubtask.getId().intValue(); |
| | | } |
| | | } |
| | | |
| | | } else if (ivrTaskVO.getIsoperation() != null && ivrTaskVO.getIsoperation() == 2) { |
| | | } else if (serviceTaskVO.getIsoperation() != null && serviceTaskVO.getIsoperation() == 2) { |
| | | //ä»»å¡ä¿®æ¹ |
| | | if (ObjectUtils.isNotEmpty(ivrTaskVO.getSendTimeslot())) |
| | | ivrTask.setSendTimeSlot(JSON.toJSONString(ivrTaskVO.getSendTimeslot())); |
| | | if (ObjectUtils.isNotEmpty(serviceTaskVO.getSendTimeslot())) |
| | | serviceTask.setSendTimeSlot(JSON.toJSONString(serviceTaskVO.getSendTimeslot())); |
| | | //ä¿®æ¹æä½ï¼éè¦å°stopStateç¶æ+1 |
| | | IvrTask ivrTask1 = ivrTaskService.selectIvrTaskByTaskid(ivrTask.getTaskid()); |
| | | ivrTask.setStopState(ivrTask1.getStopState() + 1); |
| | | ivrTask.setTemplateid(ivrTaskVO.getLibtemplateid()); |
| | | ivrTaskService.updateIvrTask(ivrTask); |
| | | ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceTask.getTaskid()); |
| | | serviceTask.setStopState(serviceTask1.getStopState() + 1); |
| | | serviceTask.setTemplateid(serviceTaskVO.getLibtemplateid()); |
| | | serviceTaskService.updateServiceTask(serviceTask); |
| | | |
| | | if (CollectionUtils.isNotEmpty(ivrTaskVO.getPatTaskRelevances())) { |
| | | for (PatTaskRelevance patTaskRelevance : ivrTaskVO.getPatTaskRelevances()) { |
| | | if (CollectionUtils.isNotEmpty(serviceTaskVO.getPatTaskRelevances())) { |
| | | for (PatTaskRelevance patTaskRelevance : serviceTaskVO.getPatTaskRelevances()) { |
| | | |
| | | IvrTaskSingle ivrTaskcall = DtoConversionUtils.sourceToTarget(ivrTaskVO, IvrTaskSingle.class); |
| | | ivrTaskcall.setSendname(patTaskRelevance.getName()); |
| | | ivrTaskcall.setAge(patTaskRelevance.getAge()); |
| | | ivrTaskcall.setSfzh(patTaskRelevance.getSfzh()); |
| | | ivrTaskcall.setPhone(patTaskRelevance.getPhone()); |
| | | ivrTaskcall.setAddr(patTaskRelevance.getAddr()); |
| | | ivrTaskcall.setPatid(patTaskRelevance.getPatid()); |
| | | ivrTaskcall.setType(ivrTaskVO.getHospType()); |
| | | ivrTaskcall.setCreateTime(DateUtils.getNowDate()); |
| | | |
| | | ivrTaskcall.setTextParam(new Gson().toJson(ivrTaskVO.getTextParam())); |
| | | 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.setType(serviceTaskVO.getHospType()); |
| | | serviceSubtask.setCreateTime(DateUtils.getNowDate()); |
| | | serviceSubtask.setHospType(patTaskRelevance.getHospType()); |
| | | serviceSubtask.setTextParam(new Gson().toJson(serviceTaskVO.getTextParam())); |
| | | if (patTaskRelevance.getIsoperation() != null) { |
| | | if (patTaskRelevance.getIsoperation() == 2) |
| | | ivrTaskSingleMapper.updateIvrTaskcallByCondition(ivrTaskcall); |
| | | serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask); |
| | | if (patTaskRelevance.getIsoperation() == 1) { |
| | | ivrTaskcall.setSendstate(1L); |
| | | ivrTaskSingleMapper.insertIvrTaskcall(ivrTaskcall); |
| | | serviceSubtask.setSendstate(1L); |
| | | serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); |
| | | } |
| | | if (patTaskRelevance.getIsoperation() == 3) |
| | | // éè¿taskidåpatidå»å é¤è¯¥æ¡æ°æ® |
| | | ivrTaskSingleMapper.deleteIvrTaskcallByCondition(ivrTaskVO.getTaskid(), patTaskRelevance.getPatid()); |
| | | serviceSubtaskMapper.deleteServiceSubtaskByCondition(serviceTaskVO.getTaskid(), patTaskRelevance.getPatid()); |
| | | } |
| | | integer = ivrTaskcall.getTaskid().intValue(); |
| | | integer = serviceSubtask.getTaskid().intValue(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | return integer; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | Map<String, Object> map = redisCache.getCacheObject(phoneCallBackVO.getUuid()); |
| | | IvrTaskSingle ivrTaskcall = (IvrTaskSingle) map.get("ivrTaskSingle"); |
| | | List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOs = (List<IvrTaskTemplateScriptVO>) map.get("ivrTaskTemplateScriptVO"); |
| | | ServiceSubtask serviceSubtask = (ServiceSubtask) map.get("ServiceSubtask"); |
| | | List<IvrTaskTemplateScriptVO> IvrTaskTemplateScriptVOs = (List<IvrTaskTemplateScriptVO>) map.get("IvrTaskTemplateScriptVO"); |
| | | //å°uuidæ´æ°å°æ°æ®åºä¸ |
| | | ivrTaskcall.setSenduuid(phoneCallBackVO.getUuid()); |
| | | ivrTaskSingleMapper.updateIvrTaskcall(ivrTaskcall); |
| | | serviceSubtask.setSenduuid(phoneCallBackVO.getUuid()); |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); |
| | | |
| | | //è·å模æ¿ä¿¡æ¯ |
| | | IvrTaskTemplateVO ivrTaskTemplateVO = redisCache.getCacheObject(phoneCallBackVO.getUuid() + "ivrTaskTemplateVO"); |
| | | IvrTaskTemplateVO ivrTaskTemplateVO = redisCache.getCacheObject(phoneCallBackVO.getUuid() + "IvrTaskTemplateVO"); |
| | | |
| | | //è¯é³è¯å«ç»æä¸æ¥æ¥å£: 3 |
| | | Integer noVoice = redisCache.getCacheObject(phoneCallBackVO.getUuid() + "noVoice"); |
| | |
| | | //夿noVoiceæ¯å¦å·²ç»å°äºæå¤§å¼ |
| | | if (noVoice == ivrTaskTemplateVO.getNoVoiceNum().intValue()) { |
| | | //å·²ç»é®äºå¯¹åºçéæ°ï¼å°±å¤ææ¯å¦è¿æä¸ä¸é¢ |
| | | if (nowQuestion.getTargetid() == ivrTaskTemplateScriptVOs.size()) { |
| | | if (nowQuestion.getTargetid() == IvrTaskTemplateScriptVOs.size()) { |
| | | //没æä¸ä¸é¢äºï¼å°±ææçµè¯ï¼ææ¾ç»æè¯ |
| | | redisCache.setCacheObject(phoneCallBackVO.getUuid() + "hangup", 1, 120, TimeUnit.MINUTES); |
| | | phoneUtils.ttsPlayback(ivrTaskTemplateVO.getRevisitAfter(), phoneCallBackVO.getUuid()); |
| | |
| | | } else { |
| | | //æä¸ä¸é¢ |
| | | redisCache.setCacheObject(phoneCallBackVO.getUuid() + "noVoice", 0, 120, TimeUnit.MINUTES); |
| | | IvrTaskTemplateScriptVO nextQuestion = getNextQuestion(ivrTaskTemplateScriptVOs, nowQuestion); |
| | | IvrTaskTemplateScriptVO nextQuestion = getNextQuestion(IvrTaskTemplateScriptVOs, nowQuestion); |
| | | // é®é¢ï¼ å»è°ç¨âttsåæåææ¾âæ¥å£ |
| | | String date = simpleDateFormat1.format(new Date()); |
| | | log.info("å»è°ç¨ttsåæåææ¾æ¥å£: {},uuid为ï¼{}", date, phoneCallBackVO.getUuid()); |
| | |
| | | //说æå¹é
æ£ç¡®äº |
| | | //è¿éåºè¯¥å
å¤æç±»åï¼å»åä¿®æ¹ï¼è®¾ç½®IsUserOperationæ¯åéé¢çæ¹æ³ |
| | | nowQuestion.getIvrTaskScriptTargetoptionList().get(j).setIsUserOperation(true); |
| | | ivrTaskScriptTargetoptionMapper.updateIvrTaskTemplateTargetoption(nowQuestion.getIvrTaskScriptTargetoptionList().get(j)); |
| | | serviceTaskScriptTargetoptionMapper.updateIvrTaskTemplateTargetoption(nowQuestion.getIvrTaskScriptTargetoptionList().get(j)); |
| | | |
| | | //å°éé»ç½®ä¸º0 |
| | | redisCache.setCacheObject(phoneCallBackVO.getUuid() + "noVoice", 0, 120, TimeUnit.MINUTES); |
| | | redisCache.setCacheObject(phoneCallBackVO.getUuid() + "mateNum", 0, 120, TimeUnit.MINUTES); |
| | | |
| | | //å°æ£è
çåç¾åè¿è¡¨é |
| | | IvrTaskVisitResult ivrTaskVisitResult = DtoConversionUtils.sourceToTarget(ivrTaskcall, IvrTaskVisitResult.class); |
| | | ivrTaskVisitResult.setId(null); |
| | | ivrTaskVisitResult.setQuestion(nowQuestion.getQuestionText()); |
| | | ivrTaskVisitResult.setPatientAnswer(phoneCallBackVO.getTextResult()); |
| | | ivrTaskVisitResult.setCreateTime(new Date()); |
| | | ivrTaskVisitResult.setOptionResult(nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getTargetvalue()); |
| | | ivrTaskVisitResultMapper.insertIvrTaskVisitResult(ivrTaskVisitResult); |
| | | IvrTaskVisitResult serviceTaskVisitResult = DtoConversionUtils.sourceToTarget(serviceSubtask, IvrTaskVisitResult.class); |
| | | serviceTaskVisitResult.setId(null); |
| | | serviceTaskVisitResult.setQuestion(nowQuestion.getQuestionText()); |
| | | serviceTaskVisitResult.setPatientAnswer(phoneCallBackVO.getTextResult()); |
| | | serviceTaskVisitResult.setCreateTime(new Date()); |
| | | serviceTaskVisitResult.setOptionResult(nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getTargetvalue()); |
| | | serviceTaskVisitResultMapper.insertIvrTaskVisitResult(serviceTaskVisitResult); |
| | | |
| | | //å°å¹é
å°çæ è¯æ¹ætrue |
| | | isppd = true; |
| | | |
| | | //è·åä¸ä¸é¢ |
| | | Long nextQuestion = nowQuestion.getIvrTaskScriptTargetoptionList().get(j).getNextQuestion(); |
| | | for (IvrTaskTemplateScriptVO script : ivrTaskTemplateScriptVOs) { |
| | | for (IvrTaskTemplateScriptVO script : IvrTaskTemplateScriptVOs) { |
| | | if (script.getTargetid() == nextQuestion) { |
| | | QuestionMessage questionMessage = new QuestionMessage(); |
| | | questionMessage.setNowQuestion(script); |
| | | questionMessage.setQuestionList(ivrTaskTemplateScriptVOs); |
| | | questionMessage.setQuestionList(IvrTaskTemplateScriptVOs); |
| | | redisCache.setCacheObject(phoneCallBackVO.getUuid() + "returnQues", questionMessage, 120, TimeUnit.MINUTES); |
| | | phoneUtils.ttsPlayback(script.getQuestionText(), phoneCallBackVO.getUuid()); |
| | | return; |
| | | } else if (nextQuestion > ivrTaskTemplateScriptVOs.size()) { |
| | | } else if (nextQuestion > IvrTaskTemplateScriptVOs.size()) { |
| | | //没æä¸ä¸é¢äºï¼å°±ç»æäº |
| | | String date = simpleDateFormat1.format(new Date()); |
| | | log.error("没æä¸ä¸é¢äºï¼å°±ç»æäº: {},uuid为ï¼{}", date, phoneCallBackVO.getUuid()); |
| | |
| | | //æ å¹é
次æ°å»å¤ææ¯å¦å°æå¤§è¯¢é®æ¬¡æ°ï¼å¹¶ä¸ææçé项é½å¹é
å®äº |
| | | if (mateNum == ivrTaskTemplateVO.getMateNum().intValue()) { |
| | | //妿ä¸ä¸é¢ä¸ºç©º.åæ°çæ°æ®è¿å,å¹¶å ä¸æè°¢è¯ |
| | | if (nowQuestion.getTargetid() < ivrTaskTemplateScriptVOs.size()) { |
| | | if (nowQuestion.getTargetid() < IvrTaskTemplateScriptVOs.size()) { |
| | | QuestionMessage questionMessage = new QuestionMessage(); |
| | | IvrTaskTemplateScriptVO nextQuestion = getNextQuestion(ivrTaskTemplateScriptVOs, nowQuestion); |
| | | questionMessage.setQuestionList(ivrTaskTemplateScriptVOs); |
| | | IvrTaskTemplateScriptVO nextQuestion = getNextQuestion(IvrTaskTemplateScriptVOs, nowQuestion); |
| | | questionMessage.setQuestionList(IvrTaskTemplateScriptVOs); |
| | | questionMessage.setNowQuestion(nextQuestion); |
| | | redisCache.setCacheObject(phoneCallBackVO.getUuid() + "returnQues", questionMessage, 120, TimeUnit.MINUTES); |
| | | redisCache.setCacheObject(phoneCallBackVO.getUuid() + "mateNum", 0, 120, TimeUnit.MINUTES); |
| | |
| | | //// e.printStackTrace(); |
| | | //// } |
| | | // |
| | | // IvrTaskSingle ivrTaskcall = (IvrTaskSingle) map.get("ivrTaskcall"); |
| | | // ServiceSubtask ServiceSubtask = (ServiceSubtask) map.get("ServiceSubtask"); |
| | | // List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOs = (List<IvrLibaTemplateScriptVO>) map.get("ivrLibaTemplateScriptVO"); |
| | | // //å°uuidæ´æ°å°æ°æ®åºä¸ |
| | | // ivrTaskcall.setSenduuid(phoneCallBackVO.getUuid()); |
| | | // ivrTaskSingleMapper.updateIvrTaskcall(ivrTaskcall); |
| | | // ServiceSubtask.setSenduuid(phoneCallBackVO.getUuid()); |
| | | // ServiceSubtaskMapper.updateServiceSubtask(ServiceSubtask); |
| | | // |
| | | // //è·å模æ¿ä¿¡æ¯ |
| | | // IvrLibaTemplateVO ivrLibaTemplateVO = redisCache.getCacheObject(phoneCallBackVO.getUuid() + "ivrLibaTemplateVO"); |
| | |
| | | // redisCache.setCacheObject(phoneCallBackVO.getUuid() + "uint8", 1, 120, TimeUnit.MINUTES); |
| | | // } |
| | | // |
| | | // if (integer != null && integer == ivrTaskcall.getRecallcount().intValue()) { |
| | | // if (integer != null && integer == ServiceSubtask.getRecallcount().intValue()) { |
| | | // log.info("æ 人æ¥å¬ï¼{}, {}", phoneCallBackVO.getErrResult(), phoneCallBackVO.getUuid()); |
| | | // //è¿ç»æè§å®æ¬¡ï¼å¦æè¦æ²¡äººæ¥ï¼é£å°±ç»æ |
| | | // ivrTaskcall.setResult(phoneCallBackVO.getErrResult()); |
| | | // ivrTaskSingleMapper.updateIvrTaskcall(ivrTaskcall); |
| | | // ServiceSubtask.setResult(phoneCallBackVO.getErrResult()); |
| | | // ServiceSubtaskMapper.updateServiceSubtask(ServiceSubtask); |
| | | // redisCache.deleteObject(phoneCallBackVO.getUuid() + "uint8"); |
| | | // } else if (integer != null && integer < ivrTaskcall.getRecallcount().intValue()) { |
| | | // } else if (integer != null && integer < ServiceSubtask.getRecallcount().intValue()) { |
| | | // //è¿è¡éæ¨ |
| | | // PhoneUtils phoneUtils = new PhoneUtils(); |
| | | // phoneUtils.ob(null, null, null, null, null, null, null, ivrTaskcall.getPhone(), phoneCallBackVO.getUuid(), true); |
| | | // phoneUtils.ob(null, null, null, null, null, null, null, ServiceSubtask.getPhone(), phoneCallBackVO.getUuid(), true); |
| | | // } |
| | | // } |
| | | // |
| | |
| | | // // 0-æ¯é |
| | | // Integer integer = redisCache.getCacheObject(phoneCallBackVO.getUuid() + "enumState"); |
| | | // |
| | | // if (integer != null && integer < ivrTaskcall.getRecallcount().intValue()) { |
| | | // if (integer != null && integer < ServiceSubtask.getRecallcount().intValue()) { |
| | | // redisCache.setCacheObject(phoneCallBackVO.getUuid() + "enumState", integer + 1, 120, TimeUnit.MINUTES); |
| | | // } else if (integer == null) { |
| | | // redisCache.setCacheObject(phoneCallBackVO.getUuid() + "enumState", 1, 120, TimeUnit.MINUTES); |
| | | // } else if (integer != null && integer == ivrTaskcall.getRecallcount().intValue()) { |
| | | // ivrTaskcall.setResult("æ 人æ¥å¬"); |
| | | // ivrTaskSingleMapper.updateIvrTaskcall(ivrTaskcall); |
| | | // } else if (integer != null && integer == ServiceSubtask.getRecallcount().intValue()) { |
| | | // ServiceSubtask.setResult("æ 人æ¥å¬"); |
| | | // ServiceSubtaskMapper.updateServiceSubtask(ServiceSubtask); |
| | | // redisCache.deleteObject(phoneCallBackVO.getUuid() + "enumState"); |
| | | // } |
| | | // } else if (phoneCallBackVO.getEnumState() == 2) { |
| | | // //æ£è
ææçµè¯ |
| | | // log.info("æ£è
ææçµè¯ï¼{}", phoneCallBackVO.getUuid()); |
| | | // ivrTaskcall.setResult(phoneCallBackVO.getHangUpResult()); |
| | | // ivrTaskSingleMapper.updateIvrTaskcall(ivrTaskcall); |
| | | // ServiceSubtask.setResult(phoneCallBackVO.getHangUpResult()); |
| | | // ServiceSubtaskMapper.updateServiceSubtask(ServiceSubtask); |
| | | // redisCache.deleteObject(phoneCallBackVO.getUuid() + "enumState"); |
| | | // } |
| | | // |
| | |
| | | // return phoneCallBackVO; |
| | | // } |
| | | |
| | | @Override |
| | | public Integer saveQuestionAnswer(ServiceSubTaskDetailReq serviceSubTaskDetailReq) { |
| | | RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); |
| | | Long tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskDetailReq.getParam1(), pri_key)); |
| | | Long pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskDetailReq.getParam2(), pri_key)); |
| | | ServiceSubtask ivrTaskSingle = new ServiceSubtask(); |
| | | ivrTaskSingle.setTaskid(tid); |
| | | ivrTaskSingle.setPatid(pid); |
| | | List<ServiceSubtask> ivrTaskSingles = serviceSubtaskMapper.selectServiceSubtaskList(ivrTaskSingle); |
| | | if (CollectionUtils.isEmpty(ivrTaskSingles) || ivrTaskSingles.size() == 0) { |
| | | log.error("æ¥éäºï¼ivrTaskSinglesæ°æ®ä¸ºç©ºäºï¼{}", ivrTaskSingle); |
| | | return 0; |
| | | } |
| | | int i = 0; |
| | | if (CollectionUtils.isNotEmpty(serviceSubTaskDetailReq.getIvrTaskcalldetailList())) { |
| | | //é访 |
| | | for (IvrTaskcalldetail ivrTaskcalldetail : serviceSubTaskDetailReq.getIvrTaskcalldetailList()) { |
| | | ivrTaskcalldetail.setCallid(ivrTaskSingles.get(0).getId().toString()); |
| | | ivrTaskcalldetail.setCalldetailid(UUID.randomUUID().toString()); |
| | | ivrTaskcalldetail.setCreateTime(new Date()); |
| | | i = ivrTaskcalldetailMapper.insertIvrTaskcalldetail(ivrTaskcalldetail); |
| | | } |
| | | } else if (CollectionUtils.isNotEmpty(serviceSubTaskDetailReq.getSvyTasksingledetailList())) { |
| | | //é®å· |
| | | for (SvyTasksingledetail svyTasksingledetail : serviceSubTaskDetailReq.getSvyTasksingledetailList()) { |
| | | svyTasksingledetail.setCallid(ivrTaskSingles.get(0).getId().toString()); |
| | | svyTasksingledetail.setCalldetailid(UUID.randomUUID().toString()); |
| | | svyTasksingledetail.setCreateTime(new Date()); |
| | | i = svyTasksingledetailMapper.insertSvyTasksingledetail(svyTasksingledetail); |
| | | } |
| | | } |
| | | return i; |
| | | } |
| | | |
| | | private IvrTaskTemplateScriptVO getNextQuestion(List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOList, IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO) { |
| | | private IvrTaskTemplateScriptVO getNextQuestion(List<IvrTaskTemplateScriptVO> IvrTaskTemplateScriptVOList, IvrTaskTemplateScriptVO IvrTaskTemplateScriptVO) { |
| | | |
| | | for (int j = 0; j < ivrTaskTemplateScriptVOList.size(); j++) { |
| | | if (ivrTaskTemplateScriptVOList.get(j).getTargetid() == ivrTaskTemplateScriptVO.getTargetid() + 1) { |
| | | for (int j = 0; j < IvrTaskTemplateScriptVOList.size(); j++) { |
| | | if (IvrTaskTemplateScriptVOList.get(j).getTargetid() == IvrTaskTemplateScriptVO.getTargetid() + 1) { |
| | | // 对该æ¡templateScriptVOè¿è¡å¤ç |
| | | return ivrTaskTemplateScriptVOList.get(j); |
| | | return IvrTaskTemplateScriptVOList.get(j); |
| | | } |
| | | } |
| | | return null; |