liusheng
7 天以前 bd6c66c1a161e9f0fe94b94bed7935b2bde541f2
ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -11,9 +11,11 @@
import com.ruoyi.common.enums.WxGZHEnum;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.HttpUtil;
import com.ruoyi.common.utils.OkHttpExample;
import com.ruoyi.common.utils.RSAPublicKeyExample;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.http.HttpUtils;
import com.smartor.common.LSHospTokenUtil;
import com.smartor.domain.*;
import com.smartor.mapper.PatArchiveMapper;
import com.smartor.mapper.ServiceSubtaskMapper;
@@ -32,6 +34,7 @@
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.security.MessageDigest;
import java.util.*;
import java.util.concurrent.ExecutorService;
@@ -90,6 +93,9 @@
    @Value("${visitHosp}")
    private Integer visitHosp;
    @Value("${server.port}")
    private String port;
    // 创建固定大小的线程池
    private static final ExecutorService executorService = Executors.newFixedThreadPool(10);
@@ -104,7 +110,7 @@
        log.error("本机的网络IP为:{}", ip);
        String content = message.toString();
        //判断是不是任务信息,如果不是,直接返回,不需要执行
        if (!content.contains("taskid")) {
        if (!content.contains("taskid") || !port.equals("8095")) {
            log.error("不是任务信息");
            return;
        }
@@ -313,7 +319,13 @@
                                iServiceOutPathService.updateServiceOutPath(serviceOutPath);
                                sendMagParam.setPhone(serviceSubtask.getPhone());
                                sendMagParam.setUrl(ip + ":" + req_path + "/sf?p=" + format);
                                sendMagParam.setContent("【新华医院】您好,邀请您填写出院随访调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!");
                                if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) {
                                    sendMagParam.setContent("【景宁畲族自治县人民医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!");
                                } else if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) {
                                    sendMagParam.setContent("【丽水中医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!");
                                } else
                                    sendMagParam.setContent("【新华医院】您好,邀请您填写出院随访调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!");
                            } else if (type == 2) {
                                //问券(问题)
                                ServiceOutPath serviceOutPath = new ServiceOutPath();
@@ -331,7 +343,12 @@
//                                sendMagParam.setUrl(ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false");
                                sendMagParam.setPhone(serviceSubtask.getPhone());
                                sendMagParam.setUrl(ip + ":" + req_path + "/wt?p=" + format);
                                sendMagParam.setContent("【新华医院】您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!");
                                if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) {
                                    sendMagParam.setContent("【景宁畲族自治县人民医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!");
                                } else if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) {
                                    sendMagParam.setContent("【丽水中医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!");
                                } else
                                    sendMagParam.setContent("【新华医院】您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!");
                            } else if (type == 3) {
                                //宣教
                                ServiceOutPath serviceOutPath = new ServiceOutPath();
@@ -349,7 +366,12 @@
//                                sendMagParam.setUrl(ip + ":" + req_path + "/outsideChainxj?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false");
                                sendMagParam.setPhone(serviceSubtask.getPhone());
                                sendMagParam.setUrl(ip + ":" + req_path + "/xj?p=" + format);
                                sendMagParam.setContent("【新华医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!");
                                if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) {
                                    sendMagParam.setContent("【景宁畲族自治县人民医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!");
                                } else if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) {
                                    sendMagParam.setContent("【丽水中医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!");
                                } else
                                    sendMagParam.setContent("【新华医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!");
                            }
                            //短信还需要模板
                            String s = null;
@@ -361,8 +383,10 @@
                                s = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req));
                            } else if (visitHosp == 2) {
                                //丽水的短信发送方式
                                String address = MsgLSEnum.getAddressByCode(serviceSubtask.getOrgid());
                                if (StringUtils.isEmpty(address)) {
                                Map<String, String> map = MsgLSEnum.getAddressByCode(serviceSubtask.getOrgid());
                                String token = LSHospTokenUtil.getToken(serviceSubtask.getOrgid());
                                log.error("-----------token的值为:{}", token);
                                if (ObjectUtils.isNotEmpty(map) && StringUtils.isEmpty(map.get("address"))) {
                                    ServiceSubtask ss = new ServiceSubtask();
                                    ss.setResult("error");
                                    ss.setRemark("短信发送失败,该机构没有配置短信地址");
@@ -372,12 +396,12 @@
                                    serviceSubtaskMapper.updateServiceSubtask(ss);
                                    continue;
                                }
                                log.error("---------mq丽水短信发送入参address:{},  sendMagParam:{},  orgid:{}-------", address, sendMagParam, serviceSubtask.getOrgid());
                                String dxCode = getDXCode(address, sendMagParam.getPhone(), sendMagParam.getContent(), "", "", MsgLSEnum.getHeaderByCode(serviceSubtask.getOrgid()));
                                log.error("---------mq丽水短信发送入参address:{},  sendMagParam:{},  orgid:{}-------", map.get("address"), sendMagParam, serviceSubtask.getOrgid());
                                String dxCode = getDXCode(map.get("address"), sendMagParam.getPhone(), sendMagParam.getContent(), map.get("sendPersonId"), map.get("sendPersonName"), MsgLSEnum.getHeaderByCode(serviceSubtask.getOrgid()), token);
                                log.error("---------丽水短信发送结果:{}-------", dxCode);
                                ObjectMapper objectMapper = new ObjectMapper();
                                Map<String, Object> textParam = objectMapper.readValue(dxCode, Map.class);
                                String code = textParam.get("code").toString();
                                String code = textParam.get("Code").toString();
                                if (code.equals("0")) {
                                    s = "true";
                                } else {
@@ -385,17 +409,28 @@
                                }
                            }
                            if (s.equals("true")) {
                                //在子任务表里记录一下
                                log.error("serviceSubtask保存成功了吗?:{}", s);
                                String uuid = UUID.randomUUID().toString();
                                serviceSubtask.setResult("success");
                                serviceSubtask.setRemark("短信发送成功");
                                serviceSubtask.setGuid(uuid);
                                serviceSubtask.setSendstate(3L);
                                serviceSubtask.setFinishtime(new Date());
                                serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                                //任务发送记录
                                ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                                serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
                                serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId());
                                serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
                                serviceSubtaskRecord.setUuid(uuid);
                                serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
                                serviceSubtaskRecord.setPreachform("4");
                                serviceSubtaskRecord.setPreachform("5");
                                serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                                serviceSubtaskRecord.setResult("success");
                                serviceSubtaskRecord.setRemark("短信发送成功");
                                lssubIds.add(serviceSubtask.getId());
                                serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                                continue;
                                log.error("serviceSubtaskRecord保存成功了吗?:{}", serviceSubtaskRecord);
                            }
                        } catch (Exception e) {
                            ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
@@ -413,26 +448,7 @@
                            continue;
                        }
                        //在子任务表里记录一下
                        String uuid = UUID.randomUUID().toString();
                        serviceSubtask.setResult("success");
                        serviceSubtask.setRemark("短信发送成功");
                        serviceSubtask.setGuid(uuid);
                        serviceSubtask.setSendstate(3L);
                        serviceSubtask.setFinishtime(new Date());
                        serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                        //任务发送记录
                        ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                        serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
                        serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId());
                        serviceSubtaskRecord.setUuid(uuid);
                        serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
                        serviceSubtaskRecord.setPreachform("5");
                        serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                        serviceSubtaskRecord.setResult("success");
                        serviceSubtaskRecord.setRemark("短信发送成功");
                        serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                    }
                    if (CollectionUtils.isEmpty(lssubIds)) {
                        //如果“临时子任务”为空,说明全发送完了
@@ -701,7 +717,7 @@
    }
    private String getDXCode(String address, String ShouJiHM, String FaSongNR, String FaSongRID, String FaSongRXM, Map<String, Object> headerMap) {
    private String getDXCode(String address, String ShouJiHM, String FaSongNR, String FaSongRID, String FaSongRXM, Map<String, Object> headerMap, String token) {
        Map<String, Object> map = new LinkedHashMap<>();
        Map<String, Object> YeWuXX = new LinkedHashMap<>();
@@ -713,11 +729,17 @@
        YeWuXX.put("DuanXinXX", DuanXinXX);
        map.put("XiaoXiTou", headerMap);
        map.put("DuanXinXX", DuanXinXX);
        map.put("YeWuXX", YeWuXX);
        String body = new Gson().toJson(map);
        String result = HttpUtils.sendPost(address, body);
//        String result = HttpUtils.sendPost(address, body);
        String result = null;
        try {
            result = OkHttpExample.sendPostRequest(address, body, token);
        } catch (IOException e) {
            e.printStackTrace();
        }
        log.error("--------result的值为:{}-----", result);
        JSONObject jsonObject = JSONObject.parseObject(result);