Jelajahi Sumber

Merge remote-tracking branch 'origin/2301-2月份需求' into 2301-2月份需求

lijun 2 tahun lalu
induk
melakukan
2b924797ff

+ 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, "成功");
     }
 

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

@@ -0,0 +1,42 @@
+package com.github.zuihou.business.productionresource.dao;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.zuihou.base.mapper.SuperMapper;
+import com.github.zuihou.business.productionresource.dto.EquStatusPageDTO;
+import com.github.zuihou.business.productionresource.entity.EquStatus;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 设备-状态Mapper接口
+ *
+ * @author bruce
+ * @date 2023-02-25
+ */
+@Repository
+public interface EquStatusMapper extends SuperMapper<EquStatus>
+{
+	/**
+	 * 分页查询
+	 */
+	@Select
+	(
+		"<script>" +
+			"SELECT " +
+			" bes.id, bes.status, bes.message, bes.create_time," +
+			" itp.name, itp.code, itp.place_id, itp.compnay_id, itp.area_id," +
+			" bp.plc_name, cca.full_name AS area " +
+			"FROM bt_equ_status bes " +
+			"LEFT JOIN imcs_tenant_productionresource itp ON bes.equ_id = itp.id " +
+			"LEFT JOIN bt_place bp ON itp.place_id = bp.id " +
+			"LEFT JOIN c_common_area cca ON cca.code LIKE CONCAT(itp.area_id, '%') " +
+			"WHERE 1 = 1 " +
+			" <if test=\"null != params.beginTime\"> AND bes.create_time &gt; = #{params.beginTime}</if> " +
+			" <if test=\"null != params.endTime\"> AND bes.create_time &lt; = #{params.endTime}</if> " +
+			//" <if test=\"null != params.company and '' != params.company\"> AND ? LIKE ?</if> " +
+			"ORDER BY bes.create_time DESC" +
+		"</script>"
+	)
+	IPage<EquStatus> findByPage(IPage<EquStatus> page, @Param("params") EquStatusPageDTO params);
+}

+ 17 - 0
imcs-bt-be/imcs-business-biz/src/main/java/com/github/zuihou/business/productionresource/service/EquStatusService.java

@@ -0,0 +1,17 @@
+package com.github.zuihou.business.productionresource.service;
+
+import com.github.zuihou.base.service.SuperService;
+import com.github.zuihou.business.place.entity.Place;
+import com.github.zuihou.business.productionresource.entity.EquStatus;
+
+import java.util.List;
+
+/**
+ * 设备状态Service
+ *
+ * @author bruce
+ * @date 2023-02-25
+ */
+public interface EquStatusService extends SuperService<EquStatus>
+{
+}

+ 23 - 0
imcs-bt-be/imcs-business-biz/src/main/java/com/github/zuihou/business/productionresource/service/impl/EquStatusServiceImpl.java

@@ -0,0 +1,23 @@
+package com.github.zuihou.business.productionresource.service.impl;
+
+
+import com.github.zuihou.base.service.SuperServiceImpl;
+import com.github.zuihou.business.productionresource.dao.EquAndGoodsMapper;
+import com.github.zuihou.business.productionresource.dao.EquStatusMapper;
+import com.github.zuihou.business.productionresource.entity.EquAndGoods;
+import com.github.zuihou.business.productionresource.entity.EquStatus;
+import com.github.zuihou.business.productionresource.service.EquAndGoodsService;
+import com.github.zuihou.business.productionresource.service.EquStatusService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 设备-状态Service实现类
+ *
+ * @author bruce
+ * @date 2023-02-25
+ */
+@Service @Slf4j
+public class EquStatusServiceImpl extends SuperServiceImpl<EquStatusMapper, EquStatus> implements EquStatusService
+{
+}

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

@@ -0,0 +1,46 @@
+package com.github.zuihou.business.controller.productionresource;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.zuihou.base.controller.SuperController;
+import com.github.zuihou.base.request.PageParams;
+import com.github.zuihou.business.productionresource.dao.EquStatusMapper;
+import com.github.zuihou.business.productionresource.dto.EquStatusPageDTO;
+import com.github.zuihou.business.productionresource.dto.EquStatusSaveDTO;
+import com.github.zuihou.business.productionresource.dto.EquStatusUpdateDTO;
+import com.github.zuihou.business.productionresource.entity.EquStatus;
+import com.github.zuihou.business.productionresource.service.EquStatusService;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * 设备状态Controller
+ *
+ * @author bruce
+ * @date 2023-02-25
+ */
+@Api(value = "EquStatusController", tags = "设备状态")
+@RestController @RequestMapping("/equ-status") @Validated @Slf4j
+public class EquStatusController extends SuperController<EquStatusService, Long, EquStatus, EquStatusPageDTO, EquStatusSaveDTO, EquStatusUpdateDTO>
+{
+    @Resource
+    private EquStatusMapper equStatusMapper;
+
+    /**
+     * 分页查询
+     *
+     * @param params  查询参数
+     * @param page    分页信息
+     * @param defSize def大小
+     */
+    @Override
+    public void query(PageParams<EquStatusPageDTO> params, IPage<EquStatus> page, Long defSize)
+    {
+        IPage<EquStatus> resp = equStatusMapper.findByPage(page, params.getModel());
+        log.debug("告警记录总数:{}", resp.getTotal());
+    }
+}

+ 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;
 

+ 38 - 0
imcs-bt-be/imcs-business-entity/src/main/java/com/github/zuihou/business/productionresource/dto/EquStatusPageDTO.java

@@ -0,0 +1,38 @@
+package com.github.zuihou.business.productionresource.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+import lombok.experimental.Accessors;
+import org.hibernate.validator.constraints.Length;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 设备-状态分页查询模型
+ *
+ * @author bruce
+ * @since 2023-02-25
+ */
+@ApiModel(value = "EquStatusPageDTO", description = "设备-状态分页查询模型")
+@ToString(callSuper = true) @EqualsAndHashCode(callSuper = false)
+@Data @Builder @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true)
+public class EquStatusPageDTO implements Serializable
+{
+    /**
+     * 开始时间
+     */
+    @ApiModelProperty(value = "开始时间")
+    private LocalDateTime beginTime;
+    /**
+     * 结束时间
+     */
+    @ApiModelProperty(value = "结束时间")
+    private LocalDateTime endTime;
+    /**
+     * 企业
+     */
+    @ApiModelProperty(value = "企业")
+    private String company;
+}

+ 23 - 0
imcs-bt-be/imcs-business-entity/src/main/java/com/github/zuihou/business/productionresource/dto/EquStatusSaveDTO.java

@@ -0,0 +1,23 @@
+package com.github.zuihou.business.productionresource.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 设备-状态新增模型
+ *
+ * @author bruce
+ * @since 2023-02-25
+ */
+@ApiModel(value = "EquStatusSaveDTO", description = "设备-状态新增模型")
+@ToString(callSuper = true) @EqualsAndHashCode(callSuper = false)
+@Data @Builder @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true)
+public class EquStatusSaveDTO implements Serializable
+{
+	private Long id;
+}

+ 21 - 0
imcs-bt-be/imcs-business-entity/src/main/java/com/github/zuihou/business/productionresource/dto/EquStatusUpdateDTO.java

@@ -0,0 +1,21 @@
+package com.github.zuihou.business.productionresource.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.*;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 设备-状态修改模型
+ *
+ * @author bruce
+ * @since 2023-02-25
+ */
+@ApiModel(value = "EquStatusUpdateDTO", description = "设备-状态修改模型")
+@ToString(callSuper = true) @EqualsAndHashCode(callSuper = false)
+@Data @Builder @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true)
+public class EquStatusUpdateDTO implements Serializable
+{
+	private Long id;
+}

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

@@ -0,0 +1,48 @@
+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;
+
+    // TODO 补充分页查询映射属性列表
+}