李进 2 vuotta sitten
vanhempi
commit
17c1a95c8a

+ 2 - 2
device-api-service/src/main/java/com/xy/consumer/ConnectedConsumer.java

@@ -26,10 +26,10 @@ public class ConnectedConsumer implements MqttConsumer {
     @Override
     public boolean message(String topic, String payload) {
         log.info("设备上线监听:{}", payload);
-        return exc(payload, true);
+        return exc(payload, 1);
     }
 
-    public boolean exc(String payload, boolean netState) {
+    public boolean exc(String payload, int netState) {
         JSONObject jsonObject = JSONUtil.parseObj(payload);
         String clientid = jsonObject.getStr("clientid");
         Long deviceId;

+ 1 - 1
device-api-service/src/main/java/com/xy/consumer/DisconnectedConsumer.java

@@ -22,6 +22,6 @@ public class DisconnectedConsumer implements MqttConsumer {
     @Override
     public boolean message(String topic, String payload) {
         log.info("设备下线监听:{}", payload);
-        return connectedConsumer.exc(payload, false);
+        return connectedConsumer.exc(payload, 0);
     }
 }

+ 1 - 1
device-api-service/src/main/java/com/xy/entity/DeviceCreateIds.java

@@ -42,7 +42,7 @@ public class DeviceCreateIds implements Serializable {
     /**
      * 绑定状态
      */
-    private Integer bindState;
+    private Boolean bindState;
 
     /**
      * 生成批次号

+ 7 - 15
device-api-service/src/main/java/com/xy/entity/DeviceRegister.java

@@ -1,6 +1,5 @@
 package com.xy.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -24,15 +23,10 @@ public class DeviceRegister implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    /**
-     * id
-     */
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-
     /**
      * 设备ID
      */
+    @TableId
     private Long deviceId;
 
     /**
@@ -48,7 +42,7 @@ public class DeviceRegister implements Serializable {
     /**
      * 设备类型
      */
-    private String deviceType;
+    private Integer deviceType;
 
     /**
      * 设备批次号
@@ -58,17 +52,15 @@ public class DeviceRegister implements Serializable {
     /**
      * 资产编号
      */
-    private LocalDateTime assetNo;
-
-    /**
-     * 注册时间
-     */
-    private LocalDateTime registerUserId;
+    private String assetNo;
 
     /**
      * 创建时间
      */
     private LocalDateTime createTime;
 
-
+    /**
+     * 创建人
+     */
+    private Long createUser;
 }

+ 25 - 5
device-api-service/src/main/java/com/xy/entity/DeviceStatus.java

@@ -24,27 +24,27 @@ public class DeviceStatus {
     /**
      * 系统启动时间
      */
-    private String sysStartTime;
+    private LocalDateTime sysStartTime;
 
     /**
      * 系统当前时间
      */
-    private String sysCurTime;
+    private LocalDateTime sysCurTime;
 
     /**
      * WIFI是否打开
      */
-    private String wifiOpen;
+    private Integer wifiOpen;
 
     /**
      * 蓝牙是否打开
      */
-    private String bloothOpen;
+    private Integer bloothOpen;
 
     /**
      * 联网状态
      */
-    private Boolean netState;
+    private Integer netState;
 
     /**
      * 联网类型
@@ -121,6 +121,26 @@ public class DeviceStatus {
      */
     private Integer memeryRemainSpace;
 
+    /**
+     * 左柜主摄像头状态
+     */
+    private Integer cameraLMainState;
+
+    /**
+     * 左柜副摄像头状态
+     */
+    private Integer cameraLSecondState;
+
+    /**
+     * 右柜主摄像头状态
+     */
+    private Integer cameraRMainState;
+
+    /**
+     * 右柜副摄像头状态
+     */
+    private Integer cameraRSecondState;
+
     /**
      * 更新时间
      */

+ 2 - 2
device-api-service/src/main/java/com/xy/entity/DeviceSysinfo.java

@@ -59,12 +59,12 @@ public class DeviceSysinfo {
     /**
      * 是否自动时间
      */
-    private String sysDatetimeauto;
+    private Integer sysDatetimeauto;
 
     /**
      * 是否自动时间
      */
-    private String sysTimezhoneauto;
+    private Integer sysTimezhoneauto;
 
     /**
      * 上位机版本号

+ 8 - 0
device-api-service/src/main/java/com/xy/service/impl/DeviceCreateIdsServiceImpl.java

@@ -138,4 +138,12 @@ public class DeviceCreateIdsServiceImpl extends ServiceImpl<DeviceCreateIdsMappe
         });
         return R.ok(voPageBean);
     }
+
+    @Override
+    @ApiOperation("修改")
+    public R update(DeviceCreateIdsDto.Update update) {
+        DeviceCreateIds deviceCreateIds = copy(DeviceCreateIds.class, update);
+        updateById(deviceCreateIds);
+        return R.ok();
+    }
 }

+ 86 - 2
device-api-service/src/main/java/com/xy/service/impl/DeviceRegisterServiceImpl.java

@@ -1,10 +1,26 @@
 package com.xy.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.xy.entity.DeviceRegister;
-import com.xy.mapper.DeviceRegisterMapper;
+import com.xy.dto.DeviceRegisterDto;
+import com.xy.entity.*;
+import com.xy.mapper.*;
 import com.xy.service.DeviceRegisterService;
+import com.xy.utils.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.time.LocalDateTime;
+
+import static com.xy.utils.PlusBeans.*;
 
 /**
  * <p>
@@ -15,6 +31,74 @@ import org.springframework.stereotype.Service;
  * @since 2022-12-29
  */
 @Service
+@Api(tags = "设备-注册登记")
+@AllArgsConstructor
 public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper, DeviceRegister> implements DeviceRegisterService {
 
+    private DeviceCreateIdsMapper deviceCreateIdsMapper;
+
+    private DeviceInfoMapper deviceInfoMapper;
+
+    private DeviceSysinfoMapper deviceSysinfoMapper;
+
+    private DeviceStatusMapper deviceStatusMapper;
+
+    @PostMapping("save")
+    @ApiOperation("添加")
+    @Transactional(rollbackFor = Exception.class)
+    public R save(@RequestBody @Validated DeviceRegisterDto.Save save) {
+        //重复校验
+        DeviceRegister deviceRegister = copy(DeviceRegister.class, save);
+        DeviceCreateIds deviceCreateIds = deviceCreateIdsMapper.selectById(deviceRegister.getDeviceId());
+        if (deviceCreateIds == null) {
+            return R.fail("设备不存在");
+        }
+        if (deviceCreateIds.getBindState()) {
+            return R.fail("设备已被绑定");
+        }
+        deviceRegister.setDeviceType(deviceCreateIds.getDeviceType())
+                .setCreateUser(AuthorizeUtils.getLoginId(Long.class))
+                .setCreateTime(LocalDateTime.now());
+        //操作注册序号
+        String property = LambdaUtils.getProperty(DeviceRegister::getRegisterNum);
+        QueryWrapper<DeviceRegister> queryWrapper = new QueryWrapper<DeviceRegister>()
+                .select(String.format("max(%s) as %s", StringTools.humpToLine(property), property))
+                .eq(StringTools.humpToLine(LambdaUtils.getProperty(DeviceRegister::getCreateUser)), AuthorizeUtils.getLoginId(Long.class));
+        DeviceRegister one = getOne(queryWrapper);
+        Integer registerNum = one == null || one.getRegisterNum() == null ? 0 : one.getRegisterNum();
+        deviceRegister.setRegisterNum(registerNum + 1);
+        //修改设备-机器ID号生成为已绑定
+        deviceCreateIdsMapper.updateById(new DeviceCreateIds().setDeviceId(deviceRegister.getDeviceId()).setBindState(true).setBindTime(deviceRegister.getCreateTime()));
+        //新增设备-注册登记
+        save(deviceRegister);
+        //新增设备信息
+        deviceInfoMapper.insert(new DeviceInfo()
+                .setDeviceId(deviceRegister.getDeviceId())
+                .setDeviceType(deviceRegister.getDeviceType())
+                .setMercDeviceCode(deviceRegister.getAssetNo())
+                .setCreateTime(deviceRegister.getCreateTime())
+        );
+        //新增设备-系统信息
+        deviceSysinfoMapper.insert(new DeviceSysinfo()
+                .setDeviceId(deviceRegister.getDeviceId())
+                .setDeviceSn(deviceRegister.getDeviceSn())
+                .setCreateTime(deviceRegister.getCreateTime())
+        );
+        //新增设备-状态
+        deviceStatusMapper.insert(new DeviceStatus().setDeviceId(deviceRegister.getDeviceId()));
+        return R.ok();
+    }
+
+    @PostMapping("page")
+    @ApiOperation("分页查询")
+    public R<PageBean<DeviceRegisterDto.Vo>> page(@RequestBody DeviceRegisterDto.Page page) {
+        PageBean pageBean = page.getPage();
+        LambdaQueryWrapper<DeviceRegister> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, DeviceRegister.class)
+                .ge(DeviceRegister::getCreateTime, page.getBeginCreateTime())
+                .le(DeviceRegister::getCreateTime, page.getEndCreateTime())
+                .build()
+                .orderByDesc(!Emptys.check(pageBean.getOrders()), DeviceRegister::getCreateTime);
+        IPage<DeviceRegister> iPage = page(toIPage(pageBean), lambdaQueryWrapper);
+        return R.ok(toPageBean(DeviceRegisterDto.Vo.class, iPage));
+    }
 }

+ 13 - 1
device-api/src/main/java/com/xy/dto/DeviceCreateIdsDto.java

@@ -40,6 +40,16 @@ public class DeviceCreateIdsDto {
         private Integer num;
     }
 
+    @Data
+    @Accessors(chain = true)
+    public static class Update extends Vo {
+
+        @NotNull(message = "deviceId不能为空")
+        @ApiModelProperty("设备编号;唯一ID,10数,年2月2序号6")
+        private Long deviceId;
+
+    }
+
     @Data
     @Accessors(chain = true)
     public static class Page extends Vo {
@@ -94,7 +104,7 @@ public class DeviceCreateIdsDto {
         private String doorType;
 
         @ApiModelProperty("绑定状态")
-        private Integer bindState;
+        private Boolean bindState;
 
         @ApiModelProperty("生成批次号")
         private String createPc;
@@ -106,9 +116,11 @@ public class DeviceCreateIdsDto {
         private String createUserName;
 
         @ApiModelProperty("绑定时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
         private LocalDateTime bindTime;
 
         @ApiModelProperty("创建时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
         private LocalDateTime createTime;
     }
 

+ 96 - 0
device-api/src/main/java/com/xy/dto/DeviceRegisterDto.java

@@ -0,0 +1,96 @@
+package com.xy.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.xy.utils.PageBean;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Data
+@Accessors(chain = true)
+public class DeviceRegisterDto {
+
+    @Data
+    @Accessors(chain = true)
+    public static class Save {
+
+        @NotNull(message = "deviceId不能为空")
+        @ApiModelProperty(value = "设备ID", required = true)
+        private Long deviceId;
+
+        @NotBlank(message = "deviceSn不能为空")
+        @ApiModelProperty(value = "设备sn", required = true)
+        private String deviceSn;
+
+        @NotBlank(message = "devicePc不能为空")
+        @ApiModelProperty(value = "设备批次号", required = true)
+        private String devicePc;
+
+        @NotBlank(message = "assetNo不能为空")
+        @ApiModelProperty(value = "资产编号", required = true)
+        private String assetNo;
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Page extends Vo {
+
+        @ApiModelProperty("分页对象")
+        private PageBean page;
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @ApiModelProperty(value = "创建时间-起")
+        private LocalDate beginCreateTime;
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @ApiModelProperty(value = "创建时间-始")
+        private LocalDate endCreateTime;
+
+        public LocalDateTime getBeginCreateTime() {
+            return beginCreateTime == null ? null : beginCreateTime.atTime(0, 0, 0);
+        }
+
+        public LocalDateTime getEndCreateTime() {
+            return endCreateTime == null ? null : endCreateTime.atTime(23, 59, 59);
+        }
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Vo {
+
+        @ApiModelProperty("设备ID")
+        private Long deviceId;
+
+        @ApiModelProperty("注册序号")
+        private Integer registerNum;
+
+        @ApiModelProperty("设备sn")
+        private String deviceSn;
+
+        @ApiModelProperty("设备类型")
+        private Integer deviceType;
+
+        @ApiModelProperty("设备批次号")
+        private String devicePc;
+
+        @ApiModelProperty("资产编号")
+        private String assetNo;
+
+        @ApiModelProperty("创建时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime createTime;
+
+        @ApiModelProperty("创建人")
+        private Long createUser;
+
+        @ApiModelProperty("设备状态")
+        private Boolean status;
+    }
+
+}

+ 21 - 5
device-api/src/main/java/com/xy/dto/DeviceStatusDto.java

@@ -1,5 +1,6 @@
 package com.xy.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -29,19 +30,21 @@ public class DeviceStatusDto {
         private Long deviceId;
 
         @ApiModelProperty("系统启动时间")
-        private String sysStartTime;
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime sysStartTime;
 
         @ApiModelProperty("系统当前时间")
-        private String sysCurTime;
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime sysCurTime;
 
         @ApiModelProperty("WIFI是否打开")
-        private String wifiOpen;
+        private Integer wifiOpen;
 
         @ApiModelProperty("蓝牙是否打开")
-        private String bloothOpen;
+        private Integer bloothOpen;
 
         @ApiModelProperty("联网状态")
-        private Boolean netState;
+        private Integer netState;
 
         @ApiModelProperty("联网类型")
         private String netType;
@@ -88,7 +91,20 @@ public class DeviceStatusDto {
         @ApiModelProperty("内存剩余容量")
         private Integer memeryRemainSpace;
 
+        @ApiModelProperty("左柜主摄像头状态")
+        private Integer cameraLMainState;
+
+        @ApiModelProperty("左柜副摄像头状态")
+        private Integer cameraLSecondState;
+
+        @ApiModelProperty("右柜主摄像头状态")
+        private Integer cameraRMainState;
+
+        @ApiModelProperty("右柜副摄像头状态")
+        private Integer cameraRSecondState;
+
         @ApiModelProperty("更新时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
         private LocalDateTime updateTime;
     }
 

+ 4 - 2
device-api/src/main/java/com/xy/dto/DeviceSysinfoDto.java

@@ -72,10 +72,10 @@ public class DeviceSysinfoDto {
         private String sysTimezone;
 
         @ApiModelProperty("是否自动时间")
-        private String sysDatetimeauto;
+        private Integer sysDatetimeauto;
 
         @ApiModelProperty("是否自动时间")
-        private String sysTimezhoneauto;
+        private Integer sysTimezhoneauto;
 
         @ApiModelProperty("上位机版本号")
         private String appUpmVersion;
@@ -99,9 +99,11 @@ public class DeviceSysinfoDto {
         private Integer memerySpace;
 
         @ApiModelProperty("创建时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
         private LocalDateTime createTime;
 
         @ApiModelProperty("更新时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
         private LocalDateTime updateTime;
     }
 

+ 13 - 0
device-api/src/main/java/com/xy/service/DeviceCreateIdsService.java

@@ -1,6 +1,11 @@
 package com.xy.service;
 
 import com.xy.annotate.RestMappingController;
+import com.xy.dto.DeviceCreateIdsDto;
+import com.xy.utils.R;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * <p>
@@ -13,4 +18,12 @@ import com.xy.annotate.RestMappingController;
 @RestMappingController("device-create-ids")
 public interface DeviceCreateIdsService {
 
+    /**
+     * 修改
+     *
+     * @param update
+     * @return
+     */
+    @PostMapping("update")
+    R update(@RequestBody @Validated DeviceCreateIdsDto.Update update);
 }