陈昶聿
12 小时以前 1d76f1864c507b99b153d63d53d7bb7f32c89ec3
ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -17,6 +17,8 @@
import com.ruoyi.common.utils.RSAPublicKeyExample;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.http.HttpUtils;
import com.ruoyi.common.utils.sign.Md5Utils;
import com.ruoyi.common.utils.sms.smsUtils;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.service.ISysConfigService;
import com.smartor.common.LSHospTokenUtil;
@@ -98,6 +100,12 @@
    @Value("${xhsmsPath}")
    private String xhsmsPath;
    @Value("${xhsmsAccount}")
    private String xhsmsAccount;
    @Value("${xhsmsPwd}")
    private String xhsmsPwd;
    @Value("${server.port}")
    private String port;
@@ -304,6 +312,8 @@
                            sendMagParam.setContent("您好,邀请您填写出院随访调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!");
                        } else if (active.equals("xh")) {
                            sendMagParam.setContent("【新华医院】您好,邀请您填写出院随访调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!");
                        } else if (active.equals("hzszlyy")) {
                            sendMagParam.setContent("【杭州市肿瘤医院】您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!");
                        }
                    } else if (type == 2) {
@@ -332,6 +342,8 @@
                            sendMagParam.setContent("【新华医院】您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!");
                        } else if (active.equals("druid")) {
                            sendMagParam.setContent("您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!");
                        } else if (active.equals("hzszlyy")) {
                            sendMagParam.setContent("【杭州市肿瘤医院】您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!");
                        }
                    } else if (type == 3) {
                        //宣教
@@ -355,6 +367,8 @@
                                sendMagParam.setContent("您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!");
                            } else if (active.equals("xh")) {
                                sendMagParam.setContent("【新华医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!");
                            } else if (active.equals("hzszlyy")) {
                                sendMagParam.setContent("【杭州市肿瘤医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!");
                            }
                        } else if (heLibrary.getHetype().equals("2")) {
                            //通知
@@ -419,6 +433,24 @@
                        } else {
                            setFailPreachForm(serviceSubtask, sendPreachform, "短信发送失败: " + data, "5");
                            throw new BaseException("短信发送失败");
                        }
                    } else if (active.equals("hzszlyy")) {
                        //市一
                        long timestamp = new Date().getTime();
                        String sign = Md5Utils.hash(xhsmsAccount + timestamp + Md5Utils.hash(xhsmsPwd));
                        String content = sendMagParam.getContent();
                        String jsonMsg = "{" + "\"userName\": \"" + xhsmsAccount + "\"," + "\"content\": \"" + content + "\"," + "\"phoneList\": [" + sendMagParam.getPhone() + "]," + "\"timestamp\": " + timestamp + "," + "\"sign\": \"" + sign + "\"" + "}";
                        s = HttpUtil.postJsonRequest(xhsmsPath, jsonMsg);
                        log.info("------市一短信发送的值为:{}", s);
                        if (StringUtils.isNotEmpty(s)) {
                            JSONObject jsonObject = JSONObject.parseObject(s);
                            Object code = jsonObject.get("code");
                            if (code.equals(0)) {
                                s = "true";
                            } else {
                                setFailPreachForm(serviceSubtask, sendPreachform, "短信发送失败", "5");
                                throw new BaseException("短信发送失败");
                            }
                        }
                    }
                    if (s.equals("true")) {
@@ -539,6 +571,7 @@
                    //获取微信公众号请求信息根据机构ID
                    log.error("获取微信公众号请求信息根据机构ID:{}", patArchive.getOrgid());
                    List<String> wxqqxx = WxGZHEnum.getDescByCode(patArchive.getOrgid());
                    //市一医院 不校验
                    if (CollectionUtils.isEmpty(wxqqxx) || wxqqxx.size() < 4) {
                        serviceSubtask.setCurrentPreachform(sendPreachform);
                        serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime(), serviceSubtask.getCurrentPreachform()));
@@ -548,31 +581,36 @@
                        setFailPreachForm(serviceSubtask, sendPreachform, "该机构的公众号配置信息不全,无法通过公众号发送", "5");
                        continue;
                    }
                    String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskName(), patArchive.getTelcode(), patArchive.getName(), patArchive.getPatidHis(), wxqqxx);
                    log.error("wxCode的值为:{}", wxCode);
                    Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class);
                    log.error("map的值为:{}", map);
                    if (!map.isEmpty()) {
                        serviceSubtask.setResult("success");
                        serviceSubtask.setSendstate(3L);
                        log.error("aBoolean的值为:{}", aBoolean);
                        if (map.get("succ").toString().equals("true")) {
                            aBoolean = true;
                        }
                        if (aBoolean == false) {
                            ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                            serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
                            serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId());
                            serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
                            serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
                            serviceSubtaskRecord.setPreachform("5");
                            serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                            serviceSubtaskRecord.setRemark(ObjectUtils.isNotEmpty(map.get("msg")) ? map.get("msg").toString() : null);
                            serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                            //在子任务表里记录一下
                            setFailPreachForm(serviceSubtask, sendPreachform, "公众号发送失败", "5");
                            continue;
                    String wxCode = "";
                    if (active.equals("hzszlyy")) {
                        wxCode = smsUtils.sendChat(url, patArchive.getTelcode(), serviceSubtask.getSfzh());
                        log.info(wxCode);
                    }else {
                        wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskName(), patArchive.getTelcode(), patArchive.getName(), patArchive.getPatidHis(), wxqqxx);
                        log.error("wxCode的值为:{}", wxCode);
                        Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class);
                        log.error("map的值为:{}", map);
                        if (!map.isEmpty()) {
                            serviceSubtask.setResult("success");
                            serviceSubtask.setSendstate(3L);
                            log.error("aBoolean的值为:{}", aBoolean);
                            if (map.get("succ").toString().equals("true")) {
                                aBoolean = true;
                            }
                            if (aBoolean == false) {
                                ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                                serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
                                serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId());
                                serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
                                serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
                                serviceSubtaskRecord.setPreachform("5");
                                serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                                serviceSubtaskRecord.setRemark(ObjectUtils.isNotEmpty(map.get("msg")) ? map.get("msg").toString() : null);
                                serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                                //在子任务表里记录一下
                                setFailPreachForm(serviceSubtask, sendPreachform, "公众号发送失败", "5");
                                continue;
                            }
                        }
                    }
                } catch (Exception e) {
@@ -789,7 +827,7 @@
            serviceSubtaskPreachform1.setRemark(remark);
            serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(serviceSubtaskPreachform1);
            //如果当前的preachform已经是最后一个了,并且本次还是发送失败,那直接将serviceSubtask的sendstate状态改成5就行了(全失败了)
            if (serviceSubtaskPreachform1.getSort() == spSize.size()) {
            if (CollectionUtils.isNotEmpty(spSize) && serviceSubtaskPreachform1.getSort() == spSize.size()) {
                if (serviceSubtaskPreachform1.getSort() == spSize.size()) {
                    if (failSendstate.equals("4") || failSendstate.equals("5")) {
                        serviceSubtask.setCurrentPreachform(preachform);