ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
@@ -3,6 +3,7 @@ import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.enums.PhotoEnum; import com.ruoyi.common.enums.RadioEnum; import com.ruoyi.common.enums.VadioEnum; @@ -38,9 +39,7 @@ import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import java.io.*; import java.util.ArrayList; import java.util.Base64; import java.util.List; import java.util.*; /** * 通用请求处理 @@ -58,6 +57,9 @@ @Autowired private SysConfigMapper sysConfigMapper; @Autowired private RedisCache redisCache; private static final String FILE_DELIMETER = ","; @@ -350,6 +352,52 @@ String fileName = filePath.toLowerCase(); return fileName.endsWith(".doc") || fileName.endsWith(".docx"); } /** * @param * @return */ @ApiOperation("获取RedisCache") @PostMapping("/getRedisCache") public String getRedisCache(@RequestBody String key) { String object = redisCache.getCacheObject(key); return object; } /** * @param * @return */ @ApiOperation("查询RedisCache") @PostMapping("/findRedisCacheList") public Set<String> findRedisCacheList(@RequestBody String key) { Set<String> allKeys = redisCache.getAllKeys(); Set<String> matchKeys = new HashSet<>(); for (String redisKey : allKeys) { if(redisKey.contains(key)) { matchKeys.add(redisKey); } } return matchKeys; } /** * @param * @return */ @ApiOperation("删除RedisCache") @PostMapping("/deleteRedisCache") public Set<String> deleteRedisCache(@RequestBody String key) { Set<String> allKeys = redisCache.getAllKeys(); Set<String> matchKeys = new HashSet<>(); for (String redisKey : allKeys) { if(redisKey.contains(key)) { redisCache.deleteObject(redisKey); matchKeys.add(redisKey); } } return matchKeys; } } ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -1094,8 +1094,26 @@ if (dateToday) { try { String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key); String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key); String url = null; url = localIP + ":" + req_path + "/outsideChainwt?param1=" + taskId + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=false"; url = localIP + ":" + req_path + "/outsideChainwt?param1=" + taskId + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=false" + "$param6=" + subId; ServiceOutPath serviceOutPath = new ServiceOutPath(); serviceOutPath.setParam1(taskId); serviceOutPath.setParam2(patid); serviceOutPath.setParam3(ivrTask1.getTaskName()); serviceOutPath.setParam6(subId); serviceOutPath.setCreateTime(new Date()); serviceOutPath.setOrgid(serviceSubtask.getOrgid()); iServiceOutPathService.insertServiceOutPath(serviceOutPath); String format = String.format("%03X", serviceOutPath.getId()); serviceOutPath.setRadix(format); serviceOutPath.setUpdateTime(new Date()); iServiceOutPathService.updateServiceOutPath(serviceOutPath); //获取微信公众号请求信息根据机构ID List<String> wxqqxx = WxGZHEnum.getDescByCode(patArchive.getOrgid()); smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java
@@ -41,11 +41,23 @@ @ApiModelProperty(value = "机构ID") private String orgid; @ApiModelProperty("发送状态") private String sendstate; /** * 发送状态 */ @Excel(name = " 发送状态 ") @ApiModelProperty(value = "发送状态 1 被领取(在任务中是新建,在服务中是被领取) 2 待发送 3 已发送 4 不执行 5 发送失败 6 已完成 7 超时(人工)") private Long sendstate; @ApiModelProperty("完成状态(0未完成 1已完成 对应finishtime是否有值)") private String isFinished; /** * 超链接统计列表类型 - 宣教超链接统计 * totalCountInfo - 宣教发送总量 * sendSuccessCountInfo - 发送成功量 sendstate = 6 * readCountInfo - 已读量 finishtime != null */ @ApiModelProperty("超链接统计列表类型") private String hyperLinkInfoType; /** * pageNum smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -2938,15 +2938,15 @@ //首次出院随访 if (serviceSubtask.getVisitCount() != null && serviceSubtask.getVisitCount() == 1) { //首次应随访 if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) { if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L)) { serviceSubtaskStatistic.setNeedFollowUp(serviceSubtaskStatistic.getNeedFollowUp() + 1L); } //首次无需随访 if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) { if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate().equals(4L)) { serviceSubtaskStatistic.setNonFollowUpFirst(serviceSubtaskStatistic.getNonFollowUpFirst() + 1L); } //首次随访失败(包括随访失败+人工超时) if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 5 || serviceSubtask.getSendstate() == 7)) { if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(5L) || serviceSubtask.getSendstate().equals(7L))) { serviceSubtaskStatistic.setFollowUpFail(serviceSubtaskStatistic.getFollowUpFail() + 1L); } /** @@ -2959,7 +2959,7 @@ } //首次无需随访 if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(4L))) { serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L); serviceSubtaskStatistic.setNonFollowUpFirst(serviceSubtaskStatistic.getNonFollowUpFirst() + 1L); } //首次随访人工 (不统计不执行) if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) { @@ -2982,6 +2982,10 @@ if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(6L))) { serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L); } //首次无需随访 if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(4L))) { serviceSubtaskStatistic.setNonFollowUpFirst(serviceSubtaskStatistic.getNonFollowUpFirst() + 1L); } //首次随访人工 (只统计已完成) if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate().equals(6L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) { serviceSubtaskStatistic.setManual(serviceSubtaskStatistic.getManual() + 1L); @@ -3002,6 +3006,10 @@ //首次随访成功 - 统计时候加上不执行的,已发送的 if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(6L) || serviceSubtask.getSendstate().equals(3L) || serviceSubtask.getSendstate().equals(4L))) { serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L); } //首次无需随访 if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(4L))) { serviceSubtaskStatistic.setNonFollowUpFirst(serviceSubtaskStatistic.getNonFollowUpFirst() + 1L); } //首次随访人工 (统计不执行) if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) { @@ -3191,7 +3199,7 @@ serviceSubtaskStatistic.setNeedFollowUp(serviceSubtaskStatistic.getNeedFollowUp() + 1L); } //首次无需随访 if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) { if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(4L))) { serviceSubtaskStatistic.setNonFollowUpFirst(serviceSubtaskStatistic.getNonFollowUpFirst() + 1L); } //首次待随访 @@ -4603,6 +4611,23 @@ @Override public List<ServiceSubtask> gethelibraryCountHyperlink(HeLibraryCountVO heLibraryCountVO){ String hyperLinkInfoType = heLibraryCountVO.getHyperLinkInfoType(); if(StringUtils.isNotEmpty(hyperLinkInfoType)){ heLibraryCountVO.setSendstate(null); heLibraryCountVO.setIsFinished(null); switch (hyperLinkInfoType) { case "totalCountInfo": break; case "sendSuccessCountInfo": heLibraryCountVO.setSendstate(6L); break; case "readCountInfo": heLibraryCountVO.setIsFinished("1"); break; default: break; } } List<ServiceSubtask> serviceSubtasks = serviceSubtaskMapper.gethelibraryCountHyperlink(heLibraryCountVO); return serviceSubtasks; } smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -2898,7 +2898,7 @@ <if test="sendstate != null"> AND sendstate = #{sendstate} </if> <if test="isFinished != null and isFinished != '0'"> <if test="isFinished != null and isFinished == '1'"> AND finishtime is not null </if> <if test="starttime != null">AND starttime >= #{starttime}</if> @@ -2994,10 +2994,10 @@ <if test="orgid != null and orgid != ''"> and orgid = #{orgid} </if> <if test="sendstate != null and isFinished != '0'"> <if test="sendstate != null"> AND sendstate = #{sendstate} </if> <if test="isFinished != null"> <if test="isFinished != null and isFinished == '1'"> AND finishtime is not null </if> <if test="hospitaldistrictcodes != null and hospitaldistrictcodes.size() > 0">