From 0557dfda90100da470f316a80062ee7b694a5541 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8A=9B?= Date: Fri, 12 Aug 2022 16:32:41 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=A8=E7=A6=81=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AlarmInfoController.java | 6 +- .../controller/AlarmLogController.java | 47 ++++++++++++++ .../controller/DisplayConfigController.java | 2 +- .../storeroom3d/service/AlarmInfoService.java | 23 +++++-- .../service/dto/AlarmLogCriteria.java | 23 +++++++ .../service/impl/AlarmInfoServiceImpl.java | 64 +++++-------------- .../service/impl/DisplayConfigImpl.java | 8 ++- .../service/impl/SecurityDoorServiceImpl.java | 1 - .../system/controller/NanoIdController.java | 23 +++++++ 9 files changed, 137 insertions(+), 60 deletions(-) create mode 100644 storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/AlarmLogController.java create mode 100644 storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/dto/AlarmLogCriteria.java create mode 100644 system/src/main/java/com/storeroom/modules/system/controller/NanoIdController.java diff --git a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/AlarmInfoController.java b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/AlarmInfoController.java index 38a7361..7d9184a 100644 --- a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/AlarmInfoController.java +++ b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/AlarmInfoController.java @@ -35,11 +35,7 @@ public class AlarmInfoController { return ApiResponse.success(alarmInfoService.getAllAlarmInfo()); } - @AnonymousPostMapping("testalarm") - public ApiResponse testalarm(@RequestBody List getCurAlarms) { - return ApiResponse.success(alarmInfoService.testAlarm(getCurAlarms)); - } @AnonymousGetMapping("info") public ApiResponse queryStoreroomId(@RequestParam String storeroomId) { @@ -49,4 +45,6 @@ public class AlarmInfoController { return ApiResponse.success(alarmInfoService.getStoreroomDevice(storeroomId)); } + + } diff --git a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/AlarmLogController.java b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/AlarmLogController.java new file mode 100644 index 0000000..534c5df --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/AlarmLogController.java @@ -0,0 +1,47 @@ +package com.storeroom.modules.storeroom3d.controller; + + +import com.storeroom.annotaion.rest.AnonymousGetMapping; +import com.storeroom.annotaion.rest.AnonymousPostMapping; +import com.storeroom.exception.BaseException; +import com.storeroom.modules.storeroom3d.domain.AlarmLog; +import com.storeroom.modules.storeroom3d.service.AlarmInfoService; +import com.storeroom.modules.storeroom3d.service.dto.AlarmLogCriteria; +import com.storeroom.utils.ApiResponse; +import com.storeroom.utils.StringUtils; +import com.storeroom.utils.enums.ResponseStatus; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.Pageable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/alarmlog/") +@Api(tags = "报警日志管理") +@RequiredArgsConstructor +public class AlarmLogController { + + private final AlarmInfoService alarmInfoService; + + + @ApiOperation("获取日志列表") + @AnonymousGetMapping + public ApiResponse list(AlarmLogCriteria criteria, Pageable pageable) { + return ApiResponse.success(alarmInfoService.alarmLogList(criteria, pageable)); + } + + @ApiOperation("添加说明") + @AnonymousPostMapping("remark") + public ApiResponse remark(@RequestBody AlarmLog alarmLog){ + if (StringUtils.isEmpty(alarmLog.getId())){ + throw new BaseException("id不能为空"); + } + alarmInfoService.addRemark(alarmLog); + return ApiResponse.success(ResponseStatus.SUCCESS); + } +} + + diff --git a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/DisplayConfigController.java b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/DisplayConfigController.java index 3394bb3..d056664 100644 --- a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/DisplayConfigController.java +++ b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/controller/DisplayConfigController.java @@ -37,7 +37,7 @@ public class DisplayConfigController { @AnonymousPostMapping("bind") @ApiOperation("绑定参数") public ApiResponse bind(@RequestBody DisplayConfig displayConfig) { - if (!StringUtils.isEmpty(displayConfig.getId())) { + if (StringUtils.isEmpty(displayConfig.getId())) { throw new BaseException("id不为空"); } displayConfigService.bind(displayConfig); diff --git a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/AlarmInfoService.java b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/AlarmInfoService.java index 6a06816..acf3acf 100644 --- a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/AlarmInfoService.java +++ b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/AlarmInfoService.java @@ -1,8 +1,8 @@ package com.storeroom.modules.storeroom3d.service; -import com.storeroom.modules.storeroom3d.domain.GetCurAlarm; -import com.storeroom.modules.storeroom3d.service.dto.GetCurAlarmDto; -import com.storeroom.modules.storeroom3d.service.dto.GetCurAlarmDtoTest; +import com.storeroom.modules.storeroom3d.domain.AlarmLog; +import com.storeroom.modules.storeroom3d.service.dto.AlarmLogCriteria; +import org.springframework.data.domain.Pageable; import java.util.List; @@ -11,12 +11,14 @@ public interface AlarmInfoService { /** * 获取所有报警 + * * @return */ Object getAllAlarmInfo(); /** * 根据库房查询设备 + * * @param storeroomId * @return */ @@ -24,8 +26,17 @@ public interface AlarmInfoService { /** - * 测试报警数据 - * @return + * 获取报警日志列表 + * + * @return / + */ + Object alarmLogList(AlarmLogCriteria criteria, Pageable pageable); + + + /** + * 增加说明 + * @param alarmLog */ - Object testAlarm(List getCurAlarmDto); + void addRemark(AlarmLog alarmLog); + } diff --git a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/dto/AlarmLogCriteria.java b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/dto/AlarmLogCriteria.java new file mode 100644 index 0000000..9871497 --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/dto/AlarmLogCriteria.java @@ -0,0 +1,23 @@ +package com.storeroom.modules.storeroom3d.service.dto; + + +import com.storeroom.annotaion.Query; +import lombok.Data; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.List; + + +@Data +public class AlarmLogCriteria implements Serializable { + + @Query(blurry = "storeroomName,deviceName") + private String blurry; + + @Query + private Integer state; + + @Query(type = Query.Type.BETWEEN) + private List createTime; +} diff --git a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/AlarmInfoServiceImpl.java b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/AlarmInfoServiceImpl.java index b36e05d..9418f38 100644 --- a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/AlarmInfoServiceImpl.java +++ b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/AlarmInfoServiceImpl.java @@ -12,11 +12,17 @@ import com.storeroom.modules.storeroom3d.repository.AlarmLogRepository; import com.storeroom.modules.storeroom3d.repository.GetCurAlarmRepository; import com.storeroom.modules.storeroom3d.service.AlarmInfoService; import com.storeroom.modules.storeroom3d.service.ThirdApiService; +import com.storeroom.modules.storeroom3d.service.dto.AlarmLogCriteria; import com.storeroom.modules.storeroom3d.service.dto.GetCurAlarmDto; import com.storeroom.modules.storeroom3d.service.impl.mapstruct.GetCurAlarmMapper; import com.storeroom.utils.NanoIdUtils; +import com.storeroom.utils.PageUtil; +import com.storeroom.utils.QueryHelp; import lombok.RequiredArgsConstructor; import org.apache.poi.ss.formula.functions.T; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; @@ -34,7 +40,6 @@ public class AlarmInfoServiceImpl implements AlarmInfoService { private final DeviceInfoRepository deviceInfoRepository; private final ThirdApiService thirdApiService; - private final GetCurAlarmMapper getCurAlarmMapper; private final GetCurAlarmRepository getCurAlarmRepository; private final StoreroomRepository storeroomRepository; private final AlarmLogRepository alarmLogRepository; @@ -154,53 +159,18 @@ public class AlarmInfoServiceImpl implements AlarmInfoService { return alarmDtos1; } - @Override - public Object testAlarm(List getCurAlarmDto) { - //查询自己所有设备 - List deviceInfoList = deviceInfoRepository.findAll(); - //获取第三方接口报警信息 - List getCurAlarmsList = getCurAlarmDto; - - //创建返回数组 - List valueList = new ArrayList<>(); - //过滤设备id 为空的设备 - //List alarmDtos2 = alarmDtos.stream().filter(value -> Objects.equals(value.getDevice_id(), "")).collect(Collectors.toList()); - for (int i = 0; i < getCurAlarmsList.size(); i++) { - for (int k = 0; k < deviceInfoList.size(); k++) { - //如果设备id相同 - if (Objects.equals(getCurAlarmsList.get(i).getDevice_id(), deviceInfoList.get(k).getDeviceId())) { + @Override + public Object alarmLogList(AlarmLogCriteria criteria, Pageable pageable) { + Page page = alarmLogRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable); + return PageUtil.toPage(page); + } - //通过设备id查询报警日志 - AlarmLog alarmLog = alarmLogRepository.findByDeviceId(getCurAlarmsList.get(i).getDevice_id()); - //如果报警日志为空 - if (ObjectUtils.isEmpty(alarmLog)) { - AlarmLog alarmLogEntity = new AlarmLog(); - //创建日志 - alarmLogEntity.setId(NanoIdUtils.randomNanoId()); - alarmLogEntity.setDeviceId(getCurAlarmsList.get(i).getDevice_id()); - alarmLogEntity.setContent(getCurAlarmsList.get(i).getAlarm_value_descript()); - alarmLogEntity.setStoreroomName(getCurAlarmsList.get(i).getArea_name()); - alarmLogEntity.setState(false); - alarmLogEntity.setRemark(""); - alarmLogRepository.save(alarmLogEntity); - } - getCurAlarmRepository.save(getCurAlarmsList.get(i)); - //添加设备id 相同的设备报警信息 - valueList.add(getCurAlarmsList.get(i)); - } - } - } - //查询所有报警信息 - List alarmsAll = getCurAlarmRepository.findAll(); - //对比已经保存的报警信息和最新报警信息 - List updateStateList = compare(valueList, alarmsAll); - if (updateStateList.size() != 0) { - //修改报警信息状态 - updateAlarmLogStete(updateStateList); - } - //返回列表最新报警信息列表 - return valueList; + @Override + public void addRemark(AlarmLog alarmLog) { + AlarmLog alarmLog1 = alarmLogRepository.findById(alarmLog.getId()).orElseGet(AlarmLog::new); + alarmLog1.setRemark(alarmLog.getRemark()); + alarmLogRepository.save(alarmLog1); } /** @@ -214,7 +184,7 @@ public class AlarmInfoServiceImpl implements AlarmInfoService { if (alarmLog.getState()) { alarmLog.setState(false); alarmLogRepository.save(alarmLog); - }else { + } else { alarmLog.setState(true); alarmLogRepository.save(alarmLog); } diff --git a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/DisplayConfigImpl.java b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/DisplayConfigImpl.java index 5ead430..e3d75bd 100644 --- a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/DisplayConfigImpl.java +++ b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/DisplayConfigImpl.java @@ -31,7 +31,7 @@ public class DisplayConfigImpl implements DisplayConfigService { @Override @Transactional(rollbackFor = Exception.class) public void bind(DisplayConfig displayConfig) { - displayConfig.setId(NanoIdUtils.randomNanoId()); + //displayConfig.setId(NanoIdUtils.randomNanoId()); displayConfig.setBindState(true); displayConfig.getDeviceSpecParams().forEach(item -> { item.setDisplayConfigId(displayConfig.getId()); @@ -56,8 +56,14 @@ public class DisplayConfigImpl implements DisplayConfigService { if (deviceInfo.size() != 0) { deviceInfo.forEach(item -> { DisplayConfig displayConfig = displayConfigRepository.findByDeviceInfo(item); + if (ObjectUtils.isEmpty(displayConfig)) { + displayConfigList.add(null); + } displayConfigList.add(displayConfig); }); + if (displayConfigList.get(0) == null) { + return null; + } displayConfigList.sort(Comparator.comparing(DisplayConfig::getDivPosition)); return displayConfigList; } diff --git a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/SecurityDoorServiceImpl.java b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/SecurityDoorServiceImpl.java index b7ca16d..16a0cf4 100644 --- a/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/SecurityDoorServiceImpl.java +++ b/storeroom/src/main/java/com/storeroom/modules/storeroom3d/service/impl/SecurityDoorServiceImpl.java @@ -29,7 +29,6 @@ public class SecurityDoorServiceImpl implements SecurityDoorService { private final SecurityDoorRepository securityDoorRepository; - private final StoreroomRepository storeroomRepository; @Override @Transactional(rollbackFor = Exception.class) diff --git a/system/src/main/java/com/storeroom/modules/system/controller/NanoIdController.java b/system/src/main/java/com/storeroom/modules/system/controller/NanoIdController.java new file mode 100644 index 0000000..e7820e4 --- /dev/null +++ b/system/src/main/java/com/storeroom/modules/system/controller/NanoIdController.java @@ -0,0 +1,23 @@ +package com.storeroom.modules.system.controller; + + +import com.storeroom.annotaion.rest.AnonymousGetMapping; +import com.storeroom.utils.ApiResponse; +import com.storeroom.utils.NanoIdUtils; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@Api(tags = "系统:Nanoid生成接口") +@RequestMapping("/api/nanoid/") +public class NanoIdController { + + + @AnonymousGetMapping + public ApiResponse get(){ + return ApiResponse.success(NanoIdUtils.randomNanoId()); + } +}