liusheng
2025-04-22 f8c4acf0b173a73163c0f101e38c0e60251a2935
丽水公众号
已修改3个文件
259 ■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java 177 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-druid.yml 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/XinHuaWXReq.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -13,6 +13,7 @@
import com.smartor.common.SendService;
import com.smartor.config.RobotPhoneUtils;
import com.smartor.domain.*;
import com.smartor.mapper.PatArchiveMapper;
import com.smartor.mapper.ServiceSubtaskMapper;
import com.smartor.mapper.ServiceTaskMapper;
import com.smartor.service.IBaseSmsaccountService;
@@ -28,6 +29,7 @@
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.stereotype.Component;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
@@ -64,7 +66,7 @@
    private ServiceTaskMapper ivrTaskMapper;
    @Autowired
    private SendService sendService;
    private PatArchiveMapper patArchiveMapper;
    @Autowired
    private RedisCache redisCache;
@@ -89,6 +91,9 @@
    @Value("${xhsmsPath}")
    private String xhsmsPath;
    @Value("${appid}")
    private String appid;
    // 创建固定大小的线程池
    private static final ExecutorService executorService = Executors.newFixedThreadPool(10);
@@ -423,87 +428,86 @@
                        try {
                            SendMagParam sendMagParam = new SendMagParam();
                            sendMagParam.setType("5");
                            sendMagParam.setUrl(ip + ":" + req_path + "/outsideChain?param1=" + taskId + "&param2=" + patid + "&param3=" + ivrTask1.getTaskName() + "&param5=false");
                            log.info("链接完整路径:{}", ip + ":" + req_path + "/outsideChain?param1=" + taskId + "&param2=" + patid + "&param3=" + ivrTask1.getTaskName() + "&param5=false");
                            //这个模板ID先写死,后面做成可选
                            sendMagParam.setTmpCode("oG3pJHPVWpE81DmZsua_2tKwgJ97r0qz37z56ns7NB4");
                            Map map = new HashMap();
                            map.put("first", ivrTask1.getTaskName());
                            sendMagParam.setContent(JSON.toJSONString(map));
                            sendMagParam.setOpenid(serviceSubtask.getOpenid());
                            Boolean aBoolean = sendService.sendMsg(sendMagParam);
                            String url = null;
////                            if (type == 1) {
////                                url = ip + ":" + req_path + "/outsideChain?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
////                            } else if (type == 2) {
////                                url = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
////                            } else if (type == 3) {
////                                url = ip + ":" + req_path + "/outsideChainxj?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
////                            }
//                            if (type == 1) {
//                                //随访
//                                ServiceOutPath serviceOutPath = new ServiceOutPath();
//                                serviceOutPath.setParam1(taskId);
//                                serviceOutPath.setParam2(patid);
//                                serviceOutPath.setCreateTime(new Date());
//                                iServiceOutPathService.insertServiceOutPath(serviceOutPath);
//                                String format = String.format("%03X", serviceOutPath.getId());
//                                serviceOutPath.setRadix(format);
//                                serviceOutPath.setUpdateTime(new Date());
//                                iServiceOutPathService.updateServiceOutPath(serviceOutPath);
////                                sendMagParam.setUrl(ip + ":" + req_path + "/followvisit/particty?param1=" + taskId + "&param2=" + patid + "&param5=false");
//                                url = ip + ":" + req_path + "/sf?p=" + format;
//                            } else if (type == 2) {
//                                //问券
//                                ServiceOutPath serviceOutPath = new ServiceOutPath();
//                                serviceOutPath.setParam1(taskId);
//                                serviceOutPath.setParam2(patid);
////                                serviceOutPath.setParam3(URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()));
//                                serviceOutPath.setParam3(ivrTask1.getTaskName());
//                                serviceOutPath.setCreateTime(new Date());
//                                iServiceOutPathService.insertServiceOutPath(serviceOutPath);
//                                String format = String.format("%03X", serviceOutPath.getId());
//                                serviceOutPath.setRadix(format);
//                                serviceOutPath.setUpdateTime(new Date());
//                                iServiceOutPathService.updateServiceOutPath(serviceOutPath);
////                                sendMagParam.setUrl(ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false");
//                                url = ip + ":" + req_path + "/wt?p=" + format;
//                            } else if (type == 3) {
//                                //宣教
//                                ServiceOutPath serviceOutPath = new ServiceOutPath();
//                                serviceOutPath.setParam1(taskId);
//                                serviceOutPath.setParam2(patid);
////                                serviceOutPath.setParam3(URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()));
//                                serviceOutPath.setParam3(ivrTask1.getTaskName());
//                                serviceOutPath.setCreateTime(new Date());
//                                iServiceOutPathService.insertServiceOutPath(serviceOutPath);
//                                String format = String.format("%03X", serviceOutPath.getId());
//                                serviceOutPath.setRadix(format);
//                                serviceOutPath.setUpdateTime(new Date());
//                                iServiceOutPathService.updateServiceOutPath(serviceOutPath);
//                                url = ip + ":" + req_path + "/xj?p=" + format;
//                            }
//                            sendMagParam.setUrl(ip + ":" + req_path + "/outsideChain?param1=" + taskId + "&param2=" + patid + "&param3=" + ivrTask1.getTaskName() + "&param5=false");
//                            log.info("链接完整路径:{}", ip + ":" + req_path + "/outsideChain?param1=" + taskId + "&param2=" + patid + "&param3=" + ivrTask1.getTaskName() + "&param5=false");
//                            //这个模板ID先写死,后面做成可选
//                            sendMagParam.setTmpCode("oG3pJHPVWpE81DmZsua_2tKwgJ97r0qz37z56ns7NB4");
//                            Map map = new HashMap();
//                            map.put("first", ivrTask1.getTaskName());
//                            sendMagParam.setContent(JSON.toJSONString(map));
//                            sendMagParam.setOpenid(serviceSubtask.getOpenid());
//                            Boolean aBoolean = sendService.sendMsg(sendMagParam);
//
//                            String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), "无");
//                            Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class);
//                            if (!map.isEmpty()) {
                            serviceSubtask.setResult("success");
                            serviceSubtask.setSendstate(3L);
                            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(map.get("msg").toString());
                                lssubIds.add(serviceSubtask.getId());
                                serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                                continue;
                            }
//                            if (type == 1) {
//                                url = ip + ":" + req_path + "/outsideChain?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
//                            } else if (type == 2) {
//                                url = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
//                            } else if (type == 3) {
//                                url = ip + ":" + req_path + "/outsideChainxj?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
//                            }
                            String url = null;
                            Boolean aBoolean = false;
                            if (type == 1) {
                                //随访
                                ServiceOutPath serviceOutPath = new ServiceOutPath();
                                serviceOutPath.setParam1(taskId);
                                serviceOutPath.setParam2(patid);
                                serviceOutPath.setCreateTime(new Date());
                                iServiceOutPathService.insertServiceOutPath(serviceOutPath);
                                String format = String.format("%03X", serviceOutPath.getId());
                                serviceOutPath.setRadix(format);
                                serviceOutPath.setUpdateTime(new Date());
                                iServiceOutPathService.updateServiceOutPath(serviceOutPath);
                                url = ip + ":" + req_path + "/sf?p=" + format;
                            } else if (type == 2) {
                                //问券
                                ServiceOutPath serviceOutPath = new ServiceOutPath();
                                serviceOutPath.setParam1(taskId);
                                serviceOutPath.setParam2(patid);
//                                serviceOutPath.setParam3(URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()));
                                serviceOutPath.setParam3(ivrTask1.getTaskName());
                                serviceOutPath.setCreateTime(new Date());
                                iServiceOutPathService.insertServiceOutPath(serviceOutPath);
                                String format = String.format("%03X", serviceOutPath.getId());
                                serviceOutPath.setRadix(format);
                                serviceOutPath.setUpdateTime(new Date());
                                iServiceOutPathService.updateServiceOutPath(serviceOutPath);
                                url = ip + ":" + req_path + "/wt?p=" + format;
                            } else if (type == 3) {
                                //宣教
                                ServiceOutPath serviceOutPath = new ServiceOutPath();
                                serviceOutPath.setParam1(taskId);
                                serviceOutPath.setParam2(patid);
                                serviceOutPath.setParam3(ivrTask1.getTaskName());
                                serviceOutPath.setCreateTime(new Date());
                                iServiceOutPathService.insertServiceOutPath(serviceOutPath);
                                String format = String.format("%03X", serviceOutPath.getId());
                                serviceOutPath.setRadix(format);
                                serviceOutPath.setUpdateTime(new Date());
                                iServiceOutPathService.updateServiceOutPath(serviceOutPath);
                                url = ip + ":" + req_path + "/xj?p=" + format;
                            }
                            PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(serviceSubtask.getPatid());
                            String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), null,null,patArchive.getPatientno());
                            Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class);
                            if (!map.isEmpty()) {
                                serviceSubtask.setResult("success");
                                serviceSubtask.setSendstate(3L);
                                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(map.get("msg").toString());
                                    lssubIds.add(serviceSubtask.getId());
                                    serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                                    continue;
                                }
                            }
                        } catch (Exception e) {
                            ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                            serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
@@ -629,14 +633,17 @@
        return key;
    }
    private String getWXCode(String idcard, String url, String taskName, String taskDesc, String submitprompt) {
    private String getWXCode(String idcard, String url, String taskName, String taskDesc, String Medcardno, String setPatientname, String setPatientid) {
        XinHuaWXReq xinHuaWXReq = new XinHuaWXReq();
        xinHuaWXReq.setIdcard(idcard);
        xinHuaWXReq.setUrl(url);
        xinHuaWXReq.setKeyword1("浙中医大二院出院随访");
        xinHuaWXReq.setKeyword2(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
        xinHuaWXReq.setKeyword3(taskName);
        xinHuaWXReq.setKeyword4("疾病康复注意事项");
        xinHuaWXReq.setPatientid(setPatientid);
        xinHuaWXReq.setPatientname(setPatientname);
        xinHuaWXReq.setMobile(taskName);
        xinHuaWXReq.setMedcardno(Medcardno);
        xinHuaWXReq.setTitlename(taskName);
        xinHuaWXReq.setContent(taskDesc);
        xinHuaWXReq.setAppid(appid);
        String result = HttpUtils.sendPost(thirdWXUrl, new Gson().toJson(xinHuaWXReq));
        JSONObject jsonObject = JSONObject.parseObject(result);
ruoyi-admin/src/main/resources/application-druid.yml
@@ -13,10 +13,10 @@
        #        公司
        #        url: jdbc:mysql://192.168.2.9:3308/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        #        丽水
        #        url: jdbc:mysql://127.0.0.1:3308/smartor-lisui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        #        username: smartor
        #        password: Smartor.2023
        #        driverClassName: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://127.0.0.1:3308/smartor-lisui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: smartor
        password: Smartor.2023
        driverClassName: com.mysql.cj.jdbc.Driver
        #        # 新华
        #        url: jdbc:mysql://192.168.191.181:3308/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        #        username: smartor
@@ -24,10 +24,10 @@
        #        driverClassName: com.mysql.cj.jdbc.Driver
        #  公司云
        url: jdbc:mysql://116.62.18.175:6002/smartor_lisui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: hxsoft
        password: Hxerp2000
        driverClassName: com.mysql.cj.jdbc.Driver
#        url: jdbc:mysql://116.62.18.175:6002/smartor_lisui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
#        username: hxsoft
#        password: Hxerp2000
#        driverClassName: com.mysql.cj.jdbc.Driver
      # 从库数据源
@@ -103,10 +103,10 @@
    default-size: 10
  #微信公众号的密钥
appid: wx1c5243d2337753f4
appSecret: 84a2186a0d175e88345267c716516cd3
appid: 3311000002.
appSecret: MzMxMTAwMDAwMg==
#第三方微信公众号发送地址(新华医院)
thirdWXUrl: http://192.16.4.220:8103/api
thirdWXUrl: http://192.168.10.170:18001/frontend/medical/api
#钉钉的密钥
dingAppid: dingn8iip5ubj7clrrsv
smartor/src/main/java/com/smartor/domain/XinHuaWXReq.java
@@ -16,13 +16,13 @@
public class XinHuaWXReq {
    private static final long serialVersionUID = 1L;
    /**
     * 接口服务名,固定值
     */
    @ApiModelProperty(value = "接口服务名,固定值")
    private String service = "smarthos.yygh.ApiService.push";
    private String spid = "1001";
//    /**
//     * 接口服务名,固定值
//     */
//    @ApiModelProperty(value = "接口服务名,固定值")
//    private String service = "smarthos.yygh.ApiService.push";
//
//    private String spid = "1001";
    /**
     * 证件号
@@ -34,33 +34,51 @@
    /**
     * 详情地址
     */
    @Excel(name = "详情地址")
    @ApiModelProperty(value = "详情地址")
    @Excel(name = "链接地址")
    @ApiModelProperty(value = "链接地址")
    private String url;
    /**
     * 发送类型: 1 时间段   2 时间点   3 即刻发送
     * 应用编号
     */
    @ApiModelProperty(value = "随访项目")
    private String keyword1;
    @ApiModelProperty(value = "应用编号")
    private String appid;
    /**
     * 提醒时间
     * 患者编号
     */
    @ApiModelProperty(value = "提醒时间")
    private String keyword2;
    @ApiModelProperty(value = "患者编号")
    private String patientid;
    /**
     * 提醒内容
     * 患者姓名
     */
    @ApiModelProperty(value = "提醒内容")
    private String keyword3;
    @ApiModelProperty(value = "患者姓名")
    private String patientname;
    /**
     * 注意事项
     * 手机号码
     */
    @ApiModelProperty(value = "注意事项")
    private String keyword4;
    @ApiModelProperty(value = "手机号码")
    private String mobile;
    /**
     * 就诊卡号
     */
    @ApiModelProperty(value = "就诊卡号")
    private String medcardno;
    /**
     * 通知内容
     */
    @ApiModelProperty(value = "通知内容")
    private String titlename;
    /**
     * 链接地址
     */
    @ApiModelProperty(value = "链接地址")
    private String content;
}