| | |
| | | package com.ruoyi.web.component; |
| | | |
| | | import afu.org.checkerframework.checker.oigj.qual.O; |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.google.gson.Gson; |
| | |
| | | import com.smartor.service.IBaseSmsaccountService; |
| | | import com.smartor.service.IServiceOutPathService; |
| | | import com.smartor.service.IServiceSubtaskRecordService; |
| | | import com.sun.org.apache.bcel.internal.generic.NEW; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.apache.commons.lang3.ObjectUtils; |
| | |
| | | import java.util.concurrent.Executors; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | import static cn.hutool.core.convert.Convert.numberToWord; |
| | | import static cn.hutool.core.convert.Convert.toHex; |
| | | |
| | | @Slf4j |
| | |
| | | public void onMessage(Message message, byte[] pattern) { |
| | | log.info("监听Redis key过期,key:{},channel:{}", message.toString(), new String(pattern)); |
| | | String ip = localIP; |
| | | log.error("本机的网络IP为:{}", ip); |
| | | log.info("本机的网络IP为:{}", ip); |
| | | String content = message.toString(); |
| | | //判断是不是任务信息,如果不是,直接返回,不需要执行 |
| | | if (!content.contains("taskid") || !port.equals("8095")) { |
| | |
| | | * @param commonTaskcallMQ |
| | | */ |
| | | public void tsakHandle(CommonTaskcallMQ commonTaskcallMQ, String ip, Integer type) { |
| | | log.error("进任务了吗?{}", commonTaskcallMQ); |
| | | log.info("进任务了吗?{}", commonTaskcallMQ); |
| | | //判断一下commonTaskcallMQ中的stopstate是否与ivr_task中的一致,不一致,则说明是暂停了 |
| | | ServiceTask ivrTask1 = ivrTaskMapper.selectServiceTaskByTaskid(commonTaskcallMQ.getTaskid()); |
| | | |
| | |
| | | if (StringUtils.isNotEmpty(commonTaskcallMQ.getPreachform())) { |
| | | //如何任务发送方式不为空 |
| | | String[] split = commonTaskcallMQ.getPreachform().split(","); |
| | | log.error("split的值为:{}", split); |
| | | log.info("split的值为:{}", split); |
| | | |
| | | //定义一个集合,用与存没有执行的子任务ID |
| | | List<Long> subIds = new ArrayList<>(); |
| | |
| | | //说明是立即发送 |
| | | ServiceSubtaskVO serviceSubtask1 = new ServiceSubtaskVO(); |
| | | serviceSubtask1.setTaskid(commonTaskcallMQ.getTaskid()); |
| | | log.error("缓存中serviceSubtask1的值为:{}", serviceSubtask1); |
| | | log.info("缓存中serviceSubtask1的值为:{}", serviceSubtask1); |
| | | List<String> list = new ArrayList<>(); |
| | | List<ServiceSubtask> selectServiceSubtaskList1 = ivrTaskcallMapper.selectServiceSubtaskList(serviceSubtask1); |
| | | for (ServiceSubtask serviceSubtask2 : selectServiceSubtaskList1) { |
| | | list.add(serviceSubtask2.getId().toString()); |
| | | } |
| | | log.error("缓存中cache-0的值为:{}", list); |
| | | log.info("缓存中cache-0的值为:{}", list); |
| | | // redisCache.setCacheListLeft("cache-0", list); |
| | | redisCache.setCacheListLeftAndDistinct("cache-0", list); |
| | | } else { |
| | |
| | | subIds.clear(); |
| | | subIds.addAll(lssubIds); |
| | | lssubIds.clear(); |
| | | } else if (descByCode.equals("多媒体")) { |
| | | } |
| | | else if (descByCode.equals("多媒体")) { |
| | | //多媒体 |
| | | continue; |
| | | } else if (descByCode.equals("纸质")) { |
| | | } |
| | | else if (descByCode.equals("纸质")) { |
| | | //纸质 |
| | | continue; |
| | | } else if (descByCode.equals("短信")) { |
| | | } |
| | | else if (descByCode.equals("短信")) { |
| | | //短信 |
| | | //对url中两个参数加密 |
| | | RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); |
| | |
| | | iServiceOutPathService.updateServiceOutPath(serviceOutPath); |
| | | sendMagParam.setPhone(serviceSubtask.getPhone()); |
| | | sendMagParam.setUrl(ip + ":" + req_path + "/sf?p=" + format); |
| | | if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) { |
| | | sendMagParam.setContent("【景宁畲族自治县人民医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); |
| | | } else if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) { |
| | | sendMagParam.setContent("【丽水中医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); |
| | | } else |
| | | if (visitHosp == 2) { |
| | | sendMagParam.setContent("您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); |
| | | } else if (visitHosp == 1) { |
| | | sendMagParam.setContent("【新华医院】您好,邀请您填写出院随访调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!"); |
| | | } |
| | | |
| | | } else if (type == 2) { |
| | | //问券(问题) |
| | |
| | | //丽水的短信发送方式 |
| | | Map<String, String> map = MsgLSEnum.getAddressByCode(serviceSubtask.getOrgid()); |
| | | String token = LSHospTokenUtil.getToken(serviceSubtask.getOrgid()); |
| | | log.error("-----------token的值为:{}", token); |
| | | log.info("-----------token的值为:{}", token); |
| | | if (ObjectUtils.isNotEmpty(map) && StringUtils.isEmpty(map.get("address"))) { |
| | | ServiceSubtask ss = new ServiceSubtask(); |
| | | ss.setResult("error"); |
| | | ss.setRemark("短信发送失败,该机构没有配置短信地址"); |
| | | ss.setSendstate(5L); |
| | | ss.setId(serviceSubtask.getId()); |
| | | ss.setFinishtime(new Date()); |
| | | // ss.setFinishtime(new Date()); |
| | | serviceSubtaskMapper.updateServiceSubtask(ss); |
| | | continue; |
| | | } |
| | |
| | | subIds.clear(); |
| | | subIds.addAll(lssubIds); |
| | | lssubIds.clear(); |
| | | } else if (descByCode.equals("公众号")) { |
| | | } |
| | | else if (descByCode.equals("公众号")) { |
| | | //公众号 |
| | | RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); |
| | | String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); |
| | |
| | | ss.setRemark("公众号发送失败,his系统的患者id为空"); |
| | | ss.setSendstate(5L); |
| | | ss.setId(serviceSubtask.getId()); |
| | | ss.setFinishtime(new Date()); |
| | | // ss.setFinishtime(new Date()); |
| | | serviceSubtaskMapper.updateServiceSubtask(ss); |
| | | continue; |
| | | } |
| | |
| | | ss.setRemark("该机构的公众号配置信息不全,无法通过公众号发送"); |
| | | ss.setSendstate(5L); |
| | | ss.setId(serviceSubtask.getId()); |
| | | ss.setFinishtime(new Date()); |
| | | // ss.setFinishtime(new Date()); |
| | | serviceSubtaskMapper.updateServiceSubtask(ss); |
| | | continue; |
| | | } |
| | |
| | | serviceSubtask.setRemark("发送失败"); |
| | | serviceSubtask.setSendstate(5L); |
| | | serviceSubtask.setId(id); |
| | | serviceSubtask.setFinishtime(new Date()); |
| | | // serviceSubtask.setFinishtime(new Date()); |
| | | serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); |
| | | } |
| | | } |