ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -983,6 +983,13 @@ return AjaxResult.success("同步任务已启动,请稍后查看结果"); } @PostMapping("/syncMedInhospForShiyiDaysBefore") public AjaxResult syncMedInhospForShiyiDaysBefore(@RequestParam("day") Long day) { // 立即返回,后台异步执行 ryTask.collectHISDaysBefore(day); return AjaxResult.success("【collectHISDaysBefore】同步任务已启动,天数为" + day + "天,请稍后查看结果"); } @PostMapping("/syncMedOperForShiyi") public AjaxResult syncMedOperForShiyi(@RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime) { ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
@@ -108,7 +108,7 @@ Integer count = 0; List<Map<String, Object>> syncList = utilsMapper.getList("SELECT id,syncName,DATE_FORMAT(ADDDATE(startTime, INTERVAL -1 MINUTE), '%Y-%m-%d %H:%i:%s') startTime FROM sys_sync_time where state=0"); if (syncList.size() > 0) { String endTime = chMapper.getSqlString("select sysdate from healthy_inhosp where rownum=1"); String endTime = chMapper.getSqlString("select (sysdate-1) as endtime from healthy_inhosp where rownum=1"); //同步患者基本信息 // List<Map<String, Object>> syncTemp = syncList.stream().filter(row -> row.get("syncName").equals("pat_archive")).collect(Collectors.toList()); // if (syncTemp.size() > 0) { ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -1565,12 +1565,12 @@ String startTime = daysBeforeZeroStart.format(formatter); String endTime = daysBeforeZeroEnd.format(formatter); // HIS数据采集 log.info("【collectHISDaysBefore】HIS开始采集数据"); log.info("【collectHISDaysBefore】HIS开始采集数据: startTime:{}, endtime:{}",startTime, endTime); // 立即返回,后台异步执行 CompletableFuture.runAsync(() -> { ichService.syncMedInhosp(startTime, endTime); }); log.info("【collectHISDaysBefore】HIS结束采集数据"); log.info("【collectHISDaysBefore】HIS结束采集数据: startTime:{}, endtime:{}",startTime, endTime); } catch (Exception e) { log.error("【collectHISDaysBefore】HIS数据采集异常", e); } smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -866,7 +866,7 @@ log.info("该手术对应手术等级的长期任务不存在,任务ID为:{}", taskid); patMedOperationItem.setOpercheckFlag("2"); patMedOperationItem.setLongTaskReason(longTaskReason + " & 该手术对应手术等级的长期任务不存在,任务ID为:" + taskid); patMedOperationItemMapper.insertPatMedOperationItem(patMedOperationItem); patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem); return; } else { serviceTask = serviceTasks.get(0); @@ -1292,19 +1292,31 @@ continue; } // 根据患者的疾病,获取该疾病的长期任务 ServiceTaskoper serviceTaskoper = new ServiceTaskoper(); serviceTaskoper.setLongtask(1L); serviceTaskoper.setOrgid(opItem.getOrgid()); serviceTaskoper.setOplevelcode(opItem.getOplevelcode()); //根据科室、病区过滤 List<ServiceTaskoper> serviceTaskopersDept = new ArrayList<>(); if(StringUtils.isNotEmpty(opItem.getLeaveldeptcode())){ serviceTaskoper.setDeptCode(opItem.getLeaveldeptcode()); }else { serviceTaskoper.setWardCode(opItem.getLeavehospitaldistrictcode()); ServiceTaskoper serviceTaskoper1 = new ServiceTaskoper(); serviceTaskoper1.setLongtask(1L); serviceTaskoper1.setOrgid(opItem.getOrgid()); serviceTaskoper1.setOplevelcode(opItem.getOplevelcode()); serviceTaskoper1.setDeptCode(opItem.getLeaveldeptcode()); serviceTaskopersDept = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper1); } List<ServiceTaskoper> serviceTaskopers = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper); List<ServiceTaskoper> serviceTaskopersWard = new ArrayList<>(); if(StringUtils.isNotEmpty(opItem.getLeavehospitaldistrictcode())){ ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper(); serviceTaskoper2.setLongtask(1L); serviceTaskoper2.setOrgid(opItem.getOrgid()); serviceTaskoper2.setOplevelcode(opItem.getOplevelcode()); serviceTaskoper2.setWardCode(opItem.getLeavehospitaldistrictcode()); serviceTaskopersWard = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper2); } List<ServiceTaskoper> serviceTaskopers = new ArrayList<>(); serviceTaskopers.addAll(serviceTaskopersDept); serviceTaskopers.addAll(serviceTaskopersWard); //如果部门模板为空(将deptIsNull设置为true) if (CollectionUtils.isEmpty(serviceTaskopers) || serviceTaskopers.size() == 0) { PatMedOperationItem patMedOperationItem = patMedOperationItemMapper.selectPatMedOperationItemById(opItem.getId()); @@ -1312,8 +1324,8 @@ patMedOperationItem.setLongTaskReason(patMedOperationItem.getLongTaskReason() + "所患的手术未配置长期任务;"); patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem); } else { for (ServiceTaskoper serviceTaskoper1 : serviceTaskopers) { writeInSubTaskForOp(serviceTaskoper1.getTaskId(), true, opItem, config); for (ServiceTaskoper serviceTaskoper : serviceTaskopers) { writeInSubTaskForOp(serviceTaskoper.getTaskId(), true, opItem, config); } } smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
@@ -87,7 +87,7 @@ if (patMedOuthosp.getPageNum() != null) { for (PatMedOuthosp patMedOuthosp1 : patMedOuthospQueryResps) { PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosp1.getPatid()); if (patArchive.getBirthdate() != null) { if (ObjectUtils.isNotEmpty(patArchive) && patArchive.getBirthdate() != null) { Map<String, String> map = calculateAge(patArchive.getBirthdate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now()); patArchive.setAge(ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null); patArchive.setAgeUnit(map.get("ageUnit")); smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -1165,7 +1165,7 @@ List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.callSpQueryOuthosp(patMedOuthospreq); for (PatMedOuthosp patMedOuthosp1 : patMedOuthosps) { PatArchive pa = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosp1.getPatid()); if (patArchive.getBirthdate() != null) { if (ObjectUtils.isNotEmpty(patArchive) && patArchive.getBirthdate() != null) { Map<String, String> map = calculateAge(pa.getBirthdate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now()); pa.setAge(ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null); pa.setAgeUnit(map.get("ageUnit")); @@ -1458,6 +1458,10 @@ return info; }).collect(Collectors.toList()) : null; if(ObjectUtils.isNotEmpty(patMedOperation.getId())){ patMedOperationItemMapper.deleteHardPatMedOperationItemByOpId(patMedOperation.getId().toString()); } //addMianTableFalg是否需要将主手术的信息放到PatMedOperation表中(只有第一个主手术信息需要放,后面的都不需要放了,也就是说,第一个放完后,就要把这个flag改成false) Boolean addMianTableFalg = true; for (ExternalOperationDetail externalOperationDetail : externalOperationDetails) { @@ -1491,6 +1495,7 @@ addMianTableFalg = false; } patMedOperationItem.setCreateTime(new Date()); patMedOperationItem.setUpdateTime(new Date()); patMedOperationItemMapper.insertPatMedOperationItem(patMedOperationItem); } }