Bladeren bron

远程配置V2.0

zsl 2 jaren geleden
bovenliggende
commit
3a10f335eb

+ 43 - 1
nb-admin/src/test/java/com/nb/admin/BusDeviceAlarmTest.java

@@ -2,15 +2,20 @@ package com.nb.admin;
 
 import cn.hutool.bloomfilter.bitMap.BitMap;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.nb.web.api.entity.BusDeviceConfigurationEntity;
+import com.nb.web.api.enums.DeviceTypeEnum;
 import com.nb.web.service.bus.controller.BusDeviceHistoryController;
 import com.nb.web.api.entity.BusDeviceAlarmEntity;
 import com.nb.web.api.entity.BusInfusionHistoryEntity;
 import com.nb.web.api.enums.DeviceStatusEnum;
+import com.nb.web.service.bus.controller.vo.ConfigurationParamVo;
 import com.nb.web.service.bus.mapper.BusDeviceAlarmMapper;
 import com.nb.web.service.bus.service.LocalBusDeviceAlarmService;
 import com.nb.web.service.bus.service.LocalBusDeviceConfigurationService;
 import com.nb.web.service.bus.service.LocalBusInfusionHistoryService;
 import com.nb.web.service.bus.service.dto.DeviceAlarmQuery;
+import com.nb.web.service.bus.service.dto.DeviceConfigurationQuery;
+import com.nb.web.service.bus.service.dto.DeviceConfigurationResult;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -29,6 +34,7 @@ import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.ValueOperations;
 import org.springframework.test.context.junit4.SpringRunner;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.BitSet;
 import java.util.List;
@@ -62,12 +68,48 @@ public class BusDeviceAlarmTest {
     @Test
     public void test001(){
         DeviceAlarmQuery query = new DeviceAlarmQuery();
+
+
         System.out.println(        busDeviceAlarmMapper.selectAlarmCount(query));
         System.out.println(busDeviceAlarmMapper.selectWarnCount(query));
+
+        System.out.println(query);
     }
     @Test
     public void test002(){
-        System.out.println(configurationService.selectAll());
+        DeviceConfigurationQuery deviceConfigurationQuery = new DeviceConfigurationQuery();
+        deviceConfigurationQuery.setDeviceId("313239510836012E");
+        List<DeviceConfigurationResult> deviceConfigurationResults = configurationService.selectAll(deviceConfigurationQuery);
+        for (DeviceConfigurationResult d: deviceConfigurationResults
+        ) {
+            System.out.println(d);
+        }
+    }
+    @Test
+    public void test021(){
+        List<BusDeviceConfigurationEntity> list = new ArrayList<>();
+        BusDeviceConfigurationEntity e1 = new BusDeviceConfigurationEntity();
+        e1.setDeviceId("510755243839029F");
+        e1.setTenantId("1542755774866964481");
+        e1.setPatientCode("222552");
+        e1.setType(DeviceTypeEnum.no);
+        list.add(e1);
+        BusDeviceConfigurationEntity e2 = new BusDeviceConfigurationEntity();
+        e2.setDeviceId("1544158506525966338");
+        e2.setTenantId("1542755774866964481");
+        e2.setPatientCode("22333");
+        list.add(e2);
+
+
+
+        ConfigurationParamVo vo = new ConfigurationParamVo();
+        vo.setAppendDose(new BigDecimal(new Integer(1)));
+        vo.setContinueDose(new BigDecimal(new Integer(2)));
+        vo.setTotalDose(new Integer(3));
+        vo.setFirstDose(new Integer(4));
+        vo.setMaxDose(new Integer(5));
+        vo.setSelfControlLockTime(new Integer(77));
+        configurationService.updateConfiguration(vo,list);
     }
 
 

+ 7 - 5
nb-service-api/web-service-api/src/main/java/com/nb/web/api/entity/BusDeviceConfigurationEntity.java

@@ -3,7 +3,6 @@ package com.nb.web.api.entity;
 import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.nb.common.config.mybatisplus.handler.TenantNameHandler;
 import com.nb.core.entity.TenantGenericEntity;
 import com.nb.web.api.enums.DeviceTypeEnum;
 import io.swagger.annotations.ApiModel;
@@ -47,8 +46,8 @@ public class BusDeviceConfigurationEntity extends TenantGenericEntity<String,Str
     @Length(max = 255,message = "设备类型不得超过255个字符")
     private DeviceTypeEnum type;
 
-    @TableField(value = "tenant_id",typeHandler = TenantNameHandler.class,updateStrategy = FieldStrategy.NEVER,insertStrategy = FieldStrategy.NEVER)
-    private String tenantName;
+/*    @TableField(value = "tenant_id",typeHandler = TenantNameHandler.class,updateStrategy = FieldStrategy.NEVER,insertStrategy = FieldStrategy.NEVER)
+    private String tenantName;*/
 
 
     @ApiModelProperty(value = "总量",accessMode = ApiModelProperty.AccessMode.READ_ONLY)
@@ -64,7 +63,7 @@ public class BusDeviceConfigurationEntity extends TenantGenericEntity<String,Str
     @ApiModelProperty(value = "公共参数-极限量",accessMode = ApiModelProperty.AccessMode.READ_ONLY)
     @DecimalMax(value = "90",message = "PCA追加量最大值不得超过90")
     @DecimalMin(value = "0",message ="PCA追加量最小值不得低于0" )
-    private BigDecimal maxDose;
+    private Integer maxDose;
 
     @ApiModelProperty(value = "公共参数-追加量",accessMode = ApiModelProperty.AccessMode.READ_ONLY)
     @DecimalMax(value = "10",message = "PCA追加量最大值不得超过10")
@@ -79,7 +78,10 @@ public class BusDeviceConfigurationEntity extends TenantGenericEntity<String,Str
     @ApiModelProperty(value = "公共参数-自控锁时 即单次追加锁时",accessMode = ApiModelProperty.AccessMode.READ_ONLY)
     @DecimalMax(value = "99",message = "PCA追加量最大值不得超过99")
     @DecimalMin(value = "1",message ="PCA追加量最小值不得低于0" )
-    private BigDecimal selfControlLockTime;
+    private Integer selfControlLockTime;
+
+    @ApiModelProperty(value = "设备住院号")
+    private String patientCode;
 
 
 

+ 6 - 12
nb-service/web-service/src/main/java/com/nb/web/service/bus/controller/BusDeviceConfigurationController.java

@@ -2,19 +2,13 @@ package com.nb.web.service.bus.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import com.baomidou.mybatisplus.core.mapper.Mapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.nb.common.crud.BaseService;
 import com.nb.common.crud.controller.BaseCrudController;
-import com.nb.core.entity.QueryParamEntity;
 import com.nb.core.result.R;
 import com.nb.web.api.entity.BusDeviceConfigurationEntity;
-import com.nb.web.api.entity.BusDeviceHistoryEntity;
+import com.nb.web.service.bus.controller.vo.ConfigurationParamVo;
 import com.nb.web.service.bus.service.LocalBusDeviceConfigurationService;
-import com.nb.web.service.bus.service.LocalBusDeviceHistoryService;
-import com.nb.web.service.bus.service.dto.DeviceConfigurationQuery;
-import com.nb.web.service.bus.service.dto.DeviceConfigurationResult;
-import com.nb.web.service.bus.service.dto.DeviceQuery;
-import com.nb.web.service.bus.service.dto.DeviceResult;
+import com.nb.web.service.bus.service.dto.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -54,15 +48,15 @@ public class BusDeviceConfigurationController  extends BaseCrudController<BusDev
     @PostMapping("/list")
     @SaCheckPermission("device:configuration:list")
     @ApiOperation(value = "远程配置查询",notes = "权限【device:configuration:list】")
-    public R<List<DeviceConfigurationResult>> list(){
-        return R.success(configurationService.selectAll());
+    public R<List<DeviceConfigurationResult>> list(@RequestBody DeviceConfigurationQuery query){
+        return R.success(configurationService.selectAll(query));
     }
 
     @PostMapping("/update")
     @SaCheckPermission("device:configuration:update")
     @ApiOperation(value = "远程配置查询",notes = "权限【device:configuration:update】")
-    public R updateConfiguration(BusDeviceConfigurationEntity deviceConfigurationEntity){
-        return R.success(configurationService.updateConfiguration(deviceConfigurationEntity));
+    public R updateConfiguration(@RequestBody ConfigurationParamVo configurationParamVo, @RequestBody List<BusDeviceConfigurationEntity> deviceConfigurationEntitys){
+        return R.success(configurationService.updateConfiguration(configurationParamVo ,deviceConfigurationEntitys));
     }
 
 

+ 52 - 0
nb-service/web-service/src/main/java/com/nb/web/service/bus/controller/vo/ConfigurationParamVo.java

@@ -0,0 +1,52 @@
+package com.nb.web.service.bus.controller.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.DecimalMax;
+import javax.validation.constraints.DecimalMin;
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import java.math.BigDecimal;
+
+/**
+ * @author zsl
+ * @version 1.0.0
+ * @ClassName ConfigurationParamVo.java
+ * @Description TODO
+ * @createTime 2023/7/314:09
+ */
+@ApiModel("远程配置参数")
+@Data
+public class ConfigurationParamVo {
+    @ApiModelProperty(value = "总量",accessMode = ApiModelProperty.AccessMode.READ_ONLY)
+    @Max(value = 999,message = "总量最大值不得超过999")
+    @Min(value = 0,message ="总量最小值不得超过0" )
+    private Integer totalDose;
+
+    @ApiModelProperty(value = "公共参数-首次量",accessMode = ApiModelProperty.AccessMode.READ_ONLY)
+    @Max(value = 50,message = "首次量最大值不得超过50")
+    @Min(value = 0,message ="首次量最小值不得超过0" )
+    private Integer firstDose;
+
+    @ApiModelProperty(value = "公共参数-极限量",accessMode = ApiModelProperty.AccessMode.READ_ONLY)
+    @DecimalMax(value = "90",message = "PCA追加量最大值不得超过90")
+    @DecimalMin(value = "0",message ="PCA追加量最小值不得低于0" )
+    private Integer maxDose;
+
+    @ApiModelProperty(value = "公共参数-追加量",accessMode = ApiModelProperty.AccessMode.READ_ONLY)
+    @DecimalMax(value = "10",message = "PCA追加量最大值不得超过10")
+    @DecimalMin(value = "0",message ="PCA追加量最小值不得低于0" )
+    private BigDecimal appendDose;
+
+    @ApiModelProperty(value = "持续泵参数-持续量",accessMode = ApiModelProperty.AccessMode.READ_ONLY)
+    @DecimalMax(value = "50",message = "持续给液量最大值不得超过50")
+    @DecimalMin(value = "0",message ="持续给液量最小值不得低于0" )
+    private BigDecimal continueDose;
+
+    @ApiModelProperty(value = "公共参数-自控锁时 即单次追加锁时",accessMode = ApiModelProperty.AccessMode.READ_ONLY)
+    @DecimalMax(value = "99",message = "PCA追加量最大值不得超过99")
+    @DecimalMin(value = "1",message ="PCA追加量最小值不得低于0" )
+    private Integer selfControlLockTime;
+}

+ 10 - 1
nb-service/web-service/src/main/java/com/nb/web/service/bus/mapper/BusDeviceConfigurationMapper.java

@@ -2,11 +2,20 @@ package com.nb.web.service.bus.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.nb.web.api.entity.BusDeviceConfigurationEntity;
+import com.nb.web.service.bus.service.dto.DeviceConfigurationQuery;
 import com.nb.web.service.bus.service.dto.DeviceConfigurationResult;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
+@Mapper
 public interface BusDeviceConfigurationMapper extends BaseMapper<BusDeviceConfigurationEntity> {
 
-    List<DeviceConfigurationResult> selectAll();
+    List<DeviceConfigurationResult> selectByQuery(@Param("query") DeviceConfigurationQuery query);
+
+
+    int insertNew(@Param("entity") BusDeviceConfigurationEntity entity);
+
+    int updateByDeviceId(@Param("entity") BusDeviceConfigurationEntity entity);
 }

+ 24 - 9
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/LocalBusDeviceConfigurationService.java

@@ -1,8 +1,10 @@
 package com.nb.web.service.bus.service;
 
 import com.nb.common.crud.BaseService;
+import com.nb.web.service.bus.controller.vo.ConfigurationParamVo;
 import com.nb.web.service.bus.mapper.BusDeviceConfigurationMapper;
 import com.nb.web.api.entity.BusDeviceConfigurationEntity;
+import com.nb.web.service.bus.service.dto.DeviceConfigurationQuery;
 import com.nb.web.service.bus.service.dto.DeviceConfigurationResult;
 import org.springframework.stereotype.Service;
 
@@ -33,19 +35,32 @@ public class LocalBusDeviceConfigurationService extends BaseService<BusDeviceCon
 
     }
 
-    public List<DeviceConfigurationResult> selectAll(){
+    public List<DeviceConfigurationResult> selectAll(DeviceConfigurationQuery query){
 
-        return  baseMapper.selectAll();
+        return  baseMapper.selectByQuery(query);
     }
 
-    public int updateConfiguration(BusDeviceConfigurationEntity deviceConfigurationEntity) {
-        int insert = 0;
-        if(deviceConfigurationEntity.getId() == null){
-            insert = baseMapper.insert(deviceConfigurationEntity);
-        }else{
-            insert = baseMapper.updateById(deviceConfigurationEntity);
+    public int updateConfiguration(ConfigurationParamVo configurationParamVo, List<BusDeviceConfigurationEntity> deviceConfigurationEntitys) {
+        int i = 0;
+        for (BusDeviceConfigurationEntity entity: deviceConfigurationEntitys
+             ) {
+            entity.setMaxDose(configurationParamVo.getMaxDose());
+            entity.setFirstDose(configurationParamVo.getFirstDose());
+            entity.setContinueDose(configurationParamVo.getContinueDose());
+            entity.setAppendDose(configurationParamVo.getAppendDose());
+            entity.setSelfControlLockTime(configurationParamVo.getSelfControlLockTime());
+            entity.setTotalDose(configurationParamVo.getTotalDose());
+
+            System.out.println(entity+entity.getTenantId());
+            int i1 = baseMapper.insertNew(entity);
+
+            if( i1 ==0 ){
+                i1 = baseMapper.updateByDeviceId(entity);
+            }
+            i +=i1;
         }
 
-            return insert;
+
+        return i;
     }
 }

+ 3 - 0
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/dto/DeviceConfigurationResult.java

@@ -54,4 +54,7 @@ public class DeviceConfigurationResult implements Serializable {
     @ApiModelProperty(value = "公共参数-自控锁时 即单次追加锁时")
     private BigDecimal selfControlLockTime;
 
+    @ApiModelProperty(value = "设备住院号")
+    private String patientCode;
+
 }

+ 77 - 14
nb-service/web-service/src/main/resources/mapper/bus/BusDeviceConfigurationMapper.xml

@@ -7,31 +7,94 @@
         <result column="device_id" property="deviceId"/>
         <result column="alias" property="alias"/>
         <result column="type" property="type"/>
-        <result column="total_dose" property="configuration"/>
-        <result column="first_dose" property="configuration"/>
-        <result column="max_dose" property="configuration"/>
-        <result column="append_dose" property="configuration"/>
-        <result column="continue_dose" property="configuration"/>
-        <result column="self_control_lock_time" property="configuration"/>
+        <result column="total_dose" property="totalDose"/>
+        <result column="first_dose" property="firstDose"/>
+        <result column="max_dose" property="maxDose"/>
+        <result column="append_dose" property="appendDose"/>
+        <result column="continue_dose" property="continueDose"/>
+        <result column="self_control_lock_time" property="selfControlLockTime"/>
+        <result column="patient_code" property="patientCode"/>
 
     </resultMap>
 
-    <select id="selectAll" resultMap="deviceConfigurationResult">
+    <select id="selectByQuery" resultMap="deviceConfigurationResult" parameterType="com.nb.web.service.bus.service.dto.DeviceConfigurationQuery">
         SELECT
             dc.id AS id,
             d.device_id AS device_id,
             d.alias AS alias,
             d.type AS type,
-            dc.total_dose as totalDose,
-            dc.first_dose as firstDose,
-            dc.max_dose as maxDose,
-            dc.append_dose as appendDose,
-            dc.continue_dose as continueDose,
-            dc.self_control_lock_time as selfControlLockTime
+            dc.total_dose as total_dose,
+            dc.first_dose as first_dose,
+            dc.max_dose as max_dose,
+            dc.append_dose as append_dose,
+            dc.continue_dose as continue_dose,
+            dc.self_control_lock_time as self_control_lock_time,
+            dc.patient_code as patient_code
         FROM
-            bus_device AS d
+            (select * from bus_device
+            <where>
+                <if test="query.deviceId!=null">
+                    device_id = #{query.deviceId}
+                </if>
+                <if test="query.alias!=null">
+                    and alias like concat('%',#{query.alias},'%')
+                </if>
+            </where>
+                )AS d
                 LEFT JOIN bus_device_configuration AS dc ON d.device_id = dc.device_id
+        <where>
+            <if test="query.deviceTypes != null and query.deviceTypes.size > 0">
+                d.type in
+                <foreach item="type" index="index" collection="query.deviceTypes" open="(" separator="," close=")">
+                    #{type, jdbcType=VARCHAR}
+                </foreach>
+            </if>
+        </where>
         ORDER BY
             device_id
     </select>
+    <insert id="insertNew" parameterType="com.nb.web.api.entity.BusDeviceConfigurationEntity">
+        INSERT INTO bus_device_configuration ( device_id, alias, type, tenant_id, total_dose, first_dose, max_dose, append_dose, continue_dose, self_control_lock_time, patient_code ) SELECT
+        #{entity.deviceId},
+        #{entity.alias},
+        #{entity.type, jdbcType=VARCHAR},
+        #{entity.tenantId},
+        #{entity.totalDose},
+        #{entity.firstDose},
+        #{entity.maxDose},
+        #{entity.appendDose},
+        #{entity.continueDose},
+        #{entity.selfControlLockTime},
+        #{entity.patientCode}
+        FROM
+            DUAL
+        WHERE
+            NOT EXISTS (
+                    SELECT
+                        device_id
+                    FROM
+                        bus_device_configuration
+                    WHERE
+                        device_id = #{entity.deviceId}
+                )
+
+    </insert>
+
+    <update id="updateByDeviceId" parameterType="com.nb.web.api.entity.BusDeviceConfigurationEntity">
+        UPDATE bus_device_configuration
+        <set>
+            alias = #{entity.alias},
+            type = #{entity.type, jdbcType=VARCHAR},
+            tenant_id = #{entity.tenantId},
+            total_dose = #{entity.totalDose},
+            first_dose = #{entity.firstDose},
+            max_dose = #{entity.maxDose},
+            append_dose = #{entity.appendDose},
+            continue_dose = #{entity.continueDose},
+            self_control_lock_time = #{entity.selfControlLockTime},
+            patient_code  = #{entity.patientCode}
+        </set>
+        WHERE
+            device_id = #{entity.deviceId}
+    </update>
 </mapper>