Parcourir la source

add
废液管理
修改异常标识

lifang il y a 3 mois
Parent
commit
2a0bbadc8d

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

@@ -50,17 +50,17 @@ import java.util.stream.Collectors;
 public class BusLiquidController {
     private final LocalBusClinicService clinicService;
 
-    private final LocalBusPatientService patientService;
     @PostMapping("/page")
     @ApiOperation(value = "废液列表分页查询",notes = "权限  无")
-    public R<IPage<BusLiquidListVO>> page(@RequestAttribute("tenantId")@ApiParam(hidden = true) String tenantId, @RequestBody@Validated BusLiquidQuery query) {
-        return R.success(patientService.selectLiquidPage(query));
+    public R<IPage<BusLiquidListVO>> page(@RequestBody@Validated BusLiquidQuery query) {
+        return R.success(clinicService.selectLiquidPage(query));
     }
 
     @PostMapping("/batchHandle")
     @SaCheckPermission("bus:liquid:edit")
     @ApiOperation(value = "批量处理废液",notes = "权限【bus:liquid:edit】")
-    public R<IPage<ClinicResult>> latestPage(@RequestBody@Validated LiquidBatchHandleDTO source) {
-        return R.success(null);
+    public R<Boolean> batchHandle(@RequestBody@Validated LiquidBatchHandleDTO source) {
+        clinicService.batchHandleLiquid(source);
+        return R.success(Boolean.TRUE);
     }
 }

+ 2 - 0
nb-service/web-service/src/main/java/com/nb/web/service/bus/controller/vo/BusLiquidListVO.java

@@ -23,6 +23,8 @@ public class BusLiquidListVO implements Serializable {
     @ApiModelProperty("手术id")
     private String clinicId;
 
+    @ApiModelProperty("手术名称")
+    private String clinicName;
     @ApiModelProperty(value = "住院号")
     private String patientCode;
 

+ 6 - 0
nb-service/web-service/src/main/java/com/nb/web/service/bus/mapper/BusClinicMapper.java

@@ -3,16 +3,20 @@ package com.nb.web.service.bus.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.nb.web.service.bus.controller.vo.BusLiquidListVO;
 import com.nb.web.service.bus.controller.vo.ClinicStatsVo;
 import com.nb.web.api.entity.BusClinicEntity;
 import java.util.*;
 
+import com.nb.web.service.bus.service.dto.BusLiquidQuery;
 import com.nb.web.service.bus.service.dto.ClinicQuery;
 import com.nb.web.service.bus.service.dto.ClinicResult;
 import com.nb.web.service.bus.service.dto.ClinicStatsQueryResult;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
+import javax.validation.constraints.NotNull;
+
 /**
  * @author lifang
  * @version 1.0.0
@@ -44,4 +48,6 @@ public interface BusClinicMapper extends BaseMapper<BusClinicEntity> {
     IPage<ClinicResult> pageQuery(Page<ClinicResult> page,@Param("query") ClinicQuery query);
 
     IPage<ClinicResult> latestQueryPage(Page<ClinicResult> page, @Param("query") ClinicQuery query);
+
+    IPage<BusLiquidListVO> selectLiquidPage(Page<BusLiquidListVO> page, @Param("query")BusLiquidQuery query);
 }

+ 36 - 3
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/LocalBusClinicService.java

@@ -2,19 +2,23 @@ package com.nb.web.service.bus.service;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
 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;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.nb.web.api.entity.BusDeviceEntity;
 import com.nb.web.api.entity.BusEvaluationEntity;
 import com.nb.web.api.enums.ClinicManageEnum;
 import com.nb.web.api.event.ClinicFinishedEvent;
 import com.nb.web.api.event.ClinicRestartEvent;
 import com.nb.web.api.event.PatientInfoEvent;
 import com.nb.web.service.bus.controller.vo.BusClinicExcelVO;
+import com.nb.web.service.bus.controller.vo.BusLiquidListVO;
 import com.nb.web.service.bus.controller.vo.ClinicStatsVo;
 import com.nb.web.api.entity.BusClinicEntity;
 import com.nb.web.api.entity.BusInfusionHistoryEntity;
@@ -24,14 +28,13 @@ import com.nb.web.service.bus.mapper.BusEvaluationMapper;
 import com.nb.web.service.bus.mapper.BusInfusionHistoryMapper;
 import com.nb.web.service.bus.registry.patient.PatientOperator;
 import com.nb.web.service.bus.registry.patient.PatientRegistry;
-import com.nb.web.service.bus.service.dto.ClinicQuery;
-import com.nb.web.service.bus.service.dto.ClinicResult;
-import com.nb.web.service.bus.service.dto.ClinicStatsReturnResult;
+import com.nb.web.service.bus.service.dto.*;
 import com.nb.web.service.bus.utils.ExportExcelUtils;
 import com.nb.web.service.bus.utils.WsPublishUtils;
 import com.nb.common.crud.BaseService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.web.servlet.error.DefaultErrorViewResolver;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -70,6 +73,11 @@ public class LocalBusClinicService extends BaseService<BusClinicMapper, BusClini
     @Autowired
     @Lazy
     private WsPublishUtils wsPublishUtils;
+
+    @Autowired
+    @Lazy
+    private LocalBusDeviceService deviceService;
+
     @Override
     public void validateBeforeSave(BusClinicEntity entity) {
         if(entity.getMonitorStartTime()==null){
@@ -395,4 +403,29 @@ public class LocalBusClinicService extends BaseService<BusClinicMapper, BusClini
         }
         return ExportExcelUtils.exportClinicExcelBase64(result);
     }
+
+    public IPage<BusLiquidListVO> selectLiquidPage(BusLiquidQuery query) {
+        IPage<BusLiquidListVO> result = this.baseMapper.selectLiquidPage(query.getPage(), query);
+        if(CollectionUtil.isNotEmpty(result.getRecords())){
+            List<BusDeviceEntity> deviceList = deviceService.listByIds(result.getRecords().stream().map(BusLiquidListVO::getDeviceId).collect(Collectors.toList()));
+            Map<String, BusDeviceEntity> deviceMap = deviceList.stream().collect(Collectors.toMap(BusDeviceEntity::getId, item->item));
+            for (BusLiquidListVO record : result.getRecords()) {
+                BusDeviceEntity device = deviceMap.get(record.getDeviceId());
+                if(ObjectUtil.isNotNull(device)){
+                    record.setDeviceAlias(device.getAlias());
+                }
+            }
+        }
+        return result;
+    }
+
+    public void batchHandleLiquid(LiquidBatchHandleDTO source) {
+        List<String> clinicIds = source.getClinicIds();
+        this.baseMapper.update(null,new LambdaUpdateWrapper<BusClinicEntity>()
+                .in(BusClinicEntity::getId,clinicIds)
+                .set(BusClinicEntity::getLiquidExecutor,source.getLiquidExecutor())
+                .set(BusClinicEntity::getLiquidChecker,source.getLiquidChecker())
+                .set(BusClinicEntity::getLiquidTime,source.getLiquidTime())
+                .set(BusClinicEntity::getLiquidRemark,source.getLiquidRemark()));
+    }
 }

+ 1 - 5
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/LocalBusPatientService.java

@@ -852,8 +852,4 @@ public class LocalBusPatientService extends BaseService<BusPatientMapper, BusPat
         BusClinicEntity clinic = clinicMapper.selectById(clinicId);
         return clinic;
     }
-
-    public IPage<BusLiquidListVO> selectLiquidPage(BusLiquidQuery query) {
-        return null;
-    }
-}
+}

+ 9 - 2
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/dto/BusLiquidQuery.java

@@ -1,9 +1,12 @@
 package com.nb.web.service.bus.service.dto;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.nb.web.service.bus.controller.vo.BusLiquidListVO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.*;
 
@@ -35,6 +38,10 @@ public class BusLiquidQuery implements Serializable {
     @ApiModelProperty(value = "手术名称")
     private String clinicName;
 
-    @ApiModelProperty(value = "核对状态")
-    private String liquidType;
+    @ApiModelProperty(value = "是否核对  0、未核对 1、已核对")
+    private Boolean liquidType;
+
+    @ApiModelProperty(value = "分页查询参数",required = true)
+    @NotNull(message = "分页查询参数不可为空")
+    private Page<BusLiquidListVO> page;
 }

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

@@ -110,14 +110,14 @@
     </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,
         c.ward as ward,
         CASE
-            WHEN c.manual_bedno IS NOT NULL AND c.manual_bedno != '' THEN c.manual_bedno
-            ELSE c.bed_no
+        WHEN c.manual_bedno IS NOT NULL AND c.manual_bedno != '' THEN c.manual_bedno
+        ELSE c.bed_no
         END as bed_no,
         c.`surgery_name` as surgery_name,
         c.surgery_doctor as surgery_doctor,
@@ -260,4 +260,85 @@
             </foreach>
         </if>
     </select>
+
+    <resultMap id="stdLiquidResult" type="com.nb.web.service.bus.controller.vo.BusLiquidListVO">
+        <result property="clinicId" column="clinic_id"/>
+        <result property="clinicName" column="clinic_name"/>
+        <result property="patientId" column="patient_id"/>
+        <result property="patientCode" column="patient_code"/>
+        <result property="patientName" column="patient_name"/>
+        <result property="ward" column="ward"/>
+        <result property="bedNo" column="bed_no"/>
+        <result property="deviceId" column="device_id"/>
+        <result property="deviceAlias" column="device_alias"/>
+        <result property="clinicStartTime" column="clinic_start_time"/>
+        <result property="undoTime" column="undo_time"/>
+        <result property="formula" column="formula"/>
+        <result property="totalDose" column="total_dose"/>
+        <result property="remainDose" column="remain_dose"/>
+        <result property="liquidExecutor" column="liquid_executor"/>
+        <result property="liquidChecker" column="liquid_checker"/>
+        <result property="liquidRemark" column="liquid_remark"/>
+        <result property="liquidTime" column="liquid_time"/>
+    </resultMap>
+
+    <select id="selectLiquidPage" resultMap="stdLiquidResult">
+        select
+        c.id as clinic_id,
+        c.patient_id as patient_id,
+        c.patient_code as patient_code,
+        c.patient_name as patient_name,
+        c.ward as ward,
+        CASE
+        WHEN c.manual_bedno IS NOT NULL AND c.manual_bedno != '' THEN c.manual_bedno
+        ELSE c.bed_no
+        END as bed_no,
+        c.surgery_name  as clinic_name,
+        i.device_id as device_id,
+        c.monitor_start_time as clinic_start_time,
+        i.undo_time as undo_time,
+        c.formula as formula,
+        i.total_dose as total_dose,
+        i.remain_dose as remain_dose,
+        c.liquid_executor as liquid_executor,
+        c.liquid_checker as liquid_checker,
+        c.liquid_remark as liquid_remark,
+        c.liquid_time as liquid_time
+        from bus_clinic as c
+        join bus_patient as p on c.patient_id = p.id
+        join bus_infusion_history as i on p.infusion_id = i.id
+        <where>
+            <if test="query.undoTime != null and query.undoTime.size ==1">
+                and undo_time &gt; #{query.timeRange[0]}
+            </if>
+            <if test="query.undoTime != null and query.undoTime.size > 1">
+                and undo_time &gt; #{query.undoTime[0]} and  c.undo_time &lt; #{query.undoTime[1]}
+            </if>
+            <if test="query.patientCode!=null and query.patientCode!=''">
+                and patient_code like concat('%',#{query.patientCode},'%')
+            </if>
+            <if test="query.bedNo!=null and query.bedNo!=''">
+                and bed_no like concat('%',#{query.bedNo},'%')
+            </if>
+            <if test="query.ward != null and query.ward.size > 0">
+                and c.ward in
+                <foreach item="w" index="index" collection="query.ward" open="(" separator="," close=")">
+                    #{w, jdbcType=VARCHAR}
+                </foreach>
+            </if>
+            <if test="query.patientName!=null and query.patientName!=''">
+                and patient_name like concat('%',#{query.patientName},'%')
+            </if>
+            <if test="query.clinicName!=null and query.clinicName!=''">
+                and clinic_name like concat('%',#{query.clinicName},'%')
+            </if>
+            <if test="query.liquidType!=null and query.liquidType == true">
+                and liquid_checker is null
+            </if>
+            <if test="query.liquidType!=null and query.liquidType == false">
+                and liquid_checker is not null
+            </if>
+        </where>
+        order by undo_time desc
+    </select>
 </mapper>