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 1/6] =?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' + + -- 2.30.2 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 2/6] =?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(); } -- 2.30.2 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 3/6] =?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); } }); } -- 2.30.2 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 4/6] =?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); } }); } -- 2.30.2 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 5/6] =?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); } }); } -- 2.30.2 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 6/6] =?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" -- 2.30.2