diff --git a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java index db13d60..229dba3 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java +++ b/dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java @@ -56,6 +56,16 @@ public class BusinessAlertController extends BaseController { } + @Operation(summary ="根据经纬度获取历史预警",description = "根据经纬度获取历史预警") + @GetMapping("/alert/listHandleHistory") + public R> listHandleHistory( + @RequestParam(value = "lng",required = false) String lng, + @RequestParam(value ="lat",required = false) String lat, + @RequestParam("createTime") String createTime) { + return R.ok(businessAlertService.listHandleHistory(lng,lat,createTime)); + } + + @SaCheckPermission("business:alert:delete") @Log(title = "删除预警", businessType = BusinessType.DELETE) @Operation(summary ="删除预警",description = "删除预警") diff --git a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java index 09129b4..97540e7 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java +++ b/dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java @@ -102,4 +102,6 @@ public interface BusinessAlertMapper extends BaseMapperPlus listAppAlertCount(@Param("param") BusinessAlertBo businessAlertBo); + List listHandleHistory(@Param("lng") String lng, @Param("lat") String lat,@Param("createTime") String createTime); + } diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java index 8d8405d..c3d8589 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/IBusinessAlertService.java @@ -86,4 +86,7 @@ public interface IBusinessAlertService { BusinessAlert getTodoBusinessAlert(Long alertId); Boolean deleteFalseAlert(Long alertId); + + List listHandleHistory(String lng, String lat, String createTime); + } diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java index 3700889..9e7a354 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java @@ -21,6 +21,7 @@ import org.dromara.business.utils.BatchProcessorUtil; import org.dromara.business.utils.MinioUntil; import org.dromara.business.utils.constants.MinIOConstants; import org.dromara.common.core.enums.BusinessStatusEnum; +import org.dromara.common.core.enums.FormatsType; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.MapstructUtils; @@ -119,6 +120,11 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { alert.setHandleType(BusinessStatusEnum.VERIFY.getStatus()); BeanUtils.copyProperties(alert, businessAlert); + //查询历史预警 + List businessAlertList = this.listHandleHistory(alert.getLng(), alert.getLat(), DateUtils.parseDateToStr(FormatsType.YYYY_MM_DD_HH_MM_SS, alert.getCreateTime())); + + businessAlert.setHandleNum(businessAlertList.size()); + return businessAlert; }).toList(); @@ -674,6 +680,30 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { return this.baseMapper.update(wrapper) > 0; } + @Override + public List listHandleHistory(String lng, String lat, String createTime) { + if (ObjectUtil.hasEmpty(lng, lat)) { + return ListUtil.empty(); + } + + List businessAlerts = this.baseMapper.listHandleHistory(lng, lat, createTime); + + try { + businessAlerts.forEach(businessAlert -> { + if (businessAlert.getBusinessType() == 2){ + businessAlert.setImages(MinioUntil.getObjectUrlOne(MinIOConstants.BUCKET_DKCY, businessAlert.getImages(), 3600).toString()); + }else { + businessAlert.setImages(MinioUntil.getObjectUrlOne(MinIOConstants.BUCKET_ALERT, businessAlert.getImages(), 3600).toString()); + businessAlert.setMaxImages(MinioUntil.getObjectUrlOne(MinIOConstants.BUCKET_ALERT, businessAlert.getMaxImages(), 3600).toString()); + } + }); + } catch (Exception e) { + log.error(e.getMessage(),e); + } + + return businessAlerts; + } + public static void main(String[] args) { System.out.println(getLastSixDays()); diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java index d4276b3..6542690 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertStatisticsServiceImpl.java @@ -3,6 +3,7 @@ package org.dromara.business.service.impl; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.ObjectUtil; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.business.domain.BusinessAlert; import org.dromara.business.domain.bo.BusinessAlertBo; @@ -12,6 +13,7 @@ import org.dromara.business.mapper.BusinessAlertMapper; import org.dromara.business.service.IBusinessAlertService; import org.dromara.business.service.IBusinessAlertStatisticsService; import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.mybatis.enums.DataScopeType; import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.system.api.RemoteDataScopeService; @@ -44,6 +46,7 @@ import static org.dromara.common.core.constant.Constants.FLY_COUNT; * *预警统计Service业务层处理 */ +@Slf4j @RequiredArgsConstructor @Service public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatisticsService { @@ -775,20 +778,37 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist } private void createPermissions(BusinessAlertBo businessAlertBo) { - Long roleId = Optional.ofNullable(LoginHelper.getLoginUser()) - .map(LoginUser::getRoles) - .filter(roles -> !roles.isEmpty()) - .map(List::getFirst) - .map(RoleDTO::getRoleId) - .orElse(null); - - String roleCustom = remoteDataScopeService.getRoleCustom(roleId); - if (roleCustom.equalsIgnoreCase("-1")){ + try { + RoleDTO roleDTO = LoginHelper.getLoginUser().getRoles().getFirst(); + + //自定义权限 + if (roleDTO.getDataScope().equalsIgnoreCase(DataScopeType.CUSTOM.getCode())){ + String roleCustom = remoteDataScopeService.getRoleCustom(roleDTO.getRoleId()); + if (roleCustom.equalsIgnoreCase("-1")){ + businessAlertBo.setDeptIdList(ListUtil.empty()); + }else { + businessAlertBo.setDeptIdList(Arrays.stream(roleCustom.split(",")) + .map(Long::parseLong) + .collect(Collectors.toList())); + } + } else if (roleDTO.getDataScope().equalsIgnoreCase(DataScopeType.DEPT_AND_CHILD.getCode())) { + //部门及其以下 + String deptAndChild = remoteDataScopeService.getDeptAndChild(LoginHelper.getDeptId()); + if (deptAndChild.equalsIgnoreCase("-1")){ + businessAlertBo.setDeptIdList(ListUtil.empty()); + }else { + businessAlertBo.setDeptIdList(Arrays.stream(deptAndChild.split(",")) + .map(Long::parseLong) + .collect(Collectors.toList())); + } + + } else if (roleDTO.getDataScope().equalsIgnoreCase(DataScopeType.DEPT.getCode())) { + //本部门 + businessAlertBo.setDeptIdList(List.of(LoginHelper.getDeptId())); + } + } catch (Exception e) { businessAlertBo.setDeptIdList(ListUtil.empty()); - }else { - businessAlertBo.setDeptIdList(Arrays.stream(roleCustom.split(",")) - .map(Long::parseLong) - .collect(Collectors.toList())); + log.error(e.getMessage(),e); } } } diff --git a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml index 4012c22..94333a9 100644 --- a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml +++ b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml @@ -870,6 +870,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ${ew.getCustomSqlSegment} - + diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceFlightRecordsService.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceFlightRecordsService.java index 71012f0..b451499 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceFlightRecordsService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceFlightRecordsService.java @@ -8,7 +8,7 @@ import java.util.Map; public interface IDeviceFlightRecordsService { - void saveDeviceFlight(List deviceFlightRecords); + void saveDeviceFlight(DeviceFlightRecordsEntity deviceFlightRecords); Map getDeviceFlightCount(); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceFlightRecordsServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceFlightRecordsServiceImpl.java index 9f08d95..d441791 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceFlightRecordsServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceFlightRecordsServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.dromara.sample.manage.mapper.DeviceFlightRecordsMapper; import org.dromara.sample.manage.model.entity.DeviceFlightRecordsEntity; import org.dromara.sample.manage.service.IDeviceFlightRecordsService; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import java.util.HashMap; @@ -18,21 +19,19 @@ public class DeviceFlightRecordsServiceImpl extends ServiceImpl deviceFlightRecords) { + public void saveDeviceFlight(DeviceFlightRecordsEntity deviceFlightRecords) { - deviceFlightRecords.forEach(deviceFlightRecord -> { - //查询之前的数据 - DeviceFlightRecordsEntity deviceFlightRecordsEntities = this.baseMapper.selectOne(new LambdaQueryWrapper().eq(DeviceFlightRecordsEntity::getDeviceSn,deviceFlightRecord.getDeviceSn())); + //查询之前的数据 + DeviceFlightRecordsEntity deviceFlightRecordsEntities = this.baseMapper.selectOne(new LambdaQueryWrapper().eq(DeviceFlightRecordsEntity::getDeviceSn,deviceFlightRecords.getDeviceSn())); - if (ObjectUtil.isNotEmpty(deviceFlightRecordsEntities)) { - deviceFlightRecordsEntities.setFlyCount(deviceFlightRecordsEntities.getFlyCount() + deviceFlightRecord.getFlyCount()); - deviceFlightRecordsEntities.setFlyAccTime(deviceFlightRecordsEntities.getFlyAccTime() + deviceFlightRecord.getFlyAccTime()); + if (ObjectUtil.isNotEmpty(deviceFlightRecordsEntities)) { + deviceFlightRecordsEntities.setFlyCount(deviceFlightRecordsEntities.getFlyCount() + deviceFlightRecords.getFlyCount()); + deviceFlightRecordsEntities.setFlyAccTime(deviceFlightRecordsEntities.getFlyAccTime() + deviceFlightRecords.getFlyAccTime()); - this.updateById(deviceFlightRecordsEntities); - }else { - this.save(deviceFlightRecord); - } - }); + this.updateById(deviceFlightRecordsEntities); + }else { + this.save(deviceFlightRecords); + } } @Override