diff --git a/web-adapter/src/main/java/com/zcloud/web/AlarmDisposeController.java b/web-adapter/src/main/java/com/zcloud/web/AlarmDisposeController.java index 7deae8a..8a8b5cf 100644 --- a/web-adapter/src/main/java/com/zcloud/web/AlarmDisposeController.java +++ b/web-adapter/src/main/java/com/zcloud/web/AlarmDisposeController.java @@ -34,19 +34,15 @@ public class AlarmDisposeController { return alarmDisposeService.assignList(qry); } - @ApiOperation("单条处置分配") + @ApiOperation("处置分配") @PostMapping("/assign") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmdispose-assign')") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmdispose-assign')") public SingleResponse assign(@Validated @RequestBody AlarmDisposeAssignCmd cmd) { - if (cmd.getTenantId() == null) { - cmd.setTenantId(com.jjb.saas.framework.auth.utils.AuthContext.getTenantId()); - } return alarmDisposeService.assign(cmd); } @ApiOperation("批量处置分配") @PostMapping("/batchAssign") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmdispose-batchassign')") public SingleResponse batchAssign(@Validated @RequestBody AlarmDisposeBatchAssignCmd cmd) { if (cmd.getTenantId() == null) { cmd.setTenantId(com.jjb.saas.framework.auth.utils.AuthContext.getTenantId()); diff --git a/web-adapter/src/main/java/com/zcloud/web/AlarmRecordController.java b/web-adapter/src/main/java/com/zcloud/web/AlarmRecordController.java index bca634d..dc3fe87 100644 --- a/web-adapter/src/main/java/com/zcloud/web/AlarmRecordController.java +++ b/web-adapter/src/main/java/com/zcloud/web/AlarmRecordController.java @@ -4,6 +4,7 @@ import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.SingleResponse; import com.zcloud.api.AlarmRecordServiceI; import com.zcloud.dto.AlarmRecordPageQry; +import com.zcloud.dto.AlarmRecordSensorPageQry; import com.zcloud.dto.clientobject.AlarmRecordCO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,14 +26,21 @@ public class AlarmRecordController { @ApiOperation("报警记录列表") @PostMapping("/list") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmrecord-list')") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmrecord-list')") public PageResponse list(@RequestBody AlarmRecordPageQry qry) { return alarmRecordService.list(qry); } + @ApiOperation("按设备查询报警记录") + @PostMapping("/listBySensorDevice") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmrecord-list')") + public PageResponse listBySensorDevice(@RequestBody AlarmRecordSensorPageQry qry) { + return alarmRecordService.listBySensorDevice(qry); + } + @ApiOperation("报警详情") @GetMapping("/{id}") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmrecord-info')") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmrecord-info')") public SingleResponse info(@PathVariable("id") Long id) { return alarmRecordService.info(id); } diff --git a/web-adapter/src/main/java/com/zcloud/web/DeviceRegionController.java b/web-adapter/src/main/java/com/zcloud/web/DeviceRegionController.java index 487a902..dd45827 100644 --- a/web-adapter/src/main/java/com/zcloud/web/DeviceRegionController.java +++ b/web-adapter/src/main/java/com/zcloud/web/DeviceRegionController.java @@ -30,42 +30,42 @@ public class DeviceRegionController { @ApiOperation("分页列表") @PostMapping("/list") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-list')") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-list')") public PageResponse list(@RequestBody DeviceRegionPageQry qry) { return deviceRegionService.listPage(qry); } @ApiOperation("新增或修改") @PostMapping("/saveOrUpdate") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-add')") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-add')") public SingleResponse saveOrUpdate(@Validated @RequestBody DeviceRegionAddCmd cmd) { return deviceRegionService.saveOrUpdate(cmd); } @ApiOperation("绑定传感器") @PostMapping("/bindSensor") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-edit')") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-edit')") public SingleResponse bindSensor(@Validated @RequestBody BindSensorCmd cmd) { return deviceRegionService.bindSensor(cmd); } @ApiOperation("解绑传感器") @PostMapping("/unbindSensor") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-edit')") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-edit')") public SingleResponse unbindSensor(@Validated @RequestBody UnbindSensorCmd cmd) { return deviceRegionService.unbindSensor(cmd); } @ApiOperation("负责人配置") @PutMapping("/manager") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-edit')") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-edit')") public SingleResponse manager(@Validated @RequestBody ManagerCmd cmd) { return deviceRegionService.manager(cmd); } @ApiOperation("删除") @DeleteMapping("/{id}") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-delete')") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-delete')") public SingleResponse remove(@PathVariable("id") Long id) { deviceRegionService.remove(id); return SingleResponse.buildSuccess(); @@ -73,8 +73,8 @@ public class DeviceRegionController { @ApiOperation("详情") @GetMapping("/{id}") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-list')") - public SingleResponse info(@PathVariable("id") Long id) { - return deviceRegionService.info(id); +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-list')") + public SingleResponse info(@PathVariable("id") String fireRegionId) { + return deviceRegionService.info(fireRegionId); } } diff --git a/web-adapter/src/main/java/com/zcloud/web/SensorDeviceController.java b/web-adapter/src/main/java/com/zcloud/web/SensorDeviceController.java index 1ae2881..a6b273a 100644 --- a/web-adapter/src/main/java/com/zcloud/web/SensorDeviceController.java +++ b/web-adapter/src/main/java/com/zcloud/web/SensorDeviceController.java @@ -3,10 +3,7 @@ package com.zcloud.web; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.SingleResponse; import com.zcloud.api.SensorDeviceServiceI; -import com.zcloud.dto.SensorDeviceAddCmd; -import com.zcloud.dto.SensorDevicePageQry; -import com.zcloud.dto.SensorDeviceThresholdCmd; -import com.zcloud.dto.SensorDeviceUpdateCmd; +import com.zcloud.dto.*; import com.zcloud.dto.clientobject.SensorDeviceCO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -29,29 +26,41 @@ public class SensorDeviceController { @ApiOperation("新增") @PostMapping("/save") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-add')") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-add')") public SingleResponse save(@Validated @RequestBody SensorDeviceAddCmd cmd) { return sensorDeviceService.add(cmd); } @ApiOperation("分页列表") @PostMapping("/list") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-list')") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-list')") public PageResponse list(@RequestBody SensorDevicePageQry qry) { return sensorDeviceService.listPage(qry); } + + + + @ApiOperation("修改") - @PutMapping("/edit") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')") + @PostMapping("/edit") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')") public SingleResponse edit(@Validated @RequestBody SensorDeviceUpdateCmd cmd) { sensorDeviceService.edit(cmd); return SingleResponse.buildSuccess(); } + @ApiOperation("定位") + @PostMapping("/location") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')") + public SingleResponse location(@Validated @RequestBody SensorDeviceLocationCmd cmd) { + sensorDeviceService.location(cmd); + return SingleResponse.buildSuccess(); + } + @ApiOperation("状态切换") @PutMapping("/status") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')") public SingleResponse updateStatus(@RequestParam Long id, @RequestParam String status) { sensorDeviceService.updateStatus(id, status); return SingleResponse.buildSuccess(); @@ -59,15 +68,15 @@ public class SensorDeviceController { @ApiOperation("阈值配置") @PutMapping("/threshold") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-edit')") public SingleResponse updateThreshold(@Validated @RequestBody SensorDeviceThresholdCmd cmd) { sensorDeviceService.updateThreshold(cmd); return SingleResponse.buildSuccess(); } @ApiOperation("删除") - @DeleteMapping("/{id}") - @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-delete')") + @PostMapping("/{id}") +// @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-delete')") public SingleResponse remove(@PathVariable("id") Long id) { sensorDeviceService.remove(id); return SingleResponse.buildSuccess(); diff --git a/web-app/src/main/java/com/zcloud/command/AlarmDisposeAssignExe.java b/web-app/src/main/java/com/zcloud/command/AlarmDisposeAssignExe.java index d36f784..2ae65e2 100644 --- a/web-app/src/main/java/com/zcloud/command/AlarmDisposeAssignExe.java +++ b/web-app/src/main/java/com/zcloud/command/AlarmDisposeAssignExe.java @@ -1,6 +1,8 @@ package com.zcloud.command; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.exception.BizException; import com.zcloud.domain.gateway.AlarmRecordGateway; import com.zcloud.domain.gateway.AlarmDisposeLogGateway; @@ -20,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.List; /** * AlarmDisposeAssignExe - 报警处置执行器 @@ -37,63 +40,44 @@ public class AlarmDisposeAssignExe { private final AlarmTodoService alarmTodoService; @Transactional(rollbackFor = Exception.class) - public void execute(AlarmDisposeAssignCmd cmd) { - // 查询报警记录 - AlarmRecordE alarmRecord = alarmRecordGateway.getById(cmd.getId()); - if (Tools.isEmpty(alarmRecord)) { - throw new BizException("报警记录不存在"); + public SingleResponse execute(AlarmDisposeAssignCmd cmd) { + List ids = cmd.getIds(); + if (Tools.isEmpty(ids)) { + throw new BizException("请选择要处置的报警记录"); } - // 检查状态:只有待研判(10)状态可以分配 - if (alarmRecord.getStatus() != 10) { - throw new BizException("该报警已分配或已处置,无法再次分配"); + // 获取当前时间的LocalDateTime "yyyy-MM-dd HH:mm:ss" + LocalDateTime assignTime = LocalDateTime.now(); + for (Long id : ids) { + StringBuffer msg = new StringBuffer(); + // 查询报警记录 + AlarmRecordE alarmRecord = alarmRecordGateway.getById(id); + if (Tools.isEmpty(alarmRecord)) { + return SingleResponse.buildFailure("id:"+id+"报警记录不存在;"); + } + + // 检查状态:只有待研判(10)状态可以分配 + if (alarmRecord.getStatus() != 10) { + return SingleResponse.buildFailure("报警编码为"+alarmRecord.getAlarmNo()+"报警记录状态不是待处置;"); + } + + // 更新报警记录状态和处置人 + AlarmRecordE updateEntity = new AlarmRecordE(); + BeanUtil.copyProperties(cmd, updateEntity); + updateEntity.setId( id); + updateEntity.setAssignTime(assignTime); + alarmRecordGateway.update(updateEntity); } - - // 更新报警记录状态和处置人 - AlarmRecordE updateEntity = new AlarmRecordE(); - BeanUtils.copyProperties(cmd, updateEntity); - updateEntity.setId(cmd.getId()); - updateEntity.setStatus(20); // 待处置 - updateEntity.setManagerId(cmd.getDisposeUserId()); - updateEntity.setDisposeUserId(cmd.getDisposeUserId()); - updateEntity.setAssignTime(LocalDateTime.now()); - if (StrUtil.isNotBlank(cmd.getAlarmLevel())) { - updateEntity.setAlarmLevel(cmd.getAlarmLevel()); - } - if (StrUtil.isNotBlank(cmd.getAlarmType())) { - updateEntity.setAlarmType(cmd.getAlarmType()); - } - - Boolean res = alarmRecordGateway.update(updateEntity); - if (!res) { - throw new BizException("分配失败"); - } - - // 记录处置日志 - AlarmDisposeLogE log = new AlarmDisposeLogE(); - log.setAlarmDisposalLogId(UuidUtil.get32UUID()); - log.setAlarmId(cmd.getId()); - log.setAlarmNo(alarmRecord.getAlarmNo()); - log.setActionType("MANUAL_ASSIGN"); - log.setBeforeStatus(10); - log.setAfterStatus(20); - log.setOperatorId(cmd.getDisposeUserId()); - log.setActionDesc("手动分配处置"); - log.setActionTime(LocalDateTime.now()); - log.setTenantId(cmd.getTenantId()); - log.setOrgId(cmd.getOrgId()); - log.setDeleteEnum("FALSE"); - - alarmDisposeLogGateway.add(log); - - // 发送报警处置推送消息给处置人 - // 更新后的报警记录包含分配时间和处置说明 - alarmMessageService.sendDisposePushMessage(updateEntity, cmd.getDisposeUserId()); - - // 新增处置人待办 - alarmTodoService.addDisposeTodo(updateEntity, cmd.getDisposeUserId()); - - // 完成负责人待办(原来负责人是 alarmRecord.getManagerId()) - alarmTodoService.completeTodo(cmd.getId()); + return SingleResponse.buildSuccess(); +// +// // 发送报警处置推送消息给处置人 +// // 更新后的报警记录包含分配时间和处置说明 +// alarmMessageService.sendDisposePushMessage(updateEntity, cmd.getDisposeUserId()); +// +// // 新增处置人待办 +// alarmTodoService.addDisposeTodo(updateEntity, cmd.getDisposeUserId()); +// +// // 完成负责人待办(原来负责人是 alarmRecord.getManagerId()) +// alarmTodoService.completeTodo(cmd.getId()); } } diff --git a/web-app/src/main/java/com/zcloud/command/BindSensorExe.java b/web-app/src/main/java/com/zcloud/command/BindSensorExe.java index 7fc99b0..dd1134e 100644 --- a/web-app/src/main/java/com/zcloud/command/BindSensorExe.java +++ b/web-app/src/main/java/com/zcloud/command/BindSensorExe.java @@ -1,5 +1,6 @@ package com.zcloud.command; +import cn.hutool.core.bean.BeanUtil; import com.alibaba.cola.exception.BizException; import com.zcloud.domain.gateway.DeviceRegionGateway; import com.zcloud.domain.gateway.RegionSensorRelGateway; @@ -8,12 +9,16 @@ import com.zcloud.domain.model.RegionSensorRelE; import com.zcloud.dto.BindSensorCmd; import com.zcloud.gbscommon.utils.Tools; import com.zcloud.gbscommon.utils.UuidUtil; +import com.zcloud.persistence.dataobject.RegionSensorRelDO; +import com.zcloud.persistence.repository.RegionSensorRelRepository; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.List; + /** * BindSensorExe - 绑定传感器执行器 * @Author wangyan @@ -26,33 +31,15 @@ public class BindSensorExe { private final RegionSensorRelGateway regionSensorRelGateway; private final DeviceRegionGateway deviceRegionGateway; + private final RegionSensorRelRepository regionSensorRelRepository; @Transactional(rollbackFor = Exception.class) public void execute(BindSensorCmd cmd) { - // 检查传感器是否已绑定到其他区域 - Boolean isBound = regionSensorRelGateway.isSensorBound(cmd.getSensorDeviceId()); - if (isBound) { - throw new BizException("该传感器已绑定到其他区域,请先解绑"); - } - - // 检查区域配置是否存在 - DeviceRegionE region = deviceRegionGateway.getById(cmd.getRegionConfigId()); - if (Tools.isEmpty(region)) { - throw new BizException("区域配置不存在"); - } + // 删除旧数据 + regionSensorRelGateway.removeByRegionId(cmd.getFireRegionId()); RegionSensorRelE entity = new RegionSensorRelE(); - entity.setRegionConfigId(String.valueOf(cmd.getRegionConfigId())); - entity.setSensorDeviceId(cmd.getSensorDeviceId()); - entity.setSensorCode(cmd.getSensorCode()); - entity.setRegionSensorRelId(UuidUtil.get32UUID()); - entity.setFireRegionId(cmd.getFireRegionId()); - // 设置默认值 - entity.setDeleteEnum("FALSE"); - - Long res = regionSensorRelGateway.add(entity); - if (Tools.isEmpty(res)) { - throw new BizException("绑定失败"); - } + List relList = entity.initList(cmd.getFireRegionId(), cmd.getDeviceIdList()); + regionSensorRelRepository.saveBatch(BeanUtil.copyToList(relList, RegionSensorRelDO.class)); } -} \ No newline at end of file +} diff --git a/web-app/src/main/java/com/zcloud/command/ManagerExe.java b/web-app/src/main/java/com/zcloud/command/ManagerExe.java index e1265a5..22a6182 100644 --- a/web-app/src/main/java/com/zcloud/command/ManagerExe.java +++ b/web-app/src/main/java/com/zcloud/command/ManagerExe.java @@ -1,11 +1,18 @@ package com.zcloud.command; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.cola.exception.BizException; import com.zcloud.domain.gateway.DeviceRegionGateway; import com.zcloud.domain.gateway.RegionSensorRelGateway; import com.zcloud.domain.model.DeviceRegionE; import com.zcloud.dto.ManagerCmd; import com.zcloud.gbscommon.utils.Tools; +import com.zcloud.gbscommon.utils.UuidUtil; +import com.zcloud.persistence.dataobject.DeviceRegionDO; +import com.zcloud.persistence.dataobject.UserDO; +import com.zcloud.persistence.repository.DeviceRegionRepository; +import com.zcloud.persistence.repository.UserRepository; import lombok.RequiredArgsConstructor; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.stereotype.Component; @@ -22,21 +29,25 @@ import org.springframework.transaction.annotation.Transactional; public class ManagerExe { private final DeviceRegionGateway deviceRegionGateway; + private final UserRepository userRepository; + private final DeviceRegionRepository deviceRegionRepository; @Transactional(rollbackFor = Exception.class) public void execute(ManagerCmd cmd) { - DeviceRegionE existingRegion = deviceRegionGateway.getById(cmd.getId()); - if (Tools.isEmpty(existingRegion)) { - throw new BizException("区域配置不存在"); - } - - Boolean res = deviceRegionGateway.updateManager( - cmd.getId(), - cmd.getManagerId(), - cmd.getDepartmentId() - ); - if (!res) { - throw new BizException("负责人配置失败"); + DeviceRegionE existingRegion = new DeviceRegionE(); + BeanUtil.copyProperties(cmd, existingRegion); + UserDO userDO = userRepository.findById(cmd.getManagerId()); + existingRegion.setManagerName(userDO.getName()); + existingRegion.setManagerId(userDO.getId()); + existingRegion.setDepartmentId(userDO.getDepartmentId()); + + DeviceRegionDO regionInfo = deviceRegionRepository.findRegionById(cmd.getFireRegionId()); + existingRegion.setFireRegionCode(regionInfo.getFireRegionCode()); + if (ObjectUtil.isEmpty(cmd.getRegionConfigId())){ + existingRegion.setRegionConfigId(UuidUtil.get32UUID()); + deviceRegionGateway.add(existingRegion); + } else { + deviceRegionRepository.updateByRegionConfigId(BeanUtil.copyProperties(existingRegion, DeviceRegionDO.class)); } } } diff --git a/web-app/src/main/java/com/zcloud/command/SensorDeviceUpdateExe.java b/web-app/src/main/java/com/zcloud/command/SensorDeviceUpdateExe.java index 000a737..fb93a9e 100644 --- a/web-app/src/main/java/com/zcloud/command/SensorDeviceUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/command/SensorDeviceUpdateExe.java @@ -3,6 +3,7 @@ package com.zcloud.command; import com.alibaba.cola.exception.BizException; import com.zcloud.domain.gateway.SensorDeviceGateway; import com.zcloud.domain.model.SensorDeviceE; +import com.zcloud.dto.SensorDeviceLocationCmd; import com.zcloud.dto.SensorDeviceUpdateCmd; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; @@ -26,11 +27,22 @@ public class SensorDeviceUpdateExe { public boolean execute(SensorDeviceUpdateCmd cmd) { SensorDeviceE entity = new SensorDeviceE(); BeanUtils.copyProperties(cmd, entity); - + boolean res = sensorDeviceGateway.update(entity); if (!res) { throw new BizException("修改失败"); } return true; } -} \ No newline at end of file + @Transactional(rollbackFor = Exception.class) + public boolean locationExecute(SensorDeviceLocationCmd cmd) { + SensorDeviceE entity = new SensorDeviceE(); + BeanUtils.copyProperties(cmd, entity); + + boolean res = sensorDeviceGateway.update(entity); + if (!res) { + throw new BizException("修改失败"); + } + return true; + } +} diff --git a/web-app/src/main/java/com/zcloud/command/query/AlarmRecordQueryExe.java b/web-app/src/main/java/com/zcloud/command/query/AlarmRecordQueryExe.java index cdd3210..39d88eb 100644 --- a/web-app/src/main/java/com/zcloud/command/query/AlarmRecordQueryExe.java +++ b/web-app/src/main/java/com/zcloud/command/query/AlarmRecordQueryExe.java @@ -7,6 +7,7 @@ import com.alibaba.cola.dto.SingleResponse; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jjb.saas.framework.auth.utils.AuthContext; import com.zcloud.dto.AlarmRecordPageQry; +import com.zcloud.dto.AlarmRecordSensorPageQry; import com.zcloud.dto.clientobject.AlarmRecordCO; import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.persistence.dataobject.AlarmRecordDO; @@ -47,6 +48,14 @@ public class AlarmRecordQueryExe { return PageResponse.of(alarmRecordCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } + public PageResponse listBySensorDevice(AlarmRecordSensorPageQry qry) { + Map params = PageQueryHelper.toHashMap(qry); + params.put("tenantId", AuthContext.getTenantId()); + PageResponse pageResponse = alarmRecordRepository.listBySensorDevice(params); + List alarmRecordCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmRecordCO.class); + return PageResponse.of(alarmRecordCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + public SingleResponse getById(Long id) { AlarmRecordDO d = alarmRecordRepository.detailView(id); if (d == null || "TRUE".equals(d.getDeleteEnum())) { diff --git a/web-app/src/main/java/com/zcloud/command/query/AppAlarmDisposeQueryExe.java b/web-app/src/main/java/com/zcloud/command/query/AppAlarmDisposeQueryExe.java index 74d3918..8f598cb 100644 --- a/web-app/src/main/java/com/zcloud/command/query/AppAlarmDisposeQueryExe.java +++ b/web-app/src/main/java/com/zcloud/command/query/AppAlarmDisposeQueryExe.java @@ -47,7 +47,6 @@ public class AppAlarmDisposeQueryExe { */ public PageResponse execute(AppAlarmDisposePageQry qry) { Map params = PageQueryHelper.toHashMap(qry); - params.put("tenantId", AuthContext.getTenantId()); params.put("disposeUserId", AuthContext.getUserId()); PageResponse pageResponse = alarmRecordRepository.appDisposeListPage(params); List alarmRecordCOS = alarmRecordCoConvertor.converDOsToCOs(pageResponse.getData()); diff --git a/web-app/src/main/java/com/zcloud/command/query/DeviceRegionQueryExe.java b/web-app/src/main/java/com/zcloud/command/query/DeviceRegionQueryExe.java index 2b532bc..0b6dcf9 100644 --- a/web-app/src/main/java/com/zcloud/command/query/DeviceRegionQueryExe.java +++ b/web-app/src/main/java/com/zcloud/command/query/DeviceRegionQueryExe.java @@ -53,16 +53,17 @@ public class DeviceRegionQueryExe { return PageResponse.of(deviceRegionCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } - public SingleResponse getById(Long id) { - DeviceRegionDO d = deviceRegionRepository.getById(id); + public SingleResponse getById(String fireRegionId) { + DeviceRegionDO d = deviceRegionRepository.findRegionById(fireRegionId); if (d == null || "TRUE".equals(d.getDeleteEnum())) { return SingleResponse.buildFailure("记录不存在或已被删除"); } - + List regionSensorRelList = regionSensorRelRepository.listByFireRegionId(fireRegionId); DeviceRegionCO co = new DeviceRegionCO(); - BeanUtils.copyProperties(d, co); - fillBindSensorInfo(Collections.singletonList(co), true); - fillDisplayFields(Collections.singletonList(co)); + BeanUtil.copyProperties(d, co); + + + co.setBoundSensors(BeanUtil.copyToList(regionSensorRelList, SensorDeviceCO.class)); return SingleResponse.of(co); } @@ -80,43 +81,43 @@ public class DeviceRegionQueryExe { } LambdaQueryWrapper relWrapper = new LambdaQueryWrapper<>(); - relWrapper.in(RegionSensorRelDO::getRegionConfigId, regionIds) - .eq(RegionSensorRelDO::getDeleteEnum, "FALSE"); - List relList = regionSensorRelRepository.list(relWrapper); - - Map> relMap = relList.stream() - .collect(Collectors.groupingBy(RegionSensorRelDO::getRegionConfigId)); +// relWrapper.in(RegionSensorRelDO::getRegionConfigId, regionIds) +// .eq(RegionSensorRelDO::getDeleteEnum, "FALSE"); +// List relList = regionSensorRelRepository.list(relWrapper); +// +// Map> relMap = relList.stream() +// .collect(Collectors.groupingBy(RegionSensorRelDO::getRegionConfigId)); Map sensorMap = Collections.emptyMap(); - if (includeBoundSensors && !relList.isEmpty()) { - Set sensorIds = relList.stream() - .map(RegionSensorRelDO::getSensorDeviceId) - .filter(ObjectUtil::isNotEmpty) - .collect(Collectors.toSet()); - if (!sensorIds.isEmpty()) { - LambdaQueryWrapper sensorWrapper = new LambdaQueryWrapper<>(); - sensorWrapper.in(SensorDeviceDO::getId, sensorIds) - .eq(SensorDeviceDO::getDeleteEnum, "FALSE"); - sensorMap = sensorDeviceRepository.list(sensorWrapper).stream() - .map(sensor -> BeanUtil.copyProperties(sensor, SensorDeviceCO.class)) - .collect(Collectors.toMap(SensorDeviceCO::getId, sensor -> sensor)); - } - } - - for (DeviceRegionCO deviceRegionCO : deviceRegionCOs) { - List currentRelList = relMap.getOrDefault(deviceRegionCO.getId(), Collections.emptyList()); - deviceRegionCO.setBindSensorCount(currentRelList.size()); - if (!includeBoundSensors) { - continue; - } - - List boundSensors = currentRelList.stream() - .map(RegionSensorRelDO::getSensorDeviceId) - .map(sensorMap::get) - .filter(ObjectUtil::isNotEmpty) - .collect(Collectors.toList()); - deviceRegionCO.setBoundSensors(boundSensors); - } +// if (includeBoundSensors && !relList.isEmpty()) { +// Set sensorIds = relList.stream() +// .map(RegionSensorRelDO::getSensorDeviceId) +// .filter(ObjectUtil::isNotEmpty) +// .collect(Collectors.toSet()); +// if (!sensorIds.isEmpty()) { +// LambdaQueryWrapper sensorWrapper = new LambdaQueryWrapper<>(); +// sensorWrapper.in(SensorDeviceDO::getId, sensorIds) +// .eq(SensorDeviceDO::getDeleteEnum, "FALSE"); +// sensorMap = sensorDeviceRepository.list(sensorWrapper).stream() +// .map(sensor -> BeanUtil.copyProperties(sensor, SensorDeviceCO.class)) +// .collect(Collectors.toMap(SensorDeviceCO::getId, sensor -> sensor)); +// } +// } +// +// for (DeviceRegionCO deviceRegionCO : deviceRegionCOs) { +// List currentRelList = relMap.getOrDefault(deviceRegionCO.getId(), Collections.emptyList()); +// deviceRegionCO.setBindSensorCount(currentRelList.size()); +// if (!includeBoundSensors) { +// continue; +// } +// +// List boundSensors = currentRelList.stream() +// .map(RegionSensorRelDO::getSensorDeviceId) +// .map(sensorMap::get) +// .filter(ObjectUtil::isNotEmpty) +// .collect(Collectors.toList()); +// deviceRegionCO.setBoundSensors(boundSensors); +// } } private void fillDisplayFields(List deviceRegionCOs) { diff --git a/web-app/src/main/java/com/zcloud/service/AlarmDisposeServiceImpl.java b/web-app/src/main/java/com/zcloud/service/AlarmDisposeServiceImpl.java index 1fec699..f2e8088 100644 --- a/web-app/src/main/java/com/zcloud/service/AlarmDisposeServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/service/AlarmDisposeServiceImpl.java @@ -1,6 +1,7 @@ package com.zcloud.service; import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.Response; import com.alibaba.cola.dto.SingleResponse; import com.zcloud.api.AlarmDisposeServiceI; import com.zcloud.command.AlarmDisposeAssignExe; @@ -39,8 +40,7 @@ public class AlarmDisposeServiceImpl implements AlarmDisposeServiceI { @Override public SingleResponse assign(AlarmDisposeAssignCmd cmd) { - alarmDisposeAssignExe.execute(cmd); - return SingleResponse.buildSuccess(); + return alarmDisposeAssignExe.execute(cmd); } @Override diff --git a/web-app/src/main/java/com/zcloud/service/AlarmRecordServiceImpl.java b/web-app/src/main/java/com/zcloud/service/AlarmRecordServiceImpl.java index 41a534a..25e2024 100644 --- a/web-app/src/main/java/com/zcloud/service/AlarmRecordServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/service/AlarmRecordServiceImpl.java @@ -8,6 +8,7 @@ import com.zcloud.command.query.AlarmRecordQueryExe; import com.zcloud.command.query.AppAlarmDisposeQueryExe; import com.zcloud.command.query.AppAlarmRecordQueryExe; import com.zcloud.dto.AlarmRecordPageQry; +import com.zcloud.dto.AlarmRecordSensorPageQry; import com.zcloud.dto.AppAlarmDisposePageQry; import com.zcloud.dto.AppAlarmRecordPageQry; import com.zcloud.dto.clientobject.AlarmRecordCO; @@ -27,6 +28,11 @@ public class AlarmRecordServiceImpl implements AlarmRecordServiceI { return alarmRecordQueryExe.execute(qry); } + @Override + public PageResponse listBySensorDevice(AlarmRecordSensorPageQry qry) { + return alarmRecordQueryExe.listBySensorDevice(qry); + } + @Override public SingleResponse info(Long id) { return alarmRecordQueryExe.getById(id); diff --git a/web-app/src/main/java/com/zcloud/service/DeviceRegionServiceImpl.java b/web-app/src/main/java/com/zcloud/service/DeviceRegionServiceImpl.java index 0f83b02..3a447bd 100644 --- a/web-app/src/main/java/com/zcloud/service/DeviceRegionServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/service/DeviceRegionServiceImpl.java @@ -22,7 +22,7 @@ import org.springframework.stereotype.Service; @Service @AllArgsConstructor public class DeviceRegionServiceImpl implements DeviceRegionServiceI { - + private final DeviceRegionAddExe deviceRegionAddExe; private final DeviceRegionUpdateExe deviceRegionUpdateExe; private final DeviceRegionQueryExe deviceRegionQueryExe; @@ -71,7 +71,7 @@ public class DeviceRegionServiceImpl implements DeviceRegionServiceI { } @Override - public SingleResponse info(Long id) { - return deviceRegionQueryExe.getById(id); + public SingleResponse info(String fireRegionId) { + return deviceRegionQueryExe.getById(fireRegionId); } } diff --git a/web-app/src/main/java/com/zcloud/service/SensorDeviceServiceImpl.java b/web-app/src/main/java/com/zcloud/service/SensorDeviceServiceImpl.java index 4adf904..c48d85d 100644 --- a/web-app/src/main/java/com/zcloud/service/SensorDeviceServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/service/SensorDeviceServiceImpl.java @@ -9,10 +9,7 @@ import com.zcloud.command.SensorDeviceThresholdExe; import com.zcloud.command.SensorDeviceUpdateExe; import com.zcloud.command.query.SensorDeviceQueryExe; import com.zcloud.command.SensorDeviceAddExe; -import com.zcloud.dto.SensorDeviceAddCmd; -import com.zcloud.dto.SensorDevicePageQry; -import com.zcloud.dto.SensorDeviceThresholdCmd; -import com.zcloud.dto.SensorDeviceUpdateCmd; +import com.zcloud.dto.*; import com.zcloud.dto.clientobject.SensorDeviceCO; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -20,7 +17,7 @@ import org.springframework.stereotype.Service; @Service @AllArgsConstructor public class SensorDeviceServiceImpl implements SensorDeviceServiceI { - + private final SensorDeviceAddExe sensorDeviceAddExe; private final SensorDeviceUpdateExe sensorDeviceUpdateExe; private final SensorDeviceQueryExe sensorDeviceQueryExe; @@ -44,6 +41,11 @@ public class SensorDeviceServiceImpl implements SensorDeviceServiceI { sensorDeviceUpdateExe.execute(cmd); } + @Override + public void location(SensorDeviceLocationCmd cmd) { + sensorDeviceUpdateExe.locationExecute(cmd); + } + @Override public void updateStatus(Long id, String status) { sensorDeviceStatusExe.execute(id, status); @@ -63,4 +65,5 @@ public class SensorDeviceServiceImpl implements SensorDeviceServiceI { public SingleResponse info(Long id) { return sensorDeviceQueryExe.getById(id); } -} \ No newline at end of file + +} diff --git a/web-client/src/main/java/com/zcloud/api/AlarmRecordServiceI.java b/web-client/src/main/java/com/zcloud/api/AlarmRecordServiceI.java index 9595446..8290bbf 100644 --- a/web-client/src/main/java/com/zcloud/api/AlarmRecordServiceI.java +++ b/web-client/src/main/java/com/zcloud/api/AlarmRecordServiceI.java @@ -3,6 +3,7 @@ package com.zcloud.api; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.SingleResponse; import com.zcloud.dto.AlarmRecordPageQry; +import com.zcloud.dto.AlarmRecordSensorPageQry; import com.zcloud.dto.AppAlarmDisposePageQry; import com.zcloud.dto.AppAlarmRecordPageQry; import com.zcloud.dto.clientobject.AlarmRecordCO; @@ -21,6 +22,8 @@ public interface AlarmRecordServiceI { */ PageResponse list(AlarmRecordPageQry qry); + PageResponse listBySensorDevice(AlarmRecordSensorPageQry qry); + /** * 报警详情 * @param id diff --git a/web-client/src/main/java/com/zcloud/api/DeviceRegionServiceI.java b/web-client/src/main/java/com/zcloud/api/DeviceRegionServiceI.java index 0146d59..88d4eb6 100644 --- a/web-client/src/main/java/com/zcloud/api/DeviceRegionServiceI.java +++ b/web-client/src/main/java/com/zcloud/api/DeviceRegionServiceI.java @@ -63,5 +63,5 @@ public interface DeviceRegionServiceI { * @param id * @return */ - SingleResponse info(Long id); + SingleResponse info(String fireRegionId); } diff --git a/web-client/src/main/java/com/zcloud/api/SensorDeviceServiceI.java b/web-client/src/main/java/com/zcloud/api/SensorDeviceServiceI.java index 8ee8f8a..b98f327 100644 --- a/web-client/src/main/java/com/zcloud/api/SensorDeviceServiceI.java +++ b/web-client/src/main/java/com/zcloud/api/SensorDeviceServiceI.java @@ -2,10 +2,7 @@ package com.zcloud.api; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.SingleResponse; -import com.zcloud.dto.SensorDeviceAddCmd; -import com.zcloud.dto.SensorDevicePageQry; -import com.zcloud.dto.SensorDeviceUpdateCmd; -import com.zcloud.dto.SensorDeviceThresholdCmd; +import com.zcloud.dto.*; import com.zcloud.dto.clientobject.SensorDeviceCO; /** @@ -35,6 +32,12 @@ public interface SensorDeviceServiceI { */ void edit(SensorDeviceUpdateCmd cmd); + /** + * 修改 + * @param cmd + */ + void location(SensorDeviceLocationCmd cmd); + /** * 状态切换 * @param id @@ -60,4 +63,4 @@ public interface SensorDeviceServiceI { * @return */ SingleResponse info(Long id); -} \ No newline at end of file +} diff --git a/web-client/src/main/java/com/zcloud/dto/AlarmDisposeAssignCmd.java b/web-client/src/main/java/com/zcloud/dto/AlarmDisposeAssignCmd.java index bdeeb2e..96b1045 100644 --- a/web-client/src/main/java/com/zcloud/dto/AlarmDisposeAssignCmd.java +++ b/web-client/src/main/java/com/zcloud/dto/AlarmDisposeAssignCmd.java @@ -7,6 +7,8 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.AllArgsConstructor; +import java.util.List; + /** * AlarmDisposeAssignCmd - 报警处置命令 * @Author wangyan @@ -17,22 +19,24 @@ import lombok.AllArgsConstructor; @AllArgsConstructor @EqualsAndHashCode(callSuper = true) public class AlarmDisposeAssignCmd extends Command { - - @ApiModelProperty(value = "报警主键ID", name = "id", required = true) - private Long id; - + + @ApiModelProperty(value = "报警主键IDs", name = "ids", required = true) + private List ids; + @ApiModelProperty(value = "处置人ID", name = "disposeUserId", required = true) private Long disposeUserId; - + @ApiModelProperty(value = "报警级别", name = "alarmLevel") private String alarmLevel; - + @ApiModelProperty(value = "报警确认", name = "status 确认报警-20 误报-40") + private Integer status; + + @ApiModelProperty(value = "报警级别", name = "alarmLevel") + private String alarmLevelName; + @ApiModelProperty(value = "报警类型", name = "alarmType") private String alarmType; - - @ApiModelProperty(value = "租户ID", name = "tenantId") - private Long tenantId; - - @ApiModelProperty(value = "组织ID", name = "orgId") - private Long orgId; -} \ No newline at end of file + @ApiModelProperty(value = "报警类型", name = "alarmType") + private String alarmTypeName; + +} diff --git a/web-client/src/main/java/com/zcloud/dto/AlarmRecordSensorPageQry.java b/web-client/src/main/java/com/zcloud/dto/AlarmRecordSensorPageQry.java new file mode 100644 index 0000000..58816ff --- /dev/null +++ b/web-client/src/main/java/com/zcloud/dto/AlarmRecordSensorPageQry.java @@ -0,0 +1,21 @@ +package com.zcloud.dto; + +import com.alibaba.cola.dto.PageQuery; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * AlarmRecordSensorPageQry - 按设备查询报警记录 + */ +@Data +public class AlarmRecordSensorPageQry extends PageQuery { + + @ApiModelProperty(value = "设备业务ID") + private String sensorDeviceId; + + @ApiModelProperty(value = "报警时间开始") + private String alarmTimeStart; + + @ApiModelProperty(value = "报警时间结束") + private String alarmTimeEnd; +} diff --git a/web-client/src/main/java/com/zcloud/dto/BindSensorCmd.java b/web-client/src/main/java/com/zcloud/dto/BindSensorCmd.java index 2a6c1e5..4b6d6e6 100644 --- a/web-client/src/main/java/com/zcloud/dto/BindSensorCmd.java +++ b/web-client/src/main/java/com/zcloud/dto/BindSensorCmd.java @@ -7,6 +7,10 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.AllArgsConstructor; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + /** * BindSensorCmd - 绑定传感器命令 * @Author wangyan @@ -18,21 +22,13 @@ import lombok.AllArgsConstructor; @EqualsAndHashCode(callSuper = true) public class BindSensorCmd extends Command { - @ApiModelProperty(value = "区域配置主键ID", name = "regionConfigId", required = true) - private Long regionConfigId; @ApiModelProperty(value = "外部消防区域ID", name = "fireRegionId") + @NotEmpty(message = "外部消防区域ID不能为空") private String fireRegionId; @ApiModelProperty(value = "传感器设备ID", name = "sensorDeviceId", required = true) - private String sensorDeviceId; - - @ApiModelProperty(value = "传感器编码快照", name = "sensorCode") - private String sensorCode; - - @ApiModelProperty(value = "租户ID", name = "tenantId") - private Long tenantId; - - @ApiModelProperty(value = "组织ID", name = "orgId") - private Long orgId; -} \ No newline at end of file + @NotNull(message = "传感器设备ID不能为空") + private List deviceIdList; + +} diff --git a/web-client/src/main/java/com/zcloud/dto/ManagerCmd.java b/web-client/src/main/java/com/zcloud/dto/ManagerCmd.java index 2811d6b..d28f558 100644 --- a/web-client/src/main/java/com/zcloud/dto/ManagerCmd.java +++ b/web-client/src/main/java/com/zcloud/dto/ManagerCmd.java @@ -7,6 +7,9 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.AllArgsConstructor; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + /** * ManagerCmd - 管理员命令 * @Author wangyan @@ -17,16 +20,12 @@ import lombok.AllArgsConstructor; @AllArgsConstructor @EqualsAndHashCode(callSuper = true) public class ManagerCmd extends Command { - - @ApiModelProperty(value = "区域配置主键ID", name = "id", required = true) - private Long id; - + @ApiModelProperty(value = "区域配置主键ID", name = "regionConfigId", required = true) + private String regionConfigId; + @ApiModelProperty(value = "消防区域ID", name = "fireRegionId", required = true) + @NotEmpty(message = "消防区域ID不能为空") + private String fireRegionId; @ApiModelProperty(value = "负责人ID", name = "managerId", required = true) + @NotNull(message = "负责人ID不能为空") private Long managerId; - - @ApiModelProperty(value = "负责人姓名", name = "managerName") - private String managerName; - - @ApiModelProperty(value = "负责部门ID", name = "departmentId") - private Long departmentId; } diff --git a/web-client/src/main/java/com/zcloud/dto/SensorDeviceAddCmd.java b/web-client/src/main/java/com/zcloud/dto/SensorDeviceAddCmd.java index 347865e..b47428b 100644 --- a/web-client/src/main/java/com/zcloud/dto/SensorDeviceAddCmd.java +++ b/web-client/src/main/java/com/zcloud/dto/SensorDeviceAddCmd.java @@ -1,12 +1,17 @@ package com.zcloud.dto; import com.alibaba.cola.dto.Command; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.AllArgsConstructor; +import javax.validation.constraints.NotEmpty; +import java.time.LocalDate; +import java.time.LocalDateTime; + /** * SensorDeviceAddCmd - 传感器设备命令 * @Author wangyan @@ -17,70 +22,42 @@ import lombok.AllArgsConstructor; @AllArgsConstructor @EqualsAndHashCode(callSuper = true) public class SensorDeviceAddCmd extends Command { - + @ApiModelProperty(value = "传感器编码", name = "sensorCode", required = true) + @NotEmpty(message = "传感器编码不能为空") private String sensorCode; - + @ApiModelProperty(value = "传感器名称", name = "sensorName", required = true) + @NotEmpty(message = "传感器名称不能为空") private String sensorName; - + @ApiModelProperty(value = "传感器类型主键ID", name = "sensorTypeId", required = true) + @NotEmpty(message = "传感器类型主键ID不能为空") private String sensorTypeId; - + @ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)", name = "sensorAttr", required = true) + @NotEmpty(message = "传感器属性快照不能为空") private String sensorAttr; - + + + @ApiModelProperty(value = "传感器状态", name = "sensorStatus") + @NotEmpty(message = "传感器状态不能为空") + private String sensorStatus; + + @ApiModelProperty(value = "传感器状态名称", name = "sensorStatusName") + @NotEmpty(message = "传感器状态名称不能为空") + private String sensorStatusName; + + @ApiModelProperty(value = "传感器状态名称", name = "sensorStatusName") + @NotEmpty(message = "传感器状态名称不能为空") + private String thresholdFlag; + @ApiModelProperty(value = "安装位置", name = "installPosition") private String installPosition; - @ApiModelProperty(value = "经度", name = "longitude") - private String longitude; - - @ApiModelProperty(value = "纬度", name = "latitude") - private String latitude; - - @ApiModelProperty(value = "传感器状态", name = "sensorStatus") - private String sensorStatus; - - @ApiModelProperty(value = "是否定位(0否1是)", name = "positioningFlag") - private Integer positioningFlag; - - @ApiModelProperty(value = "报警开关(1开0关)", name = "alarmSwitch") - private Integer alarmSwitch; - - @ApiModelProperty(value = "是否阈值设定(0否1是)", name = "thresholdFlag") - private Integer thresholdFlag; - - @ApiModelProperty(value = "单位", name = "unitName") - private String unitName; - - @ApiModelProperty(value = "量程下限", name = "rangeMin") - private String rangeMin; - - @ApiModelProperty(value = "量程上限", name = "rangeMax") - private String rangeMax; - - @ApiModelProperty(value = "低低报阈值", name = "thresholdLowLow") - private String thresholdLowLow; - - @ApiModelProperty(value = "低报阈值", name = "thresholdLow") - private String thresholdLow; - - @ApiModelProperty(value = "高报阈值", name = "thresholdHigh") - private String thresholdHigh; - - @ApiModelProperty(value = "高高报阈值", name = "thresholdHighHigh") - private String thresholdHighHigh; - - @ApiModelProperty(value = "连续报警确认次数(默认3次)", name = "continuousAlarmCount") - private Integer continuousAlarmCount; - @ApiModelProperty(value = "出厂日期", name = "factoryDate") - private String factoryDate; - - @ApiModelProperty(value = "企业侧源编码", name = "enterpriseSourceCode") - private String enterpriseSourceCode; - - @ApiModelProperty(value = "备注", name = "remarks") - private String remarks; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate factoryDate; + + } diff --git a/web-client/src/main/java/com/zcloud/dto/SensorDeviceLocationCmd.java b/web-client/src/main/java/com/zcloud/dto/SensorDeviceLocationCmd.java new file mode 100644 index 0000000..be6fb6d --- /dev/null +++ b/web-client/src/main/java/com/zcloud/dto/SensorDeviceLocationCmd.java @@ -0,0 +1,35 @@ +package com.zcloud.dto; + +import com.alibaba.cola.dto.Command; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.time.LocalDate; + +/** + * SensorDeviceUpdateCmd - 传感器设备命令 + * @Author wangyan + * @Date 2026-04-03 00:00:00 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SensorDeviceLocationCmd extends Command { + + @ApiModelProperty(value = "主键ID", name = "id", required = true) + @NotNull(message = "主键ID不能为空") + private Long id; + @ApiModelProperty(value = "经度", name = "longitude", required = true) + @NotEmpty(message = "经度不能为空") + private String longitude; + @ApiModelProperty(value = "纬度", name = "latitude", required = true) + @NotEmpty(message = "纬度不能为空") + private String latitude; +} diff --git a/web-client/src/main/java/com/zcloud/dto/SensorDevicePageQry.java b/web-client/src/main/java/com/zcloud/dto/SensorDevicePageQry.java index 48ab69a..16a0543 100644 --- a/web-client/src/main/java/com/zcloud/dto/SensorDevicePageQry.java +++ b/web-client/src/main/java/com/zcloud/dto/SensorDevicePageQry.java @@ -11,16 +11,16 @@ import lombok.Data; */ @Data public class SensorDevicePageQry extends PageQuery { - + @ApiModelProperty(value = "传感器名称") private String sensorName; - + @ApiModelProperty(value = "传感器类型ID") private String sensorTypeId; - + @ApiModelProperty(value = "传感器状态") private String sensorStatus; - - @ApiModelProperty(value = "是否阈值设定(0否1是)") + + @ApiModelProperty(value = "是通过系统设定报警 1-是 0-否") private Integer thresholdFlag; } diff --git a/web-client/src/main/java/com/zcloud/dto/SensorDeviceUpdateCmd.java b/web-client/src/main/java/com/zcloud/dto/SensorDeviceUpdateCmd.java index 43b8f33..485ecf2 100644 --- a/web-client/src/main/java/com/zcloud/dto/SensorDeviceUpdateCmd.java +++ b/web-client/src/main/java/com/zcloud/dto/SensorDeviceUpdateCmd.java @@ -1,12 +1,19 @@ package com.zcloud.dto; import com.alibaba.cola.dto.Command; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.AllArgsConstructor; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + /** * SensorDeviceUpdateCmd - 传感器设备命令 * @Author wangyan @@ -17,61 +24,59 @@ import lombok.AllArgsConstructor; @AllArgsConstructor @EqualsAndHashCode(callSuper = true) public class SensorDeviceUpdateCmd extends Command { - + @ApiModelProperty(value = "主键ID", name = "id", required = true) + @NotNull(message = "主键ID不能为空") private Long id; - - @ApiModelProperty(value = "传感器编码", name = "sensorCode") + + @ApiModelProperty(value = "传感器编码", name = "sensorCode", required = true) private String sensorCode; - - @ApiModelProperty(value = "传感器名称", name = "sensorName") + + @ApiModelProperty(value = "传感器名称", name = "sensorName", required = true) private String sensorName; - - @ApiModelProperty(value = "传感器类型主键ID", name = "sensorTypeId") + + @ApiModelProperty(value = "传感器类型主键ID", name = "sensorTypeId", required = true) private String sensorTypeId; - - @ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)", name = "sensorAttr") + + @ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)", name = "sensorAttr", required = true) private String sensorAttr; - + + + @ApiModelProperty(value = "传感器状态", name = "sensorStatus") + private String sensorStatus; + + @ApiModelProperty(value = "传感器状态名称", name = "sensorStatusName") + private String sensorStatusName; + + @ApiModelProperty(value = "传感器状态名称", name = "sensorStatusName") + private String thresholdFlag; + @ApiModelProperty(value = "安装位置", name = "installPosition") private String installPosition; - @ApiModelProperty(value = "经度", name = "longitude") - private String longitude; - - @ApiModelProperty(value = "纬度", name = "latitude") - private String latitude; - - @ApiModelProperty(value = "传感器状态", name = "sensorStatus") - private String sensorStatus; - - @ApiModelProperty(value = "是否定位(0否1是)", name = "positioningFlag") - private Integer positioningFlag; - - @ApiModelProperty(value = "报警开关(1开0关)", name = "alarmSwitch") - private Integer alarmSwitch; - - @ApiModelProperty(value = "是否阈值设定(0否1是)", name = "thresholdFlag") - private Integer thresholdFlag; - - @ApiModelProperty(value = "单位", name = "unitName") - private String unitName; - - @ApiModelProperty(value = "量程下限", name = "rangeMin") - private String rangeMin; - - @ApiModelProperty(value = "量程上限", name = "rangeMax") - private String rangeMax; - - @ApiModelProperty(value = "连续报警确认次数(默认3次)", name = "continuousAlarmCount") - private Integer continuousAlarmCount; - @ApiModelProperty(value = "出厂日期", name = "factoryDate") - private String factoryDate; - - @ApiModelProperty(value = "企业侧源编码", name = "enterpriseSourceCode") - private String enterpriseSourceCode; - - @ApiModelProperty(value = "备注", name = "remarks") - private String remarks; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private LocalDate factoryDate; + + @ApiModelProperty(value = "经度", name = "longitude", required = true) + private String longitude; + @ApiModelProperty(value = "纬度", name = "latitude", required = true) + private String latitude; + @ApiModelProperty(value = "报警开关", name = "alarmSwitch") + private Integer alarmSwitch; + + @ApiModelProperty(value = "计量单位", name = "unitName") + private String unitName; + @ApiModelProperty(value = "量程下限", name = "rangeMin") + private BigDecimal rangeMin; + @ApiModelProperty(value = "量程上限", name = "rangeMax") + private BigDecimal rangeMax; + @ApiModelProperty(value = "低低报阈值", name = "thresholdLowLow") + private BigDecimal thresholdLowLow; + @ApiModelProperty(value = "低报阈值", name = "thresholdLow") + private BigDecimal thresholdLow; + @ApiModelProperty(value = "高报阈值", name = "thresholdHigh") + private BigDecimal thresholdHigh; + @ApiModelProperty(value = "高高报阈值", name = "thresholdHighHigh") + private BigDecimal thresholdHighHigh; } diff --git a/web-client/src/main/java/com/zcloud/dto/clientobject/AlarmRecordCO.java b/web-client/src/main/java/com/zcloud/dto/clientobject/AlarmRecordCO.java index 5f1f0a8..19a16da 100644 --- a/web-client/src/main/java/com/zcloud/dto/clientobject/AlarmRecordCO.java +++ b/web-client/src/main/java/com/zcloud/dto/clientobject/AlarmRecordCO.java @@ -59,6 +59,13 @@ public class AlarmRecordCO extends ClientObject { @ApiModelProperty(value = "当前负责人姓名") private String managerName; + @ApiModelProperty(value = "纬度") + private String latitude; + + @ApiModelProperty(value = "经度") + private String longitude; + + @ApiModelProperty(value = "报警级别") private String alarmLevel; @@ -133,7 +140,12 @@ public class AlarmRecordCO extends ClientObject { private BigDecimal thresholdHigh; @ApiModelProperty(value = "高高报阈值") private BigDecimal thresholdHighHigh; - + @ApiModelProperty(value = "传感器属性") + private String sensorAttr; + @ApiModelProperty(value = "传感器类型ID") + private String sensorTypeId; + @ApiModelProperty(value = "传感器类型名称") + private String sensorTypeName; @ApiModelProperty(value = "备注") private String remarks; diff --git a/web-client/src/main/java/com/zcloud/dto/clientobject/DeviceRegionCO.java b/web-client/src/main/java/com/zcloud/dto/clientobject/DeviceRegionCO.java index 39e6c61..d7c60aa 100644 --- a/web-client/src/main/java/com/zcloud/dto/clientobject/DeviceRegionCO.java +++ b/web-client/src/main/java/com/zcloud/dto/clientobject/DeviceRegionCO.java @@ -1,6 +1,7 @@ package com.zcloud.dto.clientobject; import com.alibaba.cola.dto.ClientObject; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -15,28 +16,28 @@ import java.util.List; */ @Data public class DeviceRegionCO extends ClientObject { - + @ApiModelProperty(value = "主键ID") private Long id; - + @ApiModelProperty(value = "业务ID(32位)") private String regionConfigId; - + @ApiModelProperty(value = "外部消防区域主键") - private Long fireRegionId; + private String fireRegionId; @ApiModelProperty(value = "外部消防区域名称") private String fireRegionName; - + @ApiModelProperty(value = "外部消防区域编码") private String fireRegionCode; - + @ApiModelProperty(value = "负责部门ID") private Long departmentId; @ApiModelProperty(value = "负责部门名称") private String departmentName; - + @ApiModelProperty(value = "负责人ID") private Long managerId; @@ -48,36 +49,36 @@ public class DeviceRegionCO extends ClientObject { @ApiModelProperty(value = "已绑定传感器列表") private List boundSensors; - + @ApiModelProperty(value = "状态 1启用0停用") private Integer status; - + @ApiModelProperty(value = "备注") private String remarks; - + @ApiModelProperty(value = "创建人ID") private Long createId; - + @ApiModelProperty(value = "创建人姓名") private String createName; - + @ApiModelProperty(value = "创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; - + @ApiModelProperty(value = "更新人ID") private Long updateId; - + @ApiModelProperty(value = "更新人姓名") private String updateName; - + @ApiModelProperty(value = "更新时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; - + @ApiModelProperty(value = "租户ID") private Long tenantId; - + @ApiModelProperty(value = "组织ID") private Long orgId; } diff --git a/web-client/src/main/java/com/zcloud/dto/clientobject/SensorDeviceCO.java b/web-client/src/main/java/com/zcloud/dto/clientobject/SensorDeviceCO.java index 72bec90..4bd64ff 100644 --- a/web-client/src/main/java/com/zcloud/dto/clientobject/SensorDeviceCO.java +++ b/web-client/src/main/java/com/zcloud/dto/clientobject/SensorDeviceCO.java @@ -5,6 +5,8 @@ import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.Date; /** @@ -14,28 +16,28 @@ import java.util.Date; */ @Data public class SensorDeviceCO extends ClientObject { - + @ApiModelProperty(value = "主键ID") private Long id; - + @ApiModelProperty(value = "传感器设备业务ID") private String sensorDeviceId; - + @ApiModelProperty(value = "传感器编码") private String sensorCode; - + @ApiModelProperty(value = "传感器名称") private String sensorName; - + @ApiModelProperty(value = "传感器类型主键ID") private String sensorTypeId; @ApiModelProperty(value = "传感器类型名称") private String sensorTypeName; - + @ApiModelProperty(value = "传感器属性快照(NUMBER/SWITCH)") private String sensorAttr; - + @ApiModelProperty(value = "安装位置") private String installPosition; @@ -44,75 +46,78 @@ public class SensorDeviceCO extends ClientObject { @ApiModelProperty(value = "纬度") private String latitude; - + @ApiModelProperty(value = "传感器状态") private String sensorStatus; - + + @ApiModelProperty(value = "传感器状态名称") + private String sensorStatusName; + @ApiModelProperty(value = "是否定位(0否1是)") private Integer positioningFlag; - + @ApiModelProperty(value = "报警开关(1开0关)") private Integer alarmSwitch; - - @ApiModelProperty(value = "是否阈值设定(0否1是)") + + @ApiModelProperty(value = "是通过系统设定报警 1-是 0-否") private Integer thresholdFlag; - + @ApiModelProperty(value = "单位") private String unitName; - + @ApiModelProperty(value = "量程下限") private String rangeMin; - + @ApiModelProperty(value = "量程上限") private String rangeMax; - + @ApiModelProperty(value = "低低报阈值") private String thresholdLowLow; - + @ApiModelProperty(value = "低报阈值") private String thresholdLow; - + @ApiModelProperty(value = "高报阈值") private String thresholdHigh; - + @ApiModelProperty(value = "高高报阈值") private String thresholdHighHigh; - + @ApiModelProperty(value = "连续报警确认次数") private Integer continuousAlarmCount; - + @ApiModelProperty(value = "出厂日期") - private String factoryDate; - + private LocalDate factoryDate; + @ApiModelProperty(value = "企业侧源编码") private String enterpriseSourceCode; - + @ApiModelProperty(value = "备注") private String remarks; - + @ApiModelProperty(value = "创建人ID") private Long createId; - + @ApiModelProperty(value = "创建人姓名") private String createName; - + @ApiModelProperty(value = "创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; - + @ApiModelProperty(value = "更新人ID") private Long updateId; - + @ApiModelProperty(value = "更新人姓名") private String updateName; - + @ApiModelProperty(value = "更新时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; - + @ApiModelProperty(value = "租户ID") private Long tenantId; - + @ApiModelProperty(value = "组织ID") private Long orgId; } diff --git a/web-domain/src/main/java/com/zcloud/domain/gateway/RegionSensorRelGateway.java b/web-domain/src/main/java/com/zcloud/domain/gateway/RegionSensorRelGateway.java index dff4d4b..10bf213 100644 --- a/web-domain/src/main/java/com/zcloud/domain/gateway/RegionSensorRelGateway.java +++ b/web-domain/src/main/java/com/zcloud/domain/gateway/RegionSensorRelGateway.java @@ -28,4 +28,9 @@ public interface RegionSensorRelGateway { * 检查传感器是否已绑定 */ Boolean isSensorBound(String sensorDeviceId); -} \ No newline at end of file + + /** + * 根据区域ID删除(软删除) + */ + void removeByRegionId(String regionId); +} diff --git a/web-domain/src/main/java/com/zcloud/domain/model/AlarmRecordE.java b/web-domain/src/main/java/com/zcloud/domain/model/AlarmRecordE.java index 4a874a2..fa0f89c 100644 --- a/web-domain/src/main/java/com/zcloud/domain/model/AlarmRecordE.java +++ b/web-domain/src/main/java/com/zcloud/domain/model/AlarmRecordE.java @@ -1,6 +1,7 @@ package com.zcloud.domain.model; import com.jjb.saas.framework.domain.model.BaseE; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -71,6 +72,16 @@ public class AlarmRecordE extends BaseE { */ private String alarmType; + /** + * 报警级别 + */ + private String alarmLevelName; + + /** + * 报警类型 + */ + private String alarmTypeName; + /** * 阈值类型 HIGH/HIGH_HIGH/LOW/LOW_LOW */ @@ -105,7 +116,9 @@ public class AlarmRecordE extends BaseE { * 当前状态 10待研判/20待处置/30已消警/40误报 */ private Integer status; + private String latitude; + private String longitude; /** * 分配时间 */ diff --git a/web-domain/src/main/java/com/zcloud/domain/model/DeviceRegionE.java b/web-domain/src/main/java/com/zcloud/domain/model/DeviceRegionE.java index 54174a6..614ce6e 100644 --- a/web-domain/src/main/java/com/zcloud/domain/model/DeviceRegionE.java +++ b/web-domain/src/main/java/com/zcloud/domain/model/DeviceRegionE.java @@ -12,12 +12,12 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = true) public class DeviceRegionE extends BaseE { - + /** * 业务ID(32位) */ private String regionConfigId; - + /** * 外部消防区域主键 */ @@ -27,17 +27,17 @@ public class DeviceRegionE extends BaseE { * 外部消防区域名称 */ private String fireRegionName; - + /** * 外部消防区域编码 */ private String fireRegionCode; - + /** * 负责部门ID */ private Long departmentId; - + /** * 负责人ID */ @@ -47,29 +47,10 @@ public class DeviceRegionE extends BaseE { * 负责人姓名 */ private String managerName; - + /** * 状态 1启用0停用 */ private Integer status; - - /** - * 备注 - */ - private String remarks; - - /** - * 删除标识 - */ - private String deleteEnum; - - /** - * 租户ID - */ - private Long tenantId; - - /** - * 组织ID - */ - private Long orgId; + } diff --git a/web-domain/src/main/java/com/zcloud/domain/model/RegionSensorRelE.java b/web-domain/src/main/java/com/zcloud/domain/model/RegionSensorRelE.java index 448349f..e823406 100644 --- a/web-domain/src/main/java/com/zcloud/domain/model/RegionSensorRelE.java +++ b/web-domain/src/main/java/com/zcloud/domain/model/RegionSensorRelE.java @@ -1,9 +1,13 @@ package com.zcloud.domain.model; import com.jjb.saas.framework.domain.model.BaseE; +import com.zcloud.gbscommon.utils.UuidUtil; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.ArrayList; +import java.util.List; + /** * RegionSensorRelE - 区域传感器关系实体 * @Author wangyan @@ -12,16 +16,12 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = true) public class RegionSensorRelE extends BaseE { - + /** * 业务ID(32位) */ private String regionSensorRelId; - -/** - * 区域配置主键ID - */ - private String regionConfigId; + /** * 外部消防区域ID @@ -32,24 +32,32 @@ public class RegionSensorRelE extends BaseE { * 传感器设备ID */ private String sensorDeviceId; - - /** - * 传感器编码快照 - */ - private String sensorCode; - + + /** * 删除标识 */ private String deleteEnum; - + /** * 租户ID */ private Long tenantId; - + /** * 组织ID */ private Long orgId; -} \ No newline at end of file + + public List initList(String fireRegionId, List deviceIdList){ + List list = new ArrayList<>(); + for (String deviceId : deviceIdList) { + RegionSensorRelE regionSensorRelE = new RegionSensorRelE(); + regionSensorRelE.setSensorDeviceId(deviceId); + regionSensorRelE.setFireRegionId(fireRegionId); + regionSensorRelE.setRegionSensorRelId(UuidUtil.get32UUID()); + list.add(regionSensorRelE); + } + return list; + } +} diff --git a/web-domain/src/main/java/com/zcloud/domain/model/SensorDeviceE.java b/web-domain/src/main/java/com/zcloud/domain/model/SensorDeviceE.java index c346221..65e12c8 100644 --- a/web-domain/src/main/java/com/zcloud/domain/model/SensorDeviceE.java +++ b/web-domain/src/main/java/com/zcloud/domain/model/SensorDeviceE.java @@ -4,6 +4,9 @@ import com.jjb.saas.framework.domain.model.BaseE; import lombok.Data; import lombok.EqualsAndHashCode; +import java.time.LocalDate; +import java.time.LocalDateTime; + /** * SensorDeviceE - 传感器设备实体 * @Author wangyan @@ -12,32 +15,32 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = true) public class SensorDeviceE extends BaseE { - + /** * 传感器设备业务ID (生成32位UUID) */ private String sensorDeviceId; - + /** * 传感器编码 */ private String sensorCode; - + /** * 传感器名称 */ private String sensorName; - + /** * 传感器类型主键ID */ private String sensorTypeId; - + /** * 传感器属性快照(NUMBER/SWITCH) */ private String sensorAttr; - + /** * 安装位置 */ @@ -52,92 +55,96 @@ public class SensorDeviceE extends BaseE { * 纬度 */ private String latitude; - + /** * 传感器状态 */ private String sensorStatus; - + /** + * 传感器状态名称 + */ + private String sensorStatusName; + /** * 是否定位(0否1是) */ private Integer positioningFlag; - + /** * 报警开关(1开0关) */ private Integer alarmSwitch; - + /** - * 是否阈值设定(0否1是) + * 是通过系统设定报警 1-是 0-否 */ private Integer thresholdFlag; - + /** * 单位 */ private String unitName; - + /** * 量程下限 */ private String rangeMin; - + /** * 量程上限 */ private String rangeMax; - + /** * 低低报阈值 */ private String thresholdLowLow; - + /** * 低报阈值 */ private String thresholdLow; - + /** * 高报阈值 */ private String thresholdHigh; - + /** * 高高报阈值 */ private String thresholdHighHigh; - + /** * 连续报警确认次数(默认3次) */ private Integer continuousAlarmCount; - + /** * 出厂日期 */ - private String factoryDate; - + private LocalDate factoryDate; + /** * 企业侧源编码(同步映射键) */ private String enterpriseSourceCode; - + /** * 备注 */ private String remarks; - + /** * 删除标识 */ private String deleteEnum; - + /** * 租户ID */ private Long tenantId; - + /** * 组织ID */ diff --git a/web-infrastructure/src/main/java/com/zcloud/gatewayimpl/RegionSensorRelGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/gatewayimpl/RegionSensorRelGatewayImpl.java index 658ad78..449788e 100644 --- a/web-infrastructure/src/main/java/com/zcloud/gatewayimpl/RegionSensorRelGatewayImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/gatewayimpl/RegionSensorRelGatewayImpl.java @@ -1,5 +1,6 @@ package com.zcloud.gatewayimpl; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.zcloud.domain.gateway.RegionSensorRelGateway; import com.zcloud.domain.model.RegionSensorRelE; import com.zcloud.persistence.dataobject.RegionSensorRelDO; @@ -17,7 +18,7 @@ import org.springframework.stereotype.Service; @Service @AllArgsConstructor public class RegionSensorRelGatewayImpl implements RegionSensorRelGateway { - + private final RegionSensorRelRepository regionSensorRelRepository; @Override @@ -59,4 +60,13 @@ public class RegionSensorRelGatewayImpl implements RegionSensorRelGateway { long count = regionSensorRelRepository.count(wrapper); return count > 0; } -} \ No newline at end of file + + @Override + public void removeByRegionId(String regionId) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("fire_region_id", regionId); + updateWrapper.eq("delete_enum", "FALSE"); + updateWrapper.set("delete_enum", "TRUE"); + regionSensorRelRepository.update(updateWrapper); + } +} diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/AlarmRecordDO.java b/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/AlarmRecordDO.java index b96c0e6..3a977b7 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/AlarmRecordDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/AlarmRecordDO.java @@ -78,7 +78,11 @@ public class AlarmRecordDO extends BaseDO { @ApiModelProperty(value = "阈值类型 HIGH/HIGH_HIGH/LOW/LOW_LOW") private String thresholdType; + @ApiModelProperty(value = "纬度") + private String latitude; + @ApiModelProperty(value = "经度") + private String longitude; @ApiModelProperty(value = "告警值") private BigDecimal currentValue; @@ -144,7 +148,15 @@ public class AlarmRecordDO extends BaseDO { @ApiModelProperty(value = "高高报阈值") @TableField(exist = false) private BigDecimal thresholdHighHigh; - + @ApiModelProperty(value = "传感器属性") + @TableField(exist = false) + private String sensorAttr; + @ApiModelProperty(value = "传感器类型ID") + @TableField(exist = false) + private String sensorTypeId; + @ApiModelProperty(value = "传感器类型名称") + @TableField(exist = false) + private String sensorTypeName; diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/DeviceRegionDO.java b/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/DeviceRegionDO.java index 0e5e996..d17a808 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/DeviceRegionDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/DeviceRegionDO.java @@ -21,7 +21,7 @@ public class DeviceRegionDO extends BaseDO { private String regionConfigId; @ApiModelProperty(value = "外部消防区域主键") - private Long fireRegionId; + private String fireRegionId; @TableField(exist = false) @ApiModelProperty(value = "外部消防区域名称") diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/RegionSensorRelDO.java b/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/RegionSensorRelDO.java index 830c5f9..f01c63e 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/RegionSensorRelDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/RegionSensorRelDO.java @@ -1,5 +1,6 @@ package com.zcloud.persistence.dataobject; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.jjb.saas.framework.repository.basedo.BaseDO; import io.swagger.annotations.ApiModelProperty; @@ -19,8 +20,6 @@ public class RegionSensorRelDO extends BaseDO { @ApiModelProperty(value = "业务ID(32位)") private String regionSensorRelId; - @ApiModelProperty(value = "区域配置主键ID") - private String regionConfigId; @ApiModelProperty(value = "外部消防区域ID") private String fireRegionId; @@ -28,7 +27,34 @@ public class RegionSensorRelDO extends BaseDO { @ApiModelProperty(value = "传感器设备ID") private String sensorDeviceId; - @ApiModelProperty(value = "传感器编码快照") +// asd.sensor_device_name AS sensor_name, +// asd.sensor_device_code AS sensor_code, +// asd.sensor_attr AS sensor_attr, +// ast.type_name AS sensor_type_name, +// asd.sensor_status_name as sensor_status_name, +// case when asd.longitude is not null then '是' else '否' end as location_flag + + @ApiModelProperty(value = "传感器名称") + @TableField(exist = false) + private String sensorName; + @ApiModelProperty(value = "传感器编号") + @TableField(exist = false) private String sensorCode; + @ApiModelProperty(value = "传感器属性") + @TableField(exist = false) + private String sensorAttr; + @ApiModelProperty(value = "传感器属性名称") + @TableField(exist = false) + private String sensorAttrName; + @ApiModelProperty(value = "传感器类型名称") + @TableField(exist = false) + private String sensorTypeName; + @ApiModelProperty(value = "传感器状态名称") + @TableField(exist = false) + private String sensorStatusName; + @ApiModelProperty(value = "是否定位") + @TableField(exist = false) + private String locationFlag; + } diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/SensorDeviceDO.java b/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/SensorDeviceDO.java index 5a0e936..d64b12f 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/SensorDeviceDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/SensorDeviceDO.java @@ -8,6 +8,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; /** * SensorDeviceDO - 传感器设备数据对象 @@ -50,13 +52,16 @@ public class SensorDeviceDO extends BaseDO { @ApiModelProperty(value = "传感器状态") private String sensorStatus; + @ApiModelProperty(value = "传感器状态名称") + private String sensorStatusName; + @ApiModelProperty(value = "是否定位(0否1是)") private Integer positioningFlag; @ApiModelProperty(value = "报警开关(1开0关)") private Integer alarmSwitch; - @ApiModelProperty(value = "是否阈值设定(0否1是)") + @ApiModelProperty(value = "是通过系统设定报警 1-是 0-否") private Integer thresholdFlag; @ApiModelProperty(value = "单位") @@ -84,7 +89,7 @@ public class SensorDeviceDO extends BaseDO { private Integer continuousAlarmCount; @ApiModelProperty(value = "出厂日期") - private String factoryDate; + private LocalDate factoryDate; @ApiModelProperty(value = "企业侧源编码") private String enterpriseSourceCode; diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/UserDO.java b/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/UserDO.java index 4faf943..accf9a8 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/UserDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/dataobject/UserDO.java @@ -1,5 +1,6 @@ package com.zcloud.persistence.dataobject; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.jjb.saas.framework.repository.basedo.BaseDO; import io.swagger.annotations.ApiModelProperty; @@ -30,4 +31,7 @@ public class UserDO extends BaseDO { @ApiModelProperty(value = "部门ID") private Long departmentId; + @ApiModelProperty(value = "部门名称") + @TableField(exist = false) + private String departmentName; } diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/mapper/AlarmRecordMapper.java b/web-infrastructure/src/main/java/com/zcloud/persistence/mapper/AlarmRecordMapper.java index 0b7f732..9d19691 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/mapper/AlarmRecordMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/mapper/AlarmRecordMapper.java @@ -18,6 +18,8 @@ public interface AlarmRecordMapper extends BaseMapper { IPage listPage(IPage page, @Param("params") Map params); + IPage listBySensorDevice(IPage page, @Param("params") Map params); + IPage disposeListPage(IPage page, @Param("params") Map params); IPage appListPage(IPage page, @Param("params") Map params); diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/mapper/DeviceRegionMapper.java b/web-infrastructure/src/main/java/com/zcloud/persistence/mapper/DeviceRegionMapper.java index 182752f..045ed35 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/mapper/DeviceRegionMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/mapper/DeviceRegionMapper.java @@ -17,4 +17,6 @@ import java.util.Map; public interface DeviceRegionMapper extends BaseMapper { IPage listPage(IPage page, @Param("params") Map params); + + DeviceRegionDO findRegionById(String fireRegionId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/mapper/RegionSensorRelMapper.java b/web-infrastructure/src/main/java/com/zcloud/persistence/mapper/RegionSensorRelMapper.java index dabd8c0..78367b8 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/mapper/RegionSensorRelMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/mapper/RegionSensorRelMapper.java @@ -4,10 +4,14 @@ import com.zcloud.persistence.dataobject.RegionSensorRelDO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * RegionSensorRelMapper - 区域传感器关系Mapper * @Author wangyan * @Date 2026-04-03 00:00:00 */ @Mapper -public interface RegionSensorRelMapper extends BaseMapper {} \ No newline at end of file +public interface RegionSensorRelMapper extends BaseMapper { + List listByFireRegionId(String regionId); +} diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/mapper/UserMapper.java b/web-infrastructure/src/main/java/com/zcloud/persistence/mapper/UserMapper.java index 221c346..a654603 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/mapper/UserMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/mapper/UserMapper.java @@ -10,4 +10,6 @@ import org.apache.ibatis.annotations.Mapper; * @Date 2026-04-03 00:00:00 */ @Mapper -public interface UserMapper extends BaseMapper {} +public interface UserMapper extends BaseMapper { + UserDO findById(Long id); +} diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/AlarmRecordRepository.java b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/AlarmRecordRepository.java index 1b16968..5ed497e 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/AlarmRecordRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/AlarmRecordRepository.java @@ -15,6 +15,8 @@ public interface AlarmRecordRepository extends BaseRepository { PageResponse listPage(Map params); + PageResponse listBySensorDevice(Map params); + PageResponse disposeListPage(Map params); PageResponse appListPage(Map params); diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/DeviceRegionRepository.java b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/DeviceRegionRepository.java index 9b3e28b..11951ec 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/DeviceRegionRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/DeviceRegionRepository.java @@ -14,4 +14,8 @@ import java.util.Map; public interface DeviceRegionRepository extends BaseRepository { PageResponse listPage(Map params); + + DeviceRegionDO findRegionById(String fireRegionId); + + void updateByRegionConfigId(DeviceRegionDO deviceRegionDO); } diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/RegionSensorRelRepository.java b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/RegionSensorRelRepository.java index 481c7e9..913df5c 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/RegionSensorRelRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/RegionSensorRelRepository.java @@ -3,9 +3,14 @@ package com.zcloud.persistence.repository; import com.zcloud.persistence.dataobject.RegionSensorRelDO; import com.jjb.saas.framework.repository.repo.BaseRepository; +import java.util.List; + /** * RegionSensorRelRepository - 区域传感器关系仓储接口 * @Author wangyan * @Date 2026-04-03 00:00:00 */ -public interface RegionSensorRelRepository extends BaseRepository {} \ No newline at end of file +public interface RegionSensorRelRepository extends BaseRepository { + + List listByFireRegionId(String regionId); +} diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/UserRepository.java b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/UserRepository.java index c714c70..fb79105 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/UserRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/UserRepository.java @@ -8,4 +8,6 @@ import com.zcloud.persistence.dataobject.UserDO; * @Author wangyan * @Date 2026-04-03 00:00:00 */ -public interface UserRepository extends BaseRepository {} +public interface UserRepository extends BaseRepository { + UserDO findById(Long id); +} diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/AlarmRecordRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/AlarmRecordRepositoryImpl.java index c2c8fa5..b1219ce 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/AlarmRecordRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/AlarmRecordRepositoryImpl.java @@ -31,6 +31,13 @@ public class AlarmRecordRepositoryImpl extends BaseRepositoryImpl listBySensorDevice(Map params) { + IPage page = new Query().getPage(params); + IPage result = alarmRecordMapper.listBySensorDevice(page, params); + return PageHelper.pageToResponse(result, result.getRecords()); + } + @Override public PageResponse disposeListPage(Map params) { IPage page = new Query().getPage(params); diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/DeviceRegionRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/DeviceRegionRepositoryImpl.java index ca3936c..e60e894 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/DeviceRegionRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/DeviceRegionRepositoryImpl.java @@ -1,6 +1,7 @@ package com.zcloud.persistence.repository.impl; import com.alibaba.cola.dto.PageResponse; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; @@ -30,4 +31,17 @@ public class DeviceRegionRepositoryImpl extends BaseRepositoryImpl result = deviceRegionMapper.listPage(page, params); return PageHelper.pageToResponse(result, result.getRecords()); } + + @Override + public DeviceRegionDO findRegionById(String fireRegionId) { + return deviceRegionMapper.findRegionById(fireRegionId); + } + + @Override + public void updateByRegionConfigId(DeviceRegionDO deviceRegionDO) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("region_config_id", deviceRegionDO.getRegionConfigId()); + updateWrapper.eq("delete_enum", "FALSE"); + deviceRegionMapper.update(deviceRegionDO, updateWrapper); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/RegionSensorRelRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/RegionSensorRelRepositoryImpl.java index 87eef21..1466ace 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/RegionSensorRelRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/RegionSensorRelRepositoryImpl.java @@ -7,6 +7,8 @@ import com.zcloud.persistence.repository.RegionSensorRelRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; +import java.util.List; + /** * RegionSensorRelRepositoryImpl - 区域传感器关系仓储实现类 * @Author wangyan @@ -14,4 +16,11 @@ import org.springframework.stereotype.Repository; */ @Repository @RequiredArgsConstructor -public class RegionSensorRelRepositoryImpl extends BaseRepositoryImpl implements RegionSensorRelRepository {} +public class RegionSensorRelRepositoryImpl extends BaseRepositoryImpl implements RegionSensorRelRepository { + private final RegionSensorRelMapper regionSensorRelMapper; + @Override + public List listByFireRegionId(String regionId) { + + return regionSensorRelMapper.listByFireRegionId(regionId); + } +} diff --git a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/UserRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/UserRepositoryImpl.java index 33cc9b5..3580fe3 100644 --- a/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/UserRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/persistence/repository/impl/UserRepositoryImpl.java @@ -14,4 +14,10 @@ import org.springframework.stereotype.Repository; */ @Repository @RequiredArgsConstructor -public class UserRepositoryImpl extends BaseRepositoryImpl implements UserRepository {} +public class UserRepositoryImpl extends BaseRepositoryImpl implements UserRepository { + private final UserMapper userMapper; + @Override + public UserDO findById(Long id) { + return userMapper.findById(id); + } +} diff --git a/web-infrastructure/src/main/resources/mapper/AlarmRecordMapper.xml b/web-infrastructure/src/main/resources/mapper/AlarmRecordMapper.xml index 18973e8..cf2d274 100644 --- a/web-infrastructure/src/main/resources/mapper/AlarmRecordMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/AlarmRecordMapper.xml @@ -19,12 +19,18 @@ LEFT JOIN department dep ON ar.department_id = dep.id AND dep.delete_enum = 'FALSE' LEFT JOIN user mgr ON ar.manager_id = mgr.id AND mgr.delete_enum = 'FALSE' LEFT JOIN iot_alarm_sensor_device sd ON ar.sensor_device_id = sd.sensor_device_id AND sd.delete_enum = 'FALSE' + LEFT JOIN user u ON ar.dispose_user_id = u.id + + + + diff --git a/web-infrastructure/src/main/resources/mapper/RegionSensorRelMapper.xml b/web-infrastructure/src/main/resources/mapper/RegionSensorRelMapper.xml new file mode 100644 index 0000000..e75d39f --- /dev/null +++ b/web-infrastructure/src/main/resources/mapper/RegionSensorRelMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/web-infrastructure/src/main/resources/mapper/UserMapper.xml b/web-infrastructure/src/main/resources/mapper/UserMapper.xml new file mode 100644 index 0000000..a4d090a --- /dev/null +++ b/web-infrastructure/src/main/resources/mapper/UserMapper.xml @@ -0,0 +1,16 @@ + + + + + + + +