浏览代码

Merge branch 'dev' into local-slave

# Conflicts:
#	nb-admin/pom.xml
#	nb-admin/src/main/resources/application-dev.yml
#	nb-service-api/web-service-api/src/main/java/com/nb/web/api/entity/common/BusDeviceRunningEntity.java
#	nb-service/web-service/src/main/java/com/nb/web/service/bus/service/dto/ClinicAnalRecordResult.java
18339543638 1 年之前
父节点
当前提交
25f1c74ae5

+ 16 - 0
nb-admin/src/main/resources/application-prod.yml

@@ -125,6 +125,22 @@ request:
     repeat-interval: 600
 
 
+# 阿里云对接配置
+iot:
+  consumers:
+    - enable: true
+      consumer: com.nb.aliyun.service.consumer.NBAndFourGConsumerGroupService
+      name: NB
+      config:
+        accessKey: "LTAI4G7FA9ytMc76oNkJ45YJ"
+        accessSecret: "R7hOvMfiHb0PYroDqUDXAYgB9htQss"
+        consumerGroupId: "v5UP8CWgZKWt1FFubh5B000100"
+        aliyunUid: "1238892013759131"
+        regionId: "cn-shanghai"
+        iotInstanceId: "iot-060a0bgd"
+        enable: true
+        productKey: he1f6YdSWHW
+
 # 阿里云对接配置
 aliyun:
   accessKey: "LTAI4G7FA9ytMc76oNkJ45YJ"

+ 1 - 1
nb-admin/src/main/resources/application.yml

@@ -80,7 +80,7 @@ mybatis-plus:
       logic-not-delete-value: 0
       logic-delete-value: 1
   configuration:
-    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
     default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler
     cache-enabled: false
   type-aliases-package: com.nb.bus.entity

+ 35 - 0
nb-admin/src/test/java/com/nb/admin/IotTest.java

@@ -0,0 +1,35 @@
+package com.nb.admin;
+
+import cn.hutool.json.JSONUtil;
+import com.nb.aliyun.controller.IotController;
+import com.nb.core.result.R;
+import com.nb.web.api.entity.common.BusDeviceRunningEntity;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+/**
+ * @ClassName : IotTest
+ * @Description :
+ * @Author : LF
+ * @Date: 2024年05月06日
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = AdminApplication.class)
+public class IotTest {
+    @Autowired
+    private IotController iotController;
+
+
+    @Test
+    public void test001(){
+        String str="{\"firstDose\":0,\"type\":\"intelligent\",\"deviceId\":\"4310704330480294\",\"newInfusion\":false,\"flowRestricted\":false,\"totalDose\":100,\"pcaInvalidCount\":0,\"selfControlLockTime\":5,\"alarm\":\"None\",\"pcaValidCount\":0,\"patientCode\":\"333000000\",\"infusionModify\":false,\"maybeLowInfusion\":false,\"appendDose\":0,\"test\":false,\"resetClinic\":false,\"maxDose\":90,\"continueDose\":45,\"classification\":\"1\",\"inputDose\":3.6,\"electricQuantity\":100,\"resetUndo\":false,\"dataNumber\":20,\"runState\":\"Running\",\"pcaTotalCount\":0}";
+        BusDeviceRunningEntity obj = JSONUtil.toBean(str, BusDeviceRunningEntity.class);
+        R r = iotController.dataSave(obj);
+        while (true){
+
+        }
+    }
+}

+ 1 - 0
nb-auth/src/main/java/com/nb/auth/sa/SaTokenConfig.java

@@ -69,6 +69,7 @@ public class SaTokenConfig {
         IGNORE_URL.add("/system/sysDept/**");
         IGNORE_URL.add("/assist/phone/**");
         IGNORE_URL.add("/bus/device/info/hospitalCode");
+        IGNORE_URL.add("/iot/**");
     }
 
 }

+ 3 - 2
nb-service-api/web-service-api/src/main/java/com/nb/web/api/entity/common/BusDeviceRunningEntity.java

@@ -155,7 +155,8 @@ public class BusDeviceRunningEntity extends CommonDeviceParam<String,String> {
     /**
      * 4G 传输时会带上医院编码
      */
-    private String hospitalCode;
+    @TableField(exist = false)
+    private String userId;
 
     /**
      * @author 龙三郎
@@ -235,7 +236,7 @@ public class BusDeviceRunningEntity extends CommonDeviceParam<String,String> {
             this.setWarnFlow(WarnFlowUtils.getAlarm(items.getInteger(PumpParams.warnFlow)));
         }
 
-        this.setHospitalCode(items.getStringReturnDefault(PumpParams.userId,null));
+        this.setUserId(items.getStringReturnDefault(PumpParams.userId,null));
     }
 
 

+ 2 - 2
nb-service/app-assistant/src/main/java/com/nb/app/assistant/controller/PatientOperationController.java

@@ -89,7 +89,7 @@ public class PatientOperationController {
      */
     @PostMapping("/edit/name")
     @ApiOperation("修改病人备注")
-    public R editPatientNamePs(@RequestBody@Validated EditPatientNameVO source){
+    public R<Boolean> editPatientNamePs(@RequestBody@Validated EditPatientNameVO source){
         log.info("看护人修改绑定关系,{}",JSONUtil.toJsonStr(source));
         AssistantUserBindEntity updateSource = new AssistantUserBindEntity();
         updateSource.setId(source.getId());
@@ -107,7 +107,7 @@ public class PatientOperationController {
      */
     @PostMapping("/edit")
     @ApiOperation("修改绑定关系")
-    public R edit(@RequestBody@Validated EditAssistBindDto source){
+    public R<Boolean> edit(@RequestBody@Validated EditAssistBindDto source){
         log.info("看护人修改绑定关系,{}",JSONUtil.toJsonStr(source));
         return R.success(userBindService.update(source));
     }

+ 4 - 0
nb-service/iot-service/src/main/java/com/nb/aliyun/controller/IotController.java

@@ -2,6 +2,8 @@ package com.nb.aliyun.controller;
 
 
 import cn.dev33.satoken.annotation.SaIgnore;
+import cn.hutool.core.lang.UUID;
+import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
@@ -65,6 +67,7 @@ public class IotController {
         if(ObjectUtil.isNull(source.getRunState())){
             throw new CustomException("[runState]设备运行状态不能为空");
         }
+        source.setUserId(StrUtil.fill(source.getUserId(),'0',4,true));
         source.setTest(false);
         executorService.execute(()->{
             BusDeviceEntity device = new BusDeviceEntity();
@@ -80,6 +83,7 @@ public class IotController {
             hospitalLog.setTenantId(device.getTenantId());
             long startTime = System.currentTimeMillis();
             try {
+                source.setMsgId(IdUtil.getSnowflakeNextIdStr());
                 BusDeviceRunningEntity sync = iotMsgHandler.sync(source, source.getDeviceId());
                 hospitalLog.setResult(JSONUtil.toJsonStr(sync));
                 hospitalLog.setSuccess(true);

+ 2 - 1
nb-service/web-service/src/main/java/com/nb/web/service/bus/listener/DeviceInfoListener.java

@@ -102,7 +102,8 @@ public class DeviceInfoListener implements IIotMsgHandler {
             long startTime = System.currentTimeMillis();
             DeviceOperator deviceOperator = deviceRegistry.getOperator(deviceId);
             //对设备数据的一些参数进行初始化设置
-            deviceOperator.refreshHospitalCode(device.getHospitalCode());
+            deviceOperator.refreshHospitalCode(device.getUserId());
+            device.setTenantId(deviceOperator.getTenantId());
             init(device);
 
             //缓存操作

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

@@ -61,6 +61,7 @@ public class LocalBusDeviceManualService extends BaseService<BusDeviceManualMapp
         if(StrUtil.isEmpty(clinic.getId())){
             throw new CustomException("请选择临床信息");
         }
+        manual.setClinicId(clinic.getId());
         clinicService.updateById(clinic);
         if(StrUtil.isNotBlank(manual.getId())){
             BusDeviceManualEntity one = this.getOne(new QueryWrapper<BusDeviceManualEntity>().lambda().eq(BusDeviceManualEntity::getClinicId, clinic.getId()).last("limit 1"));
@@ -69,7 +70,6 @@ public class LocalBusDeviceManualService extends BaseService<BusDeviceManualMapp
             }else {
                 manual.setId(null);
             }
-            manual.setClinicId(clinic.getId());
         }
         this.saveOrUpdate(manual);
     }

+ 1 - 0
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/LocalBusDeviceService.java

@@ -190,6 +190,7 @@ public class LocalBusDeviceService extends BaseService<BusDeviceMapper, BusDevic
         // 设备存在
         if (isExists){
             // 更新设备
+            entity.setTenantId(device.getTenantId());
             return this.updateDevice(entity);
         }else {
             // 添加设备

+ 3 - 4
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/dto/ClinicAnalRecordResult.java

@@ -11,7 +11,6 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.io.Serializable;
-import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -65,12 +64,12 @@ public class ClinicAnalRecordResult implements Serializable {
         this.infusionRecords=infusionRecords;
     }
 
-    public BigDecimal getRemainDose() {
+    public String getRemainDose() {
         if (CollectionUtil.isEmpty(infusionRecords)) {
             return null;
         }
-        return CollectionUtil.getLast(infusionRecords.stream().sorted(Comparator.comparing(ClinicAnalInfusionRecord::getCreateTime)).collect(Collectors.toList()))
-                .getRemainDose();
+        return String.valueOf(CollectionUtil.getLast(infusionRecords.stream().sorted(Comparator.comparing(ClinicAnalInfusionRecord::getCreateTime)).collect(Collectors.toList()))
+                .getRemainDose());
     }
 
     /**