From 11f2676f5add8e5cb499cfab8a54078778c882f7 Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Thu, 24 Apr 2025 14:33:16 +0800 Subject: [PATCH 01/18] =?UTF-8?q?[feat]=201=E3=80=81=E5=BC=80=E5=8F=91app?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=92=8C=E8=AE=BE=E5=A4=87=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/system/api/RemotePostService.java | 2 + .../common/core/constant/Constants.java | 13 +++ .../controller/BusinessAlertController.java | 6 + .../business/mapper/BusinessAlertMapper.java | 16 ++- .../service/IBusinessAlertService.java | 4 + .../impl/BusinessAlertServiceImpl.java | 52 +++++++++ .../BusinessAlertStatisticsServiceImpl.java | 39 ++++++- .../mapper/business/BusinessAlertMapper.xml | 37 ++++++ .../controller/DeviceProController.java | 4 +- .../manage/model/entity/DeviceProEntity.java | 2 +- .../model/entity/DeviceProUserEntity.java | 2 +- .../manage/service/IDeviceProService.java | 4 +- .../service/impl/DeviceProServiceImpl.java | 107 ++++++++++++++++-- .../system/dubbo/RemotePostServiceImpl.java | 5 + .../dromara/system/mapper/SysPostMapper.java | 2 + .../system/service/ISysPostService.java | 2 + .../service/impl/SysPostServiceImpl.java | 5 + .../resources/mapper/system/SysPostMapper.xml | 22 ++++ .../controller/FlwDefinitionController.java | 20 ++++ .../workflow/mapper/FlwCategoryMapper.java | 8 ++ .../service/IFlwDefinitionService.java | 3 + .../impl/FlwDefinitionServiceImpl.java | 20 +++- .../mapper/workflow/FlwCategoryMapper.xml | 4 + 23 files changed, 349 insertions(+), 30 deletions(-) diff --git a/dk-api/api-system/src/main/java/org/dromara/system/api/RemotePostService.java b/dk-api/api-system/src/main/java/org/dromara/system/api/RemotePostService.java index 1a32148..fb775e3 100644 --- a/dk-api/api-system/src/main/java/org/dromara/system/api/RemotePostService.java +++ b/dk-api/api-system/src/main/java/org/dromara/system/api/RemotePostService.java @@ -10,4 +10,6 @@ public interface RemotePostService { String getPostCode(String labelCode); String getFlowCode(String labelCode); + + List listPostCode(String labelCode); } diff --git a/dk-common/common-core/src/main/java/org/dromara/common/core/constant/Constants.java b/dk-common/common-core/src/main/java/org/dromara/common/core/constant/Constants.java index 1f89f3f..8b9a156 100644 --- a/dk-common/common-core/src/main/java/org/dromara/common/core/constant/Constants.java +++ b/dk-common/common-core/src/main/java/org/dromara/common/core/constant/Constants.java @@ -86,5 +86,18 @@ public interface Constants { * 飞行总时长 */ String FLY_ACC_TIME = "fly_accTime"; + + + /** + * 项目组存储key,例如:pro_group_项目组id_用户id + */ + String PRO_GROUP = "pro_group_%s"; + + + /** + * 设备存储key,例如:pro_device_项目组id_用户id + */ + String PRO_DEVICE = "pro_device_%s"; + } 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 43c5d90..b57a0f9 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 @@ -46,6 +46,12 @@ public class BusinessAlertController extends BaseController { return businessAlertService.getInfo(bo,pageQuery,alertCode); } + @Operation(summary ="app获取单个预警信息",description = "app获取单个预警信息") + @GetMapping("/alert/app/todo/{alertId}") + public R getTodoBusinessAlert(@PathVariable("alertId") Long alertId) { + return R.ok(businessAlertService.getTodoBusinessAlert(alertId)); + } + /** * 查询全部预警/待办/已完成/忽略 */ 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 30f01ac..e4c1777 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 @@ -24,12 +24,12 @@ public interface BusinessAlertMapper extends BaseMapperPlus pageBusinessAlert(Page page, QueryWrapper ew); + Page pageBusinessAlert(@Param("page") Page page,@Param("ew") QueryWrapper ew); - @DataPermission( + @DataPermission( @DataColumn(key = "deptName", value = "t.dept_id") ) - Page pageAlertFinish(Page page, QueryWrapper ew); + Page pageAlertFinish(@Param("page") Page page,@Param("ew") QueryWrapper ew); /** * 处理中 @@ -40,13 +40,17 @@ public interface BusinessAlertMapper extends BaseMapperPlus pageAlertTodo(Page page, QueryWrapper ew); + Page pageAlertTodo(@Param("page") Page page,@Param("ew") QueryWrapper ew); - @DataPermission( + @DataPermission( @DataColumn(key = "deptName", value = "t.dept_id") ) - Page pageBusinessAlertCancel(Page build, QueryWrapper ew); + Page pageBusinessAlertCancel(@Param("page") Page page,@Param("ew") QueryWrapper ew); + @DataPermission( + @DataColumn(key = "deptName", value = "t.dept_id") + ) + List listTodoAlert(@Param("ew") QueryWrapper ew); List> listMonthAlert(@Param("param") BusinessAlertBo businessAlertBo); 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 28c2e0d..994a451 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 @@ -80,4 +80,8 @@ public interface IBusinessAlertService { Boolean deleteAlert(List alertIdList); void batchUpdateDept(List alertVoList); + + List listTodoAlert(BusinessAlertBo businessAlertBo); + + BusinessAlert getTodoBusinessAlert(Long alertId); } 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 ab2a626..85c30be 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 @@ -596,6 +596,58 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { return days; } + /** + * 查询当前用户待办预警 + * @return + */ + @Override + public List listTodoAlert(BusinessAlertBo businessAlertBo) { + QueryWrapper wrapper = buildQueryWrapper(businessAlertBo); + + if (ObjectUtil.isEmpty(wrapper)){ + return ListUtil.empty(); + } + + wrapper.eq("t.node_type", 1); + wrapper.in("t.approver", remoteWorkflowService.getPermissions()); + wrapper.in("t.flow_status", BusinessStatusEnum.WAITING.getStatus()); + + return this.baseMapper.listTodoAlert(wrapper); + } + + /** + * 获取单个预警信息 + * @param alertId + * @return + */ + @Override + public BusinessAlert getTodoBusinessAlert(Long alertId) { + QueryWrapper wrapper = new QueryWrapper<>(); + + wrapper.eq("t.node_type", 1); + wrapper.in("t.approver", remoteWorkflowService.getPermissions()); + wrapper.in("t.flow_status", BusinessStatusEnum.WAITING.getStatus()); + + List businessAlerts = this.baseMapper.listTodoAlert(wrapper); + BusinessAlert businessAlert = businessAlerts.stream().filter(p -> p.getId().equals(alertId)).findFirst().get(); + + try { + 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()); + businessAlert.setMaxMateSourceImgUrl(MinioUntil.getObjectUrlOne(MinIOConstants.BUCKET_ALERT, businessAlert.getMaxMateSourceImgUrl(), 3600).toString()); + businessAlert.setMateSourceImgUrl(MinioUntil.getObjectUrlOne(MinIOConstants.BUCKET_ALERT, businessAlert.getMateSourceImgUrl(), 3600).toString()); + } + } catch (Exception e) { + log.error(e.getMessage(),e); + } + + return businessAlert; + } + + 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 113719e..6ed5233 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 @@ -4,9 +4,12 @@ import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.ObjectUtil; import lombok.RequiredArgsConstructor; import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.business.domain.BusinessAlert; import org.dromara.business.domain.bo.BusinessAlertBo; import org.dromara.business.domain.model.StatObj; +import org.dromara.business.feign.FeignDeviceGroup; 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.redis.utils.RedisUtils; @@ -20,6 +23,7 @@ import org.dromara.system.api.domain.vo.RemoteDeptVo; import org.dromara.system.api.domain.vo.RemotePostVo; import org.dromara.system.api.model.LoginUser; import org.dromara.system.api.model.RoleDTO; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; @@ -58,6 +62,11 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist @DubboReference(timeout = 30000) RemoteDataScopeService remoteDataScopeService; + @Autowired + FeignDeviceGroup feignDeviceGroup; + + private final IBusinessAlertService businessAlertService; + /** * 按照月份分类预警数量 * @param businessAlertBo @@ -176,7 +185,17 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist //----------------------------------------------获取飞行总架次、总时长---------------------------------------------- //获取飞行总架次、总时长 - Map countMap = RedisUtils.getCacheMap(FLY_COUNT); + //获取机场信息根据当前登录人 + List deviceSnList = ObjectUtil.isNotEmpty(feignDeviceGroup.listDevice(LoginHelper.getUserId()))?feignDeviceGroup.listDevice(LoginHelper.getUserId()):ListUtil.empty(); + + + //过滤redis中用户所拥有的设备 + Map countMap = Optional.ofNullable(RedisUtils.getCacheMap(FLY_COUNT)) + .map(map -> map.entrySet().stream() + .filter(entry -> deviceSnList.contains(entry.getKey())) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))) + .orElse(new HashMap<>()); + int flyCount; if (ObjectUtil.isNotEmpty(countMap)){ @@ -193,7 +212,14 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist flyCount = 0; } - Map accTimeMap = RedisUtils.getCacheMap(FLY_ACC_TIME); + //过滤redis中用户所拥有的设备 + Map accTimeMap = Optional.ofNullable(RedisUtils.getCacheMap(FLY_ACC_TIME)) + .map(map -> map.entrySet().stream() + .filter(entry -> deviceSnList.contains(entry.getKey())) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))) + .orElse(new HashMap<>()); + + double flyAccTime; if (ObjectUtil.isNotEmpty(accTimeMap)) { @@ -692,7 +718,14 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist public Map listAppAlertCount(BusinessAlertBo businessAlertBo) { //构建查询数据权限 createPermissions(businessAlertBo); - return baseMapper.listAppAlertCount(businessAlertBo); + + Map result = baseMapper.listAppAlertCount(businessAlertBo); + + List businessAlerts = businessAlertService.listTodoAlert(businessAlertBo); + + result.put("todoCount",businessAlerts.size()); + + return result; } /** 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 e4955f0..0f4913e 100644 --- a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml +++ b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml @@ -798,5 +798,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceProController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceProController.java index 07c4002..f6efb17 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceProController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceProController.java @@ -65,7 +65,7 @@ public class DeviceProController { //3、删除项目组 @Operation(summary = "删除项目组。", description = "删除项目组。") @DeleteMapping("/delete") - public HttpResultResponse deleteDevicePro(@RequestBody List ids) { + public HttpResultResponse deleteDevicePro(@RequestBody List ids) { return HttpResultResponse.success(deviceProService.deleteIds(ids)); } @@ -76,7 +76,7 @@ public class DeviceProController { */ @Operation(summary = "新增/更新项目人员。", description = "新增/更新项目人员。") @PostMapping("/{proId}/update") - public HttpResultResponse updateDeviceProUser(@RequestBody List userEntity,@PathVariable Long proId) { + public HttpResultResponse updateDeviceProUser(@RequestBody List userEntity,@PathVariable Integer proId) { return HttpResultResponse.success(deviceProService.updateDeviceProUser(userEntity,proId)); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceProEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceProEntity.java index 2aea7d2..a7b67f3 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceProEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceProEntity.java @@ -27,7 +27,7 @@ import java.util.List; @TableName(value = "manage_device_pro") public class DeviceProEntity extends BaseEntity implements Serializable { - @TableId(type = IdType.ASSIGN_ID) + @TableId(type = IdType.AUTO) private Integer id; @TableField(value = "pro_name") diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceProUserEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceProUserEntity.java index b23ebd2..eed482e 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceProUserEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceProUserEntity.java @@ -26,7 +26,7 @@ import java.io.Serializable; @TableName(value = "manage_device_pro_user") public class DeviceProUserEntity extends BaseEntity implements Serializable { - @TableId(type = IdType.ASSIGN_ID) + @TableId(type = IdType.AUTO) private Integer id; @TableField(value = "device_pro_id") diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceProService.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceProService.java index 580a1c0..10e2b1e 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceProService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceProService.java @@ -32,11 +32,11 @@ public interface IDeviceProService { Boolean saveAndUpdate(DeviceProEntity deviceProEntity); - Boolean deleteIds(List ids); + Boolean deleteIds(List ids); Boolean updateDevicePro(DeviceProEntity deviceProEntity); - Boolean updateDeviceProUser(List userEntity,Long proId); + Boolean updateDeviceProUser(List userEntity,Integer proId); Boolean updateDevice(Dict dict); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java index f0c0444..bbfbbc1 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java @@ -11,7 +11,10 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.executor.BatchResult; +import org.dromara.common.core.constant.Constants; import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.redis.utils.RedisOpsUtils; +import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.sdk.cloudapi.device.*; import org.dromara.common.sdk.cloudapi.firmware.*; @@ -34,6 +37,7 @@ import org.dromara.common.sdk.mqtt.services.ServicesSubscribe; import org.dromara.common.sdk.mqtt.services.TopicServicesResponse; import org.dromara.common.sdk.mqtt.state.StateSubscribe; import org.dromara.common.sdk.mqtt.status.StatusSubscribe; +import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.common.websocket.dto.BizCodeEnum; import org.dromara.sample.common.error.CommonErrorEnum; import org.dromara.sample.component.mqtt.model.EventsReceiver; @@ -62,10 +66,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.time.LocalDateTime; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; /** @@ -107,7 +108,7 @@ public class DeviceProServiceImpl implements IDeviceProService { @Override - public Boolean deleteIds(List ids) { + public Boolean deleteIds(List ids) { List deviceEntityList = deviceMapper.selectList(new LambdaQueryWrapper().in(DeviceEntity::getProId, ids)); @@ -125,14 +126,75 @@ public class DeviceProServiceImpl implements IDeviceProService { @Override @Transactional(rollbackFor = Exception.class) - public Boolean updateDeviceProUser(List userEntity,Long proId) { + public Boolean updateDeviceProUser(List userEntity,Integer proId) { try { + //获取项目组信息 + DeviceProEntity deviceProEntity = deviceProMapper.selectOne(new LambdaQueryWrapper().eq(DeviceProEntity::getId, proId)); + + //查询之前项目所属的人员信息 + List proUserEntityList = deviceProUserMapper.selectList(new LambdaQueryWrapper().eq(DeviceProUserEntity::getDeviceProId, proId)); + + List difference = new ArrayList<>(); + + // 判断两个集合的差值(基于 userId) + difference = proUserEntityList.stream() + .filter(proUser -> userEntity.stream() + .noneMatch(user -> user.getUserId().equals(proUser.getUserId()))) + .toList(); + + //--------------------------------------------缓存相关操作---------------------------------------------------------------- + + //人员如果解绑了项目删除缓存数据 + difference.forEach(proUserEntity -> { + //删除人员项目组信息 + List projects = RedisUtils.getCacheList(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())); + List projectList = projects.stream() + .filter(DeviceProEntity.class::isInstance) + .map(DeviceProEntity.class::cast) + .toList(); + + //删除人员中所拥有的当前的项目组,然后构建新的存入redis + List deviceProEntities = projectList.stream().filter(p -> !p.getId().equals(proId)).toList(); + //删除 + RedisUtils.deleteObject(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())); + //重新插入 + RedisUtils.setCacheList(String.format(Constants.PRO_GROUP, proUserEntity.getUserId()),deviceProEntities); + + + //删除人员所拥有的设备信息 + List cacheList = RedisUtils.getCacheList(String.format(Constants.PRO_DEVICE, proUserEntity.getUserId())); + List deviceList = cacheList.stream() + .filter(DeviceEntity.class::isInstance) + .map(DeviceEntity.class::cast) + .toList(); + + //过滤除了这个删除的项目组之外的设备 + deviceList = deviceList.stream().filter(p-> !p.getProId().equals(proId)).toList(); + //删除 + RedisUtils.deleteObject(String.format(Constants.PRO_DEVICE, proUserEntity.getUserId())); + + RedisUtils.setCacheList(String.format(String.format(Constants.PRO_DEVICE, proUserEntity.getUserId())),deviceList); + }); + //先清除原来的项目组成员 deviceProUserMapper.delete(new LambdaQueryWrapper().eq(DeviceProUserEntity::getDeviceProId, proId)); if (ObjectUtil.isNotEmpty(userEntity)) { //添加新的项目组成员 deviceProUserMapper.insert(userEntity); + + //更新缓存记录 + userEntity.forEach(proUserEntity -> { + List projects = RedisUtils.getCacheList(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())); + List projectList = projects.stream() + .filter(DeviceProEntity.class::isInstance) + .map(DeviceProEntity.class::cast) + .toList(); + + if (!projectList.stream().anyMatch(p-> p.getId().equals(proUserEntity.getDeviceProId()))){ + RedisUtils.addCacheList(String.format(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())), deviceProEntity); + } + }); } return true; @@ -150,18 +212,39 @@ public class DeviceProServiceImpl implements IDeviceProService { @Override @Transactional(rollbackFor = Exception.class) public Boolean updateDevice(Dict dict) { - Long deviceId = dict.getLong("deviceId"); - Long proId = dict.getLong("proId"); + Integer deviceId = dict.getInt("deviceId"); + Integer proId = dict.getInt("proId"); if (ObjectUtil.hasEmpty(deviceId, proId)) { throw new ServiceException("【deviceId】或【proId】参数为空!"); } - LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); - wrapper.set(DeviceEntity::getProId, proId); - wrapper.eq(DeviceEntity::getId, deviceId); + try { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.set(DeviceEntity::getProId, proId); + wrapper.eq(DeviceEntity::getId, deviceId); + + if (deviceMapper.update(wrapper) > 0) { + DeviceEntity deviceEntity = deviceMapper.selectOne(new LambdaQueryWrapper().eq(DeviceEntity::getId, deviceId)); + //根据proid获取人员用于存储人员的设备权限 + List proUserEntityList = deviceProUserMapper.selectList(new LambdaQueryWrapper().eq(DeviceProUserEntity::getDeviceProId, proId)); + proUserEntityList.forEach(deviceProUserEntity -> { + List devices = RedisUtils.getCacheList(String.format(Constants.PRO_DEVICE, deviceProUserEntity.getUserId())); + List deviceList = devices.stream() + .filter(DeviceEntity.class::isInstance) + .map(DeviceEntity.class::cast) + .toList(); + + if (!deviceList.stream().anyMatch(p-> p.getId().equals(deviceEntity.getId()))){ + RedisUtils.addCacheList(String.format(String.format(Constants.PRO_DEVICE, deviceProUserEntity.getUserId())), deviceEntity); + } + }); + } + } catch (Exception e) { + return false; + } - return deviceMapper.update(wrapper) > 0; + return true; } /** diff --git a/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemotePostServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemotePostServiceImpl.java index 29cc998..ef659cb 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemotePostServiceImpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/dubbo/RemotePostServiceImpl.java @@ -54,4 +54,9 @@ public class RemotePostServiceImpl implements RemotePostService { public String getFlowCode(String labelCode) { return aiLabelService.getFlowCode(labelCode); } + + @Override + public List listPostCode(String labelCode) { + return sysPostService.listPostCode(labelCode); + } } diff --git a/dk-modules/system/src/main/java/org/dromara/system/mapper/SysPostMapper.java b/dk-modules/system/src/main/java/org/dromara/system/mapper/SysPostMapper.java index b9b2d19..016561d 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/mapper/SysPostMapper.java +++ b/dk-modules/system/src/main/java/org/dromara/system/mapper/SysPostMapper.java @@ -36,4 +36,6 @@ public interface SysPostMapper extends BaseMapperPlus { SysPostVo selectLableByList(@Param("postCode") String postCode, @Param("deptId") Long deptId); String getPostCode(@Param("labelCode") String labelCode); + + List listPostCode(@Param("labelCode") String labelCode); } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/ISysPostService.java b/dk-modules/system/src/main/java/org/dromara/system/service/ISysPostService.java index 1304f54..c1569f0 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/ISysPostService.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/ISysPostService.java @@ -134,4 +134,6 @@ public interface ISysPostService { SysPostVo selectLableByList(String post_code, Long dept_id); String getPostCode(String labelCode); + + List listPostCode(String labelCode); } diff --git a/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java index 23420a7..15623a9 100644 --- a/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java +++ b/dk-modules/system/src/main/java/org/dromara/system/service/impl/SysPostServiceImpl.java @@ -279,4 +279,9 @@ public class SysPostServiceImpl implements ISysPostService { public String getPostCode(String labelCode) { return baseMapper.getPostCode(labelCode); } + + @Override + public List listPostCode(String labelCode) { + return baseMapper.listPostCode(labelCode); + } } diff --git a/dk-modules/system/src/main/resources/mapper/system/SysPostMapper.xml b/dk-modules/system/src/main/resources/mapper/system/SysPostMapper.xml index 8663f73..dda2a3e 100644 --- a/dk-modules/system/src/main/resources/mapper/system/SysPostMapper.xml +++ b/dk-modules/system/src/main/resources/mapper/system/SysPostMapper.xml @@ -54,4 +54,26 @@ al.label_en =#{labelCode})) + + + diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java index 385a7a1..6a78197 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java @@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; +import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.common.core.domain.R; import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; @@ -11,6 +12,7 @@ import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; +import org.dromara.system.api.RemotePostService; import org.dromara.warm.flow.core.entity.Definition; import org.dromara.warm.flow.core.service.DefService; import org.dromara.warm.flow.orm.entity.FlowDefinition; @@ -24,6 +26,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.List; +import java.util.Map; /** * 流程定义管理 控制层 @@ -40,6 +43,9 @@ public class FlwDefinitionController extends BaseController { private final DefService defService; private final IFlwDefinitionService flwDefinitionService; + @DubboReference + private RemotePostService remotePostService; + /** * 查询流程定义列表 * @@ -193,4 +199,18 @@ public class FlwDefinitionController extends BaseController { return R.ok(active ? defService.active(id) : defService.unActive(id)); } + /** + * 检查当前标签有几个流程 + * @return + */ + @GetMapping("/check/flow") + public R>> checkWorkFlow(@RequestParam("labelCode") String labelCode) { + //获取这个标签下的所有岗位编码 + List postCodeList = remotePostService.listPostCode(labelCode); + + List> result = flwDefinitionService.listFlowCode(postCodeList); + + return R.ok(result); + } + } diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwCategoryMapper.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwCategoryMapper.java index d48d4cb..8dd01a4 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwCategoryMapper.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwCategoryMapper.java @@ -8,6 +8,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.helper.DataBaseHelper; import org.dromara.workflow.domain.FlowCategory; import org.dromara.workflow.domain.vo.FlowCategoryVo; +import org.dromara.workflow.domain.vo.FlowDefinitionVo; import java.util.List; import java.util.stream.Collectors; @@ -59,4 +60,11 @@ public interface FlwCategoryMapper extends BaseMapperPlus> listFlowCode(List postCodeList); + } diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java index 4d90edc..88ac8f2 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java @@ -41,9 +41,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; import static org.dromara.common.core.constant.TenantConstants.DEFAULT_TENANT_ID; @@ -274,4 +272,20 @@ public class FlwDefinitionServiceImpl implements IFlwDefinitionService { public String getFlowCode(String postCode) { return flwCategoryMapper.getFlowCode(postCode); } + + @Override + public List> listFlowCode(List postCodeList) { + List> result = new ArrayList<>(); + + postCodeList.forEach(postCode -> { + Map map = new HashMap<>(); + FlowDefinitionVo definitionVo = flwCategoryMapper.getDefinition(postCode); + map.put("name",definitionVo.getFlowName()); + map.put("flowCode",definitionVo.getFlowCode()); + + result.add(map); + }); + + return result; + } } diff --git a/dk-modules/workflow/src/main/resources/mapper/workflow/FlwCategoryMapper.xml b/dk-modules/workflow/src/main/resources/mapper/workflow/FlwCategoryMapper.xml index b3875f5..08985fc 100644 --- a/dk-modules/workflow/src/main/resources/mapper/workflow/FlwCategoryMapper.xml +++ b/dk-modules/workflow/src/main/resources/mapper/workflow/FlwCategoryMapper.xml @@ -12,4 +12,8 @@ select flow_code from flow_definition fd where fd.remark like concat('%',#{postCode},'%') and fd.is_publish = '1' + + From 25f011a10fcf9ad322927637c2f0f2fea79e727e Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Thu, 24 Apr 2025 15:56:17 +0800 Subject: [PATCH 02/18] =?UTF-8?q?[feat]=201=E3=80=81=E6=8E=A8=E9=80=81dev?= =?UTF-8?q?=E5=88=86=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/business/controller/BusinessAlertController.java | 1 + 1 file changed, 1 insertion(+) 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 b57a0f9..0611c9a 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 @@ -73,6 +73,7 @@ public class BusinessAlertController extends BaseController { @Operation(summary ="ai实时流预警保存",description = "ai实时流预警保存") @PostMapping("/saveAlertList") public R saveAlert(@RequestBody List alertVoList) { + businessAlertService.addBusinessAlertList(alertVoList); return R.ok(); } From d01e5c72372e36add3279175a5a8b646504afaca Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Thu, 24 Apr 2025 16:13:51 +0800 Subject: [PATCH 03/18] =?UTF-8?q?[feat]=201=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=9D=83=E9=99=90=E5=AD=98=E5=82=A8redis?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E2=91=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DeviceProServiceImpl.java | 45 +++++++++++-------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java index bbfbbc1..5cc1736 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java @@ -88,6 +88,8 @@ public class DeviceProServiceImpl implements IDeviceProService { @Autowired private IDeviceProUserMapper deviceProUserMapper; + private final ObjectMapper objectMapper = new ObjectMapper(); + @Override public PaginationData listDeviceProEntityMap(Page page, DeviceProDTO deviceProDTO) { Page pagination = deviceProMapper.listDeviceProEntityMap(page, deviceProDTO); @@ -148,13 +150,13 @@ public class DeviceProServiceImpl implements IDeviceProService { difference.forEach(proUserEntity -> { //删除人员项目组信息 List projects = RedisUtils.getCacheList(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())); - List projectList = projects.stream() - .filter(DeviceProEntity.class::isInstance) - .map(DeviceProEntity.class::cast) + List projectList = projects.stream() + .filter(Map.class::isInstance) + .map(Map.class::cast) .toList(); //删除人员中所拥有的当前的项目组,然后构建新的存入redis - List deviceProEntities = projectList.stream().filter(p -> !p.getId().equals(proId)).toList(); + List deviceProEntities = projectList.stream().filter(p -> !Integer.valueOf(p.get("id") + "").equals(proId)).toList(); //删除 RedisUtils.deleteObject(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())); //重新插入 @@ -163,19 +165,21 @@ public class DeviceProServiceImpl implements IDeviceProService { //删除人员所拥有的设备信息 List cacheList = RedisUtils.getCacheList(String.format(Constants.PRO_DEVICE, proUserEntity.getUserId())); - List deviceList = cacheList.stream() - .filter(DeviceEntity.class::isInstance) - .map(DeviceEntity.class::cast) + List deviceList = cacheList.stream() + .filter(Map.class::isInstance) + .map(Map.class::cast) .toList(); //过滤除了这个删除的项目组之外的设备 - deviceList = deviceList.stream().filter(p-> !p.getProId().equals(proId)).toList(); + deviceList = deviceList.stream().filter(p-> !Integer.valueOf(p.get("proId") + "").equals(proId)).toList(); //删除 RedisUtils.deleteObject(String.format(Constants.PRO_DEVICE, proUserEntity.getUserId())); - RedisUtils.setCacheList(String.format(String.format(Constants.PRO_DEVICE, proUserEntity.getUserId())),deviceList); + RedisUtils.setCacheList(String.format(Constants.PRO_DEVICE, proUserEntity.getUserId()),deviceList); }); + //--------------------------------------------缓存相关操作---------------------------------------------------------------- + //先清除原来的项目组成员 deviceProUserMapper.delete(new LambdaQueryWrapper().eq(DeviceProUserEntity::getDeviceProId, proId)); @@ -186,13 +190,14 @@ public class DeviceProServiceImpl implements IDeviceProService { //更新缓存记录 userEntity.forEach(proUserEntity -> { List projects = RedisUtils.getCacheList(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())); - List projectList = projects.stream() - .filter(DeviceProEntity.class::isInstance) - .map(DeviceProEntity.class::cast) + List projectList = projects.stream() + .filter(Map.class::isInstance) + .map(Map.class::cast) .toList(); - if (!projectList.stream().anyMatch(p-> p.getId().equals(proUserEntity.getDeviceProId()))){ - RedisUtils.addCacheList(String.format(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())), deviceProEntity); + if (!projectList.stream().anyMatch(p-> Integer.valueOf(p.get("id") + "").equals(proUserEntity.getDeviceProId()))){ + Map proMap = objectMapper.convertValue(deviceProEntity, Map.class); + RedisUtils.addCacheList(String.format(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())), proMap); } }); } @@ -230,13 +235,15 @@ public class DeviceProServiceImpl implements IDeviceProService { List proUserEntityList = deviceProUserMapper.selectList(new LambdaQueryWrapper().eq(DeviceProUserEntity::getDeviceProId, proId)); proUserEntityList.forEach(deviceProUserEntity -> { List devices = RedisUtils.getCacheList(String.format(Constants.PRO_DEVICE, deviceProUserEntity.getUserId())); - List deviceList = devices.stream() - .filter(DeviceEntity.class::isInstance) - .map(DeviceEntity.class::cast) + List deviceList = devices.stream() + .filter(Map.class::isInstance) + .map(Map.class::cast) .toList(); - if (!deviceList.stream().anyMatch(p-> p.getId().equals(deviceEntity.getId()))){ - RedisUtils.addCacheList(String.format(String.format(Constants.PRO_DEVICE, deviceProUserEntity.getUserId())), deviceEntity); + if (!deviceList.stream().anyMatch(p-> Integer.valueOf(p.get("id") + "").equals(deviceEntity.getId()))){ + Map deviceMap = objectMapper.convertValue(deviceEntity, Map.class); + + RedisUtils.addCacheList(String.format(String.format(Constants.PRO_DEVICE, deviceProUserEntity.getUserId())), deviceMap); } }); } From 7370ef502d76b8dd93145a3a4b6d6b9b91d6412d Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Thu, 24 Apr 2025 16:22:14 +0800 Subject: [PATCH 04/18] =?UTF-8?q?[feat]=201=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=9D=83=E9=99=90=E5=AD=98=E5=82=A8redis?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E2=91=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sample/manage/service/impl/DeviceProServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java index 5cc1736..0b92c81 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java @@ -243,7 +243,7 @@ public class DeviceProServiceImpl implements IDeviceProService { if (!deviceList.stream().anyMatch(p-> Integer.valueOf(p.get("id") + "").equals(deviceEntity.getId()))){ Map deviceMap = objectMapper.convertValue(deviceEntity, Map.class); - RedisUtils.addCacheList(String.format(String.format(Constants.PRO_DEVICE, deviceProUserEntity.getUserId())), deviceMap); + RedisUtils.addCacheList(String.format(Constants.PRO_DEVICE, deviceProUserEntity.getUserId()), deviceMap); } }); } From 4e824465054a8b455529811aa097f09cc8e78ece Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Thu, 24 Apr 2025 16:25:48 +0800 Subject: [PATCH 05/18] =?UTF-8?q?[feat]=201=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=9D=83=E9=99=90=E5=AD=98=E5=82=A8redis?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E2=91=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sample/manage/service/impl/DeviceProServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java index 0b92c81..b58bc1e 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceProServiceImpl.java @@ -197,7 +197,7 @@ public class DeviceProServiceImpl implements IDeviceProService { if (!projectList.stream().anyMatch(p-> Integer.valueOf(p.get("id") + "").equals(proUserEntity.getDeviceProId()))){ Map proMap = objectMapper.convertValue(deviceProEntity, Map.class); - RedisUtils.addCacheList(String.format(String.format(Constants.PRO_GROUP, proUserEntity.getUserId())), proMap); + RedisUtils.addCacheList(String.format(Constants.PRO_GROUP, proUserEntity.getUserId()), proMap); } }); } From 891a63496b122a1531aa201e7d3f723317b46f5c Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Fri, 25 Apr 2025 10:07:45 +0800 Subject: [PATCH 06/18] =?UTF-8?q?=E6=8F=90=E4=BA=A4:=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=AF=94=E5=AF=B9=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wayline/model/dto/AiCompareDTO.java | 2 +- .../service/impl/AiCompareServiceImpl.java | 7 ++++-- .../main/resources/mapper/AiCompareMapper.xml | 24 ++++++++++--------- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java index a45a158..45b5d3f 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareDTO.java @@ -95,7 +95,7 @@ public class AiCompareDTO implements Serializable { * 创建者 */ - private Long createId; + private Long createBy; /** *用户昵称 * */ diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java index 17879c1..476f7dc 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java @@ -83,7 +83,7 @@ public class AiCompareServiceImpl implements IAiCompareService { QueryWrapper wrapper = Wrappers.query(); wrapper .eq(StringUtils.isNotEmpty(bo.getStatus()), "status",bo.getStatus()) - .eq(ObjectUtil.isNotEmpty(bo.getCreateId()), "create_by",bo.getCreateId()) + .eq(ObjectUtil.isNotEmpty(bo.getCreateBy()), "create_id",bo.getCreateBy()) .like(StringUtils.isNotBlank(bo.getDeptName()), "lower(dept_name)", StringUtils.lowerCase(bo.getDeptName())) .like(StringUtils.isNotBlank(bo.getJobName()), "lower(job_name)", StringUtils.lowerCase(bo.getJobName())) .between(params.get("beginTime") != null && params.get("endTime") != null, @@ -156,7 +156,10 @@ public class AiCompareServiceImpl implements IAiCompareService { if(isIllegal){ QueryWrapper queryWrapper = new QueryWrapper().eq("file_id", e.getFileId()); AiComparePlateEntity plateEntity = aiComparePlateMapper.selectOne(queryWrapper); - e.setPatternUrl(fileService.getObjectUrlOne(MinIOConstants.BUCKET_ALERT,plateEntity.getPatternName(),seconds).toString()); + if(plateEntity != null){ + e.setPatternUrl(fileService.getObjectUrlOne(MinIOConstants.BUCKET_ALERT,plateEntity.getPatternName(),seconds).toString()); + } + } }); } diff --git a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml index 84c237e..3bd86ee 100644 --- a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml +++ b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml @@ -10,28 +10,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" From e52025e9cf0d6d7c22146758a2a4f2dd3fe0cc9d Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Fri, 25 Apr 2025 11:40:23 +0800 Subject: [PATCH 07/18] =?UTF-8?q?[feat]=201=E3=80=81=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=A3=9E=E8=A1=8C=E6=80=BB=E6=9E=B6=E6=AC=A1=E6=80=BB=E6=97=B6?= =?UTF-8?q?=E9=95=BF=E4=BF=9D=E5=AD=98=E6=8E=A5=E5=8F=A3=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=8E=B7=E5=8F=96=E6=97=B6=E9=95=BF=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E2=91=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/feign/FeignDeviceGroup.java | 5 + .../BusinessAlertStatisticsServiceImpl.java | 93 ++++++++++--------- .../DeviceFlightRecordsController.java | 28 ++++++ .../mapper/DeviceFlightRecordsMapper.java | 7 ++ .../entity/DeviceFlightRecordsEntity.java | 46 +++++++++ .../service/IDeviceFlightRecordsService.java | 15 +++ .../impl/DeviceFlightRecordsServiceImpl.java | 59 ++++++++++++ .../mapper/DeviceFlightRecordsMapper.xml | 8 ++ 8 files changed, 215 insertions(+), 46 deletions(-) create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceFlightRecordsController.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/DeviceFlightRecordsMapper.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceFlightRecordsEntity.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceFlightRecordsService.java create mode 100644 dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceFlightRecordsServiceImpl.java create mode 100644 dk-modules/sample/src/main/resources/mapper/DeviceFlightRecordsMapper.xml diff --git a/dk-modules/business/src/main/java/org/dromara/business/feign/FeignDeviceGroup.java b/dk-modules/business/src/main/java/org/dromara/business/feign/FeignDeviceGroup.java index 4a36405..21924a8 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/feign/FeignDeviceGroup.java +++ b/dk-modules/business/src/main/java/org/dromara/business/feign/FeignDeviceGroup.java @@ -6,6 +6,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; +import java.util.Map; @FeignClient(name = "gateway",path = "sample") public interface FeignDeviceGroup { @@ -17,4 +18,8 @@ public interface FeignDeviceGroup { @GetMapping("/manage/api/v1/device/group/feign/device") public List listDevice(@RequestParam("userId") Long userId); + + + @GetMapping("/device/flight/count") + public Map getDevices(); } 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 6ed5233..d4276b3 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 @@ -186,57 +186,58 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist //----------------------------------------------获取飞行总架次、总时长---------------------------------------------- //获取飞行总架次、总时长 //获取机场信息根据当前登录人 - List deviceSnList = ObjectUtil.isNotEmpty(feignDeviceGroup.listDevice(LoginHelper.getUserId()))?feignDeviceGroup.listDevice(LoginHelper.getUserId()):ListUtil.empty(); +// List deviceSnList = ObjectUtil.isNotEmpty(feignDeviceGroup.listDevice(LoginHelper.getUserId()))?feignDeviceGroup.listDevice(LoginHelper.getUserId()):ListUtil.empty(); //过滤redis中用户所拥有的设备 - Map countMap = Optional.ofNullable(RedisUtils.getCacheMap(FLY_COUNT)) - .map(map -> map.entrySet().stream() - .filter(entry -> deviceSnList.contains(entry.getKey())) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))) - .orElse(new HashMap<>()); - - int flyCount; - - if (ObjectUtil.isNotEmpty(countMap)){ - flyCount = countMap.values().stream() - .filter(Objects::nonNull) - .mapToInt(value -> { - if (value instanceof Number) { - return ((Number) value).intValue(); - } - return 0; - }) - .sum(); - } else { - flyCount = 0; - } +// Map countMap = Optional.ofNullable(RedisUtils.getCacheMap(FLY_COUNT)) +// .map(map -> map.entrySet().stream() +// .filter(entry -> deviceSnList.contains(entry.getKey())) +// .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))) +// .orElse(new HashMap<>()); + +// int flyCount; +// +// if (ObjectUtil.isNotEmpty(countMap)){ +// flyCount = countMap.values().stream() +// .filter(Objects::nonNull) +// .mapToInt(value -> { +// if (value instanceof Number) { +// return ((Number) value).intValue(); +// } +// return 0; +// }) +// .sum(); +// } else { +// flyCount = 0; +// } //过滤redis中用户所拥有的设备 - Map accTimeMap = Optional.ofNullable(RedisUtils.getCacheMap(FLY_ACC_TIME)) - .map(map -> map.entrySet().stream() - .filter(entry -> deviceSnList.contains(entry.getKey())) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))) - .orElse(new HashMap<>()); - - - double flyAccTime; - - if (ObjectUtil.isNotEmpty(accTimeMap)) { - flyAccTime = accTimeMap.values().stream() - .filter(Objects::nonNull) - .mapToDouble(value -> { - if (value instanceof Number) { - return ((Number) value).doubleValue(); - } - return 0.0; - }) - .sum(); - } else { - flyAccTime = 0.0; - } +// Map accTimeMap = Optional.ofNullable(RedisUtils.getCacheMap(FLY_ACC_TIME)) +// .map(map -> map.entrySet().stream() +// .filter(entry -> deviceSnList.contains(entry.getKey())) +// .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))) +// .orElse(new HashMap<>()); +// +// +// double flyAccTime; +// +// if (ObjectUtil.isNotEmpty(accTimeMap)) { +// flyAccTime = accTimeMap.values().stream() +// .filter(Objects::nonNull) +// .mapToDouble(value -> { +// if (value instanceof Number) { +// return ((Number) value).doubleValue(); +// } +// return 0.0; +// }) +// .sum(); +// } else { +// flyAccTime = 0.0; +// } //----------------------------------------------获取飞行总架次、总时长---------------------------------------------- + Map devices = feignDeviceGroup.getDevices(); Map panel = baseMapper.countPanelAlert(businessAlertBo); @@ -245,8 +246,8 @@ public class BusinessAlertStatisticsServiceImpl implements IBusinessAlertStatist ObjectUtil.isEmpty(panel.get("total"))?0:panel.get("total"), ObjectUtil.isEmpty(panel.get("finishCount"))?0:panel.get("finishCount"), ObjectUtil.isEmpty(panel.get("cancelCount"))?0:panel.get("cancelCount"), - flyCount, - flyAccTime); + ObjectUtil.isEmpty(devices.get("flyCount"))?0:devices.get("flyCount"), + ObjectUtil.isEmpty(devices.get("flyAccTime"))?0:devices.get("flyAccTime")); } @Override diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceFlightRecordsController.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceFlightRecordsController.java new file mode 100644 index 0000000..44c721a --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/controller/DeviceFlightRecordsController.java @@ -0,0 +1,28 @@ +package org.dromara.sample.manage.controller; + +import lombok.extern.slf4j.Slf4j; +import org.dromara.sample.manage.service.IDeviceFlightRecordsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +@RestController +@Slf4j +@RequestMapping("/device/flight") +public class DeviceFlightRecordsController { + + @Autowired + private IDeviceFlightRecordsService deviceFlightRecordsService; + + @GetMapping("/count") + public Map getDevices() { + log.info("----------------------------开始调用feign接口查询项目组----------------------------"); + Map deviceFlightCount = deviceFlightRecordsService.getDeviceFlightCount(); + log.info("----------------------------调用feign接口查询项目组结束----------------------------"); + return deviceFlightCount; + } + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/DeviceFlightRecordsMapper.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/DeviceFlightRecordsMapper.java new file mode 100644 index 0000000..5db879e --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/mapper/DeviceFlightRecordsMapper.java @@ -0,0 +1,7 @@ +package org.dromara.sample.manage.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.dromara.sample.manage.model.entity.DeviceFlightRecordsEntity; + +public interface DeviceFlightRecordsMapper extends BaseMapper { +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceFlightRecordsEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceFlightRecordsEntity.java new file mode 100644 index 0000000..34d15f8 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceFlightRecordsEntity.java @@ -0,0 +1,46 @@ +package org.dromara.sample.manage.model.entity; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName(value = "device_flight_records") +public class DeviceFlightRecordsEntity { + + + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 机场sn + */ + private String deviceSn; + + /** + * 飞行总架次 + */ + private Integer flyCount; + + /** + * 飞行总时长 + */ + private Integer flyAccTime; + + /** + * 创建时间 + */ + private Date createTime; + + +} 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 new file mode 100644 index 0000000..71012f0 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceFlightRecordsService.java @@ -0,0 +1,15 @@ +package org.dromara.sample.manage.service; + +import org.dromara.sample.manage.model.entity.DeviceFlightRecordsEntity; + +import java.util.List; +import java.util.Map; + +public interface IDeviceFlightRecordsService { + + + void saveDeviceFlight(List 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 new file mode 100644 index 0000000..9f08d95 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceFlightRecordsServiceImpl.java @@ -0,0 +1,59 @@ +package org.dromara.sample.manage.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +@Service +public class DeviceFlightRecordsServiceImpl extends ServiceImpl implements IDeviceFlightRecordsService { + + + @Override + public void saveDeviceFlight(List deviceFlightRecords) { + + deviceFlightRecords.forEach(deviceFlightRecord -> { + //查询之前的数据 + DeviceFlightRecordsEntity deviceFlightRecordsEntities = this.baseMapper.selectOne(new LambdaQueryWrapper().eq(DeviceFlightRecordsEntity::getDeviceSn,deviceFlightRecord.getDeviceSn())); + + if (ObjectUtil.isNotEmpty(deviceFlightRecordsEntities)) { + deviceFlightRecordsEntities.setFlyCount(deviceFlightRecordsEntities.getFlyCount() + deviceFlightRecord.getFlyCount()); + deviceFlightRecordsEntities.setFlyAccTime(deviceFlightRecordsEntities.getFlyAccTime() + deviceFlightRecord.getFlyAccTime()); + + this.updateById(deviceFlightRecordsEntities); + }else { + this.save(deviceFlightRecord); + } + }); + } + + @Override + public Map getDeviceFlightCount() { + Map resultMap = new HashMap<>(); + + List deviceFlightRecordsEntities = this.baseMapper.selectList(new LambdaQueryWrapper<>()); + + int flyCount = deviceFlightRecordsEntities.stream() + .map(DeviceFlightRecordsEntity::getFlyCount) + .reduce(0, Integer::sum); + + + int flyAccTime = deviceFlightRecordsEntities.stream() + .map(DeviceFlightRecordsEntity::getFlyAccTime) + .reduce(0, Integer::sum); + + + resultMap.put("flyCount",flyCount); + resultMap.put("flyAccTime",flyAccTime); + + return resultMap; + } +} diff --git a/dk-modules/sample/src/main/resources/mapper/DeviceFlightRecordsMapper.xml b/dk-modules/sample/src/main/resources/mapper/DeviceFlightRecordsMapper.xml new file mode 100644 index 0000000..0b77503 --- /dev/null +++ b/dk-modules/sample/src/main/resources/mapper/DeviceFlightRecordsMapper.xml @@ -0,0 +1,8 @@ + + + + + + From 06a836da0572757c8a293e6affbed3b40f86c967 Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Fri, 25 Apr 2025 11:43:21 +0800 Subject: [PATCH 08/18] =?UTF-8?q?[feat]=201=E3=80=81=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=A3=9E=E8=A1=8C=E6=80=BB=E6=9E=B6=E6=AC=A1=E6=80=BB=E6=97=B6?= =?UTF-8?q?=E9=95=BF=E4=BF=9D=E5=AD=98=E6=8E=A5=E5=8F=A3=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=8E=B7=E5=8F=96=E6=97=B6=E9=95=BF=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E2=91=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/model/entity/DeviceFlightRecordsEntity.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceFlightRecordsEntity.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceFlightRecordsEntity.java index 34d15f8..7220bf8 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceFlightRecordsEntity.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/model/entity/DeviceFlightRecordsEntity.java @@ -1,9 +1,7 @@ package org.dromara.sample.manage.model.entity; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -40,6 +38,7 @@ public class DeviceFlightRecordsEntity { /** * 创建时间 */ + @TableField(fill = FieldFill.INSERT) private Date createTime; From caae858c5ae04ce2abb428b77a2fde9aaa1bbafb Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Fri, 25 Apr 2025 14:12:52 +0800 Subject: [PATCH 09/18] =?UTF-8?q?[feat]=201=E3=80=81=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=A2=84=E8=AD=A6=E5=88=A0=E9=99=A4=E6=8C=89=E9=92=AE=E6=9D=83?= =?UTF-8?q?=E9=99=90=E2=91=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/controller/BusinessAlertController.java | 9 +++++++++ .../dromara/business/service/IBusinessAlertService.java | 2 ++ .../business/service/impl/BusinessAlertServiceImpl.java | 9 +++++++++ 3 files changed, 20 insertions(+) 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 0611c9a..20c53ab 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 @@ -1,5 +1,6 @@ package org.dromara.business.controller; +import cn.dev33.satoken.annotation.SaCheckPermission; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; @@ -52,6 +53,14 @@ public class BusinessAlertController extends BaseController { return R.ok(businessAlertService.getTodoBusinessAlert(alertId)); } + + @SaCheckPermission("business:alert:delete") + @Operation(summary ="删除预警",description = "删除预警") + @GetMapping("/{alertId}/delete") + public R deleteFalseAlert(@PathVariable("alertId") Long alertId) { + return R.ok(businessAlertService.deleteFalseAlert(alertId)); + } + /** * 查询全部预警/待办/已完成/忽略 */ 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 994a451..8d8405d 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 @@ -84,4 +84,6 @@ public interface IBusinessAlertService { List listTodoAlert(BusinessAlertBo businessAlertBo); BusinessAlert getTodoBusinessAlert(Long alertId); + + Boolean deleteFalseAlert(Long alertId); } 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 85c30be..dc67990 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 @@ -380,6 +380,7 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { //排除状态为验证状态预警 wrapper.ne("t.handle_type", BusinessStatusEnum.VERIFY.getStatus()); + wrapper.eq("t.del_flag", 0); if (ObjectUtil.isNotEmpty(bo.getHandleType())){ wrapper.eq("t.handle_type", bo.getHandleType()); @@ -647,6 +648,14 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { return businessAlert; } + @Override + public Boolean deleteFalseAlert(Long alertId) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(BusinessAlert::getId, alertId); + wrapper.set(BusinessAlert::getDelFlag,1); + return this.baseMapper.update(wrapper) > 0; + } + public static void main(String[] args) { System.out.println(getLastSixDays()); From 07dd54ebfb924c60a73807499669ddb372bb885f Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Fri, 25 Apr 2025 14:20:31 +0800 Subject: [PATCH 10/18] =?UTF-8?q?[feat]=201=E3=80=81=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=A2=84=E8=AD=A6=E5=88=A0=E9=99=A4=E6=8C=89=E9=92=AE=E6=9D=83?= =?UTF-8?q?=E9=99=90=E2=91=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/business/controller/BusinessAlertController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 20c53ab..3a84f9d 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,7 +56,7 @@ public class BusinessAlertController extends BaseController { @SaCheckPermission("business:alert:delete") @Operation(summary ="删除预警",description = "删除预警") - @GetMapping("/{alertId}/delete") + @GetMapping("/alert/{alertId}/delete") public R deleteFalseAlert(@PathVariable("alertId") Long alertId) { return R.ok(businessAlertService.deleteFalseAlert(alertId)); } From 05b13a353c88550da4c569cd6b6d409eda927b71 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Fri, 25 Apr 2025 15:14:45 +0800 Subject: [PATCH 11/18] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E6=AF=94=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/service/impl/DeviceQrtzServiceImpl.java | 1 + .../sample/media/service/impl/MediaServiceImpl.java | 2 +- .../wayline/controller/AiCompareController.java | 11 ++++++++++- .../sample/wayline/service/IAiCompareService.java | 1 + .../wayline/service/impl/AiCompareServiceImpl.java | 8 ++++++++ 5 files changed, 21 insertions(+), 2 deletions(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java index 62a8036..bb817ed 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java @@ -327,6 +327,7 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService { HttpResultResponse httpResultResponse = flightTaskService.publishFlightTask(device.getWorkspaceId(), createJobParam, deviceQrtzFileEntity.getNickName()); if(httpResultResponse.getCode() == 0){ deviceQrtzFileEntity.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_2); + deviceQrtzFileEntity.setFlightDate(new Date()); deviceQrtzFileMapper.updateById(deviceQrtzFileEntity); continue; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/MediaServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/MediaServiceImpl.java index 8158778..f6bcd97 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/MediaServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/MediaServiceImpl.java @@ -122,7 +122,7 @@ public class MediaServiceImpl extends AbstractMediaService implements IMediaServ && request.getTid().equals(mediaFileCount.getTid()))) { if(CollectionUtils.isEmpty(deviceQrtzFileEntities)){ deviceQrtzFileEntities.stream().forEach(item->{ - item.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_2); + item.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_3); }); deviceQrtzFileMapper.updateById(deviceQrtzFileEntities,100); } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java index 4a8b119..84575e4 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java @@ -136,7 +136,16 @@ public class AiCompareController extends BaseController { public R edit(@Validated(EditGroup.class) @RequestBody Map bo) { return toAjax(aiCompareService.update(bo)); } - + /** + * 状态更改 + */ + @SaCheckPermission("sample:compare:add") + @Log(title = "状态更改", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @GetMapping("/updateStatus") + public R updateStatus(Long id,String status) { + return toAjax(aiCompareService.updateStatus(id,status)); + } /** * 画框 diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java index b650bcd..5da35a9 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java @@ -23,6 +23,7 @@ public interface IAiCompareService { Boolean update(Map compareDTO); + Boolean updateStatus(Long id,String status); AiCompareEntity getInfo(Long id); List queryById(Long id); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java index 476f7dc..78863fa 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java @@ -185,6 +185,14 @@ public class AiCompareServiceImpl implements IAiCompareService { return i>0; } + @Override + public Boolean updateStatus(Long id, String status) { + AiCompareEntity aiCompareEntity =new AiCompareEntity(); + aiCompareEntity.setId(id); + aiCompareEntity.setStatus(status); + return aiCompareMapper.updateById(aiCompareEntity)>0; + } + @Override public AiCompareEntity getInfo(Long id) { return aiCompareMapper.selectById(id); From def0122c5f18c7cf09865aa03097fecda6466593 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Fri, 25 Apr 2025 16:05:34 +0800 Subject: [PATCH 12/18] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E6=AF=94=E5=AF=B9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wayline/controller/AiCompareController.java | 4 ++-- .../sample/wayline/service/IAiCompareService.java | 2 +- .../wayline/service/impl/AiCompareServiceImpl.java | 13 ++++++++----- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java index 84575e4..0e4b2b4 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/AiCompareController.java @@ -143,8 +143,8 @@ public class AiCompareController extends BaseController { @Log(title = "状态更改", businessType = BusinessType.UPDATE) @RepeatSubmit() @GetMapping("/updateStatus") - public R updateStatus(Long id,String status) { - return toAjax(aiCompareService.updateStatus(id,status)); + public R updateStatus(Long id) { + return toAjax(aiCompareService.updateStatus(id)); } /** diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java index 5da35a9..dae7a03 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IAiCompareService.java @@ -23,7 +23,7 @@ public interface IAiCompareService { Boolean update(Map compareDTO); - Boolean updateStatus(Long id,String status); + Boolean updateStatus(Long id); AiCompareEntity getInfo(Long id); List queryById(Long id); diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java index 78863fa..5285f52 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/AiCompareServiceImpl.java @@ -186,11 +186,14 @@ public class AiCompareServiceImpl implements IAiCompareService { } @Override - public Boolean updateStatus(Long id, String status) { - AiCompareEntity aiCompareEntity =new AiCompareEntity(); - aiCompareEntity.setId(id); - aiCompareEntity.setStatus(status); - return aiCompareMapper.updateById(aiCompareEntity)>0; + public Boolean updateStatus(Long id) { + AiCompareEntity aiCompareEntity = aiCompareMapper.selectById(id); + Boolean falg=false; + if(aiCompareEntity!=null&& ObjectUtil.equals(aiCompareEntity.getStatus(),AiCompareStatusConstants.COMPARE_STATUS_2)){ + aiCompareEntity.setStatus(AiCompareStatusConstants.COMPARE_STATUS_4); + falg= aiCompareMapper.updateById(aiCompareEntity)>0; + } + return falg; } @Override From f9eb07ce5e83b3cf35ac4ad2654b59f1188c71fc Mon Sep 17 00:00:00 2001 From: yangwei <867012372@qq.com> Date: Fri, 25 Apr 2025 16:32:23 +0800 Subject: [PATCH 13/18] =?UTF-8?q?[feat]=201=E3=80=81=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=A2=84=E8=AD=A6=E5=88=A0=E9=99=A4=E6=8C=89=E9=92=AE=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=93=8D=E4=BD=9C=E6=97=A5=E5=BF=97=E2=91=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/business/controller/BusinessAlertController.java | 3 +++ 1 file changed, 3 insertions(+) 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 3a84f9d..db13d60 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 @@ -10,6 +10,8 @@ import org.dromara.business.domain.bo.BusinessAlertBo; import org.dromara.business.domain.vo.BusinessAlertVo; import org.dromara.business.service.IBusinessAlertService; import org.dromara.common.core.domain.R; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; @@ -55,6 +57,7 @@ public class BusinessAlertController extends BaseController { @SaCheckPermission("business:alert:delete") + @Log(title = "删除预警", businessType = BusinessType.DELETE) @Operation(summary ="删除预警",description = "删除预警") @GetMapping("/alert/{alertId}/delete") public R deleteFalseAlert(@PathVariable("alertId") Long alertId) { From a5b383a28579d1e9bf0ffd3e4da5f6043b9252b6 Mon Sep 17 00:00:00 2001 From: yq183 <645046984@qq.com> Date: Fri, 25 Apr 2025 16:58:26 +0800 Subject: [PATCH 14/18] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml index 3bd86ee..bebdf53 100644 --- a/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml +++ b/dk-modules/sample/src/main/resources/mapper/AiCompareMapper.xml @@ -10,6 +10,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"