//package com.ruoyi.quartz.task;
|
//
|
//import com.alibaba.fastjson2.JSONObject;
|
//import com.fasterxml.jackson.databind.JsonNode;
|
//import com.fasterxml.jackson.databind.ObjectMapper;
|
//import com.google.common.reflect.TypeToken;
|
//import com.google.gson.Gson;
|
//import com.google.gson.JsonArray;
|
//import com.google.gson.JsonObject;
|
//import com.ruoyi.common.core.redis.RedisCache;
|
//import com.ruoyi.common.enums.MsgLSEnum;
|
//import com.ruoyi.common.enums.ServiceFromEnum;
|
//import com.ruoyi.common.enums.WxGZHEnum;
|
//import com.ruoyi.common.utils.HttpUtil;
|
//import com.ruoyi.common.utils.OkHttpExample;
|
//import com.ruoyi.common.utils.RSAPublicKeyExample;
|
//import com.ruoyi.common.utils.StringUtils;
|
//import com.ruoyi.common.utils.http.HttpUtils;
|
//import com.smartor.common.LSHospTokenUtil;
|
//import com.smartor.domain.*;
|
//import com.smartor.mapper.ServiceSubtaskMapper;
|
//import com.smartor.mapper.ServiceTaskMapper;
|
//import com.smartor.mapper.SysUserImportMapper;
|
//import com.smartor.service.*;
|
//import lombok.extern.slf4j.Slf4j;
|
//import org.apache.commons.collections4.CollectionUtils;
|
//import org.apache.commons.lang3.ObjectUtils;
|
//import org.springframework.beans.factory.annotation.Autowired;
|
//import org.springframework.beans.factory.annotation.Value;
|
//import org.springframework.stereotype.Component;
|
//import org.springframework.transaction.PlatformTransactionManager;
|
//import org.springframework.transaction.annotation.Transactional;
|
//
|
//import java.io.File;
|
//import java.io.FileWriter;
|
//import java.io.IOException;
|
//import java.lang.reflect.Type;
|
//import java.net.URLEncoder;
|
//import java.nio.charset.StandardCharsets;
|
//import java.nio.file.Files;
|
//import java.nio.file.Paths;
|
//import java.security.MessageDigest;
|
//import java.text.ParseException;
|
//import java.text.SimpleDateFormat;
|
//import java.time.LocalDate;
|
//import java.time.LocalDateTime;
|
//import java.time.LocalTime;
|
//import java.time.ZoneId;
|
//import java.time.format.DateTimeFormatter;
|
//import java.util.*;
|
//import java.util.stream.Collectors;
|
//
|
//import static cn.hutool.core.convert.Convert.toHex;
|
//
|
///**
|
// * 定时任务调度测试
|
// *
|
// * @author ruoyi
|
// */
|
//@Slf4j
|
//@Component("ryTask2")
|
//public class RyTask2 {
|
// @Autowired
|
// private IServiceThirdDataService iServiceThirdDataService;
|
//
|
// @Autowired
|
// private IServiceOutPathService iServiceOutPathService;
|
//
|
// @Autowired
|
// private IServiceSubtaskAnswerService serviceSubtaskAnswerService;
|
//
|
// @Autowired
|
// private IPatMedInhospService iPatMedInhospService;
|
//
|
// @Autowired
|
// private IPatMedOuthospService iPatMedOuthospService;
|
//
|
// @Autowired
|
// private IPatMedOperationService iPatMedOperationService;
|
//
|
// @Autowired
|
// private IServiceSubtaskService iServiceSubtaskService;
|
//
|
// @Autowired
|
// private IServicePatientTempService iServicePatientTempService;
|
//
|
// @Autowired
|
// private PlatformTransactionManager transactionManager;
|
//
|
// @Autowired
|
// private SysUserImportMapper sysUserImportMapper;
|
//
|
// @Value("${localIP}")
|
// private String localIP;
|
//
|
// @Value("${xhsmsPath}")
|
// private String xhsmsPath;
|
//
|
// @Value("${pub_key}")
|
// private String pub_key;
|
//
|
// @Value("${req_path}")
|
// private String req_path;
|
//
|
// @Value("${visitHosp}")
|
// private Integer visitHosp;
|
//
|
// @Autowired
|
// private ServiceTaskMapper serviceTaskMapper;
|
//
|
// @Autowired
|
// private ServiceSubtaskMapper serviceSubtaskMapper;
|
//
|
// @Autowired
|
// private RedisCache redisCache;
|
//
|
// @Autowired
|
// private IServiceSubtaskRecordService serviceSubtaskRecordService;
|
//
|
// @Autowired
|
// IBaseSmsaccountService baseSmsaccountService;
|
//
|
// @Autowired
|
// IPatArchiveService patArchiveService;
|
//
|
// @Autowired
|
// IPatMedInhospService patMedInhospService;
|
//
|
// @Autowired
|
// IPatMedOuthospService patMedOuthospService;
|
//
|
// @Autowired
|
// ISvyTaskTemplateService svyTaskTemplateService;
|
//
|
// @Autowired
|
// IIvrTaskTemplateService iIvrTaskTemplateService;
|
//
|
// @Value("${hosp_info_url}")
|
// private String hospInfoUrl;
|
//
|
// @Value("${appid}")
|
// private String appid;
|
//
|
// @Value("${server.port}")
|
// private String port;
|
//
|
// public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) {
|
// System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
|
// }
|
//
|
// public void ryParams(String params) {
|
// System.out.println("执行有参方法:" + params);
|
// }
|
//
|
// public void ryNoParams() {
|
// System.out.println("执行无参方法");
|
// }
|
//
|
// public void importData() {
|
// String filePath = "C:\\Users\\86176\\Desktop\\新建文本文档 4.txt"; // 替换为你的文件路径
|
//
|
// try {
|
// // 读取文件内容
|
// String jsonContent = new String(Files.readAllBytes(Paths.get(filePath)), StandardCharsets.UTF_8);
|
//
|
// // 创建ObjectMapper对象
|
// ObjectMapper objectMapper = new ObjectMapper();
|
// // 解析JSON为JsonNode
|
// JsonNode rootNode = objectMapper.readTree(jsonContent);
|
// // 获取resultList
|
// JsonNode resultListNode = rootNode.path("results").path("resultList");
|
// // 遍历resultList中的每个对象
|
// for (JsonNode item : resultListNode) {
|
//
|
// SysUserImport person = objectMapper.treeToValue(item, SysUserImport.class);
|
// person.setStaffPhoto("");
|
// sysUserImportMapper.insertSysUserImport(person);
|
//
|
// }
|
//
|
// } catch (IOException e) {
|
// e.printStackTrace();
|
// }
|
//
|
// }
|
//
|
// public void analysisData() {
|
// System.out.println("---------------------------");
|
// //数据解析
|
// ServiceThirdData serviceThirdData = new ServiceThirdData();
|
// serviceThirdData.setDataType("ADT^A03");
|
// serviceThirdData.setIsDeal(0);
|
// serviceThirdData.setCreateTime(new Date());
|
// iServiceThirdDataService.queryList(serviceThirdData);
|
//
|
// }
|
//
|
// /**
|
// * 定时处理外链的数据
|
// */
|
// public void runServiceSubTaskAnswer() {
|
// serviceSubtaskAnswerService.saveQuestionAnswer(null, 0L);
|
// }
|
//
|
//
|
// /**
|
// * 处理his数据
|
// */
|
// public void dealHisData() {
|
// //将患者信息、出院、门诊数据全部采集
|
// // 获取当前日期和时间
|
// LocalDateTime endTime = LocalDateTime.now();
|
// endTime = endTime.with(LocalTime.MIN);
|
//// String dateStr = "2024/11/30 00:00:00";
|
//// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
|
//// LocalDateTime endTime = LocalDateTime.parse(dateStr, formatter);
|
// // 获取前一天的日期和时间
|
// LocalDateTime startTime = endTime.minusDays(1);
|
// startTime = startTime.with(LocalTime.MIN);
|
// getInHospInfo("0", startTime, endTime);
|
// getInHospInfo("1", startTime, endTime);
|
//
|
// //调用dealOupHospInfo数据处理方法,处理完后,将“出院表的check_flag=1”
|
// //获取当前日期 (精确到天)往前推相应天数(在指定的基础模板中找对应的天数),
|
// //循环患者信息,根据患者"出院诊断ICD值”获取到相当的模板(获取取相应的天数);
|
// //根据查询出来的模板,去固定任务(固定任务,已经将模板也固定了)去匹配模板
|
// //根据匹配出来的模板和任务与患者信息,将数据插入到子任务表中
|
// }
|
//
|
// public void dealHisData2() {
|
// //将患者信息、出院、门诊数据全部采集
|
// // 指定的开始日期
|
// LocalDate endDate = LocalDate.of(2025, 3, 3);
|
// // 当前日期
|
// LocalDate currentDate = LocalDate.now();
|
// // 定义日期格式
|
// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd ");
|
//
|
// // 从开始日期到当前日期逐天打印
|
// for (LocalDate date = endDate; !date.isAfter(currentDate); date = date.plusDays(1)) {
|
// System.out.println(date.format(formatter));
|
// getInHospInfo("0", date.minusDays(1).atStartOfDay(), date.atStartOfDay());
|
// getInHospInfo("1", date.minusDays(1).atStartOfDay(), date.atStartOfDay());
|
// }
|
//
|
// }
|
//
|
// /**
|
// * 处理患者信息,进入子任务表
|
// */
|
// public void dealOutHospInfo() {
|
// if (port.equals("8095")) {
|
// //出院表
|
// iPatMedInhospService.dealOutHospInfo();
|
// //门诊表
|
// if (visitHosp != 1) {
|
// iPatMedOuthospService.dealOutpatientInfo();
|
// }
|
// }
|
// }
|
//
|
//
|
// /**
|
// * 处理手术信息,进入子任务表
|
// */
|
// public void dealOperationInfo() {
|
// if (port.equals("8095")) iPatMedOperationService.dealOperationInfo();
|
//
|
// }
|
//
|
// /**
|
// * 处理患者信息,进入子任务表(微信小程序)
|
// */
|
// public void dealOutHospInfoXHC() {
|
// if (port.equals("8095")) {
|
// PatMedInhosp patMedInhosp = new PatMedInhosp();
|
// //获取未处理的数据
|
// List<ServicePatientTemp> servicePatientTemps = iServicePatientTempService.selectServicePatientTempList(new ServicePatientTemp());
|
// }
|
// }
|
//
|
//
|
// /**
|
// * 长期任务执行
|
// */
|
// public void longTaskSend() {
|
// //获取任务信息
|
// ServiceTask st = new ServiceTask();
|
// st.setDelFlag("0");
|
// st.setLongTask(1);
|
// List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st);
|
// log.info("serviceTasks进来了吗?{}", serviceTasks.size());
|
// for (ServiceTask serviceTask : serviceTasks) {
|
// CommonTaskcallMQ commonTaskcallMQ = new CommonTaskcallMQ();
|
// commonTaskcallMQ.setTaskid(serviceTask.getTaskid());
|
// commonTaskcallMQ.setPreachform(serviceTask.getPreachform());
|
// commonTaskcallMQ.setSendType("2");
|
// sfHandlle(commonTaskcallMQ, localIP);
|
// }
|
// }
|
//
|
// /**
|
// * 判断日期是否是今天
|
// *
|
// * @param date
|
// * @return
|
// */
|
// public boolean isDateToday(Date date) {
|
// if (date == null) {
|
// return false;
|
// }
|
// // 将 Date 转为 LocalDate
|
// LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
// // 获取今天的 LocalDate
|
// LocalDate today = LocalDate.now();
|
// // 如果日期早于或等于今天,返回 true
|
// return !localDate.isAfter(today);
|
// }
|
//
|
// public void sfHandlle(CommonTaskcallMQ commonTaskcallMQ, String ip) {
|
// log.info("sfHandlle进来了吗?{}", commonTaskcallMQ);
|
// //判断一下commonTaskcallMQ中的stopstate是否与ivr_task中的一致,不一致,则说明是暂停了
|
// ServiceTask ivrTask1 = serviceTaskMapper.selectServiceTaskByTaskid(commonTaskcallMQ.getTaskid());
|
//
|
// if (StringUtils.isNotEmpty(commonTaskcallMQ.getPreachform())) {
|
// //如何任务发送方式不为空
|
// String[] split = commonTaskcallMQ.getPreachform().split(",");
|
// log.info("split进来了吗?{}", split);
|
// for (String serviceFrom : split) {
|
// String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(serviceFrom));
|
// //通过任务ID拿到患者信息
|
// ServiceSubtaskVO ivrTaskcall = new ServiceSubtaskVO();
|
// ivrTaskcall.setTaskid(commonTaskcallMQ.getTaskid());
|
// ivrTaskcall.setSendstate(2L);
|
// List<ServiceSubtask> subtaskList = iServiceSubtaskService.selectServiceSubtaskList(ivrTaskcall);
|
// //丽水有的医院还没法做长期任务随访
|
// List<ServiceSubtask> subtaskList2 = new ArrayList<>();
|
// if (visitHosp == 2) {
|
// for (ServiceSubtask serviceSubtask : subtaskList) {
|
//// Boolean b = VisitSendStateEnum.getDescByCode(serviceSubtask.getOrgid());
|
// Boolean b = false;
|
// if (b) subtaskList2.add(serviceSubtask);
|
// }
|
// subtaskList = subtaskList2;
|
// }
|
//
|
// // 按照 endtime 离当前时间最近的排序
|
// List<ServiceSubtask> selectServiceSubtaskList = subtaskList.stream().sorted(Comparator.comparing(subtask -> Math.abs(subtask.getEndtime().getTime() - new Date().getTime()))).collect(Collectors.toList());
|
//
|
// if (descByCode.equals("电话")) {
|
// String value = "";
|
// List<String> list = new ArrayList<>();
|
// for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
|
// ServiceTask ivrTask = serviceTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
|
// if (ivrTask.getSendState() != null && ivrTask.getSendState() == 3 || ivrTask.getSendState() != null && ivrTask.getSendState() == 4) {
|
// //如何任务被“暂停”或“终止”
|
// break;
|
// }
|
// if (org.apache.commons.lang3.StringUtils.isEmpty(serviceSubtask.getPhone())) {
|
// serviceSubtask.setRemark("手机号为空");
|
// serviceSubtask.setSendstate(4L);
|
// serviceSubtask.setResult("error");
|
//// serviceSubtask.setFinishtime(new Date());
|
// serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
|
// continue;
|
// }
|
// boolean dateToday = isDateToday(serviceSubtask.getLongSendTime());
|
// //说明是立即发送(先把消息放到cache-0中, displayNo不知道怎么配置)
|
// if (dateToday) {
|
// list.add(serviceSubtask.getId().toString());
|
// //在子任务表里记录一下
|
// String uuid = UUID.randomUUID().toString();
|
// serviceSubtask.setResult("success");
|
// serviceSubtask.setRemark("长期任务,电话进入队列成功");
|
// serviceSubtask.setGuid(uuid);
|
// serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
|
//
|
// //任务发送记录
|
// ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
|
// 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);
|
//
|
// }
|
// }
|
// //将要执行的放到缓存中
|
// if (list.size() > 0) {
|
//// redisCache.setCacheListLeft("cache-0", list);
|
// redisCache.setCacheListLeftAndDistinct("cache-0", list);
|
// }
|
// } else if (descByCode.equals("多媒体")) {
|
// //多媒体
|
// } else if (descByCode.equals("纸质")) {
|
// //纸质
|
// } else if (descByCode.equals("微信小程序")) {
|
// //微信小程序
|
// log.info("ivrTask1的值为:{}", ivrTask1);
|
// if (ObjectUtils.isNotEmpty(ivrTask1) && ivrTask1.getPatCycle() == 1) {
|
// //说明该任务的患者是循环执行的
|
// ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
|
// serviceSubtaskVO.setTaskid(ivrTask1.getTaskid());
|
// List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
|
// //这里需要根据身份证去重
|
// List<ServiceSubtask> serviceSubtaskListFilter = new ArrayList<>();
|
// aa:
|
// for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
|
// for (ServiceSubtask ss : serviceSubtaskListFilter) {
|
// if (ss.getSfzh().equals(serviceSubtask.getSfzh())) {
|
// continue aa;
|
// }
|
// }
|
// serviceSubtaskListFilter.add(serviceSubtask);
|
// }
|
// for (ServiceSubtask serviceSubtask : serviceSubtaskListFilter) {
|
// //将子任务ID删除 、sendstate改成3
|
// serviceSubtask.setSendstate(3L);
|
// serviceSubtask.setId(null);
|
// serviceSubtask.setFinishtime(null);
|
// serviceSubtask.setCreateTime(new Date());
|
// serviceSubtask.setUpdateTime(new Date());
|
// //处理重复新增问题,先查一下今天是不是有新增过,新增过就不新增了
|
// ServiceSubtaskVO ssvo = new ServiceSubtaskVO();
|
// LocalDate today = LocalDate.now();
|
// LocalTime startOfDay = LocalTime.of(0, 0, 0);
|
// LocalTime endOfDay = LocalTime.of(23, 59, 59);
|
// Date startOfDayDate = Date.from(today.atTime(startOfDay).atZone(ZoneId.systemDefault()).toInstant());
|
// Date endOfDayDate = Date.from(today.atTime(endOfDay).atZone(ZoneId.systemDefault()).toInstant());
|
// ssvo.setCreateStartTime(startOfDayDate);
|
// ssvo.setCreateEndTime(endOfDayDate);
|
// ssvo.setCreateBy(serviceSubtask.getCreateBy());
|
// ssvo.setSendname(serviceSubtask.getSendname());
|
// ssvo.setSfzh(serviceSubtask.getSfzh());
|
// List<ServiceSubtask> serviceSubtaskListByCreateTime = serviceSubtaskMapper.selectServiceSubtaskListByCreateTime(ssvo);
|
// if (CollectionUtils.isEmpty(serviceSubtaskListByCreateTime))
|
// serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
|
// }
|
// }
|
// } else if (descByCode.equals("短信")) {
|
// RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
|
// String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key);
|
// for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
|
// log.info("短信长期任务发送---------进来了吗?{}", serviceSubtask);
|
// boolean dateToday = isDateToday(serviceSubtask.getLongSendTime());
|
// if (dateToday) {
|
// try {
|
// //先判断患者是不是还要发送
|
// PatArchive patArchive = patArchiveService.selectPatArchiveByPatid(serviceSubtask.getPatid());
|
// if (!Objects.isNull(patArchive) && patArchive.getNotrequiredFlag() == "1") {
|
// //不需要发送
|
// serviceSubtask.setResult("error");
|
// serviceSubtask.setRemark(patArchive.getNotrequiredreason());
|
// serviceSubtask.setSendstate(4L);
|
//// serviceSubtask.setFinishtime(new Date());
|
// iServiceSubtaskService.insertServiceSubtask(serviceSubtask);
|
// continue;
|
// }
|
// String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
|
// String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key);
|
// SendMagParam sendMagParam = new SendMagParam();
|
// sendMagParam.setType("4");
|
// ServiceOutPath serviceOutPath = new ServiceOutPath();
|
// serviceOutPath.setParam1(taskId);
|
// serviceOutPath.setParam2(patid);
|
// serviceOutPath.setParam3(ivrTask1.getTaskName());
|
// serviceOutPath.setParam6(subId);
|
// 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.setPhone(serviceSubtask.getPhone());
|
// sendMagParam.setUrl(ip + ":" + req_path + "/wt?p=" + format);
|
// sendMagParam.setContent("【新华医院】您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!");
|
// String isSuccess = null;
|
// if (visitHosp == 1) {
|
// Map<String, String> req = new HashMap<>();
|
// req.put("phone", sendMagParam.getPhone());
|
// req.put("content", sendMagParam.getContent());
|
// isSuccess = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req));
|
// } else if (visitHosp == 2) {
|
// //丽水的短信发送方式
|
// Map<String, String> map = MsgLSEnum.getAddressByCode(serviceSubtask.getOrgid());
|
// String token = LSHospTokenUtil.getToken(serviceSubtask.getOrgid());
|
// if (ObjectUtils.isNotEmpty(map) && StringUtils.isEmpty(map.get("address"))) {
|
// ServiceSubtask ss = new ServiceSubtask();
|
// ss.setResult("error");
|
// ss.setRemark("短信发送失败,该机构没有配置短信地址");
|
// ss.setSendstate(5L);
|
// ss.setId(serviceSubtask.getId());
|
//// ss.setFinishtime(new Date());
|
// serviceSubtaskMapper.updateServiceSubtask(ss);
|
// continue;
|
// }
|
// log.info("---------丽水短信发送入参address:{}, sendMagParam:{}, orgid:{}-------", map.get("address"), sendMagParam, serviceSubtask.getOrgid());
|
// String dxCode = getDXCode(map.get("address"), sendMagParam.getPhone(), sendMagParam.getContent(), map.get("sendPersonId"), map.get("sendPersonName"), MsgLSEnum.getHeaderByCode(serviceSubtask.getOrgid()), token);
|
// log.info("---------丽水短信发送结果:{}-------", dxCode);
|
// ObjectMapper objectMapper = new ObjectMapper();
|
// Map<String, Object> textParam = objectMapper.readValue(dxCode, Map.class);
|
// String code = textParam.get("Code").toString();
|
// if (code.equals("0")) {
|
// isSuccess = "true";
|
// }
|
// }
|
// //任务发送记录
|
// 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("success");
|
// if (StringUtils.isNotEmpty(isSuccess) && !isSuccess.equals("true"))
|
// serviceSubtaskRecord.setResult("error");
|
// serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
|
//
|
// //发送完成后,修改状态
|
// serviceSubtask.setSendstate(3L);
|
// if (StringUtils.isNotEmpty(isSuccess) && !isSuccess.equals("true")) {
|
// serviceSubtask.setResult("success");
|
// serviceSubtask.setRemark("短信发送成功");
|
// } else {
|
// serviceSubtask.setResult("error");
|
// serviceSubtask.setSendstate(5L);
|
// serviceSubtask.setRemark("短信发送失败");
|
// }
|
// iServiceSubtaskService.updateServiceSubtask(serviceSubtask);
|
// } catch (Exception e) {
|
// String guid = UUID.randomUUID().toString();
|
// log.error("长期任务,短信发送失败原因:{},{}", e.getMessage(), guid);
|
// serviceSubtask.setResult("error");
|
// serviceSubtask.setRemark("系统错误");
|
// serviceSubtask.setSendstate(5L);
|
//// serviceSubtask.setFinishtime(new Date());
|
// serviceSubtask.setGuid(guid);
|
// iServiceSubtaskService.updateServiceSubtask(serviceSubtask);
|
// }
|
// }
|
// }
|
// } else if (descByCode.equals("公众号")) {
|
// log.info("公众号进来了吗?{}", descByCode);
|
// //公众号
|
// RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
|
// String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key);
|
// for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
|
// // log.error("serviceSubtask---------进来了吗?{}", serviceSubtask);
|
// boolean dateToday = isDateToday(serviceSubtask.getLongSendTime());
|
// if (dateToday) {
|
// try {
|
// //先判断患者是不是还要发送
|
// PatArchive patArchive = patArchiveService.selectPatArchiveByPatid(serviceSubtask.getPatid());
|
// if (!Objects.isNull(patArchive) && patArchive.getNotrequiredFlag() == "1") {
|
// //不需要发送
|
// serviceSubtask.setResult("error");
|
// serviceSubtask.setRemark(patArchive.getNotrequiredreason());
|
// serviceSubtask.setSendstate(4L);
|
//// serviceSubtask.setFinishtime(new Date());
|
// iServiceSubtaskService.insertServiceSubtask(serviceSubtask);
|
// continue;
|
// }
|
// String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
|
// String url = null;
|
// url = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=false";
|
//// String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), "无");
|
//
|
// //获取微信公众号请求信息根据机构ID
|
// List<String> wxqqxx = WxGZHEnum.getDescByCode(patArchive.getOrgid());
|
// if (CollectionUtils.isEmpty(wxqqxx) || wxqqxx.size() < 4) {
|
// ServiceSubtask ss = new ServiceSubtask();
|
// ss.setResult("error");
|
// ss.setRemark("该机构的公众号配置信息不全,无法通过公众号发送");
|
// ss.setSendstate(5L);
|
// ss.setId(serviceSubtask.getId());
|
//// ss.setFinishtime(new Date());
|
// serviceSubtaskMapper.updateServiceSubtask(ss);
|
// continue;
|
// }
|
//
|
// if (StringUtils.isEmpty(patArchive.getPatidHis())) {
|
// ServiceSubtask ss = new ServiceSubtask();
|
// ss.setResult("error");
|
// ss.setRemark("公众号发送失败,his系统的患者id为空");
|
// ss.setSendstate(5L);
|
// ss.setId(serviceSubtask.getId());
|
//// ss.setFinishtime(new Date());
|
// serviceSubtaskMapper.updateServiceSubtask(ss);
|
// continue;
|
// }
|
// String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), patArchive.getTelcode(), serviceSubtask.getSendname(), patArchive.getPatidHis(), wxqqxx);
|
//
|
// Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class);
|
// //任务发送记录
|
// 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("success");
|
// if (!map.isEmpty() && (Boolean) map.get("succ") == false)
|
// serviceSubtaskRecord.setResult("error");
|
// serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
|
//
|
// //发送完成后,修改状态
|
// serviceSubtask.setSendstate(3L);
|
// if ((Boolean) map.get("succ") == true) {
|
// serviceSubtask.setResult("success");
|
// } else {
|
// serviceSubtask.setResult("error");
|
// serviceSubtask.setSendstate(5L);
|
// serviceSubtask.setRemark(map.get("msg").toString());
|
// }
|
// iServiceSubtaskService.updateServiceSubtask(serviceSubtask);
|
// } catch (Exception e) {
|
// String guid = UUID.randomUUID().toString();
|
// log.error("长期任务,公众号发送失败原因:{},{}", e.getMessage(), guid);
|
// serviceSubtask.setResult("error");
|
// serviceSubtask.setRemark("系统错误");
|
// serviceSubtask.setSendstate(5L);
|
//// serviceSubtask.setFinishtime(new Date());
|
// serviceSubtask.setGuid(guid);
|
// iServiceSubtaskService.updateServiceSubtask(serviceSubtask);
|
// }
|
// }
|
// }
|
// }
|
// //通知 MQ 消息已被接收,可以ACK(从队列中删除)了 (这个需要根据业务再去处理ACK)
|
// }
|
// }
|
// }
|
//
|
//
|
// /**
|
// * 获出院患者信息
|
// * cry 出入院: 0 入院 1 出院
|
// */
|
// @Transactional
|
// public void getInHospInfo(String cry, LocalDateTime startTime, LocalDateTime endTime) {
|
// // 定义日期时间格式
|
// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S");
|
// Map<String, String> req = new HashMap<>();
|
// if (cry.equals("1")) {
|
// req.put("cashStartDate", startTime.format(formatter));
|
// req.put("cashEndDate", endTime.format(formatter));
|
// req.put("currStatus", "4");
|
// } else if (cry.equals("0")) {
|
// req.put("admissStartDate", startTime.format(formatter));
|
// req.put("admissEndDate", endTime.format(formatter));
|
// req.put("currStatus", "2");
|
// }
|
// Map<String, String> header = new HashMap<>();
|
// header.put("x-hcsb-serviceno", "IS002347");
|
// header.put("x-hcsb-version", "2.0");
|
// header.put("x-hcsb-sourcesyscode", "14");
|
// header.put("x-hcsb-token", "ArGE2JnHtxG/Zx5nrnGY4eOfMUJGGJokAJHigG1BrCY=");
|
// header.put("x-hcsb-msgdate", startTime.format(formatter));
|
// String result = HttpUtils.sendPostByHeader(hospInfoUrl, new Gson().toJson(req), header);
|
// //数据解析
|
// Gson gson = new Gson();
|
// JsonObject jsonObject = gson.fromJson(result, JsonObject.class);
|
// JsonArray resultArray = jsonObject.getAsJsonObject("data").getAsJsonArray("result");
|
// Type resultType = new TypeToken<List<ThiedInhospInfo>>() {
|
// }.getType();
|
// List<ThiedInhospInfo> thiedInhospInfoList = gson.fromJson(resultArray, resultType);
|
//
|
// // 创建一个新文件
|
// String filename = null;
|
// if (cry.equals("0")) filename = "入院信息" + System.currentTimeMillis();
|
// if (cry.equals("1")) filename = "出院信息" + System.currentTimeMillis();
|
// File file = new File("D:\\public\\HIS数据采集\\" + filename);
|
// if (!file.exists()) {
|
// // 如果文件不存在,则创建新文件
|
// try {
|
// if (file.createNewFile()) {
|
// System.out.println("成功创建了新文件!");
|
// } else {
|
// System.out.println("失败!文件无法创建!");
|
// }
|
// } catch (IOException e) {
|
// e.printStackTrace();
|
// }
|
// }
|
// // 将数据写入到文件中
|
// try {
|
// FileWriter writer = new FileWriter(file);
|
// writer.write(result);
|
// } catch (IOException e) {
|
// e.printStackTrace();
|
// }
|
//
|
// if (CollectionUtils.isNotEmpty(thiedInhospInfoList)) {
|
// for (ThiedInhospInfo thiedInhospInfo : thiedInhospInfoList) {
|
// //通过身份证号查询该患者在患者表是否存在
|
// PatArchive patArchive = new PatArchive();
|
// List<PatArchive> patArchives = null;
|
// patArchive.setIdcardno(thiedInhospInfo.getPatiIdCardNo().trim());
|
// if (StringUtils.isNotEmpty(thiedInhospInfo.getPatiIdCardNo().trim())) {
|
// patArchives = patArchiveService.selectPatArchiveList(patArchive);
|
// } else {
|
// //患者信息为空,直接 下一个
|
// continue;
|
// }
|
//
|
// patArchive.setPatientno(thiedInhospInfo.getPatiMediaNo());
|
// patArchive.setSourcefrom(2);
|
// patArchive.setPattype("2");
|
// if (StringUtils.isNotEmpty(thiedInhospInfo.getOutWayId()) && thiedInhospInfo.getOutWayId().equals("4")) {
|
// //如果为4就是死亡
|
// patArchive.setNotrequiredFlag("1");
|
// patArchive.setNotrequiredreason(thiedInhospInfo.getOutWayName());
|
// }
|
// if (cry.equals("1") && StringUtils.isEmpty(thiedInhospInfo.getOutWayId())) {
|
// //如果为4就是死亡
|
// patArchive.setNotrequiredFlag("1");
|
// patArchive.setNotrequiredreason("出院方式为空");
|
// }
|
// patArchive.setSex(thiedInhospInfo.getPatiRecordGender().equals("男") ? 1L : 2L);
|
// patArchive.setNation(thiedInhospInfo.getPatiNation());
|
// patArchive.setNativePlace(thiedInhospInfo.getPatiNationality());
|
// patArchive.setPlaceOfResidence(StringUtils.isNotEmpty(thiedInhospInfo.getPatiHomeAddr()) ? thiedInhospInfo.getPatiHomeAddr().replace("null", "") : "");
|
// try {
|
// if (StringUtils.isNotEmpty(thiedInhospInfo.getPatiBirthday()))
|
// patArchive.setBirthdate(new SimpleDateFormat("yyyy-MM-dd").parse(thiedInhospInfo.getPatiBirthday()));
|
// } catch (ParseException e) {
|
// e.printStackTrace();
|
// }
|
// if (thiedInhospInfo.getTreateAge() != null) {
|
// patArchive.setAge(Long.valueOf(thiedInhospInfo.getTreateAge()));
|
// } else {
|
// patArchive.setAge(null);
|
// }
|
// patArchive.setAgeUnit(thiedInhospInfo.getTreatAgeunit());
|
// patArchive.setTelcode(thiedInhospInfo.getCompanyTelNum());
|
// patArchive.setRelativetelcode(thiedInhospInfo.getContactPersonPhone());
|
// patArchive.setDelFlag("0");
|
// patArchive.setCreateTime(new Date());
|
// patArchive.setUpdateTime(new Date());
|
// patArchive.setName(thiedInhospInfo.getPatiRecordName());
|
// if (CollectionUtils.isEmpty(patArchives) || patArchives.size() == 0) {
|
// patArchiveService.insertPatArchive(patArchive);
|
// } else {
|
// patArchive.setId(patArchives.get(0).getId());
|
// patArchiveService.updateArchive(patArchive);
|
// }
|
//
|
// log.error("入参的patArchive:{}", patArchive);
|
// PatMedInhosp patMedInhosp = new PatMedInhosp();
|
// patMedInhosp.setPatid(patArchive.getId());
|
// patMedInhosp.setPatno(patArchive.getPatientno());
|
// patMedInhosp.setPatname(patArchive.getName());
|
// patMedInhosp.setNurseId(thiedInhospInfo.getNurseId());
|
// patMedInhosp.setNurseName(thiedInhospInfo.getNurseName());
|
// patMedInhosp.setSerialnum(thiedInhospInfo.getInpatientId());
|
// patMedInhosp.setFuflag("1");
|
// if (cry.equals("0")) {
|
// patMedInhosp.setInhospstate("0");
|
// } else if (cry.equals("1")) {
|
// patMedInhosp.setInhospstate("1");
|
// }
|
// patMedInhosp.setHospitalcode(thiedInhospInfo.getAreaId());
|
// patMedInhosp.setIcd10code(thiedInhospInfo.getDiagIcd10());
|
// patMedInhosp.setDiagname(thiedInhospInfo.getDiagName());
|
// try {
|
// if (StringUtils.isNotEmpty(thiedInhospInfo.getAdmissDate()))
|
// patMedInhosp.setStarttime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(thiedInhospInfo.getAdmissDate()));
|
// } catch (ParseException e) {
|
// e.printStackTrace();
|
// }
|
// try {
|
// if (StringUtils.isNotEmpty(thiedInhospInfo.getOutDate()))
|
// patMedInhosp.setEndtime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(thiedInhospInfo.getOutDate()));
|
// } catch (ParseException e) {
|
// e.printStackTrace();
|
// }
|
// patMedInhosp.setDeptcode(thiedInhospInfo.getAdmissDeptId());
|
// patMedInhosp.setDeptid(thiedInhospInfo.getAdmissDeptId());
|
// patMedInhosp.setDeptname(thiedInhospInfo.getAdmissDeptName());
|
// patMedInhosp.setBedNo(thiedInhospInfo.getAdmissBedNo());
|
// patMedInhosp.setDelFlag("0");
|
//// patMedInhosp.setLeaveldeptcode(thiedInhospInfo.getCurrDeptCode());
|
// patMedInhosp.setLeaveldeptcode(thiedInhospInfo.getCurrDeptId());
|
// patMedInhosp.setLeaveldeptname(thiedInhospInfo.getCurrDeptName());
|
// patMedInhosp.setLeavediagname(thiedInhospInfo.getDiagName());
|
// patMedInhosp.setLeaveicd10code(thiedInhospInfo.getDiagIcd10());
|
// patMedInhosp.setDrname(thiedInhospInfo.getDoctName());
|
// patMedInhosp.setDrcode(thiedInhospInfo.getDoctId());
|
// patMedInhosp.setOutWayId(thiedInhospInfo.getOutWayId());
|
// patMedInhosp.setOutWayName(thiedInhospInfo.getOutWayName());
|
// if (cry.equals("0")) {
|
// patMedInhosp.setSchemestatus(1L);
|
// } else if (cry.equals("1")) {
|
// patMedInhosp.setSchemestatus(2L);
|
// }
|
// patMedInhosp.setLeavehospitaldistrictid(thiedInhospInfo.getCurrWardCode());
|
// patMedInhosp.setLeavehospitaldistrictcode(thiedInhospInfo.getCurrWardId());
|
// patMedInhosp.setLeavehospitaldistrictname(thiedInhospInfo.getCurrWardName());
|
// patMedInhosp.setLeaveldeptid(thiedInhospInfo.getCurrDeptCode());
|
// patMedInhosp.setOrgid("1");
|
// //如果是出院,先通过患者编号和流水号去查一下,患者是否存在,如果存在,则进行修改
|
// PatMedInhosp inhosp = new PatMedInhosp();
|
// inhosp.setPatno(patArchive.getPatientno());
|
// inhosp.setSerialnum(patMedInhosp.getSerialnum());
|
// List<PatMedInhosp> patMedInhosps = patMedInhospService.selectPatMedInhospList(inhosp);
|
// log.error("是否需要更新:{}", patMedInhosps.size());
|
// if (CollectionUtils.isNotEmpty(patMedInhosps)) {
|
// patMedInhosp.setInhospid(patMedInhosps.get(0).getInhospid());
|
// log.error("------患者出入院修改信息:{}", patMedInhosp);
|
// patMedInhospService.updatePatMedInhosp(patMedInhosp);
|
// } else {
|
// log.error("----患者出入院新增信息:{}", patMedInhosp);
|
// patMedInhospService.insertPatMedInhosp(patMedInhosp);
|
// }
|
//
|
// }
|
// }
|
// }
|
//
|
//
|
// 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 getDXCode(String address, String ShouJiHM, String FaSongNR, String FaSongRID, String FaSongRXM, Map<String, Object> headerMap, String token) {
|
// Map<String, Object> map = new LinkedHashMap<>();
|
//
|
// Map<String, Object> YeWuXX = new LinkedHashMap<>();
|
// Map<String, Object> DuanXinXX = new LinkedHashMap<>();
|
// DuanXinXX.put("ShouJiHM", ShouJiHM);
|
// DuanXinXX.put("FaSongNR", FaSongNR);
|
// DuanXinXX.put("FaSongRID", FaSongRID);
|
// DuanXinXX.put("FaSongRXM", FaSongRXM);
|
// YeWuXX.put("DuanXinXX", DuanXinXX);
|
//
|
// map.put("XiaoXiTou", headerMap);
|
// map.put("YeWuXX", YeWuXX);
|
//
|
// String body = new Gson().toJson(map);
|
//
|
//// String result = HttpUtils.sendPost(address, body);
|
// String result = null;
|
// try {
|
// result = OkHttpExample.sendPostRequest(address, body, token);
|
// } catch (IOException e) {
|
// e.printStackTrace();
|
// }
|
// log.error("--------result的值为:{}-----", result);
|
//
|
// JSONObject jsonObject = JSONObject.parseObject(result);
|
// String code = (String) jsonObject.toString();
|
// return code;
|
// }
|
//
|
//
|
// private String getWXCode(String idcard, String url, String taskName, String taskDesc, String phone, String setPatientname, String setPatientid, List<String> wxqqxx) {
|
// XinHuaWXReq xinHuaWXReq = new XinHuaWXReq();
|
// xinHuaWXReq.setIdcard(idcard);
|
// xinHuaWXReq.setUrl(url);
|
// xinHuaWXReq.setPatientid(setPatientid);
|
// xinHuaWXReq.setPatientname(setPatientname);
|
// xinHuaWXReq.setMobile(phone);
|
// xinHuaWXReq.setMedcardno(null);
|
// xinHuaWXReq.setTitlename(taskName);
|
// xinHuaWXReq.setContent(taskDesc);
|
// xinHuaWXReq.setAppid(wxqqxx.get(1));
|
// log.error("----getWXCode---xinHuaWXReq的出参为:{}", xinHuaWXReq);
|
// String body = new Gson().toJson(xinHuaWXReq);
|
// String encode = encode(wxqqxx.get(2).concat(body));
|
// Map<String, String> headerMap = new HashMap<>();
|
// headerMap.put("sign", encode);
|
// String result = HttpUtils.sendPostByHeader(wxqqxx.get(3), body, headerMap);
|
//
|
// JSONObject jsonObject = JSONObject.parseObject(result);
|
// String code = (String) jsonObject.toString();
|
// return code;
|
// }
|
//
|
//
|
// public String encode(String arg) {
|
// if (arg == null) {
|
// arg = "";
|
// }
|
// MessageDigest md5 = null;
|
// try {
|
// md5 = MessageDigest.getInstance("MD5");
|
// md5.update(arg.getBytes("UTF-8"));
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// }
|
// return toHex(md5.digest());
|
// }
|
//}
|