liusheng
2024-04-24 01c9667cfb06970564e837dc343d5cee0eb3aed7
smartor/src/main/java/com/smartor/service/impl/IvrTaskSingleServiceImpl.java
@@ -88,41 +88,68 @@
    }
    @Override
    public List<IvrVisitInfoVo> patItem(IvrTaskSingle ivrTaskcall) {
        List<IvrTaskSingle> list = this.selectIvrTaskcallList(ivrTaskcall);
    public IvrTaskSingleVO queryTaskByCondition(IvrTaskSingle ivrTaskcall) {
        //定义患者与单一任务关联表集合
        List<PatTaskRelevance> patTaskRelevances = new ArrayList<>();
        List<IvrTaskSingle> list = selectIvrTaskcallList(ivrTaskcall);
        if (CollectionUtils.isEmpty(list)) {
            new BaseException("该任务不存在");
        }
        //将查出来的数据倒入IvrTaskcallVO中
        IvrTaskSingleVO ivrTaskcallVO2 = DtoConversionUtils.sourceToTarget(list.get(0), IvrTaskSingleVO.class);
        String sendTimeSlot = list.get(0).getSendTimeSlot();
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            //获取到发送时间的集合
            if (com.ruoyi.common.utils.StringUtils.isNotEmpty(sendTimeSlot)) {
                List<TaskSendTimeVO> taskSendTimeVOList = objectMapper.readValue(sendTimeSlot, List.class);
                ivrTaskcallVO2.setSendTimeslot(taskSendTimeVOList);
            }
            //文本变量参数
            if (com.ruoyi.common.utils.StringUtils.isNotEmpty(list.get(0).getTextParam())) {
                Map<String, Map<String, String>> textParam = objectMapper.readValue(list.get(0).getTextParam(), Map.class);
                ivrTaskcallVO2.setTextParam(textParam);
            }
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        //定义返参数据
        List<IvrVisitInfoVo> visitInfoVos = new ArrayList<>();
        for (IvrTaskSingle ivrTaskcall1 : list) {
            IvrVisitInfoVo ivrVisitInfoVo = DtoConversionUtils.sourceToTarget(ivrTaskcall1, IvrVisitInfoVo.class);
            ivrVisitInfoVo.setPatientName(ivrTaskcall1.getSendname());
            if (ivrTaskcall.getRecordid() != null) {
                if (ivrTaskcall1.getHospType().equals("1")) {
                    //门诊随访
                    PatMedOuthosp patMedOuthosp = patMedOuthospMapper.selectPatMedOuthospById(ivrTaskcall.getRecordid());
                    ivrVisitInfoVo.setDiagname(patMedOuthosp.getDiagname());
                    ivrVisitInfoVo.setDeptname(patMedOuthosp.getDeptname());
                    ivrVisitInfoVo.setAdmitdate(patMedOuthosp.getAdmitdate());
                    ivrVisitInfoVo.setVisitTime(ivrTaskcall1.getSendTimeSlot());
                    ivrVisitInfoVo.setState(ivrTaskcall1.getSendstate());
                    ivrVisitInfoVo.setHospno(patMedOuthosp.getOuthospno());
                    visitInfoVos.add(ivrVisitInfoVo);
                } else if (ivrTaskcall1.getHospType().equals("2")) {
                    //出院
                    PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(ivrTaskcall.getRecordid());
                    ivrVisitInfoVo.setDiagname(patMedInhosp.getDiagname());
                    ivrVisitInfoVo.setDeptname(patMedInhosp.getDeptname());
                    ivrVisitInfoVo.setAdmitdate(patMedInhosp.getStarttime());
                    ivrVisitInfoVo.setVisitTime(ivrTaskcall1.getSendTimeSlot());
                    ivrVisitInfoVo.setState(ivrTaskcall1.getSendstate());
                    ivrVisitInfoVo.setHospno(patMedInhosp.getInhospno());
                    ivrVisitInfoVo.setRoomno(patMedInhosp.getRoomno());
                    ivrVisitInfoVo.setBedno(patMedInhosp.getBedno());
                    visitInfoVos.add(ivrVisitInfoVo);
                }
            PatTaskRelevance patTaskRelevance = new 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.setDiagname(ivrTaskcall1.getDiagname());
                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.getBadNo());
                patTaskRelevance.setDiagname(ivrTaskcall1.getDiagname());
                patTaskRelevances.add(patTaskRelevance);
            }
        }
        return visitInfoVos;
        ivrTaskcallVO2.setPatTaskRelevances(patTaskRelevances);
        return ivrTaskcallVO2;
    }
    @Override
    public List<IvrTaskSingle> patItem(IvrTaskSingle ivrTaskSingle) {
        return this.selectIvrTaskcallList(ivrTaskSingle);
    }
    /**
@@ -152,7 +179,6 @@
    /**
     * 批量删除单一任务(随访)
     *
     * @param ids 需要删除的单一任务(随访)主键
     * @return 结果
     */
    @Override
@@ -167,7 +193,6 @@
    /**
     * 单一任务
     *
     * @param ivrTaskcallVO 单一任务
     * @return 结果
     */
    @Transactional(rollbackFor = Exception.class)
@@ -183,7 +208,7 @@
            IvrTask ivrTask = DtoConversionUtils.sourceToTarget(ivrTaskcallVO, IvrTask.class);
            Integer taskId = ivrTaskService.insertIvrTask(ivrTask);
            ivrTaskcallVO.setTaskid(taskId.longValue());
            ivrTaskcallVO.setTaskid(ivrTask.getTaskid().longValue());
            //新增
            if (CollectionUtils.isNotEmpty(ivrTaskcallVO.getPatTaskRelevances())) {
                for (PatTaskRelevance patTaskRelevance : ivrTaskcallVO.getPatTaskRelevances()) {
@@ -356,7 +381,7 @@
                } else if (integer != null && integer < ivrTaskcall.getRecallcount().intValue()) {
                    //进行重拨
                    PhoneUtils phoneUtils = new PhoneUtils();
                    phoneUtils.ob(phoneCallBackVO.getUuid(), null, ivrTaskcall.getPhone(), null, null, null, null, null, null, null, null);
                    phoneUtils.ob(null, null, null, null, null, null, null, ivrTaskcall.getPhone(), phoneCallBackVO.getUuid(), true);
                }
            }