| | |
| | | IServiceSubtaskDetailTraceService serviceSubtaskDetailTraceService; |
| | | |
| | | @Autowired |
| | | IPatMedOuthospService patMedOuthospService; |
| | | |
| | | @Autowired |
| | | ISvyTaskTemplateService svyTaskTemplateService; |
| | | |
| | | @Autowired |
| | |
| | | private String active; |
| | | @Autowired |
| | | private SysConfigMapper sysConfigMapper; |
| | | |
| | | @Autowired |
| | | private IServiceTaskScheduleService serviceTaskScheduleService; |
| | | |
| | | 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"; // 替换为你的文件路径 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 处理患者信息,进入子任务表 |
| | | * 处理患者信息,进入子任务表(任务组) |
| | | */ |
| | | public void dealOutHospInfoByDimension() { |
| | | public void dealOutHospInfoBySchedule() { |
| | | String config = configService.selectConfigByKey("visit.early.day"); |
| | | if (port.equals("8095")) { |
| | | //出院表 |
| | | iPatMedInhospService.dealOutHospInfoByDimension(config); |
| | | iPatMedInhospService.dealOutHospInfoBySchedule(config); |
| | | //门诊表(新华的暂时不做门诊随访) |
| | | if (!active.equals("xh")) { |
| | | //iPatMedOuthospService.dealOutpatientInfo(); |
| | | } |
| | | // if (!active.equals("xh")) { |
| | | // //iPatMedOuthospService.dealOutpatientInfo(); |
| | | // } |
| | | } |
| | | } |
| | | |
| | |
| | | * 处理补偿任务 |
| | | */ |
| | | public void compensateTask() { |
| | | //获取到sendstate=3 并且 visit_time为小于等于今天的subtask |
| | | //获取到sendstate=3、1 并且 visit_time为小于等于今天的subtask |
| | | List<Long> list = Arrays.asList(3L, 1L); |
| | | ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity(); |
| | | serviceSubtaskVO.setSendstate(3L); |
| | | serviceSubtaskVO.setVisitTime(new Date()); |
| | | List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.getCompensateServiceSubtaskList(serviceSubtaskVO); |
| | | List<ServiceSubtask> serviceSubtaskList = new ArrayList<>(); |
| | | for (Long sendstate : list) { |
| | | serviceSubtaskVO.setSendstate(sendstate); |
| | | serviceSubtaskVO.setVisitTime(new Date()); |
| | | List<ServiceSubtask> compensateServiceSubtaskList = serviceSubtaskMapper.getCompensateServiceSubtaskList(serviceSubtaskVO); |
| | | serviceSubtaskList.addAll(compensateServiceSubtaskList); |
| | | } |
| | | for (ServiceSubtask serviceSubtask : serviceSubtaskList) { |
| | | //根据当前的执行方式,获取下一种执行方式 |
| | | ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); |
| | |
| | | int result = QwenLLMUtil.matchRegex(questionText, voiceText, value, regexText); |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * 任务组(appltype=5)首轮纳入:扫描新出院患者,按 schedule 绑定的维度匹配任务组, |
| | | * 为命中的患者按计划明细一次性生成第 0 轮 N 条 subtask,并置 schedulecheck_flag=1。 |
| | | * 后续轮次由 {@link #rollTaskGroupCycle()} 负责。 |
| | | * <p> |
| | | * 与主扫描 dealOutHospInfo 分离,互不干扰。建议每 30 分钟执行一次。 |
| | | */ |
| | | public void dealTaskGroupOutHosp() { |
| | | log.info("【dealTaskGroupOutHosp】开始扫描任务组新出院患者"); |
| | | if (!port.equals("8095")) { |
| | | return; |
| | | } |
| | | try { |
| | | String config = configService.selectConfigByKey("visit.early.day"); |
| | | iPatMedInhospService.dealOutHospInfoBySchedule(config); |
| | | log.info("【dealTaskGroupOutHosp】任务组首轮纳入扫描完成"); |
| | | } catch (Exception e) { |
| | | log.error("【dealTaskGroupOutHosp】任务组扫描异常", e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 任务组(appltype=5)循环任务滚动调度。 |
| | | * <p> |
| | | * 扫描所有 schedule_style=1 的计划,若本轮 subtask 全部 finalize(sendstate ∉ 1/2/3), |
| | | * 则克隆本轮患者到下一轮,推进 current_loop_count 与 visit_time。 |
| | | * <p> |
| | | * 建议每小时或每半小时执行一次,避免轮次积压。 |
| | | */ |
| | | public void rollTaskGroupCycle() { |
| | | log.info("【rollTaskGroupCycle】开始扫描循环任务组"); |
| | | try { |
| | | int rolled = serviceTaskScheduleService.rollCycleTasks(); |
| | | log.info("【rollTaskGroupCycle】本次推进 {} 个计划", rolled); |
| | | } catch (Exception e) { |
| | | log.error("【rollTaskGroupCycle】滚动调度异常", e); |
| | | } |
| | | } |
| | | } |