Просмотр исходного кода

Merge branch 'master' into test

# Conflicts:
#	device-api/src/main/java/com/xy/dto/DeviceInfoDto.java
李进 1 год назад
Родитель
Сommit
f605d310ce

+ 22 - 0
device-api-service/src/main/java/com/xy/service/DeviceInfoServiceImpl.java

@@ -105,6 +105,28 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
 
     private final DeviceAlgorithmChargingServiceImpl deviceAlgorithmChargingService;
 
+    @PostMapping("eventList")
+    @ApiOperation("根据事件编码查询设备")
+    public R<List<DeviceInfoDto.EventListVo>> eventList(@RequestBody @Validated DeviceInfoDto.EventList eventList) {
+        String countAs = "id";
+        QueryWrapper<DeviceEventMsg> queryWrapper = new QueryWrapper<DeviceEventMsg>()
+                .select(LambdaUtils.getUnderlineCaseName(DeviceEventMsg::getDeviceId) + "as " + LambdaUtils.getProperty(DeviceEventMsg::getDeviceId), "count(*) as " + countAs)
+                .eq(LambdaUtils.getUnderlineCaseName(DeviceEventMsg::getCode), eventList.getCode())
+                .between(LambdaUtils.getUnderlineCaseName(DeviceEventMsg::getCreateTime), eventList.getBeginTime(), eventList.getEndTime())
+                .groupBy(LambdaUtils.getUnderlineCaseName(DeviceEventMsg::getDeviceId))
+                .last(countAs + " >= " + eventList.getSize());
+        List<DeviceEventMsg> list = deviceEventMsgService.list(queryWrapper);
+        if(!Emptys.check(list)) {
+            return R.ok();
+        }
+        List<DeviceInfo> deviceInfos = listByIds(new JArrayList<>(list).getProperty(DeviceEventMsg::getDeviceId));
+        List<DeviceInfoDto.EventListVo> eventListVos = copy(DeviceInfoDto.EventListVo.class, deviceInfos);
+        List<DeviceInfoDto.EventListVo> builder = copy(eventListVos)
+                .target(list, DeviceInfoDto.EventListVo::getDeviceId, DeviceInfoDto.EventListVo::getSize, DeviceEventMsg::getDeviceId, DeviceEventMsg::getId)
+                .builder();
+        return R.ok(builder);
+    }
+
 
     /**
      * 商户设备列表分页-穿梭框用

+ 30 - 14
device-api/src/main/java/com/xy/dto/DeviceInfoDto.java

@@ -62,6 +62,27 @@ public class DeviceInfoDto {
     }
 
 
+    @Data
+    @Accessors(chain = true)
+    public static class EventList {
+
+        @NotBlank(message = "code不能为空")
+        @ApiModelProperty(value = "事件编码", required = true)
+        private String code;
+
+        @NotNull(message = "size不能空")
+        @ApiModelProperty(value = "大于等于次数", required = true)
+        private Integer size;
+
+        @ApiModelProperty(value = "开始时间", required = true)
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime beginTime;
+
+        @ApiModelProperty(value = "结束时间", required = true)
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime endTime;
+    }
+
     @Data
     @Accessors(chain = true)
     public static class AlgorithmCharging {
@@ -444,10 +465,6 @@ public class DeviceInfoDto {
 
         @ApiModelProperty("温度设置信息")
         private TempSetInfo tempSetInfo;
-
-        @ApiModelProperty("工作温度设置值")
-        private Integer jobTempSetValue;
-
     }
 
     @Data
@@ -480,13 +497,6 @@ public class DeviceInfoDto {
         @ApiModelProperty(value = "最小温度告警值")
         private Integer tempMin;
 
-        @ApiModelProperty(value = "缺货率预警值")
-        private Integer stockOutRate;
-
-        @ApiModelProperty(value = "缺货种类预警值")
-        private Integer stockOutGoodsNum;
-
-
     }
 
     @Data
@@ -875,9 +885,6 @@ public class DeviceInfoDto {
         @ApiModelProperty("右门锁机状态,字典类型:devcie_lock_status")
         private Integer deviceStateR;
 
-        @ApiModelProperty("通电状态")
-        private Integer sysPower;
-
     }
 
 
@@ -1113,4 +1120,13 @@ public class DeviceInfoDto {
 
     }
 
+    @Data
+    @Accessors(chain = true)
+    public static class EventListVo extends Vo {
+
+        @ApiModelProperty("事件发生次数")
+        private Integer size;
+
+    }
+
 }