Browse Source

修改设备状态库存

李进 2 năm trước cách đây
mục cha
commit
ed61fbc77c

+ 7 - 0
device-api-service/src/main/java/com/xy/consumer/data/DataConsumer.java

@@ -7,6 +7,7 @@ import com.xy.consumer.MqttConsumer;
 import com.xy.dto.DataMqttVo;
 import com.xy.dto.DeviceDataDto;
 import com.xy.service.DeviceDataServiceImpl;
+import com.xy.service.DeviceStatusServiceImpl;
 import com.xy.utils.Emptys;
 import com.xy.utils.ThreadPoolUtils;
 import lombok.AllArgsConstructor;
@@ -30,6 +31,8 @@ public class DataConsumer implements MqttConsumer {
 
     private DeviceDataServiceImpl deviceDataService;
 
+    private DeviceStatusServiceImpl deviceStatusService;
+
     @Override
     public boolean message(String topic, String payload) {
         ThreadPoolUtils.excPoll(DeviceThreadPoolConfig.DEVICE_DATA_POLL, 1)
@@ -71,6 +74,10 @@ public class DataConsumer implements MqttConsumer {
                         saveOrAccum.setRefundCount(1);
                     }
                     deviceDataService.saveOrAccum(saveOrAccum);
+                    //修改库存
+                    if (number > 0) {
+                        deviceStatusService.upStock(dataMqttVo.getDeviceId(), type ? (~(number - 1)) : number);
+                    }
                 })
                 .error(e -> log.error("统计消费者异常,{}", e));
         return true;

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

@@ -2,6 +2,7 @@ package com.xy.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xy.dbmapper.SyncUpdate;
 import com.xy.dto.DeviceStatusDto;
 import com.xy.dto.DeviceTempRecordsDto;
 import com.xy.entity.DeviceStatus;
@@ -17,6 +18,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -56,6 +58,24 @@ public class DeviceStatusServiceImpl extends ServiceImpl<DeviceStatusMapper, Dev
         return R.ok();
     }
 
+    /**
+     * 修改库存
+     *
+     * @return
+     */
+    public R upStock(long deviceId, int stock) {
+        DeviceStatus deviceStatusInfo = getById(deviceId);
+        if (deviceStatusInfo == null) {
+            return R.ok();
+        }
+        new SyncUpdate().update(DeviceStatus.class)
+                .set(DeviceStatus::getStock, new BigDecimal(stock))
+                .udateDateTime(DeviceStatus::getUpdateTime)
+                .eq(DeviceStatus::getDeviceId, deviceId)
+                .exec();
+        return R.ok();
+    }
+
     @PostMapping("obj")
     @ApiOperation("对象查询")
     public R<DeviceStatusDto.Vo> obj(@RequestBody DeviceStatusDto.Vo vo) {