Procházet zdrojové kódy

上报关门清除补货活动

李进 před 2 roky
rodič
revize
d44a5c2864

+ 23 - 0
device-api-service/src/main/java/com/xy/service/DeviceStatusServiceImpl.java

@@ -4,6 +4,8 @@ import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xy.dbmapper.SyncUpdate;
+import com.xy.device.EnumDevcieDoorStatus;
+import com.xy.dto.ActivityInfoDto;
 import com.xy.dto.DeviceStatusDto;
 import com.xy.dto.DeviceTempRecordsDto;
 import com.xy.entity.DeviceStatus;
@@ -12,6 +14,7 @@ import com.xy.mapper.entity.DeviceStatusCount;
 import com.xy.utils.Emptys;
 import com.xy.utils.MybatisPlusQuery;
 import com.xy.utils.R;
+import com.xy.utils.SysDictUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -42,6 +45,8 @@ public class DeviceStatusServiceImpl extends ServiceImpl<DeviceStatusMapper, Dev
 
     private DeviceTempRecordsServiceImpl deviceTempRecordsService;
 
+    private ActivityInfoService activityInfoService;
+
     @Override
     @ApiOperation("上报信息")
     public R up(DeviceStatusDto.Up up) {
@@ -59,6 +64,24 @@ public class DeviceStatusServiceImpl extends ServiceImpl<DeviceStatusMapper, Dev
             save.setTempValue(deviceStatus.getTempValue());
             deviceTempRecordsService.save(save);
         }
+        //上报关门
+        if (Emptys.check(deviceStatus.getDoorStateL())) {
+            Integer value = SysDictUtils.getValue(EnumDevcieDoorStatus.Code.CODE.getCode(), EnumDevcieDoorStatus.LOCKED.getCode(), Integer.class);
+            if (deviceStatus.getDoorStateL().equals(value)) {
+                activityInfoService.abort(new ActivityInfoDto.Abort()
+                        .setDeviceId(up.getDeviceId())
+                        .setWorkType(2)
+                );
+            }
+        }
+        return R.ok();
+    }
+
+    @Override
+    @ApiOperation("开关门")
+    public R door(DeviceStatusDto.Door door) {
+        DeviceStatus deviceStatus = copy(DeviceStatus.class, door).setUpdateTime(LocalDateTime.now());
+        updateById(deviceStatus);
         return R.ok();
     }
 

+ 16 - 0
device-api/src/main/java/com/xy/dto/DeviceStatusDto.java

@@ -24,6 +24,22 @@ public class DeviceStatusDto {
         private Long deviceId;
     }
 
+    @Data
+    @Accessors(chain = true)
+    public static class Door {
+
+        @NotNull(message = "deviceId不能为空")
+        @ApiModelProperty(value = "设备ID", required = true)
+        private Long deviceId;
+
+        @ApiModelProperty("左柜门状态")
+        private Integer doorStateL;
+
+        @ApiModelProperty("右柜门状态")
+        private Integer doorStateR;
+
+    }
+
     @Data
     @Accessors(chain = true)
     public static class SelectList extends Vo {

+ 11 - 1
device-api/src/main/java/com/xy/service/DeviceStatusService.java

@@ -3,6 +3,7 @@ package com.xy.service;
 import com.xy.annotate.RestMappingController;
 import com.xy.dto.DeviceStatusDto;
 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;
 
@@ -24,5 +25,14 @@ public interface DeviceStatusService {
      * @return
      */
     @PostMapping("up")
-    R up(@RequestBody DeviceStatusDto.Up up);
+    R up(@RequestBody @Validated DeviceStatusDto.Up up);
+
+    /**
+     * 开关门
+     *
+     * @param door
+     * @return
+     */
+    @PostMapping("door")
+    R door(@RequestBody @Validated DeviceStatusDto.Door door);
 }