فهرست منبع

完善设备状态上报功能。

bruce 2 سال پیش
والد
کامیت
288e8b824d

+ 5 - 4
doc/sql/update/bt-2301-2月份需求.sql

@@ -95,11 +95,12 @@ CREATE TABLE bt_advertisement_customer
 
 -- 新增表:设备 - 状态上报
 CREATE TABLE bt_equ_status
-{
+(
 	id					BIGINT(20) NOT NULL COMMENT '主键',
 	equ_id			BIGINT(20) NOT NULL COMMENT '设备ID',
-	create_time DATETIME NOT NULL COMMENT '上报时间',
 	status			TINYINT NOT NULL COMMENT '状态:0 - 离线,1 - 在线,2 - 异常,3 - 缺料',
-	message			VARCHAR(20) NOT NULL COMMENT '错误信息' ,
+	message			VARCHAR(100)  NULL COMMENT '错误信息',
+	create_time DATETIME NOT NULL COMMENT '上报时间',
+  create_user BIGINT(20) NOT NULL   COMMENT '创建人',
 	PRIMARY KEY (id)
-} DEFAULT CHARSET=utf8mb4 COMMENT = '设备 - 状态上报';
+) DEFAULT CHARSET=utf8mb4 COMMENT = '设备 - 状态上报';

+ 17 - 11
imcs-bt-be/imcs-authority-server/src/main/java/com/github/zuihou/api/AndroidApi.java

@@ -18,7 +18,9 @@ import com.github.zuihou.business.member.service.MemberService;
 import com.github.zuihou.business.miniApp.service.MiniAppService;
 import com.github.zuihou.business.order.entity.Order;
 import com.github.zuihou.business.order.service.OrderService;
+import com.github.zuihou.business.productionresource.dao.EquStatusMapper;
 import com.github.zuihou.business.productionresource.dto.EquGoodsDto;
+import com.github.zuihou.business.productionresource.entity.EquStatus;
 import com.github.zuihou.business.productionresource.entity.ProductionResource;
 import com.github.zuihou.business.productionresource.service.ProductionTenantResourceService;
 import com.github.zuihou.business.spe.entity.Spe;
@@ -40,9 +42,9 @@ import com.wechat.pay.contrib.apache.httpclient.util.AesUtil;
 import io.swagger.annotations.ApiOperation;
 import org.codehaus.jackson.JsonNode;
 import org.codehaus.jackson.map.ObjectMapper;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -75,6 +77,8 @@ public class AndroidApi
     private WxPayCfg wxPayCfg;
     @Resource
     private SpeService speService;
+    @Resource
+    private EquStatusMapper equStatusMapper;
 
     @Value("${weixinconfig.accessTokenUrl}")
     private String accessTokenUrl;
@@ -499,23 +503,25 @@ public class AndroidApi
 
     /**
      * 同步设备状态接口
-     * 0.离线,1在线2.异常3.缺料
+     *
+     * @param status 状态信息(status:0 - 离线,1 - 在线,2 - 异常,3 - 缺料)
      */
     @PostMapping("/timelyEquStatus")
-    public R<Boolean> timelyEquStatus(@RequestBody Map<String, String> equInfo)
+    public R<Boolean> timelyEquStatus(@RequestBody @Validated EquStatus status)
     {
         BaseContextHandler.setTenant("0000");
-        String equId = equInfo.get("equId");
-        String equStatus = equInfo.get("equStatus");
-        String errMsg = equInfo.get("errMsg");
 
+        // 1 更新Redis缓存
         HashMap<String, String> saveMap = new HashMap<>();
-        saveMap.put("status", equStatus);
-        saveMap.put("errMsg", errMsg);
-        redisTemplate.opsForHash().putAll("equStatus" + equId, saveMap);
-        redisTemplate.expire("equStatus" + equId, 4, TimeUnit.SECONDS);
+        saveMap.put("status", status.getStatus().toString());
+        saveMap.put("errMsg", status.getMessage());
+        redisTemplate.opsForHash().putAll("equStatus" + status.getEquId(), saveMap);
+        redisTemplate.expire("equStatus" + status.getEquId(), 4, TimeUnit.SECONDS);
+
+        // 2 持久化至DB
+        status.setCreateUser(-1L);
+        equStatusMapper.insert(status);
 
-        // TODO 持久化至DB
         return R.success(true, "成功");
     }
 

+ 16 - 0
imcs-bt-be/imcs-business-biz/src/main/java/com/github/zuihou/business/productionresource/dao/EquStatusMapper.java

@@ -0,0 +1,16 @@
+package com.github.zuihou.business.productionresource.dao;
+
+import com.github.zuihou.base.mapper.SuperMapper;
+import com.github.zuihou.business.productionresource.entity.EquStatus;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 设备-状态Mapper接口
+ *
+ * @author bruce
+ * @date 2023-02-25
+ */
+@Repository
+public interface EquStatusMapper extends SuperMapper<EquStatus>
+{
+}

+ 5 - 15
imcs-bt-be/imcs-business-entity/src/main/java/com/github/zuihou/business/place/entity/Place.java

@@ -1,26 +1,16 @@
 package com.github.zuihou.business.place.entity;
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
-import cn.afterturn.easypoi.excel.annotation.ExcelEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.github.zuihou.base.entity.Entity;
-import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-import org.hibernate.validator.constraints.Length;
-import org.hibernate.validator.constraints.Range;
-import java.time.LocalDateTime;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
+import lombok.*;
 import lombok.experimental.Accessors;
-import com.github.zuihou.common.constant.DictionaryType;
-import static com.github.zuihou.utils.DateUtils.DEFAULT_DATE_TIME_FORMAT;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotNull;
 
 import static com.baomidou.mybatisplus.annotation.SqlCondition.LIKE;
 

+ 46 - 0
imcs-bt-be/imcs-business-entity/src/main/java/com/github/zuihou/business/productionresource/entity/EquStatus.java

@@ -0,0 +1,46 @@
+package com.github.zuihou.business.productionresource.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.github.zuihou.base.entity.Entity;
+import com.github.zuihou.base.entity.SuperEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 设备-状态实体类
+ *
+ * @author bruce
+ * @since 2023-02-25
+ */
+@TableName("bt_equ_status")
+@ApiModel(value = "EquStatus", description = "设备-状态")
+@ToString(callSuper = true) @EqualsAndHashCode(callSuper = true)
+@Data @Builder @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true)
+public class EquStatus extends SuperEntity<Long>
+{
+    /**
+     * 设备ID
+     */
+    @ApiModelProperty(value = "设备ID")
+    @NotNull(message = "缺失equId参数")
+    private Long equId;
+
+    /**
+     * 状态
+     */
+    @ApiModelProperty(value = "状态")
+    @NotNull(message = "缺失status参数")
+    private Integer status;
+
+    /**
+     * 错误信息
+     */
+    @ApiModelProperty(value = "错误信息")
+    @NotBlank(message = "缺失message参数")
+    private String message;
+}