From 10aaa035f5be0312304d20f022bdb714a8f4900a Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期三, 11 十二月 2024 22:16:23 +0800 Subject: [PATCH] 代码提交 --- ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java | 796 +++++++++++++++++++++++++++++++++----------------------- 1 files changed, 470 insertions(+), 326 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java index d5e72b6..ddaa6f2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java @@ -1,23 +1,23 @@ package com.ruoyi.web.component; -import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSONObject; import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.gson.Gson; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.enums.ServiceFromEnum; +import com.ruoyi.common.utils.HttpUtil; import com.ruoyi.common.utils.RSAPublicKeyExample; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.web.task.PhoneTask; +import com.ruoyi.common.utils.http.HttpUtils; import com.smartor.common.SendService; import com.smartor.config.RobotPhoneUtils; import com.smartor.domain.*; import com.smartor.mapper.ServiceSubtaskMapper; import com.smartor.mapper.ServiceTaskMapper; -import com.smartor.mapper.SvyTaskMapper; -import com.smartor.mapper.SvyTaskSingleMapper; -import com.smartor.service.IIvrTaskTemplateService; -import com.smartor.service.IServiceSubtaskRecordService; -import com.smartor.service.ISvyTaskTemplateService; +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.data.redis.connection.Message; @@ -25,6 +25,11 @@ import org.springframework.data.redis.listener.RedisMessageListenerContainer; import org.springframework.stereotype.Component; +import java.math.BigInteger; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -40,32 +45,50 @@ @Value("${pub_key}") private String pub_key; + @Value("${localIP}") + private String localIP; + @Value("${req_path}") private String req_path; - private static IIvrTaskTemplateService ivrTaskTemplateService; - - private static ServiceSubtaskMapper ivrTaskcallMapper; - - private static ServiceTaskMapper ivrTaskMapper; - - private static SendService sendService; - - private static RedisCache redisCache; - - private static RobotPhoneUtils robotPhoneUtils; + @Value("${thirdWXUrl}") + private String thirdWXUrl; @Autowired - private SvyTaskMapper svyTaskMapper; + private IServiceOutPathService iServiceOutPathService; @Autowired - private SvyTaskSingleMapper svyTaskSingleMapper; + private ServiceSubtaskMapper ivrTaskcallMapper; + + @Autowired + private ServiceTaskMapper ivrTaskMapper; + + @Autowired + private SendService sendService; + + @Autowired + private RedisCache redisCache; + + @Autowired + private RobotPhoneUtils robotPhoneUtils; + + @Autowired + private ServiceTaskMapper svyTaskMapper; + + @Autowired + private ServiceSubtaskMapper serviceSubtaskMapper; @Autowired private ISvyTaskTemplateService iSvyTaskTemplateService; @Autowired private IServiceSubtaskRecordService serviceSubtaskRecordService; + + @Autowired + IBaseSmsaccountService baseSmsaccountService; + + @Value("${xhsmsPath}") + private String xhsmsPath; // 鍒涘缓鍥哄畾澶у皬鐨勭嚎绋嬫睜 private static final ExecutorService executorService = Executors.newFixedThreadPool(10); @@ -74,40 +97,11 @@ super(listenerContainer); } - - @Autowired - public void setIIvrTaskTemplateService(IIvrTaskTemplateService ivrTaskTemplateService) { - RedisMqReceiver.ivrTaskTemplateService = ivrTaskTemplateService; - } - - @Autowired - public void setRobotPhoneUtilsService(RobotPhoneUtils robotPhoneUtils) { - RedisMqReceiver.robotPhoneUtils = robotPhoneUtils; - } - - @Autowired - public void setSendService(SendService sendService) { - RedisMqReceiver.sendService = sendService; - } - - @Autowired - public void setIvrTaskcallMapper(ServiceSubtaskMapper ivrTaskcallMapper) { - RedisMqReceiver.ivrTaskcallMapper = ivrTaskcallMapper; - } - - @Autowired - public void setIvrTaskMapper(ServiceTaskMapper ivrTaskMapper) { - RedisMqReceiver.ivrTaskMapper = ivrTaskMapper; - } - - @Autowired - public void setRedisCache(RedisCache redisCache) { - RedisMqReceiver.redisCache = redisCache; - } - @Override public void onMessage(Message message, byte[] pattern) { log.info("鐩戝惉Redis key杩囨湡锛宬ey锛歿}锛宑hannel锛歿}", message.toString(), new String(pattern)); + String ip = localIP; + log.error("鏈満鐨勭綉缁淚P涓�:{}", ip); String content = message.toString(); //鍒ゆ柇鏄笉鏄换鍔′俊鎭紝濡傛灉涓嶆槸锛岀洿鎺ヨ繑鍥烇紝涓嶉渶瑕佹墽琛� if (!content.contains("taskid")) { @@ -122,40 +116,42 @@ } else { commonTaskcallMQ = mapper.readValue(content, CommonTaskcallMQ.class); } + if (commonTaskcallMQ != null) tsakHandle(commonTaskcallMQ, ip, commonTaskcallMQ.getTaskType()); - if (commonTaskcallMQ.getTaskType() == 1) { - //闅忚 - sfHandle((commonTaskcallMQ)); - } else if (commonTaskcallMQ.getTaskType() == 2) { - //闂嵎 - wjHandle(commonTaskcallMQ); - } else if (commonTaskcallMQ.getTaskType() == 3) { - //瀹f暀 - } - - + //澶勭悊瀹屾垚锛岀Щ闄edis + redisCache.deleteObject(message.toString()); + //灏嗙姸鎬佹敼鎴愬畬鎴� + ServiceTask serviceTask = new ServiceTask(); + serviceTask.setTaskid(Long.valueOf(commonTaskcallMQ.getTaskid())); + serviceTask.setSendState(5L); + serviceTask.setFail(1L); + svyTaskMapper.updateServiceTask(serviceTask); } catch (Exception e) { Integer integer = redisCache.getCacheObject(commonTaskcallMQ.getTaskid().toString()); - if (integer != null && integer == 2) { + if (integer != null && integer == 3) { + redisCache.deleteObject(message.toString()); + ServiceTask serviceTask = new ServiceTask(); + serviceTask.setTaskid(Long.valueOf(commonTaskcallMQ.getTaskid().toString())); + serviceTask.setFail(0L); + svyTaskMapper.updateServiceTask(serviceTask); //灏嗘秷鎭粠闃熷垪涓垹闄� } else if (integer == null) { redisCache.setCacheObject(commonTaskcallMQ.getTaskid().toString(), 1, 120, TimeUnit.MINUTES); } else { redisCache.setCacheObject(commonTaskcallMQ.getTaskid().toString(), integer + 1, 120, TimeUnit.MINUTES); } - log.error("============娑堣垂澶辫触,灏濊瘯娑堟伅琛ュ彂鍐嶆娑堣垂!============== {}", e.getMessage()); redisCache.setCacheObject(message.toString(), message.toString(), 60, TimeUnit.SECONDS); } - } /** - * 闅忚浠诲姟澶勭悊 + * 浠诲姟澶勭悊 * * @param commonTaskcallMQ */ - private void sfHandle(CommonTaskcallMQ commonTaskcallMQ) { + public void tsakHandle(CommonTaskcallMQ commonTaskcallMQ, String ip, Integer type) { + log.error("杩涗换鍔′簡鍚楋紵{}", commonTaskcallMQ); //鍒ゆ柇涓�涓媍ommonTaskcallMQ涓殑stopstate鏄惁涓巌vr_task涓殑涓�鑷达紝涓嶄竴鑷达紝鍒欒鏄庢槸鏆傚仠浜� ServiceTask ivrTask1 = ivrTaskMapper.selectServiceTaskByTaskid(commonTaskcallMQ.getTaskid()); if (ivrTask1.getStopState() != commonTaskcallMQ.getStopState()) { @@ -166,304 +162,410 @@ if (StringUtils.isNotEmpty(commonTaskcallMQ.getPreachform())) { //濡備綍浠诲姟鍙戦�佹柟寮忎笉涓虹┖ String[] split = commonTaskcallMQ.getPreachform().split(","); - System.out.println("split鐨勫�间负锛�" + split); + log.error("split鐨勫�间负锛歿}", split); + + //瀹氫箟涓�涓泦鍚堬紝鐢ㄤ笌瀛樻病鏈夋墽琛岀殑瀛愪换鍔D + List<Long> subIds = new ArrayList<>(); + //涓存椂瀛樻病鏈夋墽琛岀殑瀛愪换鍔D + List<Long> lssubIds = new ArrayList<>(); + //鏄惁灏嗗叏閮ㄦ偅鑰呰�呭彂閫佸畬 + Boolean isSend = false; + + aa: for (String serviceFrom : split) { String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(serviceFrom)); - //杩欓噷鍙互鑰冭檻鐢ㄧ瓥鐣ユā寮忎紭鍖栦竴涓嬶紝涓嶇劧澶毦鐪嬩簡 - - //閫氳繃妯℃澘ID鑾峰彇妯℃澘闂 - IvrTaskTemplateVO ivrTaskTemplateVO = new IvrTaskTemplateVO(); - ivrTaskTemplateVO.setID(Long.valueOf(commonTaskcallMQ.getTemplateid())); - IvrTaskTemplateVO ivrTaskTemplateVO1 = ivrTaskTemplateService.selectInfoByCondition(ivrTaskTemplateVO); + if (isSend == true) { + break aa; + } //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭� - ServiceSubtask ivrTaskcall = new ServiceSubtask(); + ServiceSubtaskVO ivrTaskcall = new ServiceSubtaskVO(); ivrTaskcall.setTaskid(commonTaskcallMQ.getTaskid()); - List<ServiceSubtask> ivrTaskcalls = ivrTaskcallMapper.selectServiceSubtaskList(ivrTaskcall); + ivrTaskcall.setSendstate(1L); + List<ServiceSubtask> selectServiceSubtaskList = ivrTaskcallMapper.selectServiceSubtaskList(ivrTaskcall); if (descByCode.equals("鐢佃瘽")) { - for (ServiceSubtask ivrTaskcall1 : ivrTaskcalls) { - ServiceTask ivrTask = ivrTaskMapper.selectServiceTaskByTaskid(ivrTaskcall1.getTaskid()); - if (ivrTask.getSendState() != null && ivrTask.getSendState() == 3 || ivrTask.getSendState() != null && ivrTask.getSendState() == 4) { - //濡備綍浠诲姟琚�滄殏鍋溾�濇垨鈥滅粓姝⑩�� - break; + for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { + //鍏堝垽鏂竴涓嬶紝subIds鏄惁涓虹┖锛屽鏋滀笉涓虹┖锛屽彧鎵цsubIds閲岀殑鎮h�� + if (CollectionUtils.isNotEmpty(subIds)) { + boolean contains = subIds.contains(serviceSubtask.getId()); + //濡傛灉contains涓嶄负true,璇存槑褰撳墠鐨勬偅鑰呭凡缁忓彂閫佹垚鍔燂紝鐩存帴寰幆涓嬩竴涓汉灏辫 + if (!contains) continue; } - //浠诲姟鍙戦�佽褰曪紙杩欎釜浠g爜搴旇鍐欏湪phoneTask涓紝鍏堝啓鍦ㄨ繖锛屽悗闈㈠啀鏀癸級 + try { + ServiceTask ivrTask = ivrTaskMapper.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"); + ServiceSubtaskVO serviceSubtask1 = new ServiceSubtaskVO(); + serviceSubtask1.setTaskid(commonTaskcallMQ.getTaskid()); + log.error("缂撳瓨涓璼erviceSubtask1鐨勫�间负锛歿}", serviceSubtask1); + List<ServiceSubtask> selectServiceSubtaskList1 = ivrTaskcallMapper.selectServiceSubtaskList(serviceSubtask1); + for (ServiceSubtask serviceSubtask2 : selectServiceSubtaskList1) { + if (StringUtils.isEmpty(value)) { + value = "," + serviceSubtask2.getId().toString() + ","; + } else { + if (!value.contains("," + serviceSubtask2.getId().toString())) + value = value + "," + serviceSubtask2.getId().toString() + ","; + } + } + log.error("缂撳瓨涓璫ache-0鐨勫�间负锛歿}", value); + redisCache.setCacheObject("cache-0", value); + } else { + //闈炵珛鍗冲彂閫� + String value = redisCache.getCacheObject(key); + ServiceSubtaskVO serviceSubtask1 = new ServiceSubtaskVO(); + serviceSubtask1.setTaskid(commonTaskcallMQ.getTaskid()); + List<ServiceSubtask> selectServiceSubtaskList1 = ivrTaskcallMapper.selectServiceSubtaskList(serviceSubtask1); + for (ServiceSubtask serviceSubtask2 : selectServiceSubtaskList1) { + if (StringUtils.isEmpty(value)) { + value = "," + serviceSubtask2.getId().toString() + ","; + } else { + value = value + "," + serviceSubtask2.getId().toString() + ","; + } + } + redisCache.setCacheObject(key, value); + } + } catch (Exception exception) { + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); + serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); + serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); + serviceSubtaskRecord.setPreachform("3"); + serviceSubtaskRecord.setResult("fail"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecord.setRemark("闃熷垪浠诲姟鐢佃瘽鍙戦�佸け璐�"); + log.error("闃熷垪浠诲姟鐢佃瘽鍙戦�佸け璐ワ細{}", exception.getMessage()); + lssubIds.add(serviceSubtask.getId()); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + 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(ivrTaskcall1.getTaskid().toString()); - serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); - serviceSubtaskRecord.setTasktype(ivrTaskcall1.getType()); + serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); + serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); + serviceSubtaskRecord.setUuid(uuid); + serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); serviceSubtaskRecord.setPreachform("3"); serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecord.setRemark("闃熷垪浠诲姟鐢佃瘽鍙戦�佹垚鍔�"); serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); - - //閫氳繃澶氱嚎绋嬬殑鏂瑰紡鍘绘墦鐢佃瘽 - executorService.submit(new PhoneTask(ivrTaskcall1, ivrTaskTemplateVO1, redisCache, sendService, phonePath, robotPhoneUtils)); } + if (CollectionUtils.isEmpty(lssubIds)) { + //濡傛灉鈥滀复鏃跺瓙浠诲姟鈥濅负绌猴紝璇存槑鍏ㄥ彂閫佸畬浜� + isSend = true; + } + //灏嗗瓙浠诲姟ID娓呯┖锛屽皢鈥滀复鏃跺瓙浠诲姟鈥濇暟鎹� 鏀惧埌 鈥滃瓙浠诲姟鈥� 涓� + subIds.clear(); + subIds.addAll(lssubIds); + lssubIds.clear(); } else if (descByCode.equals("澶氬獟浣�")) { //澶氬獟浣� + continue; } else if (descByCode.equals("绾歌川")) { //绾歌川 + continue; } else if (descByCode.equals("鐭俊")) { //鐭俊 -// http://localhost:8099/followvisit/particty?param1=3¶m2=348 //瀵箄rl涓袱涓弬鏁板姞瀵� RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); - - for (ServiceSubtask ivrTaskSingle : ivrTaskcalls) { - String patid = rsaPublicKeyExample.encryptedData(ivrTaskSingle.getPatid().toString(), pub_key); - SendMagParam sendMagParam = new SendMagParam(); - sendMagParam.setType("4"); - sendMagParam.setUrl(req_path + "/followvisit/particty?param1=" + taskId + "¶m2=" + patid); - Boolean aBoolean = sendService.sendMsg(sendMagParam); - - //浠诲姟鍙戦�佽褰� - ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); - serviceSubtaskRecord.setTaskid(ivrTaskSingle.getTaskid().toString()); - serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); - serviceSubtaskRecord.setTasktype(ivrTaskSingle.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 ivrTaskSingle : ivrTaskcalls) { - String patid = rsaPublicKeyExample.encryptedData(ivrTaskSingle.getPatid().toString(), pub_key); - SendMagParam sendMagParam = new SendMagParam(); - sendMagParam.setType("5"); - sendMagParam.setUrl(req_path + "/outsideChain?param1=" + taskId + "¶m2=" + patid + "¶m3=" + ivrTask1.getTaskName()); - log.info("閾炬帴瀹屾暣璺緞锛歿}", req_path + "/outsideChain?param1=" + taskId + "¶m2=" + patid + "¶m3=" + ivrTask1.getTaskName()); - //杩欎釜妯℃澘ID鍏堝啓姝伙紝鍚庨潰鍋氭垚鍙�� - sendMagParam.setTmpCode("oG3pJHPVWpE81DmZsua_2tKwgJ97r0qz37z56ns7NB4"); - Map map = new HashMap(); - map.put("first", ivrTask1.getTaskName()); - sendMagParam.setContent(JSON.toJSONString(map)); - Boolean aBoolean = sendService.sendMsg(sendMagParam); - - //浠诲姟鍙戦�佽褰� - ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); - serviceSubtaskRecord.setTaskid(ivrTaskSingle.getTaskid().toString()); - serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); - serviceSubtaskRecord.setTasktype(ivrTaskSingle.getType()); - serviceSubtaskRecord.setPreachform("4"); - serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); - serviceSubtaskRecord.setResult(aBoolean == true ? "鎴愬姛" : "澶辫触"); - serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); - } - } - //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜� 锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛� - } - } - } - - /** - * 瀹f暀浠诲姟澶勭悊 - * - * @param commonTaskcallMQ - */ - private void xjHandle(CommonTaskcallMQ commonTaskcallMQ) { - //鍒ゆ柇涓�涓媍ommonTaskcallMQ涓殑stopstate鏄惁涓巌vr_task涓殑涓�鑷达紝涓嶄竴鑷达紝鍒欒鏄庢槸鏆傚仠浜� - ServiceTask ivrTask1 = ivrTaskMapper.selectServiceTaskByTaskid(commonTaskcallMQ.getTaskid()); - if (ivrTask1.getStopState() != commonTaskcallMQ.getStopState()) { - //灏嗘秷鎭粠闃熷垪涓墧闄� - return; - } - - 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鑾峰彇妯℃澘闂 - IvrTaskTemplateVO ivrTaskTemplateVO = new IvrTaskTemplateVO(); - ivrTaskTemplateVO.setID(Long.valueOf(commonTaskcallMQ.getTemplateid())); - IvrTaskTemplateVO ivrTaskTemplateVO1 = ivrTaskTemplateService.selectInfoByCondition(ivrTaskTemplateVO); - - //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭� - ServiceSubtask ivrTaskcall = new ServiceSubtask(); - ivrTaskcall.setTaskid(commonTaskcallMQ.getTaskid()); - List<ServiceSubtask> ivrTaskcalls = ivrTaskcallMapper.selectServiceSubtaskList(ivrTaskcall); - if (descByCode.equals("鐢佃瘽")) { - for (ServiceSubtask ivrTaskcall1 : ivrTaskcalls) { - ServiceTask ivrTask = ivrTaskMapper.selectServiceTaskByTaskid(ivrTaskcall1.getTaskid()); - if (ivrTask.getSendState() != null && ivrTask.getSendState() == 3 || ivrTask.getSendState() != null && ivrTask.getSendState() == 4) { - //濡備綍浠诲姟琚�滄殏鍋溾�濇垨鈥滅粓姝⑩�� - break; + for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { + //鍏堝垽鏂竴涓嬶紝subIds鏄惁涓虹┖锛屽鏋滀笉涓虹┖锛屽彧鎵цsubIds閲岀殑鎮h�� + if (CollectionUtils.isNotEmpty(subIds)) { + boolean contains = subIds.contains(serviceSubtask.getId()); + //濡傛灉contains涓嶄负true,璇存槑褰撳墠鐨勬偅鑰呭凡缁忓彂閫佹垚鍔燂紝鐩存帴寰幆涓嬩竴涓汉灏辫 + if (!contains) continue; } - //浠诲姟鍙戦�佽褰曪紙杩欎釜浠g爜搴旇鍐欏湪phoneTask涓紝鍏堝啓鍦ㄨ繖锛屽悗闈㈠啀鏀癸級 - ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); - serviceSubtaskRecord.setTaskid(ivrTaskcall1.getTaskid().toString()); - serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); - serviceSubtaskRecord.setTasktype(ivrTaskcall1.getType()); - serviceSubtaskRecord.setPreachform("3"); - serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); - serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); - - //閫氳繃澶氱嚎绋嬬殑鏂瑰紡鍘绘墦鐢佃瘽 - executorService.submit(new PhoneTask(ivrTaskcall1, ivrTaskTemplateVO1, redisCache, sendService, phonePath, robotPhoneUtils)); - } - } else if (descByCode.equals("澶氬獟浣�")) { - //澶氬獟浣� - } else if (descByCode.equals("绾歌川")) { - //绾歌川 - } else if (descByCode.equals("鐭俊")) { - //鐭俊 -// http://localhost:8099/followvisit/particty?param1=3¶m2=348 - //瀵箄rl涓袱涓弬鏁板姞瀵� - RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); - String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); - - - for (ServiceSubtask ivrTaskSingle : ivrTaskcalls) { - String patid = rsaPublicKeyExample.encryptedData(ivrTaskSingle.getPatid().toString(), pub_key); - SendMagParam sendMagParam = new SendMagParam(); - sendMagParam.setType("4"); - sendMagParam.setUrl(req_path + "/followvisit/particty?param1=" + taskId + "¶m2=" + patid); - Boolean aBoolean = sendService.sendMsg(sendMagParam); - - //浠诲姟鍙戦�佽褰� - ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); - serviceSubtaskRecord.setTaskid(ivrTaskSingle.getTaskid().toString()); - serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); - serviceSubtaskRecord.setTasktype(ivrTaskSingle.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 ivrTaskSingle : ivrTaskcalls) { - String patid = rsaPublicKeyExample.encryptedData(ivrTaskSingle.getPatid().toString(), pub_key); - SendMagParam sendMagParam = new SendMagParam(); - sendMagParam.setType("5"); - sendMagParam.setUrl(req_path + "/outsideChain?param1=" + taskId + "¶m2=" + patid + "¶m3=" + ivrTask1.getTaskName()); - log.info("閾炬帴瀹屾暣璺緞锛歿}", req_path + "/outsideChain?param1=" + taskId + "¶m2=" + patid + "¶m3=" + ivrTask1.getTaskName()); - //杩欎釜妯℃澘ID鍏堝啓姝伙紝鍚庨潰鍋氭垚鍙�� - sendMagParam.setTmpCode("oG3pJHPVWpE81DmZsua_2tKwgJ97r0qz37z56ns7NB4"); - Map map = new HashMap(); - map.put("first", ivrTask1.getTaskName()); - sendMagParam.setContent(JSON.toJSONString(map)); - Boolean aBoolean = sendService.sendMsg(sendMagParam); - - //浠诲姟鍙戦�佽褰� - ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); - serviceSubtaskRecord.setTaskid(ivrTaskSingle.getTaskid().toString()); - serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); - serviceSubtaskRecord.setTasktype(ivrTaskSingle.getType()); - serviceSubtaskRecord.setPreachform("4"); - serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); - serviceSubtaskRecord.setResult(aBoolean == true ? "鎴愬姛" : "澶辫触"); - serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); - } - } - //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜� 锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛� - } - } - } - - /** - * 闂嵎浠诲姟澶勭悊 - * - * @param commonTaskcallMQ - */ - private void wjHandle(CommonTaskcallMQ commonTaskcallMQ) { - //鍒ゆ柇涓�涓媍ommonTaskcallMQ涓殑stopstate鏄惁涓巌vr_task涓殑涓�鑷达紝涓嶄竴鑷达紝鍒欒鏄庢槸鏆傚仠浜� - SvyTask svyTask = svyTaskMapper.selectSvyTaskByTaskid(commonTaskcallMQ.getTaskid()); - if (svyTask.getStopState() != commonTaskcallMQ.getStopState()) { - //灏嗘秷鎭粠闃熷垪涓墧闄� - return; - } - - 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鑾峰彇妯℃澘闂 - SvyTaskTemplateVO svyTaskTemplateVO = new SvyTaskTemplateVO(); - svyTaskTemplateVO.setId(Long.valueOf(commonTaskcallMQ.getTemplateid())); - SvyTaskTemplateVO svyTaskTemplateVO1 = iSvyTaskTemplateService.selectInfoByCondition(svyTaskTemplateVO); - - //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭� - SvyTaskSingle svyTaskSingle = new SvyTaskSingle(); - svyTaskSingle.setTaskid(commonTaskcallMQ.getTaskid()); - List<SvyTaskSingle> svyTaskSingles = svyTaskSingleMapper.selectSvyTaskSingleList(svyTaskSingle); - if (descByCode.equals("鐢佃瘽")) { - for (SvyTaskSingle svyTaskSingle1 : svyTaskSingles) { - SvyTask svyTask1 = svyTaskMapper.selectSvyTaskByTaskid(svyTaskSingle1.getTaskid()); - if (svyTask1.getSendState() != null && svyTask1.getSendState().equals("3") || svyTask1.getSendState() != null && svyTask1.getSendState().equals("4")) { - //濡備綍浠诲姟琚�滄殏鍋溾�濇垨鈥滅粓姝⑩�� - break; + try { + String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key); + SendMagParam sendMagParam = new SendMagParam(); + sendMagParam.setType("4"); + if (type == 1) { + //闅忚 + ServiceOutPath serviceOutPath = new ServiceOutPath(); + serviceOutPath.setParam1(taskId); + serviceOutPath.setParam2(patid); + serviceOutPath.setCreateTime(new Date()); + iServiceOutPathService.insertServiceOutPath(serviceOutPath); +// sendMagParam.setUrl(ip + ":" + req_path + "/followvisit/particty?param1=" + taskId + "¶m2=" + patid + "¶m5=false"); + //杞垚16杩涘埗 + String format = String.format("%03X", serviceOutPath.getId()); + serviceOutPath.setRadix(format); + serviceOutPath.setUpdateTime(new Date()); + iServiceOutPathService.updateServiceOutPath(serviceOutPath); + sendMagParam.setPhone(serviceSubtask.getPhone()); + sendMagParam.setUrl(ip + ":" + req_path + "/sf?p=" + format); + sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌闅忚璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�"); + } 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 + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=false"); + sendMagParam.setPhone(serviceSubtask.getPhone()); + sendMagParam.setUrl(ip + ":" + req_path + "/wt?p=" + format); + sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�"); + } else if (type == 3) { + //瀹f暀 + 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 + "/outsideChainxj?param1=" + taskId + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=false"); + sendMagParam.setPhone(serviceSubtask.getPhone()); + sendMagParam.setUrl(ip + ":" + req_path + "/xj?p=" + format); + sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�"); + } + //鐭俊杩橀渶瑕佹ā鏉� + Map<String, String> req = new HashMap<>(); + req.put("phone", sendMagParam.getPhone()); + req.put("content", sendMagParam.getContent()); + String s = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req)); + if (s.equals("true")) { + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); + serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); + serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); + serviceSubtaskRecord.setPreachform("4"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecord.setRemark("鐭俊鍙戦�佹垚鍔�"); + lssubIds.add(serviceSubtask.getId()); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + continue; + } + } catch (Exception e) { + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); + serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); + serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); + serviceSubtaskRecord.setPreachform("4"); + serviceSubtaskRecord.setResult("fail"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecord.setRemark("鐭俊鍙戦�佸け璐�"); + log.error("鐭俊鍙戦�佸け璐ワ細{}", e.getMessage()); + lssubIds.add(serviceSubtask.getId()); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + continue; } - //浠诲姟鍙戦�佽褰曪紙杩欎釜浠g爜搴旇鍐欏湪phoneTask涓紝鍏堝啓鍦ㄨ繖锛屽悗闈㈠啀鏀癸級 - ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); - serviceSubtaskRecord.setTaskid(svyTaskSingle1.getTaskid().toString()); - serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); - serviceSubtaskRecord.setTasktype(svyTaskSingle1.getType()); - serviceSubtaskRecord.setPreachform("3"); - serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); - serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); - //閫氳繃澶氱嚎绋嬬殑鏂瑰紡鍘绘墦鐢佃瘽 -// executorService.submit(new PhoneTask(ivrTaskcall1, ivrTaskTemplateVO1, redisCache, sendService, phonePath, robotPhoneUtils)); - } - } else if (descByCode.equals("澶氬獟浣�")) { - //澶氬獟浣� - } else if (descByCode.equals("绾歌川")) { - //绾歌川 - } else if (descByCode.equals("鐭俊")) { - //鐭俊 - } else if (descByCode.equals("鍏紬鍙�")) { - //鍏紬鍙� - RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); - String taskId = rsaPublicKeyExample.encryptedData(svyTask.getTaskid().toString(), pub_key); - for (SvyTaskSingle svyTaskSingle1 : svyTaskSingles) { - String patid = rsaPublicKeyExample.encryptedData(svyTaskSingle1.getPatid().toString(), pub_key); - SendMagParam sendMagParam = new SendMagParam(); - sendMagParam.setType("5"); - sendMagParam.setUrl(req_path + "/outsideChain?param1=" + taskId + "¶m2=" + patid + "¶m3=" + svyTask.getTaskName()); - log.info("閾炬帴瀹屾暣璺緞锛歿}", req_path + "/outsideChain?param1=" + taskId + "¶m2=" + patid + "¶m3=" + svyTask.getTaskName()); - //杩欎釜妯℃澘ID鍏堝啓姝伙紝鍚庨潰鍋氭垚鍙�� - sendMagParam.setTmpCode("oG3pJHPVWpE81DmZsua_2tKwgJ97r0qz37z56ns7NB4"); - Map map = new HashMap(); - map.put("first", svyTask.getTaskName()); - sendMagParam.setContent(JSON.toJSONString(map)); - Boolean aBoolean = sendService.sendMsg(sendMagParam); + //鍦ㄥ瓙浠诲姟琛ㄩ噷璁板綍涓�涓� + 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(svyTaskSingle1.getTaskid().toString()); - serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); - serviceSubtaskRecord.setTasktype(svyTaskSingle1.getType()); - serviceSubtaskRecord.setPreachform("4"); + 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(aBoolean == true ? "鎴愬姛" : "澶辫触"); + serviceSubtaskRecord.setResult("success"); + serviceSubtaskRecord.setRemark("鐭俊鍙戦�佹垚鍔�"); serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); } + if (CollectionUtils.isEmpty(lssubIds)) { + //濡傛灉鈥滀复鏃跺瓙浠诲姟鈥濅负绌猴紝璇存槑鍏ㄥ彂閫佸畬浜� + isSend = true; + } + //灏嗗瓙浠诲姟ID娓呯┖锛屽皢鈥滀复鏃跺瓙浠诲姟鈥濇暟鎹� 鏀惧埌 鈥滃瓙浠诲姟鈥� 涓� + subIds.clear(); + subIds.addAll(lssubIds); + lssubIds.clear(); + } 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); + try { + SendMagParam sendMagParam = new SendMagParam(); + sendMagParam.setType("5"); + sendMagParam.setUrl(ip + ":" + req_path + "/outsideChain?param1=" + taskId + "¶m2=" + patid + "¶m3=" + ivrTask1.getTaskName() + "¶m5=false"); + log.info("閾炬帴瀹屾暣璺緞锛歿}", ip + ":" + req_path + "/outsideChain?param1=" + taskId + "¶m2=" + patid + "¶m3=" + ivrTask1.getTaskName() + "¶m5=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 + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=false"; +//// } else if (type == 2) { +//// url = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=false"; +//// } else if (type == 3) { +//// url = ip + ":" + req_path + "/outsideChainxj?param1=" + taskId + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=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 + "¶m2=" + patid + "¶m5=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 + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=false"); +// url = ip + ":" + req_path + "/wt?p=" + format; +// } else if (type == 3) { +// //瀹f暀 +// 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; +// } +// +// 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; + } +// } + } catch (Exception e) { + 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.setResult("fail"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecord.setRemark("鍏紬鍙峰彂閫佸け璐�"); + log.error("鍏紬鍙峰彂閫佸け璐ワ細{}", e.getMessage()); + lssubIds.add(serviceSubtask.getId()); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + 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.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)) { + //濡傛灉鈥滀复鏃跺瓙浠诲姟鈥濅负绌猴紝璇存槑鍏ㄥ彂閫佸畬浜� + isSend = true; + } + //灏嗗瓙浠诲姟ID娓呯┖锛屽皢鈥滀复鏃跺瓙浠诲姟鈥濇暟鎹� 鏀惧埌 鈥滃瓙浠诲姟鈥� 涓� + subIds.clear(); + subIds.addAll(lssubIds); + lssubIds.clear(); } //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜� 锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛� } + if (CollectionUtils.isNotEmpty(subIds)) { + //濡傛灉鍏ㄩ儴鐨勫彂閫佹柟寮忛兘鍙戝畬浜嗭紝杩樻湁鏄湭鍙戦�佺殑,闇�瑕佸幓subTask琛ㄤ腑锛岃褰曚竴涓嬶紝鍙戦�佸け璐� + for (Long id : subIds) { + ServiceSubtask serviceSubtask = new ServiceSubtask(); + serviceSubtask.setResult("error"); + serviceSubtask.setRemark("鍙戦�佸け璐�"); + serviceSubtask.setSendstate(5L); + serviceSubtask.setId(id); + serviceSubtask.setFinishtime(new Date()); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + } + } } + } - -// /** + // /** // * 鏈哄櫒浜虹涓�鍙ヨ瘽璇煶 // * concurrency = "50" 骞跺彂鏁颁负50 // */ @@ -498,5 +600,47 @@ // channel.basicReject(message.getMessageProperties().getDeliveryTag(), true); // } // } + 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; + } + + private String getWXCode(String idcard, String url, String taskName, String taskDesc, String submitprompt) { + 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("鐤剧梾搴峰娉ㄦ剰浜嬮」"); + + String result = HttpUtils.sendPost(thirdWXUrl, new Gson().toJson(xinHuaWXReq)); + JSONObject jsonObject = JSONObject.parseObject(result); + String code = (String) jsonObject.toString(); + return code; + } } -- Gitblit v1.9.3