From bedd0a1cef215538df64470df6b8d4a022189136 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 28 八月 2024 14:05:16 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java |  286 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 280 insertions(+), 6 deletions(-)

diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
index 4179ed5..a28df21 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -1,25 +1,68 @@
 package com.ruoyi.quartz.task;
 
-import com.smartor.domain.ServiceThirdData;
-import com.smartor.service.IServiceSubtaskAnswerService;
-import com.smartor.service.IServiceThirdDataService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
+import com.alibaba.fastjson2.JSON;
+import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.enums.ServiceFromEnum;
+import com.ruoyi.common.utils.RSAPublicKeyExample;
 import com.ruoyi.common.utils.StringUtils;
+import com.smartor.common.SendService;
+import com.smartor.domain.*;
+import com.smartor.mapper.ServiceSubtaskMapper;
+import com.smartor.mapper.ServiceTaskMapper;
+import com.smartor.service.*;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
 
-import java.util.Date;
+import java.util.*;
 
 /**
  * 瀹氭椂浠诲姟璋冨害娴嬭瘯
  *
  * @author ruoyi
  */
+@Slf4j
 @Component("ryTask")
 public class RyTask {
     @Autowired
     private IServiceThirdDataService iServiceThirdDataService;
+
     @Autowired
     private IServiceSubtaskAnswerService serviceSubtaskAnswerService;
+
+    @Autowired
+    private IPatMedInhospService iPatMedInhospService;
+
+    @Autowired
+    private IServiceSubtaskService iServiceSubtaskService;
+
+
+    @Value("${localIP}")
+    private String localIP;
+
+    @Value("${pub_key}")
+    private String pub_key;
+
+
+    @Value("${req_path}")
+    private String req_path;
+
+    @Autowired
+    private ServiceTaskMapper serviceTaskMapper;
+
+    @Autowired
+    private SendService sendService;
+
+    @Autowired
+    private RedisCache redisCache;
+
+    @Autowired
+    private IServiceSubtaskRecordService serviceSubtaskRecordService;
+
+    @Autowired
+    IBaseSmsaccountService baseSmsaccountService;
 
     public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) {
         System.out.println(StringUtils.format("鎵ц澶氬弬鏂规硶锛� 瀛楃涓茬被鍨媨}锛屽竷灏旂被鍨媨}锛岄暱鏁村瀷{}锛屾诞鐐瑰瀷{}锛屾暣褰}", s, b, l, d, i));
@@ -50,4 +93,235 @@
     public void runServiceSubTaskAnswer() {
         serviceSubtaskAnswerService.saveQuestionAnswer(null);
     }
+
+
+    /**
+     * 澶勭悊his鏁版嵁
+     */
+    public void dealHisData() {
+        //灏嗘偅鑰呬俊鎭�佸嚭闄€�侀棬璇婃暟鎹叏閮ㄩ噰闆�
+
+
+        //璋冪敤dealOupHospInfo鏁版嵁澶勭悊鏂规硶锛屽鐞嗗畬鍚庯紝灏嗏�滃嚭闄㈣〃鐨刢heck_flag=1鈥�
+        //鑾峰彇褰撳墠鏃ユ湡 锛堢簿纭埌澶╋級寰�鍓嶆帹鐩稿簲澶╂暟锛堝湪鎸囧畾鐨勫熀纭�妯℃澘涓壘瀵瑰簲鐨勫ぉ鏁帮級锛�
+        //寰幆鎮h�呬俊鎭紝鏍规嵁鎮h��"鍑洪櫌璇婃柇ICD鍊尖�濊幏鍙栧埌鐩稿綋鐨勬ā鏉匡紙鑾峰彇鍙栫浉搴旂殑澶╂暟锛�;
+        //鏍规嵁鏌ヨ鍑烘潵鐨勬ā鏉匡紝鍘诲浐瀹氫换鍔★紙鍥哄畾浠诲姟锛屽凡缁忓皢妯℃澘涔熷浐瀹氫簡锛夊幓鍖归厤妯℃澘
+        //鏍规嵁鍖归厤鍑烘潵鐨勬ā鏉垮拰浠诲姟涓庢偅鑰呬俊鎭紝灏嗘暟鎹彃鍏ュ埌瀛愪换鍔¤〃涓�
+        iPatMedInhospService.dealOupHospInfo();
+    }
+
+    /**
+     * 闀挎湡浠诲姟鎵ц
+     */
+    public void longTaskSend() {
+        //鑾峰彇浠诲姟淇℃伅
+        ServiceTask st =new ServiceTask();
+        st.setDelFlag("0");
+        st.setLongTask(1);
+        List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st);
+        for (ServiceTask serviceTask : serviceTasks) {
+            //閫氳繃taskId,鑾峰彇鏈墽琛岀殑瀛愪换鍔′俊鎭�
+            ServiceSubtask serviceSubtask = new ServiceSubtask();
+            serviceSubtask.setTaskid(serviceTask.getTaskid());
+            serviceSubtask.setSendstate(2L);
+            List<ServiceSubtask> selectServiceSubtaskList = iServiceSubtaskService.selectServiceSubtaskList(serviceSubtask);
+            if (CollectionUtils.isNotEmpty(selectServiceSubtaskList)) {
+                for (ServiceSubtask serviceSubtask1 : selectServiceSubtaskList) {
+                    //濡傛灉鎮h�呯殑鍙戦�佹棩鏈熸槸浠婂ぉ锛屽垯杩涜鍙戦��
+                    boolean dateToday = isDateToday(serviceSubtask1.getLongSendTime());
+                    if (dateToday) {
+                        CommonTaskcallMQ commonTaskcallMQ = new CommonTaskcallMQ();
+                        commonTaskcallMQ.setTaskid(serviceTask.getTaskid());
+                        commonTaskcallMQ.setPreachform(serviceSubtask1.getServiceform());
+                        sfHandle(commonTaskcallMQ, localIP);
+                        //鍙戦�佸畬鎴愬悗锛屼慨鏀圭姸鎬�
+                        serviceSubtask1.setSendstate(3L);
+                        iServiceSubtaskService.updateServiceSubtask(serviceSubtask1);
+                    }
+                }
+            }
+
+        }
+    }
+
+    /**
+     * 鍒ゆ柇鏃ユ湡鏄惁鏄粖澶�
+     *
+     * @param date
+     * @return
+     */
+    public boolean isDateToday(Date date) {
+        // 鑾峰彇褰撳墠鏃ユ湡
+        Calendar calendarNow = Calendar.getInstance();
+        int todayYear = calendarNow.get(Calendar.YEAR);
+        int todayMonth = calendarNow.get(Calendar.MONTH);
+        int todayDay = calendarNow.get(Calendar.DAY_OF_MONTH);
+
+        // 鍒涘缓涓�涓� Calendar 瀹炰緥鐢ㄤ簬妫�鏌ョ殑鏃ユ湡
+        Calendar calendarToCheck = Calendar.getInstance();
+        calendarToCheck.setTime(date);
+
+        // 姣旇緝骞淬�佹湀鍜屾棩
+        return (calendarToCheck.get(Calendar.YEAR) == todayYear && calendarToCheck.get(Calendar.MONTH) == todayMonth && calendarToCheck.get(Calendar.DAY_OF_MONTH) == todayDay);
+    }
+
+    public void sfHandle(CommonTaskcallMQ commonTaskcallMQ, String ip) {
+        //鍒ゆ柇涓�涓媍ommonTaskcallMQ涓殑stopstate鏄惁涓巌vr_task涓殑涓�鑷达紝涓嶄竴鑷达紝鍒欒鏄庢槸鏆傚仠浜�
+        ServiceTask ivrTask1 = serviceTaskMapper.selectServiceTaskByTaskid(commonTaskcallMQ.getTaskid());
+
+        if (StringUtils.isNotEmpty(commonTaskcallMQ.getPreachform())) {
+            //濡備綍浠诲姟鍙戦�佹柟寮忎笉涓虹┖
+            String[] split = commonTaskcallMQ.getPreachform().split(",");
+            System.out.println("split鐨勫�间负锛�" + split);
+            for (String serviceFrom : split) {
+                String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(serviceFrom));
+                //杩欓噷鍙互鑰冭檻鐢ㄧ瓥鐣ユā寮忎紭鍖栦竴涓嬶紝涓嶇劧澶毦鐪嬩簡
+                //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭�
+                ServiceSubtask ivrTaskcall = new ServiceSubtask();
+                ivrTaskcall.setTaskid(commonTaskcallMQ.getTaskid());
+                List<ServiceSubtask> selectServiceSubtaskList = iServiceSubtaskService.selectServiceSubtaskList(ivrTaskcall);
+                if (descByCode.equals("鐢佃瘽")) {
+                    for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
+                        ServiceTask ivrTask = serviceTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
+                        if (ivrTask.getSendState() != null && ivrTask.getSendState() == 3 || ivrTask.getSendState() != null && ivrTask.getSendState() == 4) {
+                            //濡備綍浠诲姟琚�滄殏鍋溾�濇垨鈥滅粓姝⑩��
+                            break;
+                        }
+                        //鑾峰彇鍒皏alue鍊兼渶灏戠殑key
+                        String key = getKey();
+                        if (commonTaskcallMQ.getSendType().equals("2")) {
+                            //璇存槑鏄珛鍗冲彂閫�
+                            String value = redisCache.getCacheObject("cache-0");
+                            ServiceSubtask serviceSubtask1 = new ServiceSubtask();
+                            serviceSubtask1.setTaskid(commonTaskcallMQ.getTaskid());
+                            List<ServiceSubtask> selectServiceSubtaskList1 = iServiceSubtaskService.selectServiceSubtaskList(serviceSubtask1);
+                            for (ServiceSubtask serviceSubtask2 : selectServiceSubtaskList1) {
+                                if (StringUtils.isEmpty(value)) {
+                                    value = "," + serviceSubtask2.getId().toString() + ",";
+                                } else {
+                                    value = value + "," + serviceSubtask2.getId().toString() + ",";
+                                }
+                            }
+                            redisCache.setCacheObject("cache-0", value);
+                        } else {
+                            //闈炵珛鍗冲彂閫�
+                            String value = redisCache.getCacheObject(key);
+                            ServiceSubtask serviceSubtask1 = new ServiceSubtask();
+                            serviceSubtask1.setTaskid(commonTaskcallMQ.getTaskid());
+                            List<ServiceSubtask> selectServiceSubtaskList1 = iServiceSubtaskService.selectServiceSubtaskList(serviceSubtask1);
+                            for (ServiceSubtask serviceSubtask2 : selectServiceSubtaskList1) {
+                                if (StringUtils.isEmpty(value)) {
+                                    value = "," + serviceSubtask2.getId().toString() + ",";
+                                } else {
+                                    value = value + "," + serviceSubtask2.getId().toString() + ",";
+                                }
+                            }
+                            redisCache.setCacheObject(key, value);
+                        }
+
+                        //浠诲姟鍙戦�佽褰曪紙杩欎釜浠g爜搴旇鍐欏湪phoneTask涓紝鍏堝啓鍦ㄨ繖锛屽悗闈㈠啀鏀癸級
+                        ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
+                        serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
+                        serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
+                        serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
+                        serviceSubtaskRecord.setPreachform("3");
+                        serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
+                        serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
+
+//                        //閫氳繃澶氱嚎绋嬬殑鏂瑰紡鍘绘墦鐢佃瘽
+//                        executorService.submit(new PhoneTask(serviceSubtask, ivrTaskTemplateVO1, redisCache, sendService, phonePath, robotPhoneUtils));
+                    }
+                } else if (descByCode.equals("澶氬獟浣�")) {
+                    //澶氬獟浣�
+                    return;
+                } else if (descByCode.equals("绾歌川")) {
+                    //绾歌川
+                    return;
+                } else if (descByCode.equals("鐭俊")) {
+                    //鐭俊
+//                        http://localhost:8099/followvisit/particty?param1=3&param2=348
+                    //瀵箄rl涓袱涓弬鏁板姞瀵�
+                    RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+                    String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key);
+
+                    for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
+                        String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
+                        SendMagParam sendMagParam = new SendMagParam();
+                        sendMagParam.setType("4");
+                        sendMagParam.setPhone(serviceSubtask.getPhone());
+                        sendMagParam.setUrl(ip + ":" + req_path + "/followvisit/particty?param1=" + taskId + "&param2=" + patid + "&param5=false");
+                        Boolean aBoolean = sendService.sendMsg(sendMagParam);
+
+
+                        //浠诲姟鍙戦�佽褰�
+                        ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
+                        serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
+                        serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
+                        serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
+                        serviceSubtaskRecord.setPreachform("4");
+                        serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
+                        serviceSubtaskRecord.setResult(aBoolean == true ? "鎴愬姛" : "澶辫触");
+                        serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
+                    }
+                } else if (descByCode.equals("鍏紬鍙�")) {
+                    //鍏紬鍙�
+                    RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+                    String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key);
+                    for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
+                        String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
+                        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);
+
+                        //浠诲姟鍙戦�佽褰�
+                        ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
+                        serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
+                        serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
+                        serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
+                        serviceSubtaskRecord.setPreachform("4");
+                        serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
+                        serviceSubtaskRecord.setResult(aBoolean == true ? "鎴愬姛" : "澶辫触");
+                        serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
+                    }
+                }
+                //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜�   锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛�
+            }
+        }
+    }
+
+    private String getKey() {
+        Map<String, String> map = new HashMap<>();
+        for (int i = 0; i < 6; i++) {
+            Boolean aBoolean = redisCache.hasKey("cache-" + i);
+            if (!aBoolean) {
+                redisCache.setCacheObject("cache-" + i, "");
+                map.put("cache-" + i, "");
+            } else {
+                map.put("cache-" + i, redisCache.getCacheObject("cache-" + i));
+            }
+        }
+
+        String key = null;
+        String value = "";
+        for (Map.Entry<String, String> entry : map.entrySet()) {
+            if (StringUtils.isEmpty(value)) {
+                value = entry.getValue();
+                key = entry.getKey();
+            } else {
+                if (entry.getValue().split(",").length < value.split(",").length) {
+                    value = entry.getValue();
+                    key = entry.getKey();
+                }
+            }
+        }
+        return key;
+    }
 }

--
Gitblit v1.9.3