zsl 2 anni fa
parent
commit
afb349fa48

+ 2 - 0
nb-admin/src/test/java/com/nb/admin/AliyunTest.java

@@ -9,6 +9,7 @@ import com.nb.im.ws.PubMsgInfo;
 import com.nb.web.api.entity.BusDeviceEntity;
 import com.nb.web.api.entity.BusInfusionHistoryEntity;
 import com.nb.web.service.bus.listener.event.bean.DeviceInfoEvent;
+import com.nb.web.service.bus.mapper.BusDeviceConfigurationMapper;
 import com.nb.web.service.bus.service.LocalBusDeviceService;
 import com.nb.web.service.bus.service.LocalBusInfusionHistoryService;
 import com.nb.web.api.entity.common.BusDeviceRunningEntity;
@@ -47,6 +48,7 @@ public class AliyunTest {
     @Autowired
     private AliyunIotSdk aliyunIotSdk;
 
+
     @Test
     public void test001(){
         BusDeviceRunningEntity pump = new BusDeviceRunningEntity();

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

@@ -8,6 +8,7 @@ import com.nb.web.api.entity.BusInfusionHistoryEntity;
 import com.nb.web.api.enums.DeviceStatusEnum;
 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 lombok.extern.slf4j.Slf4j;
@@ -56,6 +57,8 @@ public class BusDeviceAlarmTest {
     LocalBusInfusionHistoryService infusionHistoryService;
     @Autowired
     RedissonClient redissonClient;
+    @Autowired
+    LocalBusDeviceConfigurationService configurationService;
     @Test
     public void test001(){
         DeviceAlarmQuery query = new DeviceAlarmQuery();
@@ -64,7 +67,7 @@ public class BusDeviceAlarmTest {
     }
     @Test
     public void test002(){
-        System.out.println(service.selectCountAlarm(new DeviceAlarmQuery()));
+        System.out.println(configurationService.selectAll());
     }
 
 

+ 86 - 0
nb-service-api/web-service-api/src/main/java/com/nb/web/api/entity/BusDeviceConfigurationEntity.java

@@ -0,0 +1,86 @@
+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;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.hibernate.validator.constraints.Length;
+
+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 BusDeviceConfigurationEntity.java
+ * @Description TODO
+ * @createTime 2023/6/1515:29
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@TableName(value = "bus_device_configuration",autoResultMap = true)
+@ApiModel(value="设备经销商管理", description="设备与医院关系管理")
+@ToString
+
+public class BusDeviceConfigurationEntity extends TenantGenericEntity<String,String> {
+
+    @ApiModelProperty(value = "设备唯一id")
+    private String deviceId;
+
+    @ApiModelProperty(value = "设备别名")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    @Length(max = 255,message = "设备别名不得超过255个字符")
+    private String alias;
+
+    @ApiModelProperty(value = "设备类型")
+    @Deprecated
+    @Length(max = 255,message = "设备类型不得超过255个字符")
+    private DeviceTypeEnum type;
+
+    @TableField(value = "tenant_id",typeHandler = TenantNameHandler.class,updateStrategy = FieldStrategy.NEVER,insertStrategy = FieldStrategy.NEVER)
+    private String tenantName;
+
+
+    @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 BigDecimal 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 BigDecimal selfControlLockTime;
+
+
+
+}

+ 73 - 0
nb-service/web-service/src/main/java/com/nb/web/service/bus/controller/BusDeviceConfigurationController.java

@@ -0,0 +1,73 @@
+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.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 io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author zsl
+ * @version 1.0.0
+ * @ClassName BusDeviceConfigurationController.java
+ * @Description TODO
+ * @createTime 2023/6/1514:55
+ */
+
+@Slf4j
+@RestController
+@AllArgsConstructor
+@RequestMapping("/bus/device/configuration")
+@Api(tags = "设备远程配置管理",description = "统一权限前缀(device:configuration),device:configuration:add")
+public class BusDeviceConfigurationController  extends BaseCrudController<BusDeviceConfigurationEntity, String> {
+    private final LocalBusDeviceConfigurationService configurationService;
+
+    /**
+     * 权限控制前缀
+     * @return
+     */
+    @Override
+    public String getPermissionPrefix() {
+        return "device:configuration";
+    }
+
+    @PostMapping("/list")
+    @SaCheckPermission("device:configuration:list")
+    @ApiOperation(value = "远程配置查询",notes = "权限【device:configuration:list】")
+    public R<List<DeviceConfigurationResult>> list(){
+        return R.success(configurationService.selectAll());
+    }
+
+    @PostMapping("/update")
+    @SaCheckPermission("device:configuration:update")
+    @ApiOperation(value = "远程配置查询",notes = "权限【device:configuration:update】")
+    public R updateConfiguration(BusDeviceConfigurationEntity deviceConfigurationEntity){
+        return R.success(configurationService.updateConfiguration(deviceConfigurationEntity));
+    }
+
+
+    @Override
+    public BaseService<? extends Mapper<BusDeviceConfigurationEntity>, BusDeviceConfigurationEntity, String> getService() {
+        return configurationService;
+    }
+}

+ 55 - 0
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/LocalBusDeviceConfigurationService.java

@@ -0,0 +1,55 @@
+package com.nb.web.service.bus.service;
+
+import com.nb.common.crud.BaseService;
+import com.nb.web.api.entity.BusDeviceEntity;
+import com.nb.web.service.bus.mapper.BusDeviceConfigurationMapper;
+import com.nb.web.api.entity.BusDeviceConfigurationEntity;
+import com.nb.web.service.bus.service.dto.DeviceConfigurationResult;
+import com.nb.web.service.bus.service.dto.DeviceWarnCountResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author zsl
+ * @version 1.0.0
+ * @ClassName BusDeviceConfigurationMapper.java
+ * @Description TODO
+ * @createTime 2023/6/308:08
+ */
+@Service
+public class LocalBusDeviceConfigurationService extends BaseService<BusDeviceConfigurationMapper, BusDeviceConfigurationEntity,String> {
+
+    @Override
+    public void validateBeforeSave(BusDeviceConfigurationEntity entity) {
+
+    }
+
+    @Override
+    public void validateBeforeUpdate(BusDeviceConfigurationEntity entity) {
+
+    }
+
+    @Override
+    public void validateBeforeDelete(String id) {
+
+    }
+
+    public List<DeviceConfigurationResult> selectAll(){
+
+        return  baseMapper.selectAll();
+    }
+
+    public int updateConfiguration(BusDeviceConfigurationEntity deviceConfigurationEntity) {
+        int insert = 0;
+        if(deviceConfigurationEntity.getId() == null){
+            insert = baseMapper.insert(deviceConfigurationEntity);
+        }else{
+            insert = baseMapper.updateById(deviceConfigurationEntity);
+        }
+
+            return insert;
+    }
+}

+ 28 - 0
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/dto/DeviceConfigurationQuery.java

@@ -0,0 +1,28 @@
+package com.nb.web.service.bus.service.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zsl
+ * @version 1.0.0
+ * @ClassName DeviceConfigurationQuery.java
+ * @Description TODO
+ * @createTime 2023/6/309:43
+ */
+@ApiModel("远程升级")
+@Data
+public class DeviceConfigurationQuery {
+    @ApiModelProperty("设备id")
+    private String deviceId;
+
+    @ApiModelProperty("设备别名")
+    private String alias;
+
+    @ApiModelProperty("设备类型集合")
+    private List<Integer> deviceTypes;
+
+}

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

@@ -0,0 +1,57 @@
+package com.nb.web.service.bus.service.dto;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.nb.web.api.enums.DeviceTypeEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.DecimalMax;
+import javax.validation.constraints.DecimalMin;
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author zsl
+ * @version 1.0.0
+ * @ClassName DeviceConfigurationResult.java
+ * @Description TODO
+ * @createTime 2023/6/309:43
+ */
+@Data
+@ApiModel("远程配置查询结果")
+public class DeviceConfigurationResult implements Serializable {
+    private String id;
+    @ApiModelProperty(value = "设备唯一id")
+    private String deviceId;
+
+    @ApiModelProperty(value = "设备别名")
+    private String alias;
+
+    @ApiModelProperty(value = "设备类型")
+    private DeviceTypeEnum type;
+
+
+    @ApiModelProperty(value = "总量")
+    private Integer totalDose;
+
+    @ApiModelProperty(value = "公共参数-首次量")
+    private Integer firstDose;
+
+    @ApiModelProperty(value = "公共参数-极限量")
+    private BigDecimal maxDose;
+
+    @ApiModelProperty(value = "公共参数-追加量")
+    private BigDecimal appendDose;
+
+    @ApiModelProperty(value = "持续泵参数-持续量")
+    private BigDecimal continueDose;
+
+    @ApiModelProperty(value = "公共参数-自控锁时 即单次追加锁时")
+    private BigDecimal selfControlLockTime;
+
+}

+ 37 - 0
nb-service/web-service/src/main/resources/mapper/bus/BusDeviceConfigurationMapper.xml

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.nb.web.service.bus.mapper.BusDeviceConfigurationMapper">
+
+    <resultMap id="deviceConfigurationResult" type="com.nb.web.service.bus.service.dto.DeviceConfigurationResult">
+        <result column="id" property="id"/>
+        <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"/>
+
+    </resultMap>
+
+    <select id="selectAll" resultMap="deviceConfigurationResult">
+        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
+        FROM
+            bus_device AS d
+                LEFT JOIN bus_device_configuration AS dc ON d.device_id = dc.device_id
+        ORDER BY
+            device_id
+    </select>
+</mapper>