瀏覽代碼

add
定时补偿

18339543638 1 年之前
父節點
當前提交
ef35c4b069

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

@@ -278,15 +278,15 @@ public class BusClinicController {
 
     @PostMapping("/list/export/excel")
     @ApiOperation(value = "导出临床数据查询结果的excel",notes = "导出临床数据查询结果的excel,权限【无】")
-    public R<ExportResult> exportListExcel(@RequestBody@Validated ClinicQuery query) throws IOException {
-        Page<ClinicResult> page = query.getPage();
+    public R<ExportResult> exportListExcel(@RequestBody CombineQuery query) throws IOException {
+        Page<CombineResult> page = query.getPage();
         page.setSize(9999);
         page.setCurrent(1);
-        IPage<ClinicResult> result = clinicService.pageQuery(query);
+        IPage<CombineResult> result = infusionHistoryService.queryPage(query, page);
         List<String> clinicIds = result.getRecords().stream()
                 .filter(Objects::nonNull)
-                .map(ClinicResult::getClinicId)
+                .map(CombineResult::getClinicId)
                 .collect(Collectors.toList());
-        return R.success(ExportResult.of("驼人镇痛泵手术(评价)信息列表",clinicService.exportExcelSourceListBase64(clinicIds), ExportType.EXCEL));
+        return R.success(ExportResult.of("驼人镇痛泵手术(评价)信息列表",clinicService.exportExcelSourceListBase64(clinicIds,query.getStartTimeRange()), ExportType.EXCEL));
     }
 }

+ 18 - 0
nb-service/web-service/src/main/java/com/nb/web/service/bus/hospital/his/HisScriptSession.java

@@ -13,6 +13,7 @@ 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;
@@ -65,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)
@@ -82,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);
     }
 
@@ -262,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){

+ 13 - 0
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/LocalBusClinicService.java

@@ -331,6 +331,17 @@ 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);
@@ -345,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));

+ 1 - 1
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/dto/ClinicQuery.java

@@ -39,7 +39,7 @@ public class ClinicQuery implements Serializable {
     private String bedNo;
 
     @ApiModelProperty("开始时间区间")
-    private List<Date>  startTimeRange;
+    private List<Date>  timeRange;
 
     @ApiModelProperty("是否结束")
     private Integer finished;

+ 1 - 1
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/dto/CombineQuery.java

@@ -172,7 +172,7 @@ public class CombineQuery {
     private List<String> orderByAsc=new ArrayList<>();
 
     @ApiModelProperty("统计查询时的时间枚举条件, 1、天 不可超过90天 2、周 不可超过366天 3、月 不可超过366天")
-    @NotNull(message = "时间单位不能为空")
+//    @NotNull(message = "时间单位不能为空")
     private StatsTimeUnit timeUnit;
 
     public void setPcaCountRange(List<Integer> pcaCountRange) {

+ 5 - 5
nb-service/web-service/src/main/resources/mapper/bus/BusClinicMapper.xml

@@ -102,7 +102,7 @@
     </select>
 
     <select id="pageQuery" resultMap="queryResult" parameterType="com.nb.web.service.bus.service.dto.ClinicQuery">
-       select p.id as patient_id,
+        select p.id as patient_id,
         c.id as clinic_id,
         c.patient_code as patient_code,
         c.patient_name as patient_name,
@@ -141,8 +141,8 @@
             <if test="query.bedNo!=null and query.bedNo!=''">
                 and c.bed_no like concat('%',#{query.bedNo},'%')
             </if>
-            <if test="query.startTimeRange != null and query.startTimeRange.size >0">
-                and c.monitor_start_time &gt; #{query.startTimeRange[0]} and  c.monitor_start_time &lt; #{query.startTimeRange[1]}
+            <if test="query.timeRange != null and query.timeRange.size >0">
+                and c.monitor_start_time &gt; #{query.timeRange[0]} and  c.monitor_start_time &lt; #{query.timeRange[1]}
             </if>
             <if test="query.patientCode!=null and query.patientCode!=''">
                 and c.patient_code like concat('%',#{query.patientCode},'%')
@@ -216,8 +216,8 @@
             <if test="query.bedNo!=null">
                 and bed_no like concat('%',#{query.bedNo},'%')
             </if>
-            <if test="query.startTimeRange != null and query.startTimeRange.size >0">
-                and monitor_start_time &gt; #{query.startTimeRange[0]} and  monitor_start_time &lt; #{query.startTimeRange[1]}
+            <if test="query.timeRange != null and query.timeRange.size >0">
+                and monitor_start_time &gt; #{query.timeRange[0]} and  monitor_start_time &lt; #{query.timeRange[1]}
             </if>
         </where>
         ) as c on p.clinic_id=c.id