Forráskód Böngészése

2023-10-19 处置气瓶非法带离消息,需要重新把信标载入到redis中。

chaiyunlong 2 éve
szülő
commit
f1cb878094

+ 7 - 1
zd-api/zd-airbottle-api/src/main/java/com/zd/airbottle/api/feign/RemoteAirBottleService.java

@@ -59,6 +59,12 @@ public interface RemoteAirBottleService {
     /**
      * 根据实验室id查询信标列表
      */
-    @GetMapping(value = "/alarm/record/beacon/add")
+    @PostMapping(value = "/alarm/record/beacon/add")
     ResultData<Integer> beaconAdd(@RequestBody Map <String,String> tagMap);
+
+    /**
+     * 根据库存id查询信标保存到redis
+     */
+    @PostMapping(value = "/alarm/record/beacon/update")
+    ResultData<Integer> beaconUpdate(@RequestBody Map <String,Long> stockMap);
 }

+ 5 - 0
zd-api/zd-airbottle-api/src/main/java/com/zd/airbottle/api/feign/fallback/RemoteAirBottleFallbackFactory.java

@@ -57,6 +57,11 @@ public class RemoteAirBottleFallbackFactory implements FallbackFactory<RemoteAir
             public ResultData <Integer> beaconAdd(Map <String, String> tagMap) {
                 return ResultData.fail("蓝牙网关通知插入失败"+throwable.getMessage());
             }
+
+            @Override
+            public ResultData <Integer> beaconUpdate(Map <String, Long> stockMap) {
+                return ResultData.fail("信标载入redis失败"+throwable.getMessage());
+            }
         };
     }
 }

+ 28 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/controller/AlarmRecordController.java

@@ -1,17 +1,21 @@
 package com.zd.airbottle.controller;
 
 import com.zd.airbottle.domain.AlarmRecord;
+import com.zd.airbottle.domain.DbStock;
 import com.zd.airbottle.domain.vo.AlarmRecordVo;
 import com.zd.airbottle.domain.vo.BottleStorageInfoVo;
+import com.zd.airbottle.service.DbStockService;
 import com.zd.airbottle.service.IAlarmRecordService;
 import com.zd.common.core.annotation.Log;
 import com.zd.common.core.annotation.PreAuthorize;
 import com.zd.common.core.exception.ServiceException;
 import com.zd.common.core.log.BusinessType;
+import com.zd.common.core.redis.RedisService;
 import com.zd.common.core.utils.ExcelUtil;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.common.core.utils.TransferUtils;
 import com.zd.common.core.web.controller.BaseController;
+import com.zd.model.constant.BaseConstants;
 import com.zd.model.domain.R;
 import com.zd.model.domain.ResultData;
 import com.zd.model.entity.InventoryTag;
@@ -19,6 +23,7 @@ import com.zd.model.page.TableDataInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -26,6 +31,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -39,6 +45,12 @@ public class AlarmRecordController extends BaseController<AlarmRecord> {
     @Resource
     private IAlarmRecordService alarmRecordService;
 
+    @Autowired
+    private DbStockService dbStockService;
+
+    @Autowired
+    private RedisService redisService;
+
     /**
      * 查询报警记录列表
      */
@@ -122,4 +134,20 @@ public class AlarmRecordController extends BaseController<AlarmRecord> {
     public R<Integer> beaconAdd(@RequestBody Map <String,String> tagMap) {
         return R.ok(alarmRecordService.beaconAdd(tagMap));
     }
+
+
+    /**
+     * 蓝牙信标非法带离处置提交
+     */
+    @ApiOperation(value = "蓝牙信标非法带离处置提交")
+    @Log(title = "蓝牙信标非法带离处置提交", businessType = BusinessType.UPDATE)
+    @PostMapping("/beacon/update")
+    public R<Integer> beaconUpdate(@RequestBody Map <String,Long> stockMap) {
+        Long keyId = stockMap.get("keyId");
+        DbStock db = dbStockService.getById(keyId);
+        if(db!=null && !"".equals(db.getBeaconTag())){
+            redisService.setCacheObject(BaseConstants.BEACON_MATE_DET+"~"+ db.getBeaconTag()+"~"+db.getSubjectId()+"~"+db.getGasName(),db.getBeaconTag(), 120L, TimeUnit.SECONDS);
+        }
+        return R.ok();
+    }
 }

+ 11 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/WarningNoticeLogController.java

@@ -3,6 +3,7 @@ package com.zd.laboratory.controller;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.zd.airbottle.api.feign.RemoteAirBottleService;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.common.core.web.controller.AbstractController;
 import com.zd.laboratory.api.dto.WarningNoticeLogDto;
@@ -18,7 +19,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.time.LocalTime;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -35,6 +38,9 @@ public class WarningNoticeLogController extends AbstractController {
     @Autowired
     private WarningNoticeLogService warningNoticeLogService;
 
+    @Autowired
+    private RemoteAirBottleService remoteAirBottleService;
+
     @PostMapping("/add")
     @ApiOperation("新增报警记录日志")
     public ResultData add(@RequestBody WarningNoticeLogDto warningNoticeLogDto){
@@ -54,6 +60,11 @@ public class WarningNoticeLogController extends AbstractController {
         BeanUtils.copyProperties(warningNoticeLogDto,warningNoticeLog);
         boolean b = warningNoticeLogService.updateById(warningNoticeLog);
         if (b) {
+            WarningNoticeLog noticeLog = warningNoticeLogService.getById(warningNoticeLog.getId());
+            //todo 这里处置后,需要把处置的信标存入redis
+            Map <String,Long> stockMap = new HashMap <>();
+            stockMap.put("keyId",noticeLog.getKeyId());
+            remoteAirBottleService.beaconUpdate(stockMap);
             return ResultData.success();
         }
         return ResultData.fail();