//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 servicePatientTemps = iServicePatientTempService.selectServicePatientTempList(new ServicePatientTemp()); // } // } // // // /** // * 长期任务执行 // */ // public void longTaskSend() { // //获取任务信息 // ServiceTask st = new ServiceTask(); // st.setDelFlag("0"); // st.setLongTask(1); // List 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 subtaskList = iServiceSubtaskService.selectServiceSubtaskList(ivrTaskcall); // //丽水有的医院还没法做长期任务随访 // List 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 selectServiceSubtaskList = subtaskList.stream().sorted(Comparator.comparing(subtask -> Math.abs(subtask.getEndtime().getTime() - new Date().getTime()))).collect(Collectors.toList()); // // if (descByCode.equals("电话")) { // String value = ""; // List 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 serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); // //这里需要根据身份证去重 // List 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 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 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 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 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 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 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 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 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>() { // }.getType(); // List 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 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 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 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 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 headerMap, String token) { // Map map = new LinkedHashMap<>(); // // Map YeWuXX = new LinkedHashMap<>(); // Map 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 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 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()); // } //}