From a3fa17bdb1e3d5e2fde056b291d886b8d0d3ca2e Mon Sep 17 00:00:00 2001 From: weitang Date: Mon, 9 Jun 2025 10:12:31 +0800 Subject: [PATCH] =?UTF-8?q?fix(algorithm):=E4=BF=AE=E6=94=B9=E7=AE=97?= =?UTF-8?q?=E6=B3=95=E6=96=B9=E6=A1=88=E6=96=B0=E5=A2=9E=E5=92=8C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=80=BB=E8=BE=91=20=E5=9B=A0=E4=B8=BA=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=B9=B3=E9=9D=A2=E5=9B=BE=EF=BC=8C=E4=BD=86=E6=98=AF?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=88=A0=E9=99=A4=E4=B9=8B=E5=89=8D=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E7=9A=84=E5=9B=BE=E7=89=87=EF=BC=8C=E8=BF=99=E9=87=8C?= =?UTF-8?q?=E5=81=9A=E4=BA=86=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yfd/platform/config/JobRunner.java | 20 +++++++++--- .../AlgorithmArrangeController.java | 18 +++++++++++ .../service/IAlgorithmArrangeService.java | 2 ++ .../IAlgorithmClassComponentService.java | 11 +++++++ .../impl/AlgorithmArrangeServiceImpl.java | 31 ++++++++++++++++--- .../AlgorithmClassComponentServiceImpl.java | 21 ++++++++++--- 6 files changed, 90 insertions(+), 13 deletions(-) diff --git a/riis-system/src/main/java/com/yfd/platform/config/JobRunner.java b/riis-system/src/main/java/com/yfd/platform/config/JobRunner.java index a0b1b88..e981cc9 100644 --- a/riis-system/src/main/java/com/yfd/platform/config/JobRunner.java +++ b/riis-system/src/main/java/com/yfd/platform/config/JobRunner.java @@ -20,6 +20,8 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.yfd.platform.modules.algorithm.domain.AlgorithmClassComponent; +import com.yfd.platform.modules.algorithm.service.IAlgorithmClassComponentService; import com.yfd.platform.modules.basedata.domain.SubstationPatroldevice; import com.yfd.platform.modules.basedata.service.impl.SubstationPatroldeviceServiceImpl; import com.yfd.platform.modules.patroltask.domain.TaskTodo; @@ -32,6 +34,7 @@ import com.yfd.platform.system.mapper.QuartzJobMapper; import com.yfd.platform.utils.HttpRESTfulUtils; import com.yfd.platform.utils.QuartzManage; import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.ApplicationArguments; @@ -40,6 +43,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.text.ParseException; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -47,7 +51,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; /** - * * @date 2019-01-07 */ @Component @@ -64,6 +67,7 @@ public class JobRunner implements ApplicationRunner { private final HttpRESTfulUtils httpUtil; private final HttpServerConfig config; private final IPlatformParentSystemService platformParentSystemService; + private final IAlgorithmClassComponentService algorithmClassComponentService; /** * 项目启动时重新激活启用的定时任务 @@ -71,7 +75,7 @@ public class JobRunner implements ApplicationRunner { * @param applicationArguments / */ @Override - public void run(ApplicationArguments applicationArguments) { + public void run(ApplicationArguments applicationArguments) throws ParseException { log.info("--------------------注入系统定时任务---------------------"); List quartzJobs = @@ -91,11 +95,19 @@ public class JobRunner implements ApplicationRunner { log.info("--------------------自启动上级系统注册---------------------"); List list = platformParentSystemService.list(new LambdaQueryWrapper().eq(PlatformParentSystem::getIsEnable, "1")); - if (list != null && list.size() > 0) { + if (list != null && !list.isEmpty()) { PlatformParentSystem platformParentSystem = list.get(0); platformParentSystemService.sendRegisterToSuper(platformParentSystem.getId()); } - + log.info("--------------------自启动算法任务---------------------"); +// List classComponents = +// algorithmClassComponentService.list(new LambdaQueryWrapper().eq(AlgorithmClassComponent::getIsenable, "1")); +// if (classComponents != null && !classComponents.isEmpty()) { +// for (AlgorithmClassComponent classComponent : classComponents) { +// algorithmClassComponentService.createAlgorithmTaskList(classComponent); +// } +// } + log.info("--------------------自启动算法任务完成---------------------"); log.info("--------------------自启动上级系统注册完成---------------------"); } } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/controller/AlgorithmArrangeController.java b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/controller/AlgorithmArrangeController.java index f6e7aed..95a8487 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/controller/AlgorithmArrangeController.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/controller/AlgorithmArrangeController.java @@ -20,6 +20,7 @@ import com.yfd.platform.modules.algorithm.domain.AlgorithmArrange; import com.yfd.platform.modules.algorithm.service.IAlgorithmArrangeDeviceService; import com.yfd.platform.modules.algorithm.service.IAlgorithmArrangeService; import com.yfd.platform.modules.basedata.domain.Substation; +import com.yfd.platform.modules.basedata.service.ISubstationService; import com.yfd.platform.system.service.ISysDictionaryItemsService; import com.yfd.platform.utils.FileUtil; import com.yfd.platform.utils.SecurityUtils; @@ -62,6 +63,8 @@ public class AlgorithmArrangeController { @Resource private ISysDictionaryItemsService sysDictionaryItemsService; @Resource + private ISubstationService substationService; + @Resource private HttpServerConfig httpServerConfig; @GetMapping("/getAlgorithmArrangePage") @@ -112,6 +115,11 @@ public class AlgorithmArrangeController { return ResponseResult.error("文件上传失败:" + e.getMessage()); } } + if (StrUtil.isNotBlank(algorithmArrange.getStationId())) { + Substation substation = substationService.getById(algorithmArrange.getStationId()); + algorithmArrange.setStationName(substation.getStationName()); + algorithmArrange.setStationCode(substation.getStationCode()); + } boolean save = algorithmArrangeService.save(algorithmArrange); if (!save) { return ResponseResult.error(); @@ -151,6 +159,11 @@ public class AlgorithmArrangeController { algorithmArrange.setLastmodifydate(LocalDateTime.now()); // 文件上传逻辑 if (file != null && !file.isEmpty()) { + String id = algorithmArrange.getId(); + AlgorithmArrange arrange = algorithmArrangeService.getById(id); + if (StrUtil.isNotBlank(arrange.getImageUrl())) { + algorithmArrangeService.removeImage(httpServerConfig.getPlanFilePath() + arrange.getImageUrl()); + } try { // 调用服务层方法 String fileUrl = algorithmArrangeService.uploadImage(file); @@ -160,6 +173,11 @@ public class AlgorithmArrangeController { return ResponseResult.error("文件上传失败:" + e.getMessage()); } } + if (StrUtil.isNotBlank(algorithmArrange.getStationId())) { + Substation substation = substationService.getById(algorithmArrange.getStationId()); + algorithmArrange.setStationName(substation.getStationName()); + algorithmArrange.setStationCode(substation.getStationCode()); + } boolean save = algorithmArrangeService.updateById(algorithmArrange); if (!save) { return ResponseResult.error(); diff --git a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmArrangeService.java b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmArrangeService.java index 43e556d..a414ad6 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmArrangeService.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmArrangeService.java @@ -27,4 +27,6 @@ public interface IAlgorithmArrangeService extends IService { * 返回值说明: java.lang.String ***********************************/ String uploadImage(MultipartFile file); + + boolean removeImage(String filePath); } diff --git a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmClassComponentService.java b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmClassComponentService.java index 97d7d58..829dcae 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmClassComponentService.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/IAlgorithmClassComponentService.java @@ -32,8 +32,19 @@ public interface IAlgorithmClassComponentService extends IService algorithmClassComponentList); + /********************************** + * 用途说明: 设置算法关联主设备部件状态 + * 参数说明 id 算法部件id + * 参数说明 isenable 状态 + * 返回值说明: boolean + ***********************************/ boolean setAlgorithmClassComponentStatus(String id, String isenable) throws ParseException; boolean createAlgorithmTaskList(AlgorithmClassComponent algorithmClassComponent) throws ParseException; diff --git a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmArrangeServiceImpl.java b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmArrangeServiceImpl.java index b0e57d7..f8a5078 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmArrangeServiceImpl.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmArrangeServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.yfd.platform.config.HttpServerConfig; import com.yfd.platform.modules.algorithm.domain.AlgorithmArrange; import com.yfd.platform.modules.algorithm.domain.AlgorithmArrangeDevice; @@ -22,6 +23,10 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -130,11 +135,29 @@ public class AlgorithmArrangeServiceImpl extends ServiceImpl> - ***********************************/ + * 用途说明: 转换方法 + * 参数说明 originalList 原始列表 + * 返回值说明: java.util.List> + ***********************************/ private List> renameKeysWithStream(List> originalList) { return originalList.stream().map(originalMap -> { Map newMap = new HashMap<>(); diff --git a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmClassComponentServiceImpl.java b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmClassComponentServiceImpl.java index e3e8043..9564175 100644 --- a/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmClassComponentServiceImpl.java +++ b/riis-system/src/main/java/com/yfd/platform/modules/algorithm/service/impl/AlgorithmClassComponentServiceImpl.java @@ -1,6 +1,5 @@ package com.yfd.platform.modules.algorithm.service.impl; -import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -12,16 +11,12 @@ import com.yfd.platform.modules.algorithm.domain.AlgorithmDevice; import com.yfd.platform.modules.algorithm.mapper.AlgorithmClassComponentMapper; import com.yfd.platform.modules.algorithm.mapper.AlgorithmDeviceMapper; import com.yfd.platform.modules.algorithm.service.IAlgorithmClassComponentService; -import com.yfd.platform.modules.patroltask.domain.TaskTodo; import com.yfd.platform.utils.CronScheduleUtils; import org.quartz.CronExpression; -import org.quartz.TriggerUtils; -import org.quartz.impl.triggers.CronTriggerImpl; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.ParseException; -import java.util.Calendar; import java.util.Date; import java.util.List; @@ -79,11 +74,22 @@ public class AlgorithmClassComponentServiceImpl extends ServiceImpl algorithmClassComponentList) { return this.saveOrUpdateBatch(algorithmClassComponentList); } + /********************************** + * 用途说明: 设置算法关联主设备部件状态 + * 参数说明 id 算法部件id + * 参数说明 isenable 状态 + * 返回值说明: boolean + ***********************************/ @Override public boolean setAlgorithmClassComponentStatus(String id, String isenable) throws ParseException { AlgorithmClassComponent algorithmClassComponent = this.getById(id); @@ -115,6 +121,11 @@ public class AlgorithmClassComponentServiceImpl extends ServiceImpl