Explorar o código

2023-10-23 通知补充信标字段,带离的气瓶归还后,需要修改日志的在位状态。

chaiyunlong %!s(int64=2) %!d(string=hai) anos
pai
achega
4ea0e72010

+ 4 - 0
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/dto/WarningNoticeLogDto.java

@@ -121,6 +121,10 @@ public class WarningNoticeLogDto {
 
     @ApiModelProperty("位置状态(0离位 1在位)")
     private Integer locationState;
+
+    @ApiModelProperty("信标标签")
+    private String beaconTag;
+
     @ApiModelProperty("创建人名称")
     private String createName;
 

+ 4 - 0
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/RemoteLaboratoryService.java

@@ -560,6 +560,10 @@ public interface RemoteLaboratoryService {
     @PostMapping("/warningNoticeLog/update")
     ResultData updateWarningNoticeLog(@RequestBody WarningNoticeLogDto warningNoticeLogDto);
 
+    @ApiOperation("修改报警记录日志")
+    @PostMapping("/warningNoticeLog/updateLocationState")
+    ResultData updateLocationState(@RequestBody WarningNoticeLogDto warningNoticeLogDto);
+
     @ApiOperation("根据keyId获取过期提醒次数")
     @GetMapping("/warningNoticeLog/getRemindData")
     ResultData getRemindData(@RequestParam("keyId") Long keyId,@RequestParam("type") Integer type);

+ 1 - 1
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/impl/AlarmRecordServiceImpl.java

@@ -471,7 +471,7 @@ public class AlarmRecordServiceImpl implements IAlarmRecordService {
         warningNoticeLogDto.setMargin(new BigDecimal(dbStock.getGasPressure()));
         warningNoticeLogDto.setSpecification(dbStock.getSize()+"");
         warningNoticeLogDto.setEntryTime(LocalDateTimeUtil.of(dbStock.getCreateTime()));
-
+        warningNoticeLogDto.setBeaconTag(beaconTag);
         //查询到实验室负责人id 安全责任人id
         ResultData<List<CheckSubjectDto>> subjectInfoList = laboratoryService.findSubjectInfoList(String.valueOf(dbStock.getSubjectId()));
         StringBuffer userIds = new StringBuffer();

+ 21 - 9
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/WarningNoticeLogController.java

@@ -18,17 +18,9 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.time.DayOfWeek;
-import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
-import java.util.HashMap;
-import java.time.temporal.TemporalAdjusters;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -187,6 +179,26 @@ public class WarningNoticeLogController extends AbstractController {
         return ResultData.success(backList);
     }
 
+    @PostMapping("/updateLocationState")
+    @ApiOperation("修改报警记录日志")
+    public ResultData updateLocationState(@RequestBody WarningNoticeLogDto warningNoticeLogDto){
+        String[] beaconArr = warningNoticeLogDto.getBeaconTag().split(",");
+        for(String beacon:beaconArr){
+            LambdaQueryWrapper<WarningNoticeLog> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(WarningNoticeLog::getBeaconTag,beacon);
+            queryWrapper.orderByDesc(WarningNoticeLog::getCreateTime);
+            List<WarningNoticeLog> warningNoticeLogList = warningNoticeLogService.list(queryWrapper);
+            for(int i=0;i<1;i++){
+                WarningNoticeLog warningNoticeLog = warningNoticeLogList.get(i);
+                warningNoticeLog.setLocationState(1);
+                warningNoticeLog.setUpdateName(getCurrentUserName());
+                warningNoticeLog.setUpdateTime(LocalDateTime.now());
+                warningNoticeLogService.updateById(warningNoticeLog);
+            }
+        }
+        return ResultData.success();
+    }
+
     @GetMapping("/airCollect")
     @ApiOperation("数据大屏,定位预警统计")
     public ResultData airCollect() {

+ 3 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/WarningNoticeLog.java

@@ -128,6 +128,9 @@ public class WarningNoticeLog extends Model<WarningNoticeLog> {
     @ApiModelProperty("位置状态(0离位 1在位)")
     private Integer locationState;
 
+    @ApiModelProperty("信标标签")
+    private String beaconTag;
+
     @ApiModelProperty("创建人名称")
     private String createName;
 

+ 14 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/socket/service/impl/BeaconMateImpl.java

@@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSONObject;
 import com.zd.airbottle.api.feign.RemoteAirBottleService;
 import com.zd.common.core.redis.RedisService;
 import com.zd.common.core.utils.SpringUtils;
+import com.zd.laboratory.api.dto.WarningNoticeLogDto;
+import com.zd.laboratory.api.feign.RemoteLaboratoryService;
 import com.zd.laboratory.mqtt.service.impl.SubMessageSendManager;
 import com.zd.laboratory.socket.service.BeaconMate;
 import com.zd.model.constant.BaseConstants;
@@ -34,6 +36,8 @@ public class BeaconMateImpl implements BeaconMate {
 
     private SubMessageSendManager messageSendService = SpringUtils.getBean(SubMessageSendManager.class);
 
+    private RemoteLaboratoryService remoteLaboratoryService = SpringUtils.getBean(RemoteLaboratoryService.class);
+
     public void sendBeaconMate(String dataStr){
         log.info("1.=====================================》上报蓝牙网关编码:"+dataStr);
         JSONObject jsonObject=JSONObject.parseObject(dataStr);
@@ -76,6 +80,7 @@ public class BeaconMateImpl implements BeaconMate {
                     if(beaconNoticeList!=null){
                         newNoticeList.addAll(beaconNoticeList);
                     }
+                    StringBuilder beaconTagBuild = new StringBuilder();
                     //todo 循环检查实验室的信标比对上报的信标,将配对好的信标重新设置默认时间
                     for(int x=0;x<beaconList.size();x++){
                         if(array.size()>0){
@@ -98,6 +103,8 @@ public class BeaconMateImpl implements BeaconMate {
                                                 if(notice.get("beaconTag").equals(beaconStr)){
                                                     log.info("6.=====================================》移除返回来的信标提示语:"+notice);
                                                     newNoticeList.remove(notice);
+                                                    beaconTagBuild.append(",");
+                                                    beaconTagBuild.append(beaconStr);
                                                 }
                                             }
                                         }
@@ -113,6 +120,13 @@ public class BeaconMateImpl implements BeaconMate {
                         messageSendService.bluetoothGatewayToMac(subId);
                         //向前端发送mqtt预案触发提示
                         messageSendService.riskPlanTriggerNotice();
+                        //这里需要调用通知修改接口,把离位改成在位
+                        if(beaconTagBuild.length()>0){
+                            WarningNoticeLogDto warningNoticeLogDto = new WarningNoticeLogDto();
+                            warningNoticeLogDto.setBeaconTag(beaconTagBuild.substring(1));
+                            remoteLaboratoryService.updateLocationState(warningNoticeLogDto);
+                        }
+
                     }
                 }
             }