From 530d08e5b532cff50a90905de3db911ad43fcc05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=91=E5=B9=B4=E6=A2=A6=E4=B8=8E=E7=A0=96?= <2847127106@qq.com> Date: Wed, 25 Sep 2024 21:27:36 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=9C=9F=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cloud-breakdown-client/pom.xml | 27 ++++ .../cloud-breakdown-common/pom.xml | 26 +++ .../com/muyu/breakdown/DTO/MessageDTO.java | 93 +++++++++++ .../com/muyu/breakdown/domain/BreakDown.java | 74 +++++++++ .../com/muyu/breakdown/domain/FaultLog.java | 55 +++++++ .../com/muyu/breakdown/domain/MessageMap.java | 23 +++ .../com/muyu/breakdown/domain/Messages.java | 39 +++++ .../muyu/breakdown/domain/SysCarMessage.java | 43 +++++ .../cloud-breakdown-remote/pom.xml | 27 ++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../cloud-breakdown-server/pom.xml | 92 +++++++++++ .../java/com/muyu/BreakDownApplication.java | 23 +++ .../breakdown/config/MybatisPlusConfig.java | 37 +++++ .../muyu/breakdown/config/RabbitMQConfig.java | 56 +++++++ .../config/RabbitMQDirectConfig.java | 62 +++++++ .../breakdown/config/RabbitMQTopicConfig.java | 59 +++++++ .../controller/BreakDownController.java | 115 +++++++++++++ .../controller/FaultLogController.java | 113 +++++++++++++ .../controller/StationMessageController.java | 42 +++++ .../controller/SysCarMessageController.java | 20 +++ .../breakdown/mapper/BreakDownMapper.java | 18 +++ .../muyu/breakdown/mapper/FaultLogMapper.java | 17 ++ .../mapper/StationMessageMapper.java | 18 +++ .../breakdown/mapper/SysCarMessageMapper.java | 17 ++ .../breakdown/service/BreakDownService.java | 43 +++++ .../breakdown/service/IFaultLogService.java | 37 +++++ .../service/StationMessageService.java | 19 +++ .../service/SysCarMessageService.java | 15 ++ .../service/impl/BreakDownServiceImpl.java | 97 +++++++++++ .../service/impl/FaultLogServiceImpl.java | 78 +++++++++ .../impl/StationMessageServiceImpl.java | 35 ++++ .../impl/SysCarMessageServiceImpl.java | 19 +++ .../src/main/resources/banner.txt | 2 + .../src/main/resources/bootstrap.yml | 60 +++++++ .../src/main/resources/logback/dev.xml | 74 +++++++++ .../src/main/resources/logback/prod.xml | 81 ++++++++++ .../src/main/resources/logback/test.xml | 81 ++++++++++ cloud-modules/cloud-breakdown/pom.xml | 27 ++++ cloud-modules/cloud-modules-car/pom.xml | 95 +++++++++++ .../muyu/carrail/CloudCarRailApplication.java | 23 +++ .../controller/SysCorpuscleController.java | 80 +++++++++ .../controller/SysFenceController.java | 106 ++++++++++++ .../com/muyu/carrail/domain/SysCorpuscle.java | 67 ++++++++ .../com/muyu/carrail/domain/SysFence.java | 95 +++++++++++ .../carrail/mapper/SysCorpuscleMapper.java | 21 +++ .../muyu/carrail/mapper/SysFenceMapper.java | 16 ++ .../carrail/service/ISysCorpuscleService.java | 25 +++ .../carrail/service/ISysFenceService.java | 38 +++++ .../service/impl/SysCorpuscleServiceImpl.java | 43 +++++ .../service/impl/SysFenceServiceImpl.java | 63 ++++++++ .../src/main/resources/bootstrap.yml | 58 +++++++ .../mapper/carrail/SysFenceMapper.xml | 54 +++++++ .../mapper/carrail/SyscarRailMapper.xml | 16 ++ cloud-modules/cloud-modules-rail/pom.xml | 91 +++++++++++ .../zhangyi/rail/CloudRailApplication.java | 7 + .../rail/controller/RailController.java | 4 + .../com/zhangyi/rail/domain/SysFenceRail.java | 38 +++++ .../cloud-warn-client/pom.xml | 20 +++ .../cloud-warn-common/pom.xml | 138 ++++++++++++++++ .../com/muyu/warning/domain/WarnLogs.java | 90 +++++++++++ .../com/muyu/warning/domain/WarnRule.java | 76 +++++++++ .../com/muyu/warning/domain/WarnRuleDTO.java | 63 ++++++++ .../com/muyu/warning/domain/WarnStrategy.java | 56 +++++++ .../java/com/muyu/warning/wx/AccessToken.java | 20 +++ .../java/com/muyu/warning/wx/Message.java | 27 ++++ .../cloud-warn-remote/pom.xml | 20 +++ .../cloud-warn-server/pom.xml | 73 +++++++++ .../com/muyu/warning/WarnApplication.java | 21 +++ .../controller/WarnLogsController.java | 109 +++++++++++++ .../controller/WarnRuleController.java | 116 +++++++++++++ .../controller/WarnRulesController.java | 49 ++++++ .../controller/WarnStrategyController.java | 105 ++++++++++++ .../warning/controller/WxTestController.java | 153 ++++++++++++++++++ .../muyu/warning/mapper/WarnLogsMapper.java | 16 ++ .../muyu/warning/mapper/WarnRuleMapper.java | 19 +++ .../muyu/warning/mapper/WarnRulesMapper.java | 21 +++ .../warning/mapper/WarnStrategyMapper.java | 16 ++ .../com/muyu/warning/message/Article.java | 28 ++++ .../com/muyu/warning/message/NewMessage.java | 34 ++++ .../warning/service/IWarRulesService.java | 14 ++ .../warning/service/IWarnLogsService.java | 37 +++++ .../warning/service/IWarnRuleService.java | 39 +++++ .../warning/service/IWarnStrategyService.java | 37 +++++ .../service/impl/WarnLogsServiceImpl.java | 92 +++++++++++ .../service/impl/WarnRuleServiceImpl.java | 108 +++++++++++++ .../service/impl/WarnRulesServiceImpl.java | 47 ++++++ .../service/impl/WarnStrategyServiceImpl.java | 74 +++++++++ .../com/muyu/warning/util/OkHttpUtils.java | 36 +++++ .../java/com/muyu/warning/util/TokenUtil.java | 35 ++++ .../src/main/resources/banner.txt | 2 + .../src/main/resources/bootstrap.yml | 48 ++++++ .../src/main/resources/logback/dev.xml | 74 +++++++++ .../src/main/resources/logback/prod.xml | 81 ++++++++++ .../src/main/resources/logback/test.xml | 81 ++++++++++ .../mapper/platform/WarnLogsMapper.xml | 96 +++++++++++ .../mapper/platform/WarnRuleMapper.xml | 86 ++++++++++ .../mapper/platform/WarnRulesMapper.xml | 9 ++ .../mapper/platform/WarnStrategyMapper.xml | 66 ++++++++ cloud-modules/cloud-modules-warn/pom.xml | 26 +++ 99 files changed, 5063 insertions(+) create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-client/pom.xml create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-common/pom.xml create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/DTO/MessageDTO.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/BreakDown.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/FaultLog.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/MessageMap.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/Messages.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/SysCarMessage.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-remote/pom.xml create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/pom.xml create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/BreakDownApplication.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/MybatisPlusConfig.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQConfig.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQDirectConfig.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQTopicConfig.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/BreakDownController.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/FaultLogController.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/StationMessageController.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/SysCarMessageController.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/BreakDownMapper.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/FaultLogMapper.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/StationMessageMapper.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/SysCarMessageMapper.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/BreakDownService.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/IFaultLogService.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/StationMessageService.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/SysCarMessageService.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/BreakDownServiceImpl.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/FaultLogServiceImpl.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/StationMessageServiceImpl.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/SysCarMessageServiceImpl.java create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/banner.txt create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/bootstrap.yml create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/dev.xml create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/prod.xml create mode 100644 cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/test.xml create mode 100644 cloud-modules/cloud-breakdown/pom.xml create mode 100644 cloud-modules/cloud-modules-car/pom.xml create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/CloudCarRailApplication.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/controller/SysCorpuscleController.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/controller/SysFenceController.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/domain/SysCorpuscle.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/domain/SysFence.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/mapper/SysCorpuscleMapper.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/mapper/SysFenceMapper.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/ISysCorpuscleService.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/ISysFenceService.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/impl/SysCorpuscleServiceImpl.java create mode 100644 cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/impl/SysFenceServiceImpl.java create mode 100644 cloud-modules/cloud-modules-car/src/main/resources/bootstrap.yml create mode 100644 cloud-modules/cloud-modules-car/src/main/resources/mapper/carrail/SysFenceMapper.xml create mode 100644 cloud-modules/cloud-modules-car/src/main/resources/mapper/carrail/SyscarRailMapper.xml create mode 100644 cloud-modules/cloud-modules-rail/pom.xml create mode 100644 cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/CloudRailApplication.java create mode 100644 cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/controller/RailController.java create mode 100644 cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/domain/SysFenceRail.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-client/pom.xml create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-common/pom.xml create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnLogs.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnRule.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnRuleDTO.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnStrategy.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/wx/AccessToken.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/wx/Message.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-remote/pom.xml create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/pom.xml create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/WarnApplication.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnLogsController.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnRuleController.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnRulesController.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnStrategyController.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WxTestController.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnLogsMapper.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnRuleMapper.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnRulesMapper.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnStrategyMapper.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/message/Article.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/message/NewMessage.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarRulesService.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnLogsService.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnRuleService.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnStrategyService.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnLogsServiceImpl.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnRuleServiceImpl.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnRulesServiceImpl.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnStrategyServiceImpl.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/util/OkHttpUtils.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/util/TokenUtil.java create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/banner.txt create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/bootstrap.yml create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/dev.xml create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/prod.xml create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/test.xml create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnLogsMapper.xml create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnRuleMapper.xml create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnRulesMapper.xml create mode 100644 cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnStrategyMapper.xml create mode 100644 cloud-modules/cloud-modules-warn/pom.xml diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-client/pom.xml b/cloud-modules/cloud-breakdown/cloud-breakdown-client/pom.xml new file mode 100644 index 0000000..603eba0 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-client/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + com.muyu + cloud-breakdown + 3.6.3 + + + cloud-breakdown-client + + + 17 + 17 + UTF-8 + + + + + com.muyu + cloud-breakdown-common + 3.6.3 + + + diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-common/pom.xml b/cloud-modules/cloud-breakdown/cloud-breakdown-common/pom.xml new file mode 100644 index 0000000..fc96ca7 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-common/pom.xml @@ -0,0 +1,26 @@ + + + 4.0.0 + + com.muyu + cloud-breakdown + 3.6.3 + + + cloud-breakdown-common + + + 17 + 17 + UTF-8 + + + + com.muyu + cloud-common-core + + + + diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/DTO/MessageDTO.java b/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/DTO/MessageDTO.java new file mode 100644 index 0000000..5e933f7 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/DTO/MessageDTO.java @@ -0,0 +1,93 @@ +//package com.muyu.breakdown.DTO; +// +// +//import com.muyu.breakdown.domain.Messages; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.stereotype.Component; +// +//import java.sql.*; +//import java.util.*; +// +///** +// * @ Tool:IntelliJ IDEA +// * @ Author:CHX +// * @ Date:2024-09-18-15:00 +// * @ Version:1.0 +// * @ Description:数据库连接层 +// * @author Lenovo +// */ +//@Component +//public class MessageDTO { +// private static final String DB_URL = "jdbc:mysql://106.54.193.225:3306/one"; +// private static final String USER = "root"; +// private static final String PASSWORD = "bawei2112A"; +// +// // 2. 建立数据库连接 +// Connection connection; +// // 构造函数,初始化数据库连接 +// // 保存消息到数据库 +// public void saveMessage(Messages message) { +// String sql = "INSERT INTO sys_messages (sender_id, receiver_id, content) VALUES (?, ?, ?)"; +// try { +// Class.forName("com.mysql.cj.jdbc.Driver"); +// } catch (ClassNotFoundException e) { +// throw new RuntimeException(e); +// } +// try { +// connection = DriverManager.getConnection(DB_URL, USER, PASSWORD); +// } catch (SQLException e) { +// throw new RuntimeException(e); +// } +// try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) { +// preparedStatement.setInt(1, message.getSenderId()); +// preparedStatement.setInt(2, message.getReceiverId()); +// preparedStatement.setString(3, message.getContent()); +// // 执行添加操作 +// preparedStatement.executeUpdate(); +// } catch (SQLException e) { +// throw new RuntimeException(e); +// } +// try { +// connection.close(); +// } catch (SQLException e) { +// throw new RuntimeException(e); +// } +// } +// +// // 获取所有消息 +// public List getAllMessages(int receiverId){ +// String sql = "SELECT * FROM sys_messages WHERE receiver_id = ?"; +// try { +// Class.forName("com.mysql.cj.jdbc.Driver"); +// } catch (ClassNotFoundException e) { +// throw new RuntimeException(e); +// } +// List messages = new ArrayList<>(); +// try { +// connection = DriverManager.getConnection(DB_URL, USER, PASSWORD); +// } catch (SQLException e) { +// throw new RuntimeException(e); +// } +// try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) { +// preparedStatement.setInt(1, receiverId); +// // 执行查询操作 +// ResultSet rs = preparedStatement.executeQuery(); +// while (rs.next()) { +// Messages message = new Messages(rs.getInt("sender_id"), receiverId, rs.getString("content")); +// +// // 添加到消息列表 +// messages.add(message); +// } +// } catch (SQLException e) { +// throw new RuntimeException(e); +// } +// try { +// connection.close(); +// } catch (SQLException e) { +// throw new RuntimeException(e); +// } +// // 返回消息列表 +// return messages; +// } +// +//} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/BreakDown.java b/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/BreakDown.java new file mode 100644 index 0000000..208c12b --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/BreakDown.java @@ -0,0 +1,74 @@ +package com.muyu.breakdown.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @author Lenovo + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-17-15:10 + * @ Version:1.0 + * @ Description:故障实体类 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("sys_car_fault") +public class BreakDown extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + + @TableId(value = "id", type = IdType.AUTO) + @Excel(name = "主键") + private Long id; + /** + * 故障码 + */ + @Excel(name = "故障码") + private String faultCode; + /** + * 故障类型 + */ + @Excel(name = "故障类型") + private String faultType; + /** + * 故障标签 + */ + @Excel(name = "故障标签") + private String faultLabel; + /** + * 故障位 + */ + @Excel(name = "故障位") + private String faultBit; + /** + * 故障值 + */ + @Excel(name = "故障值") + private String faultValue; + /** + * 故障级别 + */ + @Excel(name = "故障级别") + private String faultWarn; + /** + * 报警状态(Y.是,N.否) + */ + @Excel(name = "报警状态") + private String faultStatus; +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/FaultLog.java b/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/FaultLog.java new file mode 100644 index 0000000..3dd3a01 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/FaultLog.java @@ -0,0 +1,55 @@ +package com.muyu.breakdown.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.*; +import lombok.experimental.SuperBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; + +/** + * 故障日志对象 fault_log + * + * @author muyu + * @date 2024-09-20 + */ + +@EqualsAndHashCode(callSuper = true) +@Data +@Setter +@Getter +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("fault_log") +public class FaultLog extends BaseEntity{ + private static final long serialVersionUID = 1L; + + /** id */ + @TableId( type = IdType.AUTO) + private Long id; + + /** 故障码 */ + @Excel(name = "故障码") + private String faultCode; + + /** 车辆VIN */ + @Excel(name = "车辆VIN") + private String carVin; + + /** 开始报警时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "开始报警时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date startTime; + + /** 结束报警时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "结束报警时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date endTime; + +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/MessageMap.java b/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/MessageMap.java new file mode 100644 index 0000000..c75401f --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/MessageMap.java @@ -0,0 +1,23 @@ +package com.muyu.breakdown.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-20-15:31 + * @ Version:1.0 + * @ Description: + * @author Lenovo + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class MessageMap { + private String key; + private String value; +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/Messages.java b/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/Messages.java new file mode 100644 index 0000000..4e430fb --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/Messages.java @@ -0,0 +1,39 @@ +package com.muyu.breakdown.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.common.core.annotation.Excel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-18-14:51 + * @ Version:1.0 + * @ Description:站内信实体类 + * @author Lenovo + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("sys_messages") +public class Messages { + @TableId(value = "id", type = IdType.AUTO) + @Excel(name = "消息ID") + private Long id; + @Excel(name = "发送者ID") + private String senderId; + @Excel(name = "接收者ID") + private String receiverId; + @Excel(name = "消息内容") + private String content; + @Excel(name = "发送时间") + private Date createTime; + @Excel(name = "消息状态") + private String status; +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/SysCarMessage.java b/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/SysCarMessage.java new file mode 100644 index 0000000..7cadf9c --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-common/src/main/java/com/muyu/breakdown/domain/SysCarMessage.java @@ -0,0 +1,43 @@ +package com.muyu.breakdown.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-20-15:35 + * @ Version:1.0 + * @ Description:报文 + * @author Lenovo + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +@TableName("sys_car_message") +public class SysCarMessage { + /** + * id + */ + private Integer id; + /** + * 车辆型号编码 + */ + private String modelCode; + /** + * 车辆报文类型编码 + */ + private String messageTypeCode; + /** + * 开始位下标 + */ + private String messageStartIndex; + /** + * 结束位下标 + */ + private String messageEndIndex; +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-remote/pom.xml b/cloud-modules/cloud-breakdown/cloud-breakdown-remote/pom.xml new file mode 100644 index 0000000..c3b50cc --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-remote/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + com.muyu + cloud-breakdown + 3.6.3 + + + cloud-breakdown-remote + + + 17 + 17 + UTF-8 + + + + + com.muyu + cloud-breakdown-common + 3.6.3 + + + diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-modules/cloud-breakdown/cloud-breakdown-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ + diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/pom.xml b/cloud-modules/cloud-breakdown/cloud-breakdown-server/pom.xml new file mode 100644 index 0000000..a208436 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/pom.xml @@ -0,0 +1,92 @@ + + + 4.0.0 + + com.muyu + cloud-breakdown + 3.6.3 + + + cloud-breakdown-server + + + 17 + 17 + UTF-8 + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + cloud-common-datasource + + + + + com.muyu + cloud-common-datascope + + + + + com.muyu + cloud-common-log + + + + + com.muyu + cloud-common-api-doc + + + + + com.muyu + cloud-common-xxl + + + + com.muyu + cloud-common-rabbit + + + + com.muyu + cloud-breakdown-common + 3.6.3 + + + + diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/BreakDownApplication.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/BreakDownApplication.java new file mode 100644 index 0000000..3d4869c --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/BreakDownApplication.java @@ -0,0 +1,23 @@ +package com.muyu; + +import com.muyu.common.security.annotation.EnableCustomConfig; +import com.muyu.common.security.annotation.EnableMyFeignClients; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-17-15:00 + * @ Version:1.0 + * @ Description:故障启动类 + * @author Lenovo + */ +@EnableCustomConfig +@EnableMyFeignClients +@SpringBootApplication +public class BreakDownApplication { + public static void main(String[] args) { + SpringApplication.run(BreakDownApplication.class, args); + } +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/MybatisPlusConfig.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/MybatisPlusConfig.java new file mode 100644 index 0000000..5a1131d --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/MybatisPlusConfig.java @@ -0,0 +1,37 @@ +package com.muyu.breakdown.config; + +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.core.MybatisConfiguration; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-17-15:41 + * @ Version:1.0 + * @ Description:mybatisplus配置类 + * @author Lenovo + */ +//@Configuration +//public class MybatisPlusConfig { +// /** +// * 添加分页插件 +// */ +// @Bean +// public MybatisPlusInterceptor mybatisPlusInterceptor() { +// MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); +// // 如果配置多个插件, 切记分页最后添加 +// interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); +// // 如果有多数据源可以不配具体类型, 否则都建议配上具体的 DbType +// return interceptor; +// } +// @Bean +// public MybatisConfiguration mybatisConfiguration(){ +// MybatisConfiguration configuration = new MybatisConfiguration(); +// return configuration; +// } +// +//} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQConfig.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQConfig.java new file mode 100644 index 0000000..a735a6e --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQConfig.java @@ -0,0 +1,56 @@ +package com.muyu.breakdown.config; + +import org.springframework.amqp.core.Binding; +import org.springframework.amqp.core.BindingBuilder; +import org.springframework.amqp.core.FanoutExchange; +import org.springframework.amqp.core.Queue; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +/** + * 绑定交换机与队列 + * */ +@Configuration +public class RabbitMQConfig { + + // 1.生命注册fanout模式的交换机 + @Bean + public FanoutExchange fanoutExchange(){ + //1.fanout模式的路由名称 2.是否持久化 3. 是否自动删除 + return new FanoutExchange("fanout",true,false); + } + // 2.生命队列 sms.fanout.queue email.fanout.queue,duanxin.fanout.queue + @Bean + public Queue duanxinQueue(){ + return new Queue("duanxin",true); + } + + + @Bean + public Queue emailQueue(){ + return new Queue("email",false); + } + + @Bean + public Queue smsQueue(){ + return new Queue("sms",false); + } + + // 3.完成绑定关系(队列和交换机完成绑定关系 + @Bean + public Binding duanxinExchange(){ + return BindingBuilder.bind(duanxinQueue()).to(fanoutExchange()); + } + + + @Bean + public Binding emailExchange(){ + return BindingBuilder.bind(emailQueue()).to(fanoutExchange()); + } + + @Bean + public Binding smsExchange(){ + return BindingBuilder.bind(smsQueue()).to(fanoutExchange()); + } + + // 4.生命注册fanout模式的交换机 +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQDirectConfig.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQDirectConfig.java new file mode 100644 index 0000000..e0b2f8b --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQDirectConfig.java @@ -0,0 +1,62 @@ +package com.muyu.breakdown.config; + +import org.springframework.amqp.core.*; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.HashMap; + +/** + * 绑定交换机与队列 + * */ +@Configuration +public class RabbitMQDirectConfig { + /** + * 与fanout发布订阅模式不同的是 Direct 需要在Binding规定对应的 路由名称 + * */ + // 1.生命注册fanout模式的交换机 + @Bean + public DirectExchange directExchange(){ + //1.fanout模式的路由名称 2.是否持久化 3. 是否自动删除 + return new DirectExchange("direct",true,false); + } + // 2.生命队列 sms.fanout.queue email.fanout.queue,duanxin.fanout.queue + @Bean + public Queue directduanxinQueue(){ + HashMap map = new HashMap<>(); + map.put("x-delayed-letter-exchange","direct"); + map.put("x-delayed-routing-key","directduanxin"); + map.put("x-message-ttl",10000); + return QueueBuilder.durable("directduanxin").withArguments(map).build(); + } + + + @Bean + public Queue directemailQueue(){ + return new Queue("directemail",false); + } + + @Bean + public Queue directsmsQueue(){ + return new Queue("directsms",false); + } + + // 3.完成绑定关系(队列和交换机完成绑定关系 + @Bean + public Binding directduanxinExchange(){ + return BindingBuilder.bind(directduanxinQueue()).to(directExchange()).with("directduanxin"); + } + + + @Bean + public Binding directemailExchange(){ + return BindingBuilder.bind(directemailQueue()).to(directExchange()).with("directemail"); + } + + @Bean + public Binding directsmsExchange(){ + return BindingBuilder.bind(directsmsQueue()).to(directExchange()).with("directsms"); + } + + // 4.生命注册fanout模式的交换机 +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQTopicConfig.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQTopicConfig.java new file mode 100644 index 0000000..58630e5 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/config/RabbitMQTopicConfig.java @@ -0,0 +1,59 @@ +package com.muyu.breakdown.config; + +import org.springframework.amqp.core.Binding; +import org.springframework.amqp.core.BindingBuilder; +import org.springframework.amqp.core.Queue; +import org.springframework.amqp.core.TopicExchange; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 绑定交换机与队列 + * */ +@Configuration +public class RabbitMQTopicConfig { + /** + * 与fanout发布订阅模式不同的是 Direct 需要在Binding规定对应的 路由名称 + * */ + // 1.生命注册fanout模式的交换机 + @Bean + public TopicExchange topicExchange(){ + //1.fanout模式的路由名称 2.是否持久化 3. 是否自动删除 + return new TopicExchange("topic",true,false); + } + // 2.生命队列 sms.fanout.queue email.fanout.queue,duanxin.fanout.queue + @Bean + public Queue topicduanxinQueue(){ + return new Queue("topicduanxin.test.one",true); + } + + + @Bean + public Queue topicemailQueue(){ + return new Queue("topicemail.test.two",false); + } + + @Bean + public Queue topicsmsQueue(){ + return new Queue("topicsms.test.three",false); + } + + // 3.完成绑定关系(队列和交换机完成绑定关系 + @Bean + public Binding topicduanxinExchange(){ + return BindingBuilder.bind(topicduanxinQueue()).to(topicExchange()).with("topic.#"); + } + + + @Bean + public Binding topicemailExchange(){ + return BindingBuilder.bind(topicemailQueue()).to(topicExchange()).with("topic.*"); + } + + @Bean + public Binding topicsmsExchange(){ + return BindingBuilder.bind(topicsmsQueue()).to(topicExchange()).with("topic.test.#"); + } + + // 4.生命注册fanout模式的交换机 +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/BreakDownController.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/BreakDownController.java new file mode 100644 index 0000000..1e8dea0 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/BreakDownController.java @@ -0,0 +1,115 @@ +package com.muyu.breakdown.controller; + +import com.muyu.breakdown.domain.BreakDown; +import com.muyu.breakdown.domain.MessageMap; +import com.muyu.breakdown.service.BreakDownService; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.common.security.utils.SecurityUtils; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-17-15:13 + * @ Version:1.0 + * @ Description:故障管理实体类 + * @author Lenovo + */ +@RestController +@RequestMapping("/breakdown") +public class BreakDownController extends BaseController { + + @Autowired + private BreakDownService breakDownService; + /** + * 查询车辆故障列表 + */ + @RequiresPermissions("breakdown:breakdown:list") + @GetMapping("/list") + public Result> list(BreakDown breakDown) + { + startPage(); + List list = breakDownService.selectBreakDownList(breakDown); + return getDataTable(list); + } + + /** + * 导出车辆故障列表 + */ + @RequiresPermissions("breakdown:breakdown:export") + @PostMapping("/export") + public void export(HttpServletResponse response, BreakDown breakDown) + { + List list = breakDownService.selectBreakDownList(breakDown); + ExcelUtil util = new ExcelUtil(BreakDown.class); + util.exportExcel(response, list, "车辆故障数据"); + } + + /** + * 获取车辆故障详细信息 + */ + @RequiresPermissions("breakdown:breakdown:query") + @GetMapping(value = "/{id}") + public Result> getInfo(@PathVariable("id") Long id) + { + return success(breakDownService.selectBreakDownById(id)); + } + + /** + * 新增车辆故障 + */ + @RequiresPermissions("breakdown:breakdown:add") + @PostMapping + public Result add( + @Validated @RequestBody BreakDown breakDown) + { + if (breakDownService.checkIdUnique(breakDown)) { + return error("新增 车辆故障 '" + breakDown + "'失败,车辆故障已存在"); + } + breakDown.setCreateBy(SecurityUtils.getUsername()); + return toAjax(breakDownService.save(breakDown)); + } + + /** + * 修改车辆故障 + */ + @RequiresPermissions("breakdown:breakdown:edit") + @PutMapping + public Result edit( + @Validated @RequestBody BreakDown breakDown) + { + if (!breakDownService.checkIdUnique(breakDown)) { + return error("修改 车辆故障 '" + breakDown + "'失败,车辆故障不存在"); + } + breakDown.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(breakDownService.updateById(breakDown)); + } + + /** + * 删除车辆故障 + */ + @RequiresPermissions("breakdown:breakdown:remove") + @DeleteMapping("/{ids}") + public Result remove(@PathVariable("ids") Long[] ids) + { + breakDownService.removeBatchByIds(Arrays.asList(ids)); + return success(); + } + + public Result getMessages(MessageMap messageMap) { + Map messages =breakDownService.getMessages(messageMap); + return Result.success(messages); + } + +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/FaultLogController.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/FaultLogController.java new file mode 100644 index 0000000..d66c519 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/FaultLogController.java @@ -0,0 +1,113 @@ +package com.muyu.breakdown.controller; + +import java.util.Arrays; +import java.util.List; + +import com.muyu.breakdown.domain.FaultLog; +import com.muyu.breakdown.service.IFaultLogService; +import jakarta.servlet.http.HttpServletResponse; +import javax.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.security.utils.SecurityUtils; +import org.springframework.validation.annotation.Validated; +import com.muyu.common.core.web.page.TableDataInfo; + +/** + * 故障日志Controller + * + * @author muyu + * @date 2024-09-20 + */ +@RestController +@RequestMapping("/log") +public class FaultLogController extends BaseController +{ + @Resource + private IFaultLogService faultLogService; + + /** + * 查询故障日志列表 + */ + @RequiresPermissions("platform:log:list") + @GetMapping("/list") + public Result> list(FaultLog faultLog) + { + startPage(); + List list = faultLogService.selectFaultLogList(faultLog); + return getDataTable(list); + } + + /** + * 导出故障日志列表 + */ + @RequiresPermissions("platform:log:export") + @PostMapping("/export") + public void export(HttpServletResponse response, FaultLog faultLog) + { + List list = faultLogService.selectFaultLogList(faultLog); + ExcelUtil util = new ExcelUtil(FaultLog.class); + util.exportExcel(response, list, "故障日志数据"); + } + + /** + * 获取故障日志详细信息 + */ + @RequiresPermissions("platform:log:query") + @GetMapping(value = "/{id}") + public Result> getInfo(@PathVariable("id") Long id) + { + return success(faultLogService.selectFaultLogById(id)); + } + + /** + * 新增故障日志 + */ + @RequiresPermissions("platform:log:add") + @PostMapping + public Result add( + @Validated @RequestBody FaultLog faultLog) + { + if (faultLogService.checkIdUnique(faultLog)) { + return error("新增 故障日志 '" + faultLog + "'失败,故障日志已存在"); + } + faultLog.setCreateBy(SecurityUtils.getUsername()); + return toAjax(faultLogService.save(faultLog)); + } + + /** + * 修改故障日志 + */ + @RequiresPermissions("platform:log:edit") + @PutMapping + public Result edit( + @Validated @RequestBody FaultLog faultLog) + { + if (!faultLogService.checkIdUnique(faultLog)) { + return error("修改 故障日志 '" + faultLog + "'失败,故障日志不存在"); + } + faultLog.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(faultLogService.updateById(faultLog)); + } + + /** + * 删除故障日志 + */ + @RequiresPermissions("platform:log:remove") + @DeleteMapping("/{ids}") + public Result remove(@PathVariable("ids") Long[] ids) + { + faultLogService.removeBatchByIds(Arrays.asList(ids)); + return success(); + } +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/StationMessageController.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/StationMessageController.java new file mode 100644 index 0000000..2e2fdf9 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/StationMessageController.java @@ -0,0 +1,42 @@ +package com.muyu.breakdown.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.muyu.breakdown.domain.Messages; +import com.muyu.breakdown.service.BreakDownService; +import com.muyu.breakdown.service.StationMessageService; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.controller.BaseController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-18-12:01 + * @ Version:1.0 + * @ Description:站内信控制层 + * @author Lenovo + */ +@RestController +@RequestMapping("/stationMessage") +public class StationMessageController extends BaseController { + @Autowired + private StationMessageService stationMessageService; + + + /** + * 根据当前用户id获取站内信列表 + * @param receiverId 当前用户id + * @return 站内信列表 + */ + @GetMapping("/getMessageList") + public Result> list(@RequestParam("receiverId") String receiverId){ + List list = stationMessageService.list(new LambdaQueryWrapper<>() {{ + eq(Messages::getReceiverId, receiverId); + }}); + return Result.success(list); + } + +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/SysCarMessageController.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/SysCarMessageController.java new file mode 100644 index 0000000..11bba59 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/controller/SysCarMessageController.java @@ -0,0 +1,20 @@ +package com.muyu.breakdown.controller; + +import com.muyu.breakdown.service.SysCarMessageService; +import com.muyu.common.core.web.controller.BaseController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RestController; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-20-15:41 + * @ Version:1.0 + * @ Description:报文模版控制层 + * @author Lenovo + */ +@RestController +public class SysCarMessageController extends BaseController { + @Autowired + private SysCarMessageService sysCarMessageService; +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/BreakDownMapper.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/BreakDownMapper.java new file mode 100644 index 0000000..8f93626 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/BreakDownMapper.java @@ -0,0 +1,18 @@ +package com.muyu.breakdown.mapper; + +import com.github.yulichang.base.MPJBaseMapper; +import com.muyu.breakdown.domain.BreakDown; +import org.apache.ibatis.annotations.Mapper; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-17-15:14 + * @ Version:1.0 + * @ Description:故障管理持久层 + * @author Lenovo + */ +@Mapper +public interface BreakDownMapper extends MPJBaseMapper { + +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/FaultLogMapper.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/FaultLogMapper.java new file mode 100644 index 0000000..d5f1d7e --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/FaultLogMapper.java @@ -0,0 +1,17 @@ +package com.muyu.breakdown.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.breakdown.domain.FaultLog; +import org.apache.ibatis.annotations.Mapper; + +/** + * 故障日志Mapper接口 + * + * @author muyu + * @date 2024-09-20 + */ +@Mapper +public interface FaultLogMapper extends BaseMapper{ + +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/StationMessageMapper.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/StationMessageMapper.java new file mode 100644 index 0000000..450ebb4 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/StationMessageMapper.java @@ -0,0 +1,18 @@ +package com.muyu.breakdown.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.github.yulichang.base.MPJBaseMapper; +import com.muyu.breakdown.domain.Messages; +import org.apache.ibatis.annotations.Mapper; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-18-14:57 + * @ Version:1.0 + * @ Description:站内信持久层 + * @author Lenovo + */ +@Mapper +public interface StationMessageMapper extends MPJBaseMapper { +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/SysCarMessageMapper.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/SysCarMessageMapper.java new file mode 100644 index 0000000..5629f33 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/mapper/SysCarMessageMapper.java @@ -0,0 +1,17 @@ +package com.muyu.breakdown.mapper; + +import com.github.yulichang.base.MPJBaseMapper; +import com.muyu.breakdown.domain.SysCarMessage; +import org.apache.ibatis.annotations.Mapper; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-20-15:54 + * @ Version:1.0 + * @ Description: + * @author Lenovo + */ +@Mapper +public interface SysCarMessageMapper extends MPJBaseMapper { +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/BreakDownService.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/BreakDownService.java new file mode 100644 index 0000000..325424c --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/BreakDownService.java @@ -0,0 +1,43 @@ +package com.muyu.breakdown.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.breakdown.domain.BreakDown; +import com.muyu.breakdown.domain.MessageMap; + +import java.util.List; +import java.util.Map; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-17-15:31 + * @ Version:1.0 + * @ Description:故障管理业务层 + * @author Lenovo + */ +public interface BreakDownService extends IService { + /** + * 精确查询车辆故障 + * + * @param id 车辆故障主键 + * @return 车辆故障 + */ + public BreakDown selectBreakDownById(Long id); + + /** + * 查询车辆故障列表 + * + * @param breakDown 车辆故障 + * @return 车辆故障集合 + */ + public List selectBreakDownList(BreakDown breakDown); + + /** + * 判断 车辆故障 id是否唯一 + * @param breakDown 车辆故障 + * @return 结果 + */ + Boolean checkIdUnique(BreakDown breakDown); + + Map getMessages(MessageMap messageMap); +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/IFaultLogService.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/IFaultLogService.java new file mode 100644 index 0000000..e6ef523 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/IFaultLogService.java @@ -0,0 +1,37 @@ +package com.muyu.breakdown.service; + +import java.util.List; +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.breakdown.domain.FaultLog; + +/** + * 故障日志Service接口 + * + * @author muyu + * @date 2024-09-20 + */ +public interface IFaultLogService extends IService { + /** + * 精确查询故障日志 + * + * @param id 故障日志主键 + * @return 故障日志 + */ + public FaultLog selectFaultLogById(Long id); + + /** + * 查询故障日志列表 + * + * @param faultLog 故障日志 + * @return 故障日志集合 + */ + public List selectFaultLogList(FaultLog faultLog); + + /** + * 判断 故障日志 id是否唯一 + * @param faultLog 故障日志 + * @return 结果 + */ + Boolean checkIdUnique(FaultLog faultLog); + +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/StationMessageService.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/StationMessageService.java new file mode 100644 index 0000000..5af194c --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/StationMessageService.java @@ -0,0 +1,19 @@ +package com.muyu.breakdown.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.breakdown.domain.Messages; + +import java.util.List; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-18-14:56 + * @ Version:1.0 + * @ Description: + * @author Lenovo + */ +public interface StationMessageService extends IService { + + List getMessageList(String receiverId); +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/SysCarMessageService.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/SysCarMessageService.java new file mode 100644 index 0000000..f0103b6 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/SysCarMessageService.java @@ -0,0 +1,15 @@ +package com.muyu.breakdown.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.breakdown.domain.SysCarMessage; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-20-15:42 + * @ Version:1.0 + * @ Description: + * @author Lenovo + */ +public interface SysCarMessageService extends IService { +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/BreakDownServiceImpl.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/BreakDownServiceImpl.java new file mode 100644 index 0000000..62c0085 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/BreakDownServiceImpl.java @@ -0,0 +1,97 @@ +package com.muyu.breakdown.service.impl; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.muyu.breakdown.domain.BreakDown; +import com.muyu.breakdown.domain.MessageMap; +import com.muyu.breakdown.domain.SysCarMessage; +import com.muyu.breakdown.mapper.BreakDownMapper; +import com.muyu.breakdown.service.BreakDownService; +import com.muyu.breakdown.service.SysCarMessageService; +import com.muyu.common.core.utils.StringUtils; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-17-15:31 + * @ Version:1.0 + * @ Description:故障管理业务实现层 + * @author Lenovo + */ +@Service +public class BreakDownServiceImpl extends ServiceImpl implements BreakDownService { + + @Autowired + private SysCarMessageService sysCarMessageService; + @Autowired + private RabbitTemplate rabbitTemplate; + /** + * 精确查询车辆故障 + * + * @param id 车辆故障主键 + * @return 车辆故障 + */ + @Override + public BreakDown selectBreakDownById(Long id) + { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Assert.notNull(id, "id不可为空"); + queryWrapper.eq(BreakDown::getId, id); + return this.getOne(queryWrapper); + } + + + /** + * 查询车辆故障列表 + * + * @param breakDown 车辆故障 + * @return 车辆故障 + */ + @Override + public List selectBreakDownList(BreakDown breakDown) + { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotEmpty(breakDown.getFaultCode())){ + queryWrapper.eq(BreakDown::getFaultCode, breakDown.getFaultCode()); + } + if (StringUtils.isNotEmpty(breakDown.getFaultType())){ + queryWrapper.eq(BreakDown::getFaultType, breakDown.getFaultType()); + } + return this.list(queryWrapper); + } + + /** + * 唯一 判断 + * @param breakDown 车辆故障 + * @return 车辆故障 + */ + @Override + public Boolean checkIdUnique(BreakDown breakDown) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(BreakDown::getId, breakDown.getId()); + return this.count(queryWrapper) > 0; + } + + @Override + public Map getMessages(MessageMap messageMap) { + + return null; + } + +// @RabbitListener(queues = "car.message.queue") +// private void sendMessage(String message) { +// +// } + + +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/FaultLogServiceImpl.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/FaultLogServiceImpl.java new file mode 100644 index 0000000..7124779 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/FaultLogServiceImpl.java @@ -0,0 +1,78 @@ +package com.muyu.breakdown.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.breakdown.domain.FaultLog; +import com.muyu.breakdown.mapper.FaultLogMapper; +import com.muyu.breakdown.service.IFaultLogService; +import com.muyu.common.core.utils.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import java.util.List; + +/** + * 故障日志Service业务层处理 + * + * @author muyu + * @date 2024-09-20 + */ +@Service +public class FaultLogServiceImpl + extends ServiceImpl + implements IFaultLogService { + + /** + * 精确查询故障日志 + * + * @param id 故障日志主键 + * @return 故障日志 + */ + @Override + public FaultLog selectFaultLogById(Long id) + { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Assert.notNull(id, "id不可为空"); + queryWrapper.eq(FaultLog::getId, id); + return this.getOne(queryWrapper); + } + + + /** + * 查询故障日志列表 + * + * @param faultLog 故障日志 + * @return 故障日志 + */ + @Override + public List selectFaultLogList(FaultLog faultLog) + { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotEmpty(faultLog.getFaultCode())){ + queryWrapper.eq(FaultLog::getFaultCode, faultLog.getFaultCode()); + } + if (StringUtils.isNotEmpty(faultLog.getCarVin())){ + queryWrapper.eq(FaultLog::getCarVin, faultLog.getCarVin()); + } + if (faultLog.getStartTime()!=null){ + queryWrapper.eq(FaultLog::getStartTime, faultLog.getStartTime()); + } + if (faultLog.getEndTime()!=null){ + queryWrapper.eq(FaultLog::getEndTime, faultLog.getEndTime()); + } + return this.list(queryWrapper); + } + + /** + * 唯一 判断 + * @param faultLog 故障日志 + * @return 故障日志 + */ + @Override + public Boolean checkIdUnique(FaultLog faultLog) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(FaultLog::getId, faultLog.getId()); + return this.count(queryWrapper) > 0; + } + +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/StationMessageServiceImpl.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/StationMessageServiceImpl.java new file mode 100644 index 0000000..462db1f --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/StationMessageServiceImpl.java @@ -0,0 +1,35 @@ +package com.muyu.breakdown.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.breakdown.domain.Messages; +import com.muyu.breakdown.mapper.StationMessageMapper; +import com.muyu.breakdown.service.StationMessageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-18-14:56 + * @ Version:1.0 + * @ Description:站内信业务实现层 + * @author Lenovo + */ + +@Service +public class StationMessageServiceImpl + extends ServiceImpl + implements StationMessageService { + + @Autowired + private StationMessageMapper stationMessageMapper; + + @Override + public List getMessageList(String receiverId) { + + return null; + } +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/SysCarMessageServiceImpl.java b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/SysCarMessageServiceImpl.java new file mode 100644 index 0000000..754fc9b --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/java/com/muyu/breakdown/service/impl/SysCarMessageServiceImpl.java @@ -0,0 +1,19 @@ +package com.muyu.breakdown.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.breakdown.domain.SysCarMessage; +import com.muyu.breakdown.mapper.SysCarMessageMapper; +import com.muyu.breakdown.service.SysCarMessageService; +import org.springframework.stereotype.Service; + +/** + * @ Tool:IntelliJ IDEA + * @ Author:CHX + * @ Date:2024-09-20-15:42 + * @ Version:1.0 + * @ Description: + * @author Lenovo + */ +@Service +public class SysCarMessageServiceImpl extends ServiceImpl implements SysCarMessageService { +} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/banner.txt b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/banner.txt new file mode 100644 index 0000000..0dd5eee --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/banner.txt @@ -0,0 +1,2 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/bootstrap.yml b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..f4097e8 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/bootstrap.yml @@ -0,0 +1,60 @@ +# Tomcat +server: + port: 9702 + +# nacos线上地址 +nacos: + addr: 127.0.0.1:8848 + user-name: nacos + password: nacos + namespace: one +# SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all +# Spring +spring: + amqp: + deserialization: + trust: + all: true + main: + allow-bean-definition-overriding: true + application: + # 应用名称 + name: cloud-breakdown + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: ${nacos.addr} + # nacos用户名 + username: ${nacos.user-name} + # nacos密码 + password: ${nacos.password} + # 命名空间 + namespace: ${nacos.namespace} + config: + # 服务注册地址 + server-addr: ${nacos.addr} + # nacos用户名 + username: ${nacos.user-name} + # nacos密码 + password: ${nacos.password} + # 命名空间 + namespace: ${nacos.namespace} + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + # 系统共享配置 + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # 系统环境Config共享配置 + - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # xxl-job 配置文件 + - application-xxl-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # rabbit 配置文件 + - application-rabbit-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} +logging: + level: + com.muyu.breakdown.mapper: DEBUG diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/dev.xml b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/dev.xml new file mode 100644 index 0000000..34cd186 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/dev.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/prod.xml b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/prod.xml new file mode 100644 index 0000000..1193d09 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/prod.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/test.xml b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/test.xml new file mode 100644 index 0000000..1193d09 --- /dev/null +++ b/cloud-modules/cloud-breakdown/cloud-breakdown-server/src/main/resources/logback/test.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-breakdown/pom.xml b/cloud-modules/cloud-breakdown/pom.xml new file mode 100644 index 0000000..03dc09d --- /dev/null +++ b/cloud-modules/cloud-breakdown/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + com.muyu + cloud-modules + 3.6.3 + + + cloud-breakdown + pom + + cloud-breakdown-common + cloud-breakdown-server + cloud-breakdown-remote + cloud-breakdown-client + + + + 17 + 17 + UTF-8 + + + diff --git a/cloud-modules/cloud-modules-car/pom.xml b/cloud-modules/cloud-modules-car/pom.xml new file mode 100644 index 0000000..c7daf6d --- /dev/null +++ b/cloud-modules/cloud-modules-car/pom.xml @@ -0,0 +1,95 @@ + + + 4.0.0 + + com.muyu + cloud-modules + 3.6.3 + + + cloud-modules-car + + + 17 + 17 + UTF-8 + + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + cloud-common-datasource + + + + + com.muyu + cloud-common-datascope + + + + com.muyu + cloud-common-core + + + + com.muyu + cloud-common-api-doc + + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + + + diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/CloudCarRailApplication.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/CloudCarRailApplication.java new file mode 100644 index 0000000..98d9546 --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/CloudCarRailApplication.java @@ -0,0 +1,23 @@ +package com.muyu.carrail; + +import com.muyu.common.security.annotation.EnableCustomConfig; +import com.muyu.common.security.annotation.EnableMyFeignClients; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; + +@EnableCustomConfig +@EnableMyFeignClients +@MapperScan("com.muyu.carrail.mapper") +@SpringBootApplication +public class CloudCarRailApplication { + public static void main(String[] args) { +// try { +// +// } catch (Exception e) { +// e.printStackTrace(); +// } + SpringApplication.run(CloudCarRailApplication.class, args); + } +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/controller/SysCorpuscleController.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/controller/SysCorpuscleController.java new file mode 100644 index 0000000..15e083c --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/controller/SysCorpuscleController.java @@ -0,0 +1,80 @@ +package com.muyu.carrail.controller; + +import java.util.Arrays; +import java.util.List; + +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.common.security.utils.SecurityUtils; +import jakarta.annotation.Resource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import com.muyu.carrail.domain.SysCorpuscle; +import com.muyu.carrail.service.ISysCorpuscleService; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.domain.Result; + +import com.muyu.common.core.web.page.TableDataInfo; + +/** + * 电子围栏Controller + * + * @author muyu + * @date 2024-09-17 + */ +@RestController +@RequestMapping("/carRail") +public class SysCorpuscleController extends BaseController +{ + @Autowired + private ISysCorpuscleService sysCorpuscleService; + + /** + * 查询电子围栏列表 + */ + @RequiresPermissions("carRail:carRail:list") + @GetMapping("/list") + public Result> list(SysCorpuscle sysCorpuscle) + { + startPage(); + List list = sysCorpuscleService.selectSysCorpuscleList(sysCorpuscle); + return getDataTable(list); + } + + @RequiresPermissions("carRail:corpuscle:add") + @PostMapping + public Result add( + @Validated @RequestBody SysCorpuscle sysCorpuscle) + { + + return toAjax(sysCorpuscleService.save(sysCorpuscle)); + } + + /** + * 修改电子围栏 + */ + @RequiresPermissions("carRail:corpuscle:edit") + @PutMapping + public Result edit( + @Validated @RequestBody SysCorpuscle sysCorpuscle) + { + + return toAjax(sysCorpuscleService.updateById(sysCorpuscle)); + } + + + + /** + * 删除电子围栏 + */ + @RequiresPermissions("carRail:corpuscle:remove") + @DeleteMapping("/{ids}") + public Result remove(@PathVariable("ids") Long[] ids) + { + sysCorpuscleService.removeBatchByIds(Arrays.asList(ids)); + return success(); + } + +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/controller/SysFenceController.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/controller/SysFenceController.java new file mode 100644 index 0000000..a3ff506 --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/controller/SysFenceController.java @@ -0,0 +1,106 @@ +package com.muyu.carrail.controller; + +import java.util.Arrays; +import java.util.List; + +import com.muyu.carrail.domain.SysFence; +import com.muyu.carrail.service.ISysFenceService; +import jakarta.servlet.http.HttpServletResponse; +import javax.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import org.springframework.validation.annotation.Validated; +import com.muyu.common.core.web.page.TableDataInfo; + +/** + * 围栏组Controller + * + * @author muyu + * @date 2024-09-17 + */ +@RestController +@RequestMapping("/fence") +public class SysFenceController extends BaseController +{ + @Resource + private ISysFenceService sysFenceService; + + /** + * 查询围栏组列表 + */ + @RequiresPermissions("fence:fence:list") + @GetMapping("/list") + public Result> list(SysFence sysFence) + { + startPage(); + List list = sysFenceService.selectSysFenceList(sysFence); + return getDataTable(list); + } + + /** + * 导出围栏组列表 + */ + @RequiresPermissions("fence:fence:export") + @PostMapping("/export") + public void export(HttpServletResponse response, SysFence sysFence) + { + List list = sysFenceService.selectSysFenceList(sysFence); + ExcelUtil util = new ExcelUtil(SysFence.class); + util.exportExcel(response, list, "围栏组数据"); + } + + /** + * 获取围栏组详细信息 + */ + @RequiresPermissions("fence:fence:query") + @GetMapping(value = "/{id}") + public Result> getInfo(@PathVariable("id") Long id) + { + return success(sysFenceService.selectSysFenceById(id)); + } + + /** + * 新增围栏组 + */ + @RequiresPermissions("fence:fence:add") + @PostMapping + public Result add( + @Validated @RequestBody SysFence sysFence) + { + + return toAjax(sysFenceService.save(sysFence)); + } + + /** + * 修改围栏组 + */ + @RequiresPermissions("fence:fence:edit") + @PutMapping + public Result edit( + @Validated @RequestBody SysFence sysFence) + { + + return toAjax(sysFenceService.updateById(sysFence)); + } + + /** + * 删除围栏组 + */ + @RequiresPermissions("fence:fence:remove") + @DeleteMapping("/{ids}") + public Result remove(@PathVariable("ids") Long[] ids) + { + sysFenceService.removeBatchByIds(Arrays.asList(ids)); + return success(); + } +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/domain/SysCorpuscle.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/domain/SysCorpuscle.java new file mode 100644 index 0000000..2f85c6e --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/domain/SysCorpuscle.java @@ -0,0 +1,67 @@ +package com.muyu.carrail.domain; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.*; +import lombok.experimental.SuperBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; + +/** + * 电子围栏对象 sys_corpuscle_fence + * + * @author muyu + * @date 2024-09-17 + */ + +@Data +@Setter +@Getter +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("sys_corpuscle_fence") +public class SysCorpuscle{ + private static final long serialVersionUID = 1L; + + /** 自增主键 */ + @TableId( type = IdType.AUTO) + private Long id; + + /** 围栏编码 */ + @Excel(name = "围栏编码") + private String fenceCode; + + /** 围栏名称 */ + @Excel(name = "围栏名称") + private String fenceName; + + /** 围栏类型(1.驶入 2.驶出) */ + @Excel(name = "围栏类型(1.驶入 2.驶出)") + private Long fenceType; + + /** 围栏位置 */ + @Excel(name = "围栏位置") + private String fencePosition; + + /** 启用状态(1.启用 2.停用) */ + @Excel(name = "启用状态(1.启用 2.停用)") + private String state; + + + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("fenceCode", getFenceCode()) + .append("fenceName", getFenceName()) + .append("fenceType", getFenceType()) + .append("fencePosition", getFencePosition()) + .append("state", getState()) + .toString(); + } +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/domain/SysFence.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/domain/SysFence.java new file mode 100644 index 0000000..b7d068b --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/domain/SysFence.java @@ -0,0 +1,95 @@ +package com.muyu.carrail.domain; + +import cn.hutool.core.date.DateTime; +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.*; +import lombok.experimental.SuperBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; + +import java.util.Date; + +/** + * 围栏组对象 sys_fence_group + * + * @author muyu + * @date 2024-09-17 + */ + +@Data +@Setter +@Getter +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("sys_fence_group") +public class SysFence{ + private static final long serialVersionUID = 1L; + + /** 自增主键 */ + @TableId( type = IdType.AUTO) + private Long id; + + /** 围栏组编码 */ + @Excel(name = "围栏组编码") + private String groupCode; + + /** 围栏组名称 */ + @Excel(name = "围栏组名称") + private String groupName; + + /** 围栏组类型 */ + @Excel(name = "围栏组类型") + private String groupType; + + /** 启用状态 */ + @Excel(name = "启用状态") + private String state; + + /** 创建人 */ + @Excel(name = "创建人") + private String createBy; + + /** 创建时间 */ + @Excel(name = "创建时间") + private Date createTime; + + /** 更新人 */ + @Excel(name = "更新人") + private String updateBy; + + /** 更新时间 */ + @Excel(name = "更新时间") + private Date updateTime; + + /** 启用状态 */ + @Excel(name = "启用状态") + private String remark; + +// /** sysfindname */ +// @Excel(name = "电子围栏集群") +// private String sysfindname; + + + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("groupCode", getGroupCode()) + .append("groupName", getGroupName()) + .append("groupType", getGroupType()) + .append("state", getState()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) +// .append("sysfindname", getSysfindname()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/mapper/SysCorpuscleMapper.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/mapper/SysCorpuscleMapper.java new file mode 100644 index 0000000..b2cb32e --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/mapper/SysCorpuscleMapper.java @@ -0,0 +1,21 @@ +package com.muyu.carrail.mapper; + +import java.util.List; +import com.muyu.carrail.domain.SysCorpuscle; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * 电子围栏Mapper接口 + * + * @author muyu + * @date 2024-09-17 + */ + +public interface SysCorpuscleMapper extends BaseMapper{ + + List selectCarRail(SysCorpuscle sysCorpuscle); + + boolean addCarRail(SysCorpuscle sysCorpuscle); + +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/mapper/SysFenceMapper.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/mapper/SysFenceMapper.java new file mode 100644 index 0000000..725c176 --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/mapper/SysFenceMapper.java @@ -0,0 +1,16 @@ +package com.muyu.carrail.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.carrail.domain.SysFence; +import org.apache.ibatis.annotations.Mapper; + +/** + * 围栏组Mapper接口 + * + * @author muyu + * @date 2024-09-17 + */ +public interface SysFenceMapper extends BaseMapper{ + +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/ISysCorpuscleService.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/ISysCorpuscleService.java new file mode 100644 index 0000000..276b2d4 --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/ISysCorpuscleService.java @@ -0,0 +1,25 @@ +package com.muyu.carrail.service; + +import java.util.List; +import com.muyu.carrail.domain.SysCorpuscle; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * 电子围栏Service接口 + * + * @author muyu + * @date 2024-09-17 + */ +public interface ISysCorpuscleService extends IService { + + /** + * 查询电子围栏列表 + * + * @param sysCorpuscle 电子围栏 + * @return 电子围栏集合 + */ + public List selectSysCorpuscleList(SysCorpuscle sysCorpuscle); + + + boolean checkIdUnique(SysCorpuscle sysCorpuscle); +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/ISysFenceService.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/ISysFenceService.java new file mode 100644 index 0000000..7ba33a8 --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/ISysFenceService.java @@ -0,0 +1,38 @@ +package com.muyu.carrail.service; + +import java.util.List; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.carrail.domain.SysFence; + +/** + * 围栏组Service接口 + * + * @author muyu + * @date 2024-09-17 + */ +public interface ISysFenceService extends IService { + /** + * 精确查询围栏组 + * + * @param id 围栏组主键 + * @return 围栏组 + */ + public SysFence selectSysFenceById(Long id); + + /** + * 查询围栏组列表 + * + * @param sysFence 围栏组 + * @return 围栏组集合 + */ + public List selectSysFenceList(SysFence sysFence); + + /** + * 判断 围栏组 id是否唯一 + * @param sysFence 围栏组 + * @return 结果 + */ + Boolean checkIdUnique(SysFence sysFence); + +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/impl/SysCorpuscleServiceImpl.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/impl/SysCorpuscleServiceImpl.java new file mode 100644 index 0000000..61024fe --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/impl/SysCorpuscleServiceImpl.java @@ -0,0 +1,43 @@ +package com.muyu.carrail.service.impl; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.muyu.carrail.mapper.SysCorpuscleMapper; +import com.muyu.carrail.domain.SysCorpuscle; +import com.muyu.carrail.service.ISysCorpuscleService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.util.Assert; + +/** + * 电子围栏Service业务层处理 + * + * @author muyu + * @date 2024-09-17 + */ +@Service +public class SysCorpuscleServiceImpl + extends ServiceImpl + implements ISysCorpuscleService { + + /** + * 精确查询电子围栏 + * + * @param id 电子围栏主键 + * @return 电子围栏 + */ + @Autowired + SysCorpuscleMapper sysCorpuscleMapper; + + @Override + public List selectSysCorpuscleList(SysCorpuscle sysCorpuscle) { + return sysCorpuscleMapper.selectCarRail(sysCorpuscle); + } + + @Override + public boolean checkIdUnique(SysCorpuscle sysCorpuscle) { + return sysCorpuscleMapper.addCarRail(sysCorpuscle); + } +} diff --git a/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/impl/SysFenceServiceImpl.java b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/impl/SysFenceServiceImpl.java new file mode 100644 index 0000000..5ebffcc --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/java/com/muyu/carrail/service/impl/SysFenceServiceImpl.java @@ -0,0 +1,63 @@ +package com.muyu.carrail.service.impl; + +import java.util.List; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.muyu.carrail.domain.SysCorpuscle; +import com.muyu.carrail.domain.SysFence; +import com.muyu.carrail.mapper.SysFenceMapper; +import com.muyu.carrail.service.ISysFenceService; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + + + +/** + * 围栏组Service业务层处理 + * + * @author muyu + * @date 2024-09-17 + */ +@Service +public class SysFenceServiceImpl + extends ServiceImpl + implements ISysFenceService { + + + @Override + public SysFence selectSysFenceById(Long id) { + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Assert.notNull(id, "id不可为空"); + queryWrapper.eq(SysFence::getId, id); + return this.getOne(queryWrapper); + } + + @Override + public List selectSysFenceList(SysFence sysFence) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotEmpty(sysFence.getGroupCode())){ + queryWrapper.eq(SysFence::getGroupCode, sysFence.getGroupCode()); + } + if (StringUtils.isNotEmpty(sysFence.getGroupName())){ + queryWrapper.like(SysFence::getGroupName, sysFence.getGroupName()); + } + if (StringUtils.isNotEmpty(sysFence.getGroupType())){ + queryWrapper.eq(SysFence::getGroupType, sysFence.getGroupType()); + } + if (StringUtils.isNotEmpty(sysFence.getState())){ + queryWrapper.eq(SysFence::getState, sysFence.getState()); + } + return this.list(queryWrapper); + + } + + @Override + public Boolean checkIdUnique(SysFence sysFence) { + return null; + } +} diff --git a/cloud-modules/cloud-modules-car/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-car/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..00342f2 --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/resources/bootstrap.yml @@ -0,0 +1,58 @@ +# Tomcat +server: + port: 10011 + +# nacos线上地址 +nacos: + addr: 127.0.0.1:8848 + user-name: nacos + password: nacos + namespace: public +# SPRING_AMQP_DESERIALIZATION_TRUST_ALL=true spring.amqp.deserialization.trust.all +# Spring +spring: + amqp: + deserialization: + trust: + all: true + main: + allow-bean-definition-overriding: true + application: + # 应用名称 + name: cloud-car + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: ${nacos.addr} + # nacos用户名 + username: ${nacos.user-name} + # nacos密码 + password: ${nacos.password} + # 命名空间 + namespace: ${nacos.namespace} + config: + # 服务注册地址 + server-addr: ${nacos.addr} + # nacos用户名 + username: ${nacos.user-name} + # nacos密码 + password: ${nacos.password} + # 命名空间 + namespace: ${nacos.namespace} + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + # 系统共享配置 + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # 系统环境Config共享配置 + - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + +logging: + level: + com.muyu.carrail.mapper: DEBUG + diff --git a/cloud-modules/cloud-modules-car/src/main/resources/mapper/carrail/SysFenceMapper.xml b/cloud-modules/cloud-modules-car/src/main/resources/mapper/carrail/SysFenceMapper.xml new file mode 100644 index 0000000..26be2dc --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/resources/mapper/carrail/SysFenceMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + select id, group_code, group_name, group_type, state, create_by, create_time, update_by, update_time, remark from sys_fence_group + + + + + + + + + + + delete from sys_fence_group where id = #{id} + + + + delete from sys_fence_group where id in + + #{id} + + + diff --git a/cloud-modules/cloud-modules-car/src/main/resources/mapper/carrail/SyscarRailMapper.xml b/cloud-modules/cloud-modules-car/src/main/resources/mapper/carrail/SyscarRailMapper.xml new file mode 100644 index 0000000..c9f9205 --- /dev/null +++ b/cloud-modules/cloud-modules-car/src/main/resources/mapper/carrail/SyscarRailMapper.xml @@ -0,0 +1,16 @@ + + + + + + insert into sys_corpuscle_fence(fence_code,fence_name,fence_type,fence_position,state) + values(#{fenceCode},#{fenceName},#{fenceType},#{fencePosition},#{state}) + + + + + diff --git a/cloud-modules/cloud-modules-rail/pom.xml b/cloud-modules/cloud-modules-rail/pom.xml new file mode 100644 index 0000000..2353a2c --- /dev/null +++ b/cloud-modules/cloud-modules-rail/pom.xml @@ -0,0 +1,91 @@ + + + + cloud-modules + com.muyu + 3.6.3 + + 4.0.0 + + cloud-modules-rail + + + 17 + 17 + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + cloud-common-datasource + + + + + com.muyu + cloud-common-datascope + + + + com.muyu + cloud-common-core + + + + com.muyu + cloud-common-api-doc + + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + diff --git a/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/CloudRailApplication.java b/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/CloudRailApplication.java new file mode 100644 index 0000000..f490e2a --- /dev/null +++ b/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/CloudRailApplication.java @@ -0,0 +1,7 @@ +package com.zhangyi.rail; + +public class CloudRailApplication { + public static void main(String[] args) { + + } +} diff --git a/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/controller/RailController.java b/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/controller/RailController.java new file mode 100644 index 0000000..be833e0 --- /dev/null +++ b/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/controller/RailController.java @@ -0,0 +1,4 @@ +package com.zhangyi.rail.controller; + +public class RailController { +} diff --git a/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/domain/SysFenceRail.java b/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/domain/SysFenceRail.java new file mode 100644 index 0000000..dc11dbd --- /dev/null +++ b/cloud-modules/cloud-modules-rail/src/main/java/com/zhangyi/rail/domain/SysFenceRail.java @@ -0,0 +1,38 @@ +package com.zhangyi.rail.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.common.core.annotation.Excel; +import lombok.*; +import lombok.experimental.SuperBuilder; + +@Data +@Setter +@Getter +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("sys_corpuscle_fence") +public class SysFenceRail { +private static final long seriaversionUID =1L; +/** 自增主键 */ +@TableId(type = IdType.AUTO) + private Long id; + +/** 围栏编码 */ +@Excel(name="围栏编码") + private String fenceCode; + /**围栏名称**/ + @Excel(name = "围栏名称") + private String fenceName; + + /**围栏类型**/ + @Excel(name = "围栏类型") + private Long fenceType; + + + + + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-client/pom.xml b/cloud-modules/cloud-modules-warn/cloud-warn-client/pom.xml new file mode 100644 index 0000000..47ec49c --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-client/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + com.muyu + cloud-modules-warn + 3.6.3 + + + cloud-warn-client + + + 17 + 17 + UTF-8 + + + diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-common/pom.xml b/cloud-modules/cloud-modules-warn/cloud-warn-common/pom.xml new file mode 100644 index 0000000..809ecc3 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-common/pom.xml @@ -0,0 +1,138 @@ + + + 4.0.0 + + com.muyu + cloud-modules-warn + 3.6.3 + + + cloud-warn-common + + + 17 + 17 + UTF-8 + + + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + cloud-common-datasource + + + + + com.muyu + cloud-common-datascope + + + + + com.muyu + cloud-common-log + + + + + com.muyu + cloud-common-api-doc + + + + + com.muyu + cloud-common-xxl + + + + com.muyu + cloud-common-rabbit + + + + com.muyu + cloud-common-core + 3.6.3 + + + + + + com.squareup.okhttp3 + okhttp + 4.9.3 + + + com.thoughtworks.xstream + xstream + 1.4.20 + + + org.projectlombok + lombok + 1.18.34 + + + org.springframework.boot + spring-boot-starter + 3.3.2 + + + org.springframework.boot + spring-boot-starter-web + 3.3.2 + + + + org.dom4j + dom4j + 2.1.3 + + + com.alibaba.fastjson2 + fastjson2 + 2.0.43 + + + + + + + + diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnLogs.java b/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnLogs.java new file mode 100644 index 0000000..43250f3 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnLogs.java @@ -0,0 +1,90 @@ +package com.muyu.warning.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.annotation.Excel; +import lombok.*; +import lombok.experimental.SuperBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; + +/** + * 预警日志对象 warn_logs + * + * @author muyu + * @date 2024-09-20 + */ + +@Data +@Setter +@Getter +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("warn_logs") +public class WarnLogs { + private static final long serialVersionUID = 1L; + + /** 预警日志id */ + @TableId( type = IdType.AUTO) + private Long id; + + /** 车辆vin码 */ + @Excel(name = "车辆vin码") + private String vin; + + /** 规则id */ + @Excel(name = "规则id") + private Long warnRuleId; + + /** 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date startTime; + + /** 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date endTime; + + /** 最大值 */ + @Excel(name = "最大值") + private Long maxValue; + + /** 最小值 */ + @Excel(name = "最小值") + private Long minValue; + + /** 平均值 */ + @Excel(name = "平均值") + private Long avgValue; + + /** 中位数 */ + @Excel(name = "中位数") + private Long medianValue; + + /** 是否发送预警 */ + @Excel(name = "是否发送预警") + private Long status; + + + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("vin", getVin()) + .append("warnRuleId", getWarnRuleId()) + .append("startTime", getStartTime()) + .append("endTime", getEndTime()) + .append("maxValue", getMaxValue()) + .append("minValue", getMinValue()) + .append("avgValue", getAvgValue()) + .append("medianValue", getMedianValue()) + .append("status", getStatus()) + .toString(); + } +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnRule.java b/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnRule.java new file mode 100644 index 0000000..7e82a98 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnRule.java @@ -0,0 +1,76 @@ +package com.muyu.warning.domain; + +import com.muyu.common.core.annotation.Excel; +import lombok.*; +import lombok.experimental.SuperBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; + +/** + * 预警规则对象 warn_rule + * + * @author muyu + * @date 2024-09-20 + */ + +@Data +@Setter +@Getter +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("warn_rule") +public class WarnRule{ + private static final long serialVersionUID = 1L; + + /** 规则id */ + @TableId( type = IdType.AUTO) + private Long id; + + /** 规则名称 */ + @Excel(name = "规则名称") + private String ruleName; + + /** 策略id */ + @Excel(name = "策略id") + private Long strategyId; + + /** 报文数据类型id */ + @Excel(name = "报文数据类型id") + private Long msgTypeId; + + /** 滑窗时间 */ + @Excel(name = "滑窗时间") + private Long slideTime; + + /** 滑窗频率 */ + @Excel(name = "滑窗频率") + private Long slideFrequency; + + /** 最大值 */ + @Excel(name = "最大值") + private Long maxValue; + + /** 最小值 */ + @Excel(name = "最小值") + private Long minValue; + + + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("ruleName", getRuleName()) + .append("strategyId", getStrategyId()) + .append("msgTypeId", getMsgTypeId()) + .append("slideTime", getSlideTime()) + .append("slideFrequency", getSlideFrequency()) + .append("maxValue", getMaxValue()) + .append("minValue", getMinValue()) + .toString(); + } +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnRuleDTO.java b/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnRuleDTO.java new file mode 100644 index 0000000..6a8d311 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnRuleDTO.java @@ -0,0 +1,63 @@ +package com.muyu.warning.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.muyu.common.core.annotation.Excel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName WarnRule + * @Description 描述 + * @Author Chen + * @Date 2024/9/22 11:53 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class WarnRuleDTO { + /** 规则id */ + @TableId( type = IdType.AUTO) + private Long id; + + /** 规则名称 */ + @Excel(name = "规则名称") + private String ruleName; + + /** 策略id */ + @Excel(name = "策略id") + private Long strategyId; + + /** 报文数据类型id */ + @Excel(name = "报文数据类型id") + private Long msgTypeId; + + /** 滑窗时间 */ + @Excel(name = "滑窗时间") + private Long slideTime; + + /** 滑窗频率 */ + @Excel(name = "滑窗频率") + private Long slideFrequency; + + /** 最大值 */ + @Excel(name = "最大值") + private Long maxValue; + + /** 最小值 */ + @Excel(name = "最小值") + private Long minValue; + + /** 车辆类型id */ + @Excel(name = "车辆类型id") + private Long carTypeId; + + /** 策略名称 */ + @Excel(name = "策略名称") + private String strategyName; + + /** 报文模版id */ + @Excel(name = "报文模版id") + private Long msgId; +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnStrategy.java b/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnStrategy.java new file mode 100644 index 0000000..481e6fe --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/domain/WarnStrategy.java @@ -0,0 +1,56 @@ +package com.muyu.warning.domain; + +import com.muyu.common.core.annotation.Excel; +import lombok.*; +import lombok.experimental.SuperBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; + +/** + * 预警策略对象 warn_strategy + * + * @author muyu + * @date 2024-09-20 + */ + +@Data +@Setter +@Getter +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("warn_strategy") +public class WarnStrategy{ + private static final long serialVersionUID = 1L; + + /** 策略id */ + @TableId( type = IdType.AUTO) + private Long id; + + /** 车辆类型id */ + @Excel(name = "车辆类型id") + private Long carTypeId; + + /** 策略名称 */ + @Excel(name = "策略名称") + private String strategyName; + + /** 报文模版id */ + @Excel(name = "报文模版id") + private Long msgId; + + + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("carTypeId", getCarTypeId()) + .append("strategyName", getStrategyName()) + .append("msgId", getMsgId()) + .toString(); + } +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/wx/AccessToken.java b/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/wx/AccessToken.java new file mode 100644 index 0000000..f844623 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/wx/AccessToken.java @@ -0,0 +1,20 @@ +package com.muyu.warning.wx; + +import lombok.Data; + +/** + * @author 24415 + */ +@Data +public class AccessToken { + + + private String access_token; + + private Long expires_in; + + public void setExpiresTime(Long expiresIn) { + this.expires_in = System.currentTimeMillis() + expiresIn * 1000; + } + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/wx/Message.java b/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/wx/Message.java new file mode 100644 index 0000000..f17130a --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-common/src/main/java/com/muyu/warning/wx/Message.java @@ -0,0 +1,27 @@ +package com.muyu.warning.wx; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import lombok.Data; + +/** + * @Author: Chen + * @name:Message + */ +@Data +@XStreamAlias("xml") +public class Message { + @XStreamAlias("ToUserName") + private String toUserName; + + @XStreamAlias("FromUserName") + private String fromUserName; + + @XStreamAlias("CreateTime") + private Long createTime; + + @XStreamAlias("MsgType") + private String msgType; + + @XStreamAlias("Content") + private String content; +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-remote/pom.xml b/cloud-modules/cloud-modules-warn/cloud-warn-remote/pom.xml new file mode 100644 index 0000000..dfaa873 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-remote/pom.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + + com.muyu + cloud-modules-warn + 3.6.3 + + + cloud-warn-remote + + + 17 + 17 + UTF-8 + + + diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/pom.xml b/cloud-modules/cloud-modules-warn/cloud-warn-server/pom.xml new file mode 100644 index 0000000..cb5da5d --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/pom.xml @@ -0,0 +1,73 @@ + + + 4.0.0 + + com.muyu + cloud-modules-warn + 3.6.3 + + + cloud-warn-server + + + 17 + 17 + UTF-8 + + + + com.muyu + cloud-warn-common + 3.6.3 + + + + + + + + com.github.yulichang + mybatis-plus-join-boot-starter + 1.4.11 + + + com.squareup.okhttp3 + okhttp + 4.9.3 + + + com.thoughtworks.xstream + xstream + 1.4.20 + + + org.projectlombok + lombok + 1.18.34 + + + org.springframework.boot + spring-boot-starter + 3.3.2 + + + org.springframework.boot + spring-boot-starter-web + 3.3.2 + + + + org.dom4j + dom4j + 2.1.3 + + + com.alibaba.fastjson2 + fastjson2 + 2.0.43 + + + + diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/WarnApplication.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/WarnApplication.java new file mode 100644 index 0000000..6e3ebeb --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/WarnApplication.java @@ -0,0 +1,21 @@ +package com.muyu.warning; + +import com.muyu.common.security.annotation.EnableCustomConfig; +import com.muyu.common.security.annotation.EnableMyFeignClients; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * @Author Chen + * @name:WxApplication + * @Date:2024/9/16 20:39 + */ +@EnableCustomConfig +//@EnableCustomSwagger2 +@EnableMyFeignClients +@SpringBootApplication +public class WarnApplication { + public static void main(String[] args) { + SpringApplication.run(WarnApplication.class); + } +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnLogsController.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnLogsController.java new file mode 100644 index 0000000..3ce89ca --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnLogsController.java @@ -0,0 +1,109 @@ +package com.muyu.warning.controller; + +import java.util.Arrays; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; +import javax.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.warning.domain.WarnLogs; +import com.muyu.warning.service.IWarnLogsService; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import org.springframework.validation.annotation.Validated; +import com.muyu.common.core.web.page.TableDataInfo; + +/** + * 预警日志Controller + * + * @author muyu + * @date 2024-09-20 + */ +@RestController +@RequestMapping("/logs") +public class WarnLogsController extends BaseController +{ + @Resource + private IWarnLogsService warnLogsService; + + /** + * 查询预警日志列表 + */ + @RequiresPermissions("warning:logs:list") + @GetMapping("/list") + public Result> list(WarnLogs warnLogs) + { + startPage(); + List list = warnLogsService.selectWarnLogsList(warnLogs); + return getDataTable(list); + } + + /** + * 导出预警日志列表 + */ + @RequiresPermissions("warning:logs:export") + @PostMapping("/export") + public void export(HttpServletResponse response, WarnLogs warnLogs) + { + List list = warnLogsService.selectWarnLogsList(warnLogs); + ExcelUtil util = new ExcelUtil(WarnLogs.class); + util.exportExcel(response, list, "预警日志数据"); + } + + /** + * 获取预警日志详细信息 + */ + @RequiresPermissions("warning:logs:query") + @GetMapping(value = "/{id}") + public Result> getInfo(@PathVariable("id") Long id) + { + return success(warnLogsService.selectWarnLogsById(id)); + } + + /** + * 新增预警日志 + */ + @RequiresPermissions("warning:logs:add") + @PostMapping + public Result add( + @Validated @RequestBody WarnLogs warnLogs) + { + if (warnLogsService.checkIdUnique(warnLogs)) { + return error("新增 预警日志 '" + warnLogs + "'失败,预警日志已存在"); + } + return toAjax(warnLogsService.save(warnLogs)); + } + + /** + * 修改预警日志 + */ + @RequiresPermissions("warning:logs:edit") + @PutMapping + public Result edit( + @Validated @RequestBody WarnLogs warnLogs) + { + if (!warnLogsService.checkIdUnique(warnLogs)) { + return error("修改 预警日志 '" + warnLogs + "'失败,预警日志不存在"); + } + return toAjax(warnLogsService.updateById(warnLogs)); + } + + /** + * 删除预警日志 + */ + @RequiresPermissions("warning:logs:remove") + @DeleteMapping("/{ids}") + public Result remove(@PathVariable("ids") Long[] ids) + { + warnLogsService.removeBatchByIds(Arrays.asList(ids)); + return success(); + } +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnRuleController.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnRuleController.java new file mode 100644 index 0000000..f549518 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnRuleController.java @@ -0,0 +1,116 @@ +package com.muyu.warning.controller; + +import java.util.Arrays; +import java.util.List; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.yulichang.query.MPJLambdaQueryWrapper; +import com.muyu.warning.domain.WarnRule; +import com.muyu.warning.domain.WarnRuleDTO; +import com.muyu.warning.domain.WarnStrategy; +import jakarta.servlet.http.HttpServletResponse; + +import javax.annotation.Resource; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.warning.domain.WarnRule; +import com.muyu.warning.service.IWarnRuleService; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import org.springframework.validation.annotation.Validated; +import com.muyu.common.core.web.page.TableDataInfo; + +/** + * 预警规则Controller + * + * @author muyu + * @date 2024-09-20 + */ +@RestController +@RequestMapping("/rule") +public class WarnRuleController extends BaseController { + @Resource + private IWarnRuleService warnRuleService; + + /** + * 查询预警规则列表 + */ + @RequiresPermissions("warning:list") + @GetMapping("/list") + public Result> list(WarnRuleDTO warnRuleDTO) { + startPage(); + List list = warnRuleService.selectWarnRuleList(warnRuleDTO); +// MPJLambdaQueryWrapper objectMPJLambdaQueryWrapper = new MPJLambdaQueryWrapper<>() +// .selectAll(WarnRule.class) +// .select(WarnStrategy::getStrategyName) +// .leftJoin(WarnStrategy.class, WarnStrategy::getId, WarnRule::getStrategyId) +// .stringQuery(); + return getDataTable(list); + } + + /** + * 导出预警规则列表 + */ + @RequiresPermissions("warning:export") + @PostMapping("/export") + public void export(HttpServletResponse response, WarnRuleDTO warnRuleDTO) { + List list = warnRuleService.selectWarnRuleList(warnRuleDTO); + ExcelUtil util = new ExcelUtil(WarnRuleDTO.class); + util.exportExcel(response, list, "预警规则数据"); + } + + /** + * 获取预警规则详细信息 + */ + @RequiresPermissions("warning:query") + @GetMapping(value = "/{id}") + public Result> getInfo(@PathVariable("id") Long id) { + return success(warnRuleService.selectWarnRuleById(id)); + } + + /** + * 新增预警规则 + */ + @RequiresPermissions("warning:add") + @PostMapping + public Result add( + @Validated @RequestBody WarnRuleDTO warnRuleDTO) { + if (warnRuleService.checkIdUnique(warnRuleDTO)) { + return error("新增 预警规则 '" + warnRuleDTO + "'失败,预警规则已存在"); + } + return toAjax(warnRuleService.save(warnRuleDTO)); + } + + /** + * 修改预警规则 + */ + @RequiresPermissions("warning:edit") + @PutMapping + public Result edit( + @Validated @RequestBody WarnRuleDTO warnRuleDTO) { + if (!warnRuleService.checkIdUnique(warnRuleDTO)) { + return error("修改 预警规则 '" + warnRuleDTO + "'失败,预警规则不存在"); + } + return toAjax(warnRuleService.updateById(warnRuleDTO)); + } + + /** + * 删除预警规则 + */ + @RequiresPermissions("warning:remove") + @DeleteMapping("/{ids}") + public Result remove(@PathVariable("ids") Long[] ids) { + warnRuleService.removeBatchByIds(Arrays.asList(ids)); + return success(); + } + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnRulesController.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnRulesController.java new file mode 100644 index 0000000..8a87908 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnRulesController.java @@ -0,0 +1,49 @@ +package com.muyu.warning.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.warning.domain.WarnRule; +import com.muyu.warning.domain.WarnRuleDTO; +import com.muyu.warning.service.IWarRulesService; +import lombok.val; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @ClassName WarnRulesController + * @Description 描述 + * @Author Chen + * @Date 2024/9/23 21:07 + */ +@RestController +@RequestMapping("/rules") +public class WarnRulesController { + @Autowired + private IWarRulesService warnRulesService; + + /** + * 联查策略规则 联查 + */ + + @GetMapping("/list") + public Result> list() { + List list = warnRulesService.selectWarnRulesList(); + return Result.success(list); + } + + /** + * 联查 + * + * @param warnRuleDTO + * @return + */ + @PostMapping("/listAll") + public Result> listAll(WarnRuleDTO warnRuleDTO) { + List list = warnRulesService.selectWarnRulesListAll(warnRuleDTO); + return Result.success(list); + } +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnStrategyController.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnStrategyController.java new file mode 100644 index 0000000..4f1b51f --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WarnStrategyController.java @@ -0,0 +1,105 @@ +package com.muyu.warning.controller; + +import java.util.Arrays; +import java.util.List; + +import jakarta.servlet.http.HttpServletResponse; + +import javax.annotation.Resource; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.warning.domain.WarnStrategy; +import com.muyu.warning.service.IWarnStrategyService; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import org.springframework.validation.annotation.Validated; +import com.muyu.common.core.web.page.TableDataInfo; + +/** + * 预警策略Controller + * + * @author muyu + * @date 2024-09-20 + */ +@RestController +@RequestMapping("/strategy") +public class WarnStrategyController extends BaseController { + @Resource + private IWarnStrategyService warnStrategyService; + + /** + * 查询预警策略列表 + */ + @RequiresPermissions("warning:strategy:list") + @GetMapping("/list") + public Result> list(WarnStrategy warnStrategy) { + startPage(); + List list = warnStrategyService.selectWarnStrategyList(warnStrategy); + return getDataTable(list); + } + + /** + * 导出预警策略列表 + */ + @RequiresPermissions("warning:strategy:export") + @PostMapping("/export") + public void export(HttpServletResponse response, WarnStrategy warnStrategy) { + List list = warnStrategyService.selectWarnStrategyList(warnStrategy); + ExcelUtil util = new ExcelUtil(WarnStrategy.class); + util.exportExcel(response, list, "预警策略数据"); + } + + /** + * 获取预警策略详细信息 + */ + @RequiresPermissions("warning:strategy:query") + @GetMapping(value = "/{id}") + public Result> getInfo(@PathVariable("id") Long id) { + return success(warnStrategyService.selectWarnStrategyById(id)); + } + + /** + * 新增预警策略 + */ + @RequiresPermissions("warning:strategy:add") + @PostMapping + public Result add( + @Validated @RequestBody WarnStrategy warnStrategy) { + if (warnStrategyService.checkIdUnique(warnStrategy)) { + return error("新增 预警策略 '" + warnStrategy + "'失败,预警策略已存在"); + } + return toAjax(warnStrategyService.save(warnStrategy)); + } + + /** + * 修改预警策略 + */ + @RequiresPermissions("warning:strategy:edit") + @PutMapping + public Result edit( + @Validated @RequestBody WarnStrategy warnStrategy) { + if (!warnStrategyService.checkIdUnique(warnStrategy)) { + return error("修改 预警策略 '" + warnStrategy + "'失败,预警策略不存在"); + } + return toAjax(warnStrategyService.updateById(warnStrategy)); + } + + /** + * 删除预警策略 + */ + @RequiresPermissions("warning:strategy:remove") + @DeleteMapping("/{ids}") + public Result remove(@PathVariable("ids") Long[] ids) { + warnStrategyService.removeBatchByIds(Arrays.asList(ids)); + return success(); + } +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WxTestController.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WxTestController.java new file mode 100644 index 0000000..b512b94 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/controller/WxTestController.java @@ -0,0 +1,153 @@ +package com.muyu.warning.controller; + + +import com.muyu.warning.wx.Message; +import com.muyu.warning.message.Article; +import com.muyu.warning.message.NewMessage; +import com.muyu.warning.util.TokenUtil; +import com.thoughtworks.xstream.XStream; +import io.micrometer.common.util.StringUtils; +import jakarta.servlet.ServletInputStream; +import jakarta.servlet.http.HttpServletRequest; +import org.dom4j.Document; +import org.dom4j.DocumentException; +import org.dom4j.Element; +import org.dom4j.io.SAXReader; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.io.IOException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.*; + +/** + * @Author: Chen + * @name:GetWxController + */ +@RestController +public class WxTestController { + + + @PostMapping("/") + public String receiveMessage(HttpServletRequest request) { + ServletInputStream inputStream = null; + HashMap map = new HashMap<>(); + try { + inputStream = request.getInputStream(); + SAXReader saxReader = new SAXReader(); + //读取request输入流,获得Document对象 + Document document = saxReader.read(inputStream); + //获得root结点 + Element rootElement = document.getRootElement(); + //获取所有的子节点 + List elements = rootElement.elements(); + for (Element element : elements) { + map.put(element.getName(), element.getStringValue()); + } + + + } catch (IOException e) { + throw new RuntimeException(e); + } catch (DocumentException e) { + throw new RuntimeException(e); + } + System.out.println(map); + //回复消息 + String message = ""; + if ("图文".equals(map.get("Content"))) { + message = getReplyNewsMessage(map); + } else { + message = getReplyMessage(map); + + } + return message; + } + + /** + * 获得回复的消息内容 + * + * @param map + * @return + */ + private String getReplyMessage(HashMap map) { + Message message = new Message(); + message.setToUserName(map.get("FromUserName")); + message.setFromUserName(map.get("ToUserName")); +// message.setMsgType(map.get("MsgType")); + message.setMsgType("text"); + message.setCreateTime(System.currentTimeMillis() / 1000); + message.setContent("自动回复:您好"); + //XStream将java对象转换为xml字符串 + XStream xStream = new XStream(); + xStream.processAnnotations(Message.class); + String xml = xStream.toXML(message); + return xml; + } + + + @GetMapping("/") + public String check(@RequestParam("signature") String signature, @RequestParam("timestamp") String timestamp, + @RequestParam("nonce") String nonce, @RequestParam("echostr") String echostr) { + + //1.将token、timestamp、nonce三个参数进行字典排序 + String token = "asdasd"; + List list = Arrays.asList(token, timestamp, nonce); + //排序 + Collections.sort(list); + //2.将三个参数字符串拼接成一个字符串进行sha1加密 + StringBuilder stringBuilder = new StringBuilder(); + for (String s : list) { + stringBuilder.append(s); + } + //加密 + try { + MessageDigest instance = MessageDigest.getInstance("sha1"); + //使用sha1进行加密,获得byte数组 + byte[] digest = instance.digest(stringBuilder.toString().getBytes()); + StringBuilder sum = new StringBuilder(); + for (byte b : digest) { + sum.append(Integer.toHexString((b >> 4) & 15)); + sum.append(Integer.toHexString(b & 15)); + } + //3.开发者获得加密后的字符串可与signature对比,标识该请求来源于微信 + if (!StringUtils.isEmpty(signature) && signature.equals(sum.toString())) { + return echostr; + } + + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException(e); + } + return null; + } + + @PostMapping("/test") + public void test() { + String accessToken = TokenUtil.getAccessToken(); + System.out.println(accessToken); + } + + private String getReplyNewsMessage(Map map) { + NewMessage newsMessage = new NewMessage(); + newsMessage.setToUserName(map.get("FromUserName")); + newsMessage.setFromUserName(map.get("ToUserName")); + newsMessage.setMsgType("news"); + newsMessage.setCreateTime(System.currentTimeMillis() / 1000); + newsMessage.setArticleCount(1); + List
articles = new ArrayList<>(); + Article article = new Article(); + article.setTitle("oneone哦恩恩"); + article.setDescription("详细描述--------------信息"); + article.setUrl("https://www.baidu.com"); + article.setPicUrl("http://mmbiz.qpic.cn/mmbiz_jpg/RiaWwmABEMmkFKQMeQZLLYaxknlzE9CxSozVSH42iaXiaQcia5hPPUicuNYbS8dG99zsMZ1ic266ialM42Mbn8SkN54kA/0"); + articles.add(article); + newsMessage.setArticles(articles); + //XStream将java对象转换为xml字符串 + XStream xStream = new XStream(); + xStream.processAnnotations(NewMessage.class); + String xml = xStream.toXML(newsMessage); + return xml; + } +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnLogsMapper.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnLogsMapper.java new file mode 100644 index 0000000..166720f --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnLogsMapper.java @@ -0,0 +1,16 @@ +package com.muyu.warning.mapper; + +import com.muyu.warning.domain.WarnLogs; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * 预警日志Mapper接口 + * + * @author muyu + * @date 2024-09-20 + */ +@Mapper +public interface WarnLogsMapper extends BaseMapper{ + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnRuleMapper.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnRuleMapper.java new file mode 100644 index 0000000..e3d67d3 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnRuleMapper.java @@ -0,0 +1,19 @@ +package com.muyu.warning.mapper; + +import com.github.yulichang.base.MPJBaseMapper; +import com.muyu.warning.domain.WarnRule; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.warning.domain.WarnRule; +import com.muyu.warning.domain.WarnRuleDTO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 预警规则Mapper接口 + * + * @author muyu + * @date 2024-09-20 + */ +@Mapper +public interface WarnRuleMapper extends BaseMapper { + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnRulesMapper.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnRulesMapper.java new file mode 100644 index 0000000..61a6d1a --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnRulesMapper.java @@ -0,0 +1,21 @@ +package com.muyu.warning.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.warning.domain.WarnRuleDTO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * @ClassName WarnRulesMapper + * @Description 描述 + * @Author Chen + * @Date 2024/9/23 21:07 + */ +@Mapper +public interface WarnRulesMapper extends BaseMapper { + @Select("select r.*,s.id,s.strategy_name FROM warn_rule r left join warn_strategy s on r.strategy_id=s.id where r.strategy_id = #{s.id}") + List selectWarnRulesListAll(WarnRuleDTO warnRuleDTO); + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnStrategyMapper.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnStrategyMapper.java new file mode 100644 index 0000000..e9bd988 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/mapper/WarnStrategyMapper.java @@ -0,0 +1,16 @@ +package com.muyu.warning.mapper; + +import com.muyu.warning.domain.WarnStrategy; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * 预警策略Mapper接口 + * + * @author muyu + * @date 2024-09-20 + */ +@Mapper +public interface WarnStrategyMapper extends BaseMapper{ + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/message/Article.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/message/Article.java new file mode 100644 index 0000000..9c195ce --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/message/Article.java @@ -0,0 +1,28 @@ +package com.muyu.warning.message; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName Article + * @Description 描述 + * @Author Chen + * @Date 2024/9/18 19:13 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@XStreamAlias("item") +public class Article { + @XStreamAlias("Title") + private String title; + @XStreamAlias("Description") + private String description; + @XStreamAlias("PicUrl") + private String picUrl; + @XStreamAlias("Url") + private String url; + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/message/NewMessage.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/message/NewMessage.java new file mode 100644 index 0000000..a8b5dbf --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/message/NewMessage.java @@ -0,0 +1,34 @@ +package com.muyu.warning.message; + +import com.thoughtworks.xstream.annotations.XStreamAlias; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @ClassName NewMessage + * @Description 描述 + * @Author Chen + * @Date 2024/9/18 19:08 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@XStreamAlias("xml") +public class NewMessage { + @XStreamAlias("ToUserName") + private String toUserName; + @XStreamAlias("FromUserName") + private String fromUserName; + @XStreamAlias("CreateTime") + private long createTime; + @XStreamAlias("MsgType") + private String msgType; + @XStreamAlias("ArticleCount") + private int articleCount; + @XStreamAlias("Articles") + private List
articles; + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarRulesService.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarRulesService.java new file mode 100644 index 0000000..25f71e8 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarRulesService.java @@ -0,0 +1,14 @@ +package com.muyu.warning.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.warning.domain.WarnRule; +import com.muyu.warning.domain.WarnRuleDTO; + +import java.util.List; + +public interface IWarRulesService extends IService { + List selectWarnRulesList(); + //联查 + List selectWarnRulesListAll(WarnRuleDTO warnRuleDTO); + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnLogsService.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnLogsService.java new file mode 100644 index 0000000..1f61aa4 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnLogsService.java @@ -0,0 +1,37 @@ +package com.muyu.warning.service; + +import java.util.List; +import com.muyu.warning.domain.WarnLogs; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * 预警日志Service接口 + * + * @author muyu + * @date 2024-09-20 + */ +public interface IWarnLogsService extends IService { + /** + * 精确查询预警日志 + * + * @param id 预警日志主键 + * @return 预警日志 + */ + public WarnLogs selectWarnLogsById(Long id); + + /** + * 查询预警日志列表 + * + * @param warnLogs 预警日志 + * @return 预警日志集合 + */ + public List selectWarnLogsList(WarnLogs warnLogs); + + /** + * 判断 预警日志 id是否唯一 + * @param warnLogs 预警日志 + * @return 结果 + */ + Boolean checkIdUnique(WarnLogs warnLogs); + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnRuleService.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnRuleService.java new file mode 100644 index 0000000..ef327d0 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnRuleService.java @@ -0,0 +1,39 @@ +package com.muyu.warning.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.github.yulichang.base.MPJBaseService; +import com.muyu.warning.domain.WarnRuleDTO; + +import java.util.List; + +/** + * 预警规则Service接口 + * + * @author muyu + * @date 2024-09-20 + */ +public interface IWarnRuleService extends IService { + /** + * 精确查询预警规则 + * + * @param id 预警规则主键 + * @return 预警规则 + */ + public WarnRuleDTO selectWarnRuleById(Long id); + + /** + * 查询预警规则列表 + * + * @param warnRuleDTO 预警规则 + * @return 预警规则集合 + */ + public List selectWarnRuleList(WarnRuleDTO warnRuleDTO); + + /** + * 判断 预警规则 id是否唯一 + * @param warnRuleDTO 预警规则 + * @return 结果 + */ + Boolean checkIdUnique(WarnRuleDTO warnRuleDTO); + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnStrategyService.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnStrategyService.java new file mode 100644 index 0000000..d3fec08 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/IWarnStrategyService.java @@ -0,0 +1,37 @@ +package com.muyu.warning.service; + +import java.util.List; +import com.muyu.warning.domain.WarnStrategy; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * 预警策略Service接口 + * + * @author muyu + * @date 2024-09-20 + */ +public interface IWarnStrategyService extends IService { + /** + * 精确查询预警策略 + * + * @param id 预警策略主键 + * @return 预警策略 + */ + public WarnStrategy selectWarnStrategyById(Long id); + + /** + * 查询预警策略列表 + * + * @param warnStrategy 预警策略 + * @return 预警策略集合 + */ + public List selectWarnStrategyList(WarnStrategy warnStrategy); + + /** + * 判断 预警策略 id是否唯一 + * @param warnStrategy 预警策略 + * @return 结果 + */ + Boolean checkIdUnique(WarnStrategy warnStrategy); + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnLogsServiceImpl.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnLogsServiceImpl.java new file mode 100644 index 0000000..2e25a7b --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnLogsServiceImpl.java @@ -0,0 +1,92 @@ +package com.muyu.warning.service.impl; + +import java.util.List; +import org.springframework.stereotype.Service; +import com.muyu.warning.mapper.WarnLogsMapper; +import com.muyu.warning.domain.WarnLogs; +import com.muyu.warning.service.IWarnLogsService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.utils.StringUtils; +import org.springframework.util.Assert; + +/** + * 预警日志Service业务层处理 + * + * @author muyu + * @date 2024-09-20 + */ +@Service +public class WarnLogsServiceImpl + extends ServiceImpl + implements IWarnLogsService { + + /** + * 精确查询预警日志 + * + * @param id 预警日志主键 + * @return 预警日志 + */ + @Override + public WarnLogs selectWarnLogsById(Long id) + { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Assert.notNull(id, "id不可为空"); + queryWrapper.eq(WarnLogs::getId, id); + return this.getOne(queryWrapper); + } + + + /** + * 查询预警日志列表 + * + * @param warnLogs 预警日志 + * @return 预警日志 + */ + @Override + public List selectWarnLogsList(WarnLogs warnLogs) + { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotEmpty(warnLogs.getVin())){ + queryWrapper.eq(WarnLogs::getVin, warnLogs.getVin()); + } + if (StringUtils.isNotNull(warnLogs.getWarnRuleId())){ + queryWrapper.eq(WarnLogs::getWarnRuleId, warnLogs.getWarnRuleId()); + } + if (StringUtils.isNotNull(warnLogs.getStartTime())){ + queryWrapper.eq(WarnLogs::getStartTime, warnLogs.getStartTime()); + } + if (StringUtils.isNotNull(warnLogs.getEndTime())){ + queryWrapper.eq(WarnLogs::getEndTime, warnLogs.getEndTime()); + } + if (StringUtils.isNotNull(warnLogs.getMaxValue())){ + queryWrapper.eq(WarnLogs::getMaxValue, warnLogs.getMaxValue()); + } + if (StringUtils.isNotNull(warnLogs.getMinValue())){ + queryWrapper.eq(WarnLogs::getMinValue, warnLogs.getMinValue()); + } + if (StringUtils.isNotNull(warnLogs.getAvgValue())){ + queryWrapper.eq(WarnLogs::getAvgValue, warnLogs.getAvgValue()); + } + if (StringUtils.isNotNull(warnLogs.getMedianValue())){ + queryWrapper.eq(WarnLogs::getMedianValue, warnLogs.getMedianValue()); + } + if (StringUtils.isNotNull(warnLogs.getStatus())){ + queryWrapper.eq(WarnLogs::getStatus, warnLogs.getStatus()); + } + return this.list(queryWrapper); + } + + /** + * 唯一 判断 + * @param warnLogs 预警日志 + * @return 预警日志 + */ + @Override + public Boolean checkIdUnique(WarnLogs warnLogs) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(WarnLogs::getId, warnLogs.getId()); + return this.count(queryWrapper) > 0; + } + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnRuleServiceImpl.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnRuleServiceImpl.java new file mode 100644 index 0000000..4fa0aab --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnRuleServiceImpl.java @@ -0,0 +1,108 @@ +package com.muyu.warning.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.base.MPJBaseServiceImpl; +import com.muyu.common.core.utils.StringUtils; +import com.muyu.warning.domain.WarnRuleDTO; +import com.muyu.warning.mapper.WarnRuleMapper; +import com.muyu.warning.service.IWarnRuleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import java.util.List; + +/** + * 预警规则Service业务层处理 + * + * @author muyu + * @date 2024-09-20 + */ +@Service +public class WarnRuleServiceImpl + extends ServiceImpl + implements IWarnRuleService { + + + /** + * 精确查询预警规则 + * + * @param id 预警规则主键 + * @return 预警规则 + */ + @Override + public WarnRuleDTO selectWarnRuleById(Long id) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Assert.notNull(id, "id不可为空"); + queryWrapper.eq(WarnRuleDTO::getId, id); + return this.getOne(queryWrapper); + } + + + /** + * 查询预警规则列表 + * + * @param warnRuleDTO 预警规则 + * @return 预警规则 + */ + @Override + public List selectWarnRuleList(WarnRuleDTO warnRuleDTO) { + +// MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper() +// .selectAll(WarnRule.class) +// .select(WarnStrategy::getStrategyName) +// .selectAs(WarnStrategy::getStrategyName, WarnRule::getStrategyName); +// List list = warnRuleMapper.selectJoinList(WarnRule.class, queryWrapper); +// return list; +// MPJLambdaWrapper wrapper = JoinWrappers.lambda(WarnRule.class) +// .selectAll(WarnRule.class) +// .select(WarnStrategy::getStrategyName) +// .leftJoin(WarnStrategy.class, WarnStrategy::getId, WarnRule::getId); +// return warnRuleMapper.selectJoinList(WarnRule.class, wrapper); +// MPJQueryWrapper queryWrapper = new MPJQueryWrapper<>(); +// if (StringUtils.isNotEmpty(warnRule.getRuleName())) { +//// queryWrapper.like(WarnRule::getRuleName, warnRule.getRuleName()); +// queryWrapper.like("rule_name", warnRule.getRuleName()); +// } +// + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotNull(warnRuleDTO.getStrategyId())) { + queryWrapper.eq(WarnRuleDTO::getStrategyId, warnRuleDTO.getStrategyId()); +// queryWrapper.eq("strategy_id", warnRule.getStrategyId()); + } + if (StringUtils.isNotNull(warnRuleDTO.getMsgTypeId())) { + queryWrapper.eq(WarnRuleDTO::getMsgTypeId, warnRuleDTO.getMsgTypeId()); + } + if (StringUtils.isNotNull(warnRuleDTO.getSlideTime())) { + queryWrapper.eq(WarnRuleDTO::getSlideTime, warnRuleDTO.getSlideTime()); + } + if (StringUtils.isNotNull(warnRuleDTO.getSlideFrequency())) { + queryWrapper.eq(WarnRuleDTO::getSlideFrequency, warnRuleDTO.getSlideFrequency()); + } + if (StringUtils.isNotNull(warnRuleDTO.getMaxValue())) { + queryWrapper.eq(WarnRuleDTO::getMaxValue, warnRuleDTO.getMaxValue()); + } + if (StringUtils.isNotNull(warnRuleDTO.getMinValue())) { + queryWrapper.eq(WarnRuleDTO::getMinValue, warnRuleDTO.getMinValue()); + } + return this.list(queryWrapper); + + + } + + /** + * 唯一 判断 + * + * @param warnRuleDTO 预警规则 + * @return 预警规则 + */ + @Override + public Boolean checkIdUnique(WarnRuleDTO warnRuleDTO) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(WarnRuleDTO::getId, warnRuleDTO.getId()); + return this.count(queryWrapper) > 0; + } + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnRulesServiceImpl.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnRulesServiceImpl.java new file mode 100644 index 0000000..54de66e --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnRulesServiceImpl.java @@ -0,0 +1,47 @@ +package com.muyu.warning.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.muyu.warning.domain.WarnRule; +import com.muyu.warning.domain.WarnRuleDTO; +import com.muyu.warning.domain.WarnStrategy; +import com.muyu.warning.mapper.WarnRulesMapper; +import com.muyu.warning.service.IWarRulesService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @ClassName WarnRulesServiceImpl + * @Description 描述 + * @Author Chen + * @Date 2024/9/23 22:02 + */ +@Service +public class WarnRulesServiceImpl + extends ServiceImpl + implements IWarRulesService { + + @Autowired + private WarnRulesMapper warnRulesMapper; + + @Override + public List selectWarnRulesList() { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper() + .selectAll(WarnRule.class) + .selectAs(WarnStrategy::getStrategyName, WarnRuleDTO::getStrategyName) + .leftJoin(WarnStrategy.class, WarnStrategy::getId, WarnRule::getStrategyId); + return this.list(wrapper); + } + + /** + * 双表查询 + * @return + */ + @Override + public List selectWarnRulesListAll(WarnRuleDTO warnRuleDTO) { + List list = warnRulesMapper.selectWarnRulesListAll(warnRuleDTO); + return list; + } +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnStrategyServiceImpl.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnStrategyServiceImpl.java new file mode 100644 index 0000000..505a01e --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/service/impl/WarnStrategyServiceImpl.java @@ -0,0 +1,74 @@ +package com.muyu.warning.service.impl; + +import java.util.List; +import org.springframework.stereotype.Service; +import com.muyu.warning.mapper.WarnStrategyMapper; +import com.muyu.warning.domain.WarnStrategy; +import com.muyu.warning.service.IWarnStrategyService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.utils.StringUtils; +import org.springframework.util.Assert; + +/** + * 预警策略Service业务层处理 + * + * @author muyu + * @date 2024-09-20 + */ +@Service +public class WarnStrategyServiceImpl + extends ServiceImpl + implements IWarnStrategyService { + + /** + * 精确查询预警策略 + * + * @param id 预警策略主键 + * @return 预警策略 + */ + @Override + public WarnStrategy selectWarnStrategyById(Long id) + { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + Assert.notNull(id, "id不可为空"); + queryWrapper.eq(WarnStrategy::getId, id); + return this.getOne(queryWrapper); + } + + + /** + * 查询预警策略列表 + * + * @param warnStrategy 预警策略 + * @return 预警策略 + */ + @Override + public List selectWarnStrategyList(WarnStrategy warnStrategy) + { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotNull(warnStrategy.getCarTypeId())){ + queryWrapper.eq(WarnStrategy::getCarTypeId, warnStrategy.getCarTypeId()); + } + if (StringUtils.isNotNull(warnStrategy.getStrategyName())){ + queryWrapper.like(WarnStrategy::getStrategyName, warnStrategy.getStrategyName()); + } + if (StringUtils.isNotNull(warnStrategy.getMsgId())){ + queryWrapper.eq(WarnStrategy::getMsgId, warnStrategy.getMsgId()); + } + return this.list(queryWrapper); + } + + /** + * 唯一 判断 + * @param warnStrategy 预警策略 + * @return 预警策略 + */ + @Override + public Boolean checkIdUnique(WarnStrategy warnStrategy) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(WarnStrategy::getId, warnStrategy.getId()); + return this.count(queryWrapper) > 0; + } + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/util/OkHttpUtils.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/util/OkHttpUtils.java new file mode 100644 index 0000000..fc33154 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/util/OkHttpUtils.java @@ -0,0 +1,36 @@ +package com.muyu.warning.util; + +import okhttp3.*; + +import java.io.IOException; + +public class OkHttpUtils { + + private static final OkHttpClient client = new OkHttpClient(); + + public static String sendGetRequest(String urlString) { + Request request = new Request.Builder() + .url(urlString) + .build(); + try (Response response = client.newCall(request).execute()) { + return response.body().string(); + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } + + public static String sendPostRequest(String urlString, String params) { + RequestBody requestBody = RequestBody.create(params, MediaType.parse("application/json; charset=utf-8")); + Request request = new Request.Builder() + .url(urlString) + .post(requestBody) + .build(); + try (Response response = client.newCall(request).execute()) { + return response.body().string(); + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/util/TokenUtil.java b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/util/TokenUtil.java new file mode 100644 index 0000000..5587e4b --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/java/com/muyu/warning/util/TokenUtil.java @@ -0,0 +1,35 @@ +package com.muyu.warning.util; + +import com.alibaba.fastjson2.JSON; +import com.muyu.warning.wx.AccessToken; +import org.springframework.stereotype.Component; + +/** + * @Author: Chen //redisService.setCacheObject("WECHAT_TOKEN",wechatToken.getAccessToken(),wechatToken.getExpiresIn(), TimeUnit.SECONDS); + * @name:TokenUtil + */ +@Component +public class TokenUtil { + private final static String APP_ID = "wx591e88abd208c297"; + + private final static String APP_SECRET = "64d92a751ef24acc8d37b2e6d7672491"; + + private static AccessToken accessToken = new AccessToken(); + + + public static void getToken() { + String url = String.format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s", APP_ID, APP_SECRET); + String request = OkHttpUtils.sendGetRequest(url); + AccessToken wechatToken = JSON.parseObject(request, AccessToken.class); + if (wechatToken != null) { + accessToken.setExpiresTime(wechatToken.getExpires_in()); + accessToken.setAccess_token(wechatToken.getAccess_token()); + } + } + + public static String getAccessToken() { + getToken(); + return accessToken.getAccess_token(); + } + +} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/banner.txt b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/banner.txt new file mode 100644 index 0000000..0dd5eee --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/banner.txt @@ -0,0 +1,2 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..756d816 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/bootstrap.yml @@ -0,0 +1,48 @@ +# Tomcat +server: + port: 10003 + +# nacos线上地址 +nacos: + addr: 127.0.0.1:8848 + user-name: nacos + password: nacos + namespace: one + +# Spring +spring: + main: + allow-bean-definition-overriding: true + application: + # 应用名称 + name: cloud-warn + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: ${nacos.addr} + # 命名空间 + namespace: ${nacos.namespace} + config: + # 服务注册地址 + server-addr: ${nacos.addr} + # 命名空间 + namespace: ${nacos.namespace} + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + # 系统共享配置 + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # 系统环境Config共享配置 + - application-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # xxl-job 配置文件 + - application-xxl-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + # engine配置 + - engine-config-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} +logging: + level: + com.muyu.system.mapper: DEBUG diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/dev.xml b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/dev.xml new file mode 100644 index 0000000..8b99495 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/dev.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/prod.xml b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/prod.xml new file mode 100644 index 0000000..0fe8654 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/prod.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/test.xml b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/test.xml new file mode 100644 index 0000000..0fe8654 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/logback/test.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + ${log.sky.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + + + ERROR + + ACCEPT + + DENY + + + + + + + + ${log.sky.pattern} + + + + + + + + + + + + + + + + + + + + diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnLogsMapper.xml b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnLogsMapper.xml new file mode 100644 index 0000000..6d23e91 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnLogsMapper.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + select id, vin, warn_rule_id, start_time, end_time, max_value, min_value, avg_value, median_value, status from warn_logs + + + + + + + + insert into warn_logs + + vin, + warn_rule_id, + start_time, + end_time, + max_value, + min_value, + avg_value, + median_value, + status, + + + #{vin}, + #{warnRuleId}, + #{startTime}, + #{endTime}, + #{maxValue}, + #{minValue}, + #{avgValue}, + #{medianValue}, + #{status}, + + + + + update warn_logs + + vin = #{vin}, + warn_rule_id = #{warnRuleId}, + start_time = #{startTime}, + end_time = #{endTime}, + max_value = #{maxValue}, + min_value = #{minValue}, + avg_value = #{avgValue}, + median_value = #{medianValue}, + status = #{status}, + + where id = #{id} + + + + delete from warn_logs where id = #{id} + + + + delete from warn_logs where id in + + #{id} + + + diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnRuleMapper.xml b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnRuleMapper.xml new file mode 100644 index 0000000..290906f --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnRuleMapper.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + select id, rule_name, strategy_id, msg_type_id, slide_time, slide_frequency, max_value, min_value from warn_rule + + + + + + + + insert into warn_rule + + rule_name, + strategy_id, + msg_type_id, + slide_time, + slide_frequency, + max_value, + min_value, + + + #{ruleName}, + #{strategyId}, + #{msgTypeId}, + #{slideTime}, + #{slideFrequency}, + #{maxValue}, + #{minValue}, + + + + + update warn_rule + + rule_name = #{ruleName}, + strategy_id = #{strategyId}, + msg_type_id = #{msgTypeId}, + slide_time = #{slideTime}, + slide_frequency = #{slideFrequency}, + max_value = #{maxValue}, + min_value = #{minValue}, + + where id = #{id} + + + + delete from warn_rule where id = #{id} + + + + delete from warn_rule where id in + + #{id} + + + diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnRulesMapper.xml b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnRulesMapper.xml new file mode 100644 index 0000000..a9ef466 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnRulesMapper.xml @@ -0,0 +1,9 @@ + + + + + + + diff --git a/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnStrategyMapper.xml b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnStrategyMapper.xml new file mode 100644 index 0000000..6959c4a --- /dev/null +++ b/cloud-modules/cloud-modules-warn/cloud-warn-server/src/main/resources/mapper/platform/WarnStrategyMapper.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + select id, car_type_id, strategy_name, msg_id from warn_strategy + + + + + + + + insert into warn_strategy + + car_type_id, + strategy_name, + msg_id, + + + #{carTypeId}, + #{strategyName}, + #{msgId}, + + + + + update warn_strategy + + car_type_id = #{carTypeId}, + strategy_name = #{strategyName}, + msg_id = #{msgId}, + + where id = #{id} + + + + delete from warn_strategy where id = #{id} + + + + delete from warn_strategy where id in + + #{id} + + + diff --git a/cloud-modules/cloud-modules-warn/pom.xml b/cloud-modules/cloud-modules-warn/pom.xml new file mode 100644 index 0000000..7e15d11 --- /dev/null +++ b/cloud-modules/cloud-modules-warn/pom.xml @@ -0,0 +1,26 @@ + + + 4.0.0 + + com.muyu + cloud-modules + 3.6.3 + + + cloud-modules-warn + pom + + cloud-warn-common + cloud-warn-client + cloud-warn-remote + cloud-warn-server + + + + 17 + 17 + UTF-8 + +