李进 2 роки тому
батько
коміт
f3cb607525

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

@@ -3,7 +3,7 @@ package com.xy.consumer;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.xy.dto.DeviceStatusDto;
-import com.xy.service.impl.DeviceStatusServiceImpl;
+import com.xy.service.DeviceStatusServiceImpl;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;

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

@@ -34,11 +34,6 @@ public class DeviceCreateIds implements Serializable {
      */
     private Integer deviceType;
 
-    /**
-     * 门类型
-     */
-    private String doorType;
-
     /**
      * 绑定状态
      */

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

@@ -100,5 +100,8 @@ public class DeviceQuality implements Serializable {
      */
     private LocalDateTime createTime;
 
-
+    /**
+     * 显示状态
+     */
+    private Boolean showStatus;
 }

+ 17 - 2
device-api-service/src/main/java/com/xy/service/DeviceCreateIdsServiceImpl.java

@@ -13,9 +13,8 @@ import com.xy.dto.DeviceCreateIdsDto;
 import com.xy.dto.SysWorkUser.ListDto;
 import com.xy.dto.SysWorkUser.SysWorkVo;
 import com.xy.entity.DeviceCreateIds;
+import com.xy.error.CommRuntimeException;
 import com.xy.mapper.DeviceCreateIdsMapper;
-import com.xy.service.DeviceCreateIdsService;
-import com.xy.service.SysWorkUserService;
 import com.xy.utils.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -25,12 +24,15 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import javax.annotation.Resource;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
 
@@ -146,4 +148,17 @@ public class DeviceCreateIdsServiceImpl extends ServiceImpl<DeviceCreateIdsMappe
         updateById(deviceCreateIds);
         return R.ok();
     }
+
+    @GetMapping("exportQrCode")
+    @ApiOperation("导出二维码")
+    public void exportQrCode(@RequestParam(value = "deviceId") Long[] deviceId) {
+        if (deviceId == null || deviceId.length == 0) {
+            throw new CommRuntimeException("设备id不能为空");
+        }
+        List<String> list = new ArrayList<>();
+        for (Long aLong : deviceId) {
+            list.add(aLong.toString());
+        }
+        QRCodeUtils.create(list, 200, 200).download(list);
+    }
 }

+ 88 - 1
device-api-service/src/main/java/com/xy/service/DeviceQualityServiceImpl.java

@@ -1,9 +1,30 @@
 package com.xy.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xy.collections.list.JArrayList;
+import com.xy.collections.list.JList;
+import com.xy.dto.DeviceQualityDto;
+import com.xy.entity.DeviceInfo;
 import com.xy.entity.DeviceQuality;
+import com.xy.mapper.DeviceInfoMapper;
 import com.xy.mapper.DeviceQualityMapper;
+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.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+import static com.xy.utils.PlusBeans.*;
 
 /**
  * <p>
@@ -14,6 +35,72 @@ import org.springframework.stereotype.Service;
  * @since 2023-01-05
  */
 @Service
-public class DeviceQualityServiceImpl extends ServiceImpl<DeviceQualityMapper, DeviceQuality> {
+@AllArgsConstructor
+@Api(tags = "设备-质检")
+public class DeviceQualityServiceImpl extends ServiceImpl<DeviceQualityMapper, DeviceQuality> implements DeviceQualityService {
+
+    private DeviceInfoMapper deviceInfoMapper;
+
+    @PostMapping("page")
+    @ApiOperation("分页查询")
+    public R<PageBean<DeviceQualityDto.Vo>> page(@RequestBody DeviceQualityDto.Page page) {
+        PageBean pageBean = page.getPage();
+        LambdaQueryWrapper<DeviceQuality> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, DeviceQuality.class)
+                .ge(DeviceQuality::getUpdateTime, page.getBeginUpdateTime())
+                .le(DeviceQuality::getUpdateTime, page.getEndUpdateTime())
+                .build()
+                .orderByDesc(Emptys.check(pageBean.getOrders()), DeviceQuality::getCreateTime);
+        IPage<DeviceQuality> iPage = page(toIPage(pageBean), lambdaQueryWrapper);
+        return R.ok(toPageBean(DeviceQualityDto.Vo.class, iPage));
+    }
+
+    @PostMapping("update")
+    @ApiOperation("修改")
+    public R update(@RequestBody List<DeviceQualityDto.Vo> vos) {
+        List<DeviceQuality> deviceQualities = copy(DeviceQuality.class, vos);
+        LocalDateTime now = LocalDateTime.now();
+        for (DeviceQuality deviceQuality : deviceQualities) {
+            if (deviceQuality.getQualityState() != null || deviceQuality.getFactoryState() != null) {
+                deviceQuality.setQualityAuditUserId(AuthorizeUtils.getLoginId(Long.class));
+            }
+            deviceQuality.setUpdateTime(now);
+        }
+        updateBatchById(deviceQualities);
+        return R.ok();
+    }
+
+    @PostMapping("save")
+    @ApiOperation("添加")
+    public R save(@RequestBody @Validated DeviceQualityDto.Save save) {
+        DeviceQuality deviceQuality = new DeviceQuality().setDeviceId(save.getDeviceId());
+        DeviceInfo deviceInfo = deviceInfoMapper.selectById(deviceQuality.getDeviceId());
+        if (deviceInfo == null) {
+            return R.fail("设备不存在");
+        }
+        deviceQuality.setDeviceType(deviceInfo.getDeviceType())
+                .setCreateTime(LocalDateTime.now());
+        List<DeviceQuality> list = list(new LambdaQueryWrapper<DeviceQuality>().eq(DeviceQuality::getDeviceId, deviceQuality.getDeviceId()));
+        if (Emptys.check(list)) {
+            JList<Integer> qualityIds = new JArrayList<>(list).getProperty(DeviceQuality::getQualityId);
+            List<DeviceQualityDto.Vo> vos = new ArrayList<>(qualityIds.size());
+            qualityIds.forEach(qualityId -> vos.add(new DeviceQualityDto.Vo().setQualityId(qualityId).setShowStatus(false)));
+            update(vos);
+        }
+        save(deviceQuality);
+        return R.ok();
+    }
+
+    @GetMapping("getQrCode")
+    @ApiOperation("获取二维码")
+    public R<String> getQrCode(Long deviceId) {
+        String base64 = QRCodeUtils.create(deviceId.toString(), 200, 200).base64();
+        return R.ok(base64);
+    }
+
+    @GetMapping("exportQrCode")
+    @ApiOperation("导出二维码")
+    public void exportQrCode(Long deviceId) {
+        QRCodeUtils.create(deviceId.toString(), 200, 200).download(deviceId.toString());
+    }
 
 }

+ 5 - 0
device-api-service/src/main/java/com/xy/service/DeviceRegisterServiceImpl.java

@@ -5,6 +5,7 @@ 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.config.XyMqttConfig;
+import com.xy.dto.DeviceQualityDto;
 import com.xy.dto.DeviceRegisterDto;
 import com.xy.entity.*;
 import com.xy.mapper.*;
@@ -49,6 +50,8 @@ public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper,
 
     private XyMqttConfig xyMqttConfig;
 
+    private DeviceQualityServiceImpl deviceQualityService;
+
     @PostMapping("save")
     @ApiOperation("添加")
     @Transactional(rollbackFor = Exception.class)
@@ -92,6 +95,8 @@ public class DeviceRegisterServiceImpl extends ServiceImpl<DeviceRegisterMapper,
         );
         //新增设备-状态
         deviceStatusMapper.insert(new DeviceStatus().setDeviceId(deviceRegister.getDeviceId()));
+        //新增设备-质检
+        deviceQualityService.save(new DeviceQualityDto.Save().setDeviceId(deviceRegister.getDeviceId()));
         //新增mqtt信息
         String deviceId = deviceRegister.getDeviceId().toString();
         mqttAclMapper.insert(new MqttAcl()

+ 2 - 7
device-api/src/main/java/com/xy/dto/DeviceCreateIdsDto.java

@@ -6,12 +6,10 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
-import javax.validation.constraints.Max;
-import javax.validation.constraints.Min;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import javax.validation.constraints.*;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.List;
 
 @Data
 @Accessors(chain = true)
@@ -100,9 +98,6 @@ public class DeviceCreateIdsDto {
         @ApiModelProperty("设备类型")
         private Integer deviceType;
 
-        @ApiModelProperty("门类型")
-        private String doorType;
-
         @ApiModelProperty("绑定状态")
         private Boolean bindState;
 

+ 106 - 0
device-api/src/main/java/com/xy/dto/DeviceQualityDto.java

@@ -0,0 +1,106 @@
+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.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@Accessors(chain = true)
+public class DeviceQualityDto {
+
+    @Data
+    @Accessors(chain = true)
+    public static class Page extends Vo {
+
+        @ApiModelProperty("分页对象")
+        private PageBean page;
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @ApiModelProperty(value = "更新时间-起")
+        private LocalDate beginUpdateTime;
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @ApiModelProperty(value = "更新时间-始")
+        private LocalDate endUpdateTime;
+
+        public LocalDateTime getBeginUpdateTime() {
+            return beginUpdateTime == null ? null : beginUpdateTime.atTime(0, 0, 0);
+        }
+
+        public LocalDateTime getEndUpdateTime() {
+            return endUpdateTime == null ? null : endUpdateTime.atTime(23, 59, 59);
+        }
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Save {
+
+        @NotNull(message = "deviceId不能为空")
+        @ApiModelProperty("设备ID")
+        private Long deviceId;
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Vo {
+
+        @ApiModelProperty("唯一标识")
+        private Integer qualityId;
+
+        @ApiModelProperty("设备ID")
+        private Long deviceId;
+
+        @ApiModelProperty("出厂状态")
+        private Integer factoryState;
+
+        @ApiModelProperty("出厂审核人ID")
+        private Long factoryAuditUserId;
+
+        @ApiModelProperty("质量状态")
+        private Integer qualityState;
+
+        @ApiModelProperty("质检状态审核人ID")
+        private Long qualityAuditUserId;
+
+        @ApiModelProperty("设备类型")
+        private Integer deviceType;
+
+        @ApiModelProperty("交易测试状态")
+        private Integer tradeState;
+
+        @ApiModelProperty("门锁状态")
+        private Integer lockerState;
+
+        @ApiModelProperty("温度检测状态")
+        private Integer tempratureState;
+
+        @ApiModelProperty("模拟批量测试状态")
+        private Integer imitateTestState;
+
+        @ApiModelProperty("软件硬系统状态")
+        private Integer systemState;
+
+        @ApiModelProperty("参数设置状态")
+        private Integer settingState;
+
+        @ApiModelProperty("更新时间")
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        private LocalDateTime updateTime;
+
+        @ApiModelProperty("创建时间")
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        private LocalDateTime createTime;
+
+        @ApiModelProperty("显示状态")
+        private Boolean showStatus;
+    }
+}

+ 15 - 0
device-api/src/main/java/com/xy/service/DeviceQualityService.java

@@ -0,0 +1,15 @@
+package com.xy.service;
+
+import com.xy.annotate.RestMappingController;
+
+/**
+ * <p>
+ * 设备-质检 服务接口
+ * </p>
+ *
+ * @author lijin
+ * @since 2023-01-05
+ */
+@RestMappingController("device-quality")
+public interface DeviceQualityService {
+}