Quellcode durchsuchen

fix:
自动获取病人数据时没有开始时间失败

18339543638 vor 2 Jahren
Ursprung
Commit
22567e3b47

+ 8 - 4
nb-service/web-service/src/main/java/com/nb/web/service/bus/hospital/his/HisScriptSession.java

@@ -12,18 +12,16 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.google.common.cache.Cache;
 import com.google.common.cache.CacheBuilder;
 import com.nb.web.api.entity.BusClinicEntity;
+import com.nb.web.api.entity.BusInfusionHistoryEntity;
 import com.nb.web.service.bus.entity.*;
 import com.nb.web.service.bus.listener.event.bean.HisEvent;
 import com.nb.web.service.bus.hospital.script.DefaultParse;
-import com.nb.web.service.bus.service.LocalBusHospitalLogService;
-import com.nb.web.service.bus.service.LocalBusPatientService;
+import com.nb.web.service.bus.service.*;
 import com.nb.web.service.bus.service.constant.LocalBusConDoctorService;
 import com.nb.web.service.bus.service.constant.LocalBusConMixService;
 import com.nb.core.exception.ExecuteResult;
 import com.nb.web.service.bus.hospital.script.ScriptManager;
 import com.nb.web.service.bus.hospital.script.ScriptParse;
-import com.nb.web.service.bus.service.LocalBusClinicService;
-import com.nb.web.service.bus.service.LocalBusHospitalService;
 import com.nb.core.cache.ConfigStorage;
 import com.nb.core.cache.manager.ConfigStorageManager;
 import com.nb.core.Value;
@@ -65,6 +63,7 @@ public class HisScriptSession {
     private LocalBusHospitalLogService hospitalLogService;
     private LocalBusConMixService conMixService;
     private LocalBusConDoctorService conDoctorService;
+    private LocalBusInfusionHistoryService infusionHistoryService;
     //缓存发给医院的请求,对相同的请求进行批量处理
     private Cache<String, HisRequest> hisRequestMap = CacheBuilder.newBuilder()
             .expireAfterWrite(30, TimeUnit.SECONDS)
@@ -81,6 +80,7 @@ public class HisScriptSession {
         this.patientService=SpringUtil.getBean(LocalBusPatientService.class);
         this.conMixService=SpringUtil.getBean(LocalBusConMixService.class);
         this.conDoctorService=SpringUtil.getBean(LocalBusConDoctorService.class);
+        this.infusionHistoryService=SpringUtil.getBean(LocalBusInfusionHistoryService.class);
         init(configStorageManager,hospitalId);
     }
 
@@ -263,6 +263,7 @@ public class HisScriptSession {
         }else {
             BusPatientEntity patient = patientService
                     .getOne(new QueryWrapper<BusPatientEntity>().lambda().eq(BusPatientEntity::getCode, patientCode).eq(BusPatientEntity::getTenantId, hospitalId));
+            BusInfusionHistoryEntity infusionHistory = infusionHistoryService.getById(patient.getInfusionId());
             if(patient!=null){
                 List<BusClinicEntity> finalSources = sources;
                 CompletableFuture.runAsync(()->{
@@ -279,6 +280,9 @@ public class HisScriptSession {
             //对数据去重, name+startTime进行唯一值判定
             Map<String, BusClinicEntity> distinct = new HashMap<>();
             sources.forEach(source->{
+                if(ObjectUtil.isNull(source.getStartTime())){
+                    source.setStartTime(ObjectUtil.isNull(infusionHistory.getClinicStartTime())?infusionHistory.getStartTime():infusionHistory.getClinicStartTime());
+                }
                 String key=source.getSurgeryName()+source.getStartTime();
                 distinct.computeIfAbsent(key,k->{
                     publish.add(source);