Parcourir la source

fix
修复一些bug

18339543638 il y a 1 an
Parent
commit
de3c9bb6a4

+ 17 - 4
nb-service/web-service/src/main/java/com/nb/web/service/bus/controller/BusClinicController.java

@@ -8,6 +8,7 @@ import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.nb.core.enums.ExportType;
 import com.nb.core.result.ExportResult;
 import com.nb.web.api.entity.*;
@@ -31,11 +32,9 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.NotNull;
 import java.io.IOException;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -276,4 +275,18 @@ public class BusClinicController {
     public R<ExportResult> exportExcel(@RequestBody Collection<String> clinicId) throws IOException {
         return R.success(ExportResult.of("驼人镇痛泵手术(评价)信息列表",clinicService.exportExcelSourceListBase64(clinicId), ExportType.EXCEL));
     }
+
+    @PostMapping("/list/export/excel")
+    @ApiOperation(value = "导出临床数据查询结果的excel",notes = "导出临床数据查询结果的excel,权限【无】")
+    public R<ExportResult> exportListExcel(@RequestBody CombineQuery query) throws IOException {
+        Page<CombineResult> page = query.getPage();
+        page.setSize(9999);
+        page.setCurrent(1);
+        IPage<CombineResult> result = infusionHistoryService.queryPage(query, page);
+        List<String> clinicIds = result.getRecords().stream()
+                .filter(Objects::nonNull)
+                .map(CombineResult::getClinicId)
+                .collect(Collectors.toList());
+        return R.success(ExportResult.of("驼人镇痛泵手术(评价)信息列表",clinicService.exportExcelSourceListBase64(clinicIds,query.getStartTimeRange()), ExportType.EXCEL));
+    }
 }

+ 17 - 1
nb-service/web-service/src/main/java/com/nb/web/service/bus/hospital/his/HisScriptSession.java

@@ -34,7 +34,6 @@ import com.nb.web.api.entity.BusHospitalLogEntity;
 import com.nb.web.service.bus.utils.WsPublishUtils;
 import lombok.Getter;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.map.PassiveExpiringMap;
 import org.springframework.util.Assert;
 import org.springframework.web.context.request.async.DeferredResult;
 import org.tio.core.ChannelContext;
@@ -67,6 +66,7 @@ public class HisScriptSession {
     private LocalBusConMixService conMixService;
     private LocalBusConDoctorService conDoctorService;
     private WsPublishUtils wsPublishUtils;
+    private LocalBusInfusionHistoryService infusionHistoryService;
     //缓存发给医院的请求,对相同的请求进行批量处理
     private Cache<String, HisRequest> hisRequestMap = CacheBuilder.newBuilder()
             .expireAfterWrite(30, TimeUnit.SECONDS)
@@ -84,6 +84,7 @@ public class HisScriptSession {
         this.conMixService=SpringUtil.getBean(LocalBusConMixService.class);
         this.conDoctorService=SpringUtil.getBean(LocalBusConDoctorService.class);
         this.wsPublishUtils=SpringUtil.getBean(WsPublishUtils.class);
+        this.infusionHistoryService=SpringUtil.getBean(LocalBusInfusionHistoryService.class);
         init(configStorageManager,hospitalId);
     }
 
@@ -264,6 +265,21 @@ public class HisScriptSession {
         if(CollectionUtil.isEmpty(sources)){
             return null;
         }else {
+
+            BusInfusionHistoryEntity lastInfusion = infusionHistoryService.lastInfusionByPatientCode(hospitalId,patientCode);
+            if(ObjectUtil.isNotNull(lastInfusion)){
+                //最后一次输注信息存在
+                sources=sources.stream()
+                        .filter(clinic->{
+                            Date infusionStartTime = lastInfusion.getStartTime();
+                            Date clinicStartTime = clinic.getStartTime();
+                            if(ObjectUtil.isNull(infusionStartTime)||ObjectUtil.isNull(clinicStartTime)){
+                                return true;
+                            }
+                            return clinicStartTime.before(infusionStartTime);
+                        }).collect(Collectors.toList());
+            }
+
             BusPatientEntity patient = patientService
                     .getOne(new QueryWrapper<BusPatientEntity>().lambda().eq(BusPatientEntity::getCode, patientCode).eq(BusPatientEntity::getTenantId, hospitalId));
             if(patient!=null){

+ 17 - 1
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/LocalBusClinicService.java

@@ -2,6 +2,7 @@ package com.nb.web.service.bus.service;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -330,12 +331,24 @@ public class LocalBusClinicService extends BaseService<BusClinicMapper, BusClini
      * @return
      */
     public String  exportExcelSourceListBase64(Collection<String> clinicIds) throws IOException {
+        return exportExcelSourceListBase64(clinicIds,new ArrayList<>());
+    }
+    /**
+     * 获取导出临床excel所需的数据
+     * @param clinicIds
+     * @return
+     */
+    public String  exportExcelSourceListBase64(Collection<String> clinicIds,Collection<Date> timeRange) throws IOException {
+        if(timeRange==null){
+            timeRange=new ArrayList<>();
+        }
         List<BusClinicExcelVO> result =new ArrayList<>();
         if(CollectionUtil.isEmpty(clinicIds)){
             return ExportExcelUtils.exportClinicExcelBase64(result);
         }
         List<BusClinicEntity> clinicList = this.baseMapper.selectList(new LambdaQueryWrapper<BusClinicEntity>()
-                .in(BusClinicEntity::getId, clinicIds));
+                .in(BusClinicEntity::getId, clinicIds)
+                .orderByDesc(BusClinicEntity::getStartTime));
         if(CollectionUtil.isEmpty(clinicList)){
             return ExportExcelUtils.exportClinicExcelBase64(result);
         }
@@ -343,6 +356,8 @@ public class LocalBusClinicService extends BaseService<BusClinicMapper, BusClini
         //输注历史
         List<BusInfusionHistoryEntity> infusionHistories = this.infusionHistoryMapper.selectList(new LambdaQueryWrapper<BusInfusionHistoryEntity>()
                 .in(BusInfusionHistoryEntity::getClinicId, clinicIds)
+                .ge(CollectionUtil.isNotEmpty(timeRange),BusInfusionHistoryEntity::getStartTime,CollectionUtil.getFirst(timeRange))
+                .le(CollectionUtil.size(timeRange)>1,BusInfusionHistoryEntity::getStartTime,CollectionUtil.get(timeRange,1))
                 .orderByDesc(BusInfusionHistoryEntity::getStartTime));
         Map<String, List<BusInfusionHistoryEntity>> infusionMap = infusionHistories.stream()
                 .collect(Collectors.groupingBy(BusInfusionHistoryEntity::getClinicId));
@@ -352,6 +367,7 @@ public class LocalBusClinicService extends BaseService<BusClinicMapper, BusClini
                 .orderByDesc(BusEvaluationEntity::getEvaluateTime));
 
         Map<String, List<BusEvaluationEntity>> clinicMap = evals.stream()
+                .filter(s-> StrUtil.isNotEmpty(s.getInfusionId()))
                 .collect(Collectors.groupingBy(BusEvaluationEntity::getInfusionId));
 
         for (BusClinicEntity clinicEntity : clinicList) {