Kaynağa Gözat

Merge branch 'dev-api' into dev

tom 5 ay önce
ebeveyn
işleme
eef3ce7d2c
33 değiştirilmiş dosya ile 2320 ekleme ve 21 silme
  1. 35 0
      pla-sim/01_SQL/02_table/sim_add_on_user.sql
  2. 35 0
      pla-sim/01_SQL/02_table/sim_major.sql
  3. 38 0
      pla-sim/01_SQL/02_table/sim_sim.sql
  4. 42 0
      pla-sim/01_SQL/02_table/sim_sim_msg.sql
  5. 100 17
      pla-sim/01_SQL/03_dev_backup/pla-chem-sim-dev-1.sql
  6. 2 2
      ruoyi-admin/src/main/resources/application.yml
  7. 7 0
      ruoyi-sim/pom.xml
  8. 98 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/controller/AddOnUserController.java
  9. 109 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/controller/MajorController.java
  10. 98 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/controller/SimController.java
  11. 100 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/controller/SimMsgController.java
  12. 56 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/domain/AddOnUser.java
  13. 56 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/domain/Major.java
  14. 101 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/domain/Sim.java
  15. 166 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/domain/SimMsg.java
  16. 61 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/mapper/AddOnUserMapper.java
  17. 61 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/mapper/MajorMapper.java
  18. 61 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/mapper/SimMapper.java
  19. 61 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/mapper/SimMsgMapper.java
  20. 61 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/service/IAddOnUserService.java
  21. 61 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/service/IMajorService.java
  22. 61 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/service/ISimMsgService.java
  23. 61 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/service/ISimService.java
  24. 90 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/AddOnUserServiceImpl.java
  25. 90 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/MajorServiceImpl.java
  26. 90 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/SimMsgServiceImpl.java
  27. 90 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/SimServiceImpl.java
  28. 2 2
      ruoyi-sim/src/main/java/com/ruoyi/sim/service/my/IotService.java
  29. 13 0
      ruoyi-sim/src/main/java/com/ruoyi/sim/service/my/MajorMyService.java
  30. 80 0
      ruoyi-sim/src/main/resources/mapper/sim/AddOnUserMapper.xml
  31. 80 0
      ruoyi-sim/src/main/resources/mapper/sim/MajorMapper.xml
  32. 127 0
      ruoyi-sim/src/main/resources/mapper/sim/SimMapper.xml
  33. 127 0
      ruoyi-sim/src/main/resources/mapper/sim/SimMsg.xml

+ 35 - 0
pla-sim/01_SQL/02_table/sim_add_on_user.sql

@@ -0,0 +1,35 @@
+/*
+ Navicat Premium Dump SQL
+
+ Source Server         : qdhome.iot321.top
+ Source Server Type    : MySQL
+ Source Server Version : 50740 (5.7.40-log)
+ Source Host           : qdhome.iot321.top:33003
+ Source Schema         : pla-chem-sim-dev-1
+
+ Target Server Type    : MySQL
+ Target Server Version : 50740 (5.7.40-log)
+ File Encoding         : 65001
+
+ Date: 11/12/2024 00:40:48
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sim_add_on_user
+-- ----------------------------
+DROP TABLE IF EXISTS `sim_add_on_user`;
+CREATE TABLE `sim_add_on_user`  (
+  `user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
+  `major_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '专业ID',
+  `createBy` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
+  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+  `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新者',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`user_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'sim-学员/教师/用户附加表' ROW_FORMAT = DYNAMIC;
+
+SET FOREIGN_KEY_CHECKS = 1;

+ 35 - 0
pla-sim/01_SQL/02_table/sim_major.sql

@@ -0,0 +1,35 @@
+/*
+ Navicat Premium Dump SQL
+
+ Source Server         : qdhome.iot321.top
+ Source Server Type    : MySQL
+ Source Server Version : 50740 (5.7.40-log)
+ Source Host           : qdhome.iot321.top:33003
+ Source Schema         : pla-chem-sim-dev-1
+
+ Target Server Type    : MySQL
+ Target Server Version : 50740 (5.7.40-log)
+ File Encoding         : 65001
+
+ Date: 11/12/2024 00:39:35
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sim_major
+-- ----------------------------
+DROP TABLE IF EXISTS `sim_major`;
+CREATE TABLE `sim_major`  (
+  `major_id` bigint(20) NOT NULL DEFAULT 0 AUTO_INCREMENT COMMENT '专业ID',
+  `major_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '专业名称',
+  `createBy` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
+  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+  `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新者',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`major_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'sim-专业表' ROW_FORMAT = DYNAMIC;
+
+SET FOREIGN_KEY_CHECKS = 1;

+ 38 - 0
pla-sim/01_SQL/02_table/sim_sim.sql

@@ -0,0 +1,38 @@
+/*
+ Navicat Premium Dump SQL
+
+ Source Server         : qdhome.iot321.top
+ Source Server Type    : MySQL
+ Source Server Version : 50740 (5.7.40-log)
+ Source Host           : qdhome.iot321.top:33003
+ Source Schema         : pla-chem-sim-dev-1
+
+ Target Server Type    : MySQL
+ Target Server Version : 50740 (5.7.40-log)
+ File Encoding         : 65001
+
+ Date: 11/12/2024 01:22:35
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sim_sim
+-- ----------------------------
+DROP TABLE IF EXISTS `sim_sim`;
+CREATE TABLE `sim_sim`  (
+  `sim_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '模拟器ID',
+  `seat_id` bigint(20) NOT NULL COMMENT '座ID',
+  `sim_type` char(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '模拟器类型',
+  `state` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '模拟器在线 1:在线 2:离线 3:硬件故障异常',
+  `sim_sn` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '模拟器序列号',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
+  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+  `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新者',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`sim_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'sim-模拟器表' ROW_FORMAT = DYNAMIC;
+
+SET FOREIGN_KEY_CHECKS = 1;

+ 42 - 0
pla-sim/01_SQL/02_table/sim_sim_msg.sql

@@ -0,0 +1,42 @@
+/*
+ Navicat Premium Dump SQL
+
+ Source Server         : qdhome.iot321.top
+ Source Server Type    : MySQL
+ Source Server Version : 50740 (5.7.40-log)
+ Source Host           : qdhome.iot321.top:33003
+ Source Schema         : pla-chem-sim-dev-1
+
+ Target Server Type    : MySQL
+ Target Server Version : 50740 (5.7.40-log)
+ File Encoding         : 65001
+
+ Date: 11/12/2024 02:31:16
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sim_sim_msg
+-- ----------------------------
+DROP TABLE IF EXISTS `sim_sim_msg`;
+CREATE TABLE `sim_sim_msg`  (
+  `sim_msg_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '模拟器报文ID',
+  `sim_id` bigint(20) NOT NULL COMMENT '模拟器ID',
+  `state` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '状态 0初始值 1成功 2失败',
+  `priority` int(8) NULL DEFAULT NULL COMMENT '优先级',
+  `send_msg` char(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '发送报文',
+  `send_time` datetime NULL DEFAULT NULL COMMENT '发送时间',
+  `receive_msg` char(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '接收报文',
+  `receive_time` datetime NULL DEFAULT NULL COMMENT '接收时间',
+  `retry_count` int(8) NULL DEFAULT 0 COMMENT '重试次数',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
+  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+  `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新者',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`sim_msg_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'sim-模拟器报文表' ROW_FORMAT = DYNAMIC;
+
+SET FOREIGN_KEY_CHECKS = 1;

Dosya farkı çok büyük olduğundan ihmal edildi
+ 100 - 17
pla-sim/01_SQL/03_dev_backup/pla-chem-sim-dev-1.sql


+ 2 - 2
ruoyi-admin/src/main/resources/application.yml

@@ -93,9 +93,9 @@ token:
   # 令牌自定义标识
   header: Authorization
   # 令牌密钥
-  secret: abcdefghijklmnopqrstuvwxyz
+  secret: 3AC@93zQHi8PJ8uo
   # 令牌有效期(默认30分钟)
-  expireTime: 30
+  expireTime: 720
 
 # MyBatis配置
 mybatis:

+ 7 - 0
ruoyi-sim/pom.xml

@@ -15,6 +15,13 @@
     </description>
 
     <dependencies>
+        <!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 -->
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-models</artifactId>
+            <version>1.6.2</version>
+        </dependency>
+
         <!-- ruoyi 通用工具-->
         <dependency>
             <groupId>com.ruoyi</groupId>

+ 98 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/controller/AddOnUserController.java

@@ -0,0 +1,98 @@
+package com.ruoyi.sim.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.security.access.prepost.PreAuthorize;
+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.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.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.sim.domain.AddOnUser;
+import com.ruoyi.sim.service.IAddOnUserService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 用户附加Controller
+ *
+ * @author tom
+ * @date 2024-12-11
+ */
+@RestController
+@RequestMapping("/sim/add_on_user")
+public class AddOnUserController extends BaseController {
+    @Autowired
+    private IAddOnUserService addOnUserService;
+
+    /**
+     * 查询用户附加列表
+     */
+    @PreAuthorize("@ss.hasPermi('sim:add_on_user:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(AddOnUser addOnUser) {
+        startPage();
+        List<AddOnUser> list = addOnUserService.selectAddOnUserList(addOnUser);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出用户附加列表
+     */
+    @PreAuthorize("@ss.hasPermi('sim:add_on_user:export')")
+    @Log(title = "用户附加", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, AddOnUser addOnUser) {
+        List<AddOnUser> list = addOnUserService.selectAddOnUserList(addOnUser);
+        ExcelUtil<AddOnUser> util = new ExcelUtil<AddOnUser>(AddOnUser.class);
+        util.exportExcel(response, list, "用户附加数据");
+    }
+
+    /**
+     * 获取用户附加详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('sim:add_on_user:query')")
+    @GetMapping(value = "/{userId}")
+    public AjaxResult getInfo(@PathVariable("userId") Long userId) {
+        return success(addOnUserService.selectAddOnUserByUserId(userId));
+    }
+
+    /**
+     * 新增用户附加
+     */
+    @PreAuthorize("@ss.hasPermi('sim:add_on_user:add')")
+    @Log(title = "用户附加", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody AddOnUser addOnUser) {
+        return toAjax(addOnUserService.insertAddOnUser(addOnUser));
+    }
+
+    /**
+     * 修改用户附加
+     */
+    @PreAuthorize("@ss.hasPermi('sim:add_on_user:edit')")
+    @Log(title = "用户附加", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody AddOnUser addOnUser) {
+        return toAjax(addOnUserService.updateAddOnUser(addOnUser));
+    }
+
+    /**
+     * 删除用户附加
+     */
+    @PreAuthorize("@ss.hasPermi('sim:add_on_user:remove')")
+    @Log(title = "用户附加", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{userIds}")
+    public AjaxResult remove(@PathVariable Long[] userIds) {
+        return toAjax(addOnUserService.deleteAddOnUserByUserIds(userIds));
+    }
+}

+ 109 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/controller/MajorController.java

@@ -0,0 +1,109 @@
+package com.ruoyi.sim.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+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.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.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.sim.domain.Major;
+import com.ruoyi.sim.service.IMajorService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 专业Controller
+ *
+ * @author tom
+ * @date 2024-12-10
+ */
+@Api("专业Controller")
+@RestController
+@RequestMapping("/sim/major")
+public class MajorController extends BaseController {
+    @Autowired
+    private IMajorService majorService;
+
+    /**
+     * 查询专业列表
+     */
+    // @PreAuthorize("@ss.hasPermi('sim:major:list')")
+    @GetMapping("/list")
+    @ApiOperation("查询专业列表")
+    public TableDataInfo list(Major major) {
+        startPage();
+        List<Major> list = majorService.selectMajorList(major);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出专业列表
+     */
+    // @PreAuthorize("@ss.hasPermi('sim:major:export')")
+    @Log(title = "专业", businessType = BusinessType.EXPORT)
+    // @PostMapping("/export")
+    public void export(HttpServletResponse response, Major major) {
+        List<Major> list = majorService.selectMajorList(major);
+        ExcelUtil<Major> util = new ExcelUtil<Major>(Major.class);
+        util.exportExcel(response, list, "专业数据");
+    }
+
+    /**
+     * 获取专业详细信息
+     */
+    // @PreAuthorize("@ss.hasPermi('sim:major:query')")
+    @GetMapping(value = "/{majorId}")
+    @ApiOperation("获取专业详细信息")
+    public AjaxResult getInfo(@PathVariable("majorId") Long majorId) {
+        return success(majorService.selectMajorByMajorId(majorId));
+    }
+
+    /**
+     * 新增专业
+     */
+    // @PreAuthorize("@ss.hasPermi('sim:major:add')")
+    @Log(title = "专业", businessType = BusinessType.INSERT)
+    @PostMapping
+    @ApiOperation("新增专业")
+    public AjaxResult add(@RequestBody Major major) {
+        return toAjax(majorService.insertMajor(major));
+    }
+
+    /**
+     * 修改专业
+     */
+    // @PreAuthorize("@ss.hasPermi('sim:major:edit')")
+    @Log(title = "专业", businessType = BusinessType.UPDATE)
+    @PutMapping
+    @ApiOperation("修改专业")
+    public AjaxResult edit(@RequestBody Major major) {
+        return toAjax(majorService.updateMajor(major));
+    }
+
+    /**
+     * 删除专业
+     */
+    // @PreAuthorize("@ss.hasPermi('sim:major:remove')")
+    @Log(title = "专业", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{majorIds}")
+    @ApiOperation("修改专业")
+    public AjaxResult remove(@PathVariable Long[] majorIds) {
+        return toAjax(majorService.deleteMajorByMajorIds(majorIds));
+    }
+
+    // --------------------------------  --------------------------------
+}

+ 98 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/controller/SimController.java

@@ -0,0 +1,98 @@
+package com.ruoyi.sim.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.security.access.prepost.PreAuthorize;
+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.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.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.sim.domain.Sim;
+import com.ruoyi.sim.service.ISimService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 模拟器Controller
+ *
+ * @author tom
+ * @date 2024-12-11
+ */
+@RestController
+@RequestMapping("/sim/sim")
+public class SimController extends BaseController {
+    @Autowired
+    private ISimService simService;
+
+    /**
+     * 查询模拟器列表
+     */
+    @PreAuthorize("@ss.hasPermi('sim:sim:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(Sim sim) {
+        startPage();
+        List<Sim> list = simService.selectSimList(sim);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出模拟器列表
+     */
+    @PreAuthorize("@ss.hasPermi('sim:sim:export')")
+    @Log(title = "模拟器", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, Sim sim) {
+        List<Sim> list = simService.selectSimList(sim);
+        ExcelUtil<Sim> util = new ExcelUtil<Sim>(Sim.class);
+        util.exportExcel(response, list, "模拟器数据");
+    }
+
+    /**
+     * 获取模拟器详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('sim:sim:query')")
+    @GetMapping(value = "/{simId}")
+    public AjaxResult getInfo(@PathVariable("simId") Long simId) {
+        return success(simService.selectSimBySimId(simId));
+    }
+
+    /**
+     * 新增模拟器
+     */
+    @PreAuthorize("@ss.hasPermi('sim:sim:add')")
+    @Log(title = "模拟器", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody Sim sim) {
+        return toAjax(simService.insertSim(sim));
+    }
+
+    /**
+     * 修改模拟器
+     */
+    @PreAuthorize("@ss.hasPermi('sim:sim:edit')")
+    @Log(title = "模拟器", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Sim sim) {
+        return toAjax(simService.updateSim(sim));
+    }
+
+    /**
+     * 删除模拟器
+     */
+    @PreAuthorize("@ss.hasPermi('sim:sim:remove')")
+    @Log(title = "模拟器", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{simIds}")
+    public AjaxResult remove(@PathVariable Long[] simIds) {
+        return toAjax(simService.deleteSimBySimIds(simIds));
+    }
+}

+ 100 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/controller/SimMsgController.java

@@ -0,0 +1,100 @@
+package com.ruoyi.sim.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+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.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.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.sim.domain.SimMsg;
+import com.ruoyi.sim.service.ISimMsgService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 模拟器报文Controller
+ *
+ * @author tom
+ * @date 2024-12-11
+ */
+@RestController
+@RequestMapping("/sim/sim_msg")
+public class SimMsgController extends BaseController {
+    @Autowired
+    private ISimMsgService simMsgService;
+
+    /**
+     * 查询模拟器报文列表
+     */
+    // @PreAuthorize("@ss.hasPermi('sim:sim_msg:list')")
+    @GetMapping("/list")
+    @ApiOperation("查询模拟器报文列表")
+    public TableDataInfo list(SimMsg simMsg) {
+        startPage();
+        List<SimMsg> list = simMsgService.selectSimMsgList(simMsg);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出模拟器报文列表
+     */
+    // @PreAuthorize("@ss.hasPermi('sim:sim_msg:export')")
+    @Log(title = "模拟器报文", businessType = BusinessType.EXPORT)
+    // @PostMapping("/export")
+    public void export(HttpServletResponse response, SimMsg simMsg) {
+        List<SimMsg> list = simMsgService.selectSimMsgList(simMsg);
+        ExcelUtil<SimMsg> util = new ExcelUtil<SimMsg>(SimMsg.class);
+        util.exportExcel(response, list, "模拟器报文数据");
+    }
+
+    /**
+     * 获取模拟器报文详细信息
+     */
+    // @PreAuthorize("@ss.hasPermi('sim:sim_msg:query')")
+    // @GetMapping(value = "/{simMsgId}")
+    public AjaxResult getInfo(@PathVariable("simMsgId") Long simMsgId) {
+        return success(simMsgService.selectSimMsgBySimMsgId(simMsgId));
+    }
+
+    /**
+     * 新增模拟器报文
+     */
+    // @PreAuthorize("@ss.hasPermi('sim:sim_msg:add')")
+    @Log(title = "模拟器报文", businessType = BusinessType.INSERT)
+    // @PostMapping
+    public AjaxResult add(@RequestBody SimMsg simMsg) {
+        return toAjax(simMsgService.insertSimMsg(simMsg));
+    }
+
+    /**
+     * 修改模拟器报文
+     */
+    // @PreAuthorize("@ss.hasPermi('sim:sim_msg:edit')")
+    @Log(title = "模拟器报文", businessType = BusinessType.UPDATE)
+    // @PutMapping
+    public AjaxResult edit(@RequestBody SimMsg simMsg) {
+        return toAjax(simMsgService.updateSimMsg(simMsg));
+    }
+
+    /**
+     * 删除模拟器报文
+     */
+    // @PreAuthorize("@ss.hasPermi('sim:sim_msg:remove')")
+    @Log(title = "模拟器报文", businessType = BusinessType.DELETE)
+    // @DeleteMapping("/{simMsgIds}")
+    public AjaxResult remove(@PathVariable Long[] simMsgIds) {
+        return toAjax(simMsgService.deleteSimMsgBySimMsgIds(simMsgIds));
+    }
+}

+ 56 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/domain/AddOnUser.java

@@ -0,0 +1,56 @@
+package com.ruoyi.sim.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 用户附加对象 sim_add_on_user
+ *
+ * @author tom
+ * @date 2024-12-11
+ */
+public class AddOnUser extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 用户ID
+     */
+    private Long userId;
+
+    /**
+     * 专业ID
+     */
+    @Excel(name = "专业ID")
+    private Long majorId;
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setMajorId(Long majorId) {
+        this.majorId = majorId;
+    }
+
+    public Long getMajorId() {
+        return majorId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("userId", getUserId())
+                .append("majorId", getMajorId())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("remark", getRemark())
+                .toString();
+    }
+}

+ 56 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/domain/Major.java

@@ -0,0 +1,56 @@
+package com.ruoyi.sim.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 专业对象 sim_major
+ *
+ * @author tom
+ * @date 2024-12-10
+ */
+public class Major extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 专业ID
+     */
+    private Long majorId;
+
+    /**
+     * 专业名称
+     */
+    @Excel(name = "专业名称")
+    private String majorName;
+
+    public void setMajorId(Long majorId) {
+        this.majorId = majorId;
+    }
+
+    public Long getMajorId() {
+        return majorId;
+    }
+
+    public void setMajorName(String majorName) {
+        this.majorName = majorName;
+    }
+
+    public String getMajorName() {
+        return majorName;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("majorId", getMajorId())
+                .append("majorName", getMajorName())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("remark", getRemark())
+                .toString();
+    }
+}

+ 101 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/domain/Sim.java

@@ -0,0 +1,101 @@
+package com.ruoyi.sim.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 模拟器对象 sim_sim
+ *
+ * @author tom
+ * @date 2024-12-11
+ */
+public class Sim extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 模拟器ID
+     */
+    private Long simId;
+
+    /**
+     * 座ID
+     */
+    @Excel(name = "座ID")
+    private Long seatId;
+
+    /**
+     * 模拟器类型
+     */
+    @Excel(name = "模拟器类型")
+    private String simType;
+
+    /**
+     * 模拟器在线 1:在线 2:离线 3:硬件故障异常
+     */
+    @Excel(name = "模拟器在线 1:在线 2:离线 3:硬件故障异常")
+    private String state;
+
+    /**
+     * 模拟器序列号
+     */
+    @Excel(name = "模拟器序列号")
+    private String simSn;
+
+    public void setSimId(Long simId) {
+        this.simId = simId;
+    }
+
+    public Long getSimId() {
+        return simId;
+    }
+
+    public void setSeatId(Long seatId) {
+        this.seatId = seatId;
+    }
+
+    public Long getSeatId() {
+        return seatId;
+    }
+
+    public void setSimType(String simType) {
+        this.simType = simType;
+    }
+
+    public String getSimType() {
+        return simType;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setSimSn(String simSn) {
+        this.simSn = simSn;
+    }
+
+    public String getSimSn() {
+        return simSn;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("simId", getSimId())
+                .append("seatId", getSeatId())
+                .append("simType", getSimType())
+                .append("state", getState())
+                .append("simSn", getSimSn())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("remark", getRemark())
+                .toString();
+    }
+}

+ 166 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/domain/SimMsg.java

@@ -0,0 +1,166 @@
+package com.ruoyi.sim.domain;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 模拟器报文对象 sim_sim_msg
+ *
+ * @author tom
+ * @date 2024-12-11
+ */
+public class SimMsg extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 模拟器报文ID
+     */
+    private Long simMsgId;
+
+    /**
+     * 模拟器ID
+     */
+    @Excel(name = "模拟器ID")
+    private Long simId;
+
+    /**
+     * 状态 0初始值 1成功 2失败
+     */
+    @Excel(name = "状态 0初始值 1成功 2失败")
+    private String state;
+
+    /**
+     * 优先级
+     */
+    @Excel(name = "优先级")
+    private Integer priority;
+
+    /**
+     * 发送报文
+     */
+    @Excel(name = "发送报文")
+    private String sendMsg;
+
+    /**
+     * 发送时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "发送时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date sendTime;
+
+    /**
+     * 接收报文
+     */
+    @Excel(name = "接收报文")
+    private String receiveMsg;
+
+    /**
+     * 接收时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "接收时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date receiveTime;
+
+    /**
+     * 重试次数
+     */
+    @Excel(name = "重试次数")
+    private Integer retryCount;
+
+    public void setSimMsgId(Long simMsgId) {
+        this.simMsgId = simMsgId;
+    }
+
+    public Long getSimMsgId() {
+        return simMsgId;
+    }
+
+    public void setSimId(Long simId) {
+        this.simId = simId;
+    }
+
+    public Long getSimId() {
+        return simId;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setPriority(Integer priority) {
+        this.priority = priority;
+    }
+
+    public Integer getPriority() {
+        return priority;
+    }
+
+    public void setSendMsg(String sendMsg) {
+        this.sendMsg = sendMsg;
+    }
+
+    public String getSendMsg() {
+        return sendMsg;
+    }
+
+    public void setSendTime(Date sendTime) {
+        this.sendTime = sendTime;
+    }
+
+    public Date getSendTime() {
+        return sendTime;
+    }
+
+    public void setReceiveMsg(String receiveMsg) {
+        this.receiveMsg = receiveMsg;
+    }
+
+    public String getReceiveMsg() {
+        return receiveMsg;
+    }
+
+    public void setReceiveTime(Date receiveTime) {
+        this.receiveTime = receiveTime;
+    }
+
+    public Date getReceiveTime() {
+        return receiveTime;
+    }
+
+    public void setRetryCount(Integer retryCount) {
+        this.retryCount = retryCount;
+    }
+
+    public Integer getRetryCount() {
+        return retryCount;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("simMsgId", getSimMsgId())
+                .append("simId", getSimId())
+                .append("state", getState())
+                .append("priority", getPriority())
+                .append("sendMsg", getSendMsg())
+                .append("sendTime", getSendTime())
+                .append("receiveMsg", getReceiveMsg())
+                .append("receiveTime", getReceiveTime())
+                .append("retryCount", getRetryCount())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("remark", getRemark())
+                .toString();
+    }
+}

+ 61 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/mapper/AddOnUserMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.sim.mapper;
+
+import java.util.List;
+
+import com.ruoyi.sim.domain.AddOnUser;
+
+/**
+ * 用户附加Mapper接口
+ *
+ * @author tom
+ * @date 2024-12-11
+ */
+public interface AddOnUserMapper {
+    /**
+     * 查询用户附加
+     *
+     * @param userId 用户附加主键
+     * @return 用户附加
+     */
+    public AddOnUser selectAddOnUserByUserId(Long userId);
+
+    /**
+     * 查询用户附加列表
+     *
+     * @param addOnUser 用户附加
+     * @return 用户附加集合
+     */
+    public List<AddOnUser> selectAddOnUserList(AddOnUser addOnUser);
+
+    /**
+     * 新增用户附加
+     *
+     * @param addOnUser 用户附加
+     * @return 结果
+     */
+    public int insertAddOnUser(AddOnUser addOnUser);
+
+    /**
+     * 修改用户附加
+     *
+     * @param addOnUser 用户附加
+     * @return 结果
+     */
+    public int updateAddOnUser(AddOnUser addOnUser);
+
+    /**
+     * 删除用户附加
+     *
+     * @param userId 用户附加主键
+     * @return 结果
+     */
+    public int deleteAddOnUserByUserId(Long userId);
+
+    /**
+     * 批量删除用户附加
+     *
+     * @param userIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteAddOnUserByUserIds(Long[] userIds);
+}

+ 61 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/mapper/MajorMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.sim.mapper;
+
+import java.util.List;
+
+import com.ruoyi.sim.domain.Major;
+
+/**
+ * 专业Mapper接口
+ *
+ * @author tom
+ * @date 2024-12-10
+ */
+public interface MajorMapper {
+    /**
+     * 查询专业
+     *
+     * @param majorId 专业主键
+     * @return 专业
+     */
+    public Major selectMajorByMajorId(Long majorId);
+
+    /**
+     * 查询专业列表
+     *
+     * @param major 专业
+     * @return 专业集合
+     */
+    public List<Major> selectMajorList(Major major);
+
+    /**
+     * 新增专业
+     *
+     * @param major 专业
+     * @return 结果
+     */
+    public int insertMajor(Major major);
+
+    /**
+     * 修改专业
+     *
+     * @param major 专业
+     * @return 结果
+     */
+    public int updateMajor(Major major);
+
+    /**
+     * 删除专业
+     *
+     * @param majorId 专业主键
+     * @return 结果
+     */
+    public int deleteMajorByMajorId(Long majorId);
+
+    /**
+     * 批量删除专业
+     *
+     * @param majorIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteMajorByMajorIds(Long[] majorIds);
+}

+ 61 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/mapper/SimMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.sim.mapper;
+
+import java.util.List;
+
+import com.ruoyi.sim.domain.Sim;
+
+/**
+ * 模拟器Mapper接口
+ *
+ * @author tom
+ * @date 2024-12-11
+ */
+public interface SimMapper {
+    /**
+     * 查询模拟器
+     *
+     * @param simId 模拟器主键
+     * @return 模拟器
+     */
+    public Sim selectSimBySimId(Long simId);
+
+    /**
+     * 查询模拟器列表
+     *
+     * @param sim 模拟器
+     * @return 模拟器集合
+     */
+    public List<Sim> selectSimList(Sim sim);
+
+    /**
+     * 新增模拟器
+     *
+     * @param sim 模拟器
+     * @return 结果
+     */
+    public int insertSim(Sim sim);
+
+    /**
+     * 修改模拟器
+     *
+     * @param sim 模拟器
+     * @return 结果
+     */
+    public int updateSim(Sim sim);
+
+    /**
+     * 删除模拟器
+     *
+     * @param simId 模拟器主键
+     * @return 结果
+     */
+    public int deleteSimBySimId(Long simId);
+
+    /**
+     * 批量删除模拟器
+     *
+     * @param simIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteSimBySimIds(Long[] simIds);
+}

+ 61 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/mapper/SimMsgMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.sim.mapper;
+
+import java.util.List;
+
+import com.ruoyi.sim.domain.SimMsg;
+
+/**
+ * 模拟器报文Mapper接口
+ *
+ * @author tom
+ * @date 2024-12-11
+ */
+public interface SimMsgMapper {
+    /**
+     * 查询模拟器报文
+     *
+     * @param simMsgId 模拟器报文主键
+     * @return 模拟器报文
+     */
+    public SimMsg selectSimMsgBySimMsgId(Long simMsgId);
+
+    /**
+     * 查询模拟器报文列表
+     *
+     * @param simMsg 模拟器报文
+     * @return 模拟器报文集合
+     */
+    public List<SimMsg> selectSimMsgList(SimMsg simMsg);
+
+    /**
+     * 新增模拟器报文
+     *
+     * @param simMsg 模拟器报文
+     * @return 结果
+     */
+    public int insertSimMsg(SimMsg simMsg);
+
+    /**
+     * 修改模拟器报文
+     *
+     * @param simMsg 模拟器报文
+     * @return 结果
+     */
+    public int updateSimMsg(SimMsg simMsg);
+
+    /**
+     * 删除模拟器报文
+     *
+     * @param simMsgId 模拟器报文主键
+     * @return 结果
+     */
+    public int deleteSimMsgBySimMsgId(Long simMsgId);
+
+    /**
+     * 批量删除模拟器报文
+     *
+     * @param simMsgIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteSimMsgBySimMsgIds(Long[] simMsgIds);
+}

+ 61 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/IAddOnUserService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.sim.service;
+
+import java.util.List;
+
+import com.ruoyi.sim.domain.AddOnUser;
+
+/**
+ * 用户附加Service接口
+ *
+ * @author tom
+ * @date 2024-12-11
+ */
+public interface IAddOnUserService {
+    /**
+     * 查询用户附加
+     *
+     * @param userId 用户附加主键
+     * @return 用户附加
+     */
+    public AddOnUser selectAddOnUserByUserId(Long userId);
+
+    /**
+     * 查询用户附加列表
+     *
+     * @param addOnUser 用户附加
+     * @return 用户附加集合
+     */
+    public List<AddOnUser> selectAddOnUserList(AddOnUser addOnUser);
+
+    /**
+     * 新增用户附加
+     *
+     * @param addOnUser 用户附加
+     * @return 结果
+     */
+    public int insertAddOnUser(AddOnUser addOnUser);
+
+    /**
+     * 修改用户附加
+     *
+     * @param addOnUser 用户附加
+     * @return 结果
+     */
+    public int updateAddOnUser(AddOnUser addOnUser);
+
+    /**
+     * 批量删除用户附加
+     *
+     * @param userIds 需要删除的用户附加主键集合
+     * @return 结果
+     */
+    public int deleteAddOnUserByUserIds(Long[] userIds);
+
+    /**
+     * 删除用户附加信息
+     *
+     * @param userId 用户附加主键
+     * @return 结果
+     */
+    public int deleteAddOnUserByUserId(Long userId);
+}

+ 61 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/IMajorService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.sim.service;
+
+import java.util.List;
+
+import com.ruoyi.sim.domain.Major;
+
+/**
+ * 专业Service接口
+ *
+ * @author tom
+ * @date 2024-12-10
+ */
+public interface IMajorService {
+    /**
+     * 查询专业
+     *
+     * @param majorId 专业主键
+     * @return 专业
+     */
+    public Major selectMajorByMajorId(Long majorId);
+
+    /**
+     * 查询专业列表
+     *
+     * @param major 专业
+     * @return 专业集合
+     */
+    public List<Major> selectMajorList(Major major);
+
+    /**
+     * 新增专业
+     *
+     * @param major 专业
+     * @return 结果
+     */
+    public int insertMajor(Major major);
+
+    /**
+     * 修改专业
+     *
+     * @param major 专业
+     * @return 结果
+     */
+    public int updateMajor(Major major);
+
+    /**
+     * 批量删除专业
+     *
+     * @param majorIds 需要删除的专业主键集合
+     * @return 结果
+     */
+    public int deleteMajorByMajorIds(Long[] majorIds);
+
+    /**
+     * 删除专业信息
+     *
+     * @param majorId 专业主键
+     * @return 结果
+     */
+    public int deleteMajorByMajorId(Long majorId);
+}

+ 61 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/ISimMsgService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.sim.service;
+
+import java.util.List;
+
+import com.ruoyi.sim.domain.SimMsg;
+
+/**
+ * 模拟器报文Service接口
+ *
+ * @author tom
+ * @date 2024-12-11
+ */
+public interface ISimMsgService {
+    /**
+     * 查询模拟器报文
+     *
+     * @param simMsgId 模拟器报文主键
+     * @return 模拟器报文
+     */
+    public SimMsg selectSimMsgBySimMsgId(Long simMsgId);
+
+    /**
+     * 查询模拟器报文列表
+     *
+     * @param simMsg 模拟器报文
+     * @return 模拟器报文集合
+     */
+    public List<SimMsg> selectSimMsgList(SimMsg simMsg);
+
+    /**
+     * 新增模拟器报文
+     *
+     * @param simMsg 模拟器报文
+     * @return 结果
+     */
+    public int insertSimMsg(SimMsg simMsg);
+
+    /**
+     * 修改模拟器报文
+     *
+     * @param simMsg 模拟器报文
+     * @return 结果
+     */
+    public int updateSimMsg(SimMsg simMsg);
+
+    /**
+     * 批量删除模拟器报文
+     *
+     * @param simMsgIds 需要删除的模拟器报文主键集合
+     * @return 结果
+     */
+    public int deleteSimMsgBySimMsgIds(Long[] simMsgIds);
+
+    /**
+     * 删除模拟器报文信息
+     *
+     * @param simMsgId 模拟器报文主键
+     * @return 结果
+     */
+    public int deleteSimMsgBySimMsgId(Long simMsgId);
+}

+ 61 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/ISimService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.sim.service;
+
+import java.util.List;
+
+import com.ruoyi.sim.domain.Sim;
+
+/**
+ * 模拟器Service接口
+ *
+ * @author tom
+ * @date 2024-12-11
+ */
+public interface ISimService {
+    /**
+     * 查询模拟器
+     *
+     * @param simId 模拟器主键
+     * @return 模拟器
+     */
+    public Sim selectSimBySimId(Long simId);
+
+    /**
+     * 查询模拟器列表
+     *
+     * @param sim 模拟器
+     * @return 模拟器集合
+     */
+    public List<Sim> selectSimList(Sim sim);
+
+    /**
+     * 新增模拟器
+     *
+     * @param sim 模拟器
+     * @return 结果
+     */
+    public int insertSim(Sim sim);
+
+    /**
+     * 修改模拟器
+     *
+     * @param sim 模拟器
+     * @return 结果
+     */
+    public int updateSim(Sim sim);
+
+    /**
+     * 批量删除模拟器
+     *
+     * @param simIds 需要删除的模拟器主键集合
+     * @return 结果
+     */
+    public int deleteSimBySimIds(Long[] simIds);
+
+    /**
+     * 删除模拟器信息
+     *
+     * @param simId 模拟器主键
+     * @return 结果
+     */
+    public int deleteSimBySimId(Long simId);
+}

+ 90 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/AddOnUserServiceImpl.java

@@ -0,0 +1,90 @@
+package com.ruoyi.sim.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.sim.mapper.AddOnUserMapper;
+import com.ruoyi.sim.domain.AddOnUser;
+import com.ruoyi.sim.service.IAddOnUserService;
+
+/**
+ * 用户附加Service业务层处理
+ *
+ * @author tom
+ * @date 2024-12-11
+ */
+@Service
+public class AddOnUserServiceImpl implements IAddOnUserService {
+    @Autowired
+    private AddOnUserMapper addOnUserMapper;
+
+    /**
+     * 查询用户附加
+     *
+     * @param userId 用户附加主键
+     * @return 用户附加
+     */
+    @Override
+    public AddOnUser selectAddOnUserByUserId(Long userId) {
+        return addOnUserMapper.selectAddOnUserByUserId(userId);
+    }
+
+    /**
+     * 查询用户附加列表
+     *
+     * @param addOnUser 用户附加
+     * @return 用户附加
+     */
+    @Override
+    public List<AddOnUser> selectAddOnUserList(AddOnUser addOnUser) {
+        return addOnUserMapper.selectAddOnUserList(addOnUser);
+    }
+
+    /**
+     * 新增用户附加
+     *
+     * @param addOnUser 用户附加
+     * @return 结果
+     */
+    @Override
+    public int insertAddOnUser(AddOnUser addOnUser) {
+        addOnUser.setCreateTime(DateUtils.getNowDate());
+        return addOnUserMapper.insertAddOnUser(addOnUser);
+    }
+
+    /**
+     * 修改用户附加
+     *
+     * @param addOnUser 用户附加
+     * @return 结果
+     */
+    @Override
+    public int updateAddOnUser(AddOnUser addOnUser) {
+        addOnUser.setUpdateTime(DateUtils.getNowDate());
+        return addOnUserMapper.updateAddOnUser(addOnUser);
+    }
+
+    /**
+     * 批量删除用户附加
+     *
+     * @param userIds 需要删除的用户附加主键
+     * @return 结果
+     */
+    @Override
+    public int deleteAddOnUserByUserIds(Long[] userIds) {
+        return addOnUserMapper.deleteAddOnUserByUserIds(userIds);
+    }
+
+    /**
+     * 删除用户附加信息
+     *
+     * @param userId 用户附加主键
+     * @return 结果
+     */
+    @Override
+    public int deleteAddOnUserByUserId(Long userId) {
+        return addOnUserMapper.deleteAddOnUserByUserId(userId);
+    }
+}

+ 90 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/MajorServiceImpl.java

@@ -0,0 +1,90 @@
+package com.ruoyi.sim.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.sim.mapper.MajorMapper;
+import com.ruoyi.sim.domain.Major;
+import com.ruoyi.sim.service.IMajorService;
+
+/**
+ * 专业Service业务层处理
+ *
+ * @author tom
+ * @date 2024-12-10
+ */
+@Service
+public class MajorServiceImpl implements IMajorService {
+    @Autowired
+    private MajorMapper majorMapper;
+
+    /**
+     * 查询专业
+     *
+     * @param majorId 专业主键
+     * @return 专业
+     */
+    @Override
+    public Major selectMajorByMajorId(Long majorId) {
+        return majorMapper.selectMajorByMajorId(majorId);
+    }
+
+    /**
+     * 查询专业列表
+     *
+     * @param major 专业
+     * @return 专业
+     */
+    @Override
+    public List<Major> selectMajorList(Major major) {
+        return majorMapper.selectMajorList(major);
+    }
+
+    /**
+     * 新增专业
+     *
+     * @param major 专业
+     * @return 结果
+     */
+    @Override
+    public int insertMajor(Major major) {
+        major.setCreateTime(DateUtils.getNowDate());
+        return majorMapper.insertMajor(major);
+    }
+
+    /**
+     * 修改专业
+     *
+     * @param major 专业
+     * @return 结果
+     */
+    @Override
+    public int updateMajor(Major major) {
+        major.setUpdateTime(DateUtils.getNowDate());
+        return majorMapper.updateMajor(major);
+    }
+
+    /**
+     * 批量删除专业
+     *
+     * @param majorIds 需要删除的专业主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMajorByMajorIds(Long[] majorIds) {
+        return majorMapper.deleteMajorByMajorIds(majorIds);
+    }
+
+    /**
+     * 删除专业信息
+     *
+     * @param majorId 专业主键
+     * @return 结果
+     */
+    @Override
+    public int deleteMajorByMajorId(Long majorId) {
+        return majorMapper.deleteMajorByMajorId(majorId);
+    }
+}

+ 90 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/SimMsgServiceImpl.java

@@ -0,0 +1,90 @@
+package com.ruoyi.sim.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.sim.mapper.SimMsgMapper;
+import com.ruoyi.sim.domain.SimMsg;
+import com.ruoyi.sim.service.ISimMsgService;
+
+/**
+ * 模拟器报文Service业务层处理
+ *
+ * @author tom
+ * @date 2024-12-11
+ */
+@Service
+public class SimMsgServiceImpl implements ISimMsgService {
+    @Autowired
+    private SimMsgMapper simMsgMapper;
+
+    /**
+     * 查询模拟器报文
+     *
+     * @param simMsgId 模拟器报文主键
+     * @return 模拟器报文
+     */
+    @Override
+    public SimMsg selectSimMsgBySimMsgId(Long simMsgId) {
+        return simMsgMapper.selectSimMsgBySimMsgId(simMsgId);
+    }
+
+    /**
+     * 查询模拟器报文列表
+     *
+     * @param simMsg 模拟器报文
+     * @return 模拟器报文
+     */
+    @Override
+    public List<SimMsg> selectSimMsgList(SimMsg simMsg) {
+        return simMsgMapper.selectSimMsgList(simMsg);
+    }
+
+    /**
+     * 新增模拟器报文
+     *
+     * @param simMsg 模拟器报文
+     * @return 结果
+     */
+    @Override
+    public int insertSimMsg(SimMsg simMsg) {
+        simMsg.setCreateTime(DateUtils.getNowDate());
+        return simMsgMapper.insertSimMsg(simMsg);
+    }
+
+    /**
+     * 修改模拟器报文
+     *
+     * @param simMsg 模拟器报文
+     * @return 结果
+     */
+    @Override
+    public int updateSimMsg(SimMsg simMsg) {
+        simMsg.setUpdateTime(DateUtils.getNowDate());
+        return simMsgMapper.updateSimMsg(simMsg);
+    }
+
+    /**
+     * 批量删除模拟器报文
+     *
+     * @param simMsgIds 需要删除的模拟器报文主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSimMsgBySimMsgIds(Long[] simMsgIds) {
+        return simMsgMapper.deleteSimMsgBySimMsgIds(simMsgIds);
+    }
+
+    /**
+     * 删除模拟器报文信息
+     *
+     * @param simMsgId 模拟器报文主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSimMsgBySimMsgId(Long simMsgId) {
+        return simMsgMapper.deleteSimMsgBySimMsgId(simMsgId);
+    }
+}

+ 90 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/SimServiceImpl.java

@@ -0,0 +1,90 @@
+package com.ruoyi.sim.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.sim.mapper.SimMapper;
+import com.ruoyi.sim.domain.Sim;
+import com.ruoyi.sim.service.ISimService;
+
+/**
+ * 模拟器Service业务层处理
+ *
+ * @author tom
+ * @date 2024-12-11
+ */
+@Service
+public class SimServiceImpl implements ISimService {
+    @Autowired
+    private SimMapper simMapper;
+
+    /**
+     * 查询模拟器
+     *
+     * @param simId 模拟器主键
+     * @return 模拟器
+     */
+    @Override
+    public Sim selectSimBySimId(Long simId) {
+        return simMapper.selectSimBySimId(simId);
+    }
+
+    /**
+     * 查询模拟器列表
+     *
+     * @param sim 模拟器
+     * @return 模拟器
+     */
+    @Override
+    public List<Sim> selectSimList(Sim sim) {
+        return simMapper.selectSimList(sim);
+    }
+
+    /**
+     * 新增模拟器
+     *
+     * @param sim 模拟器
+     * @return 结果
+     */
+    @Override
+    public int insertSim(Sim sim) {
+        sim.setCreateTime(DateUtils.getNowDate());
+        return simMapper.insertSim(sim);
+    }
+
+    /**
+     * 修改模拟器
+     *
+     * @param sim 模拟器
+     * @return 结果
+     */
+    @Override
+    public int updateSim(Sim sim) {
+        sim.setUpdateTime(DateUtils.getNowDate());
+        return simMapper.updateSim(sim);
+    }
+
+    /**
+     * 批量删除模拟器
+     *
+     * @param simIds 需要删除的模拟器主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSimBySimIds(Long[] simIds) {
+        return simMapper.deleteSimBySimIds(simIds);
+    }
+
+    /**
+     * 删除模拟器信息
+     *
+     * @param simId 模拟器主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSimBySimId(Long simId) {
+        return simMapper.deleteSimBySimId(simId);
+    }
+}

+ 2 - 2
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/IotService.java → ruoyi-sim/src/main/java/com/ruoyi/sim/service/my/IotService.java

@@ -1,4 +1,4 @@
-package com.ruoyi.sim.service.impl;
+package com.ruoyi.sim.service.my;
 
 import org.slf4j.LoggerFactory;
 import org.slf4j.Logger;
@@ -9,7 +9,7 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.net.Socket;
 
-import static com.ruoyi.sim.service.impl.IotService.Const.*;
+import static com.ruoyi.sim.service.my.IotService.Const.*;
 
 /**
  * 硬件通信

+ 13 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/my/MajorMyService.java

@@ -0,0 +1,13 @@
+package com.ruoyi.sim.service.my;
+
+import com.ruoyi.sim.service.IMajorService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class MajorMyService {
+
+    @Autowired
+    private IMajorService majorService;
+
+}

+ 80 - 0
ruoyi-sim/src/main/resources/mapper/sim/AddOnUserMapper.xml

@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.sim.mapper.AddOnUserMapper">
+
+    <resultMap type="AddOnUser" id="AddOnUserResult">
+        <result property="userId" column="user_id"/>
+        <result property="majorId" column="major_id"/>
+        <result property="createBy" column="createBy"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectAddOnUserVo">
+        select user_id, major_id, createBy, create_time, update_by, update_time, remark
+        from sim_add_on_user
+    </sql>
+
+    <select id="selectAddOnUserList" parameterType="AddOnUser" resultMap="AddOnUserResult">
+        <include refid="selectAddOnUserVo"/>
+        <where>
+            <if test="majorId != null ">and major_id = #{majorId}</if>
+            <if test="createBy != null  and createBy != ''">and createBy = #{createBy}</if>
+        </where>
+    </select>
+
+    <select id="selectAddOnUserByUserId" parameterType="Long" resultMap="AddOnUserResult">
+        <include refid="selectAddOnUserVo"/>
+        where user_id = #{userId}
+    </select>
+
+    <insert id="insertAddOnUser" parameterType="AddOnUser" useGeneratedKeys="true" keyProperty="userId">
+        insert into sim_add_on_user
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="majorId != null">major_id,</if>
+            <if test="createBy != null">createBy,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="majorId != null">#{majorId},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateAddOnUser" parameterType="AddOnUser">
+        update sim_add_on_user
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="majorId != null">major_id = #{majorId},</if>
+            <if test="createBy != null">createBy = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where user_id = #{userId}
+    </update>
+
+    <delete id="deleteAddOnUserByUserId" parameterType="Long">
+        delete
+        from sim_add_on_user
+        where user_id = #{userId}
+    </delete>
+
+    <delete id="deleteAddOnUserByUserIds" parameterType="String">
+        delete from sim_add_on_user where user_id in
+        <foreach item="userId" collection="array" open="(" separator="," close=")">
+            #{userId}
+        </foreach>
+    </delete>
+</mapper>

+ 80 - 0
ruoyi-sim/src/main/resources/mapper/sim/MajorMapper.xml

@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.sim.mapper.MajorMapper">
+
+    <resultMap type="Major" id="MajorResult">
+        <result property="majorId" column="major_id"/>
+        <result property="majorName" column="major_name"/>
+        <result property="createBy" column="createBy"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectMajorVo">
+        select major_id, major_name, createBy, create_time, update_by, update_time, remark
+        from sim_major
+    </sql>
+
+    <select id="selectMajorList" parameterType="Major" resultMap="MajorResult">
+        <include refid="selectMajorVo"/>
+        <where>
+            <if test="majorName != null  and majorName != ''">and major_name like concat('%', #{majorName}, '%')</if>
+            <if test="createBy != null  and createBy != ''">and createBy = #{createBy}</if>
+        </where>
+    </select>
+
+    <select id="selectMajorByMajorId" parameterType="Long" resultMap="MajorResult">
+        <include refid="selectMajorVo"/>
+        where major_id = #{majorId}
+    </select>
+
+    <insert id="insertMajor" parameterType="Major" useGeneratedKeys="true" keyProperty="majorId">
+        insert into sim_major
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="majorName != null and majorName != ''">major_name,</if>
+            <if test="createBy != null">createBy,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="majorName != null and majorName != ''">#{majorName},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateMajor" parameterType="Major">
+        update sim_major
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="majorName != null and majorName != ''">major_name = #{majorName},</if>
+            <if test="createBy != null">createBy = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where major_id = #{majorId}
+    </update>
+
+    <delete id="deleteMajorByMajorId" parameterType="Long">
+        delete
+        from sim_major
+        where major_id = #{majorId}
+    </delete>
+
+    <delete id="deleteMajorByMajorIds" parameterType="String">
+        delete from sim_major where major_id in
+        <foreach item="majorId" collection="array" open="(" separator="," close=")">
+            #{majorId}
+        </foreach>
+    </delete>
+</mapper>

+ 127 - 0
ruoyi-sim/src/main/resources/mapper/sim/SimMapper.xml

@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.sim.mapper.SimMsgMapper">
+
+    <resultMap type="SimMsg" id="SimMsgResult">
+        <result property="simMsgId" column="sim_msg_id"/>
+        <result property="simId" column="sim_id"/>
+        <result property="state" column="state"/>
+        <result property="priority" column="priority"/>
+        <result property="sendMsg" column="send_msg"/>
+        <result property="sendTime" column="send_time"/>
+        <result property="receiveMsg" column="receive_msg"/>
+        <result property="receiveTime" column="receive_time"/>
+        <result property="retryCount" column="retry_count"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectSimMsgVo">
+        select sim_msg_id,
+               sim_id,
+               state,
+               priority,
+               send_msg,
+               send_time,
+               receive_msg,
+               receive_time,
+               retry_count,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from sim_sim_msg
+    </sql>
+
+    <select id="selectSimMsgList" parameterType="SimMsg" resultMap="SimMsgResult">
+        <include refid="selectSimMsgVo"/>
+        <where>
+            <if test="simId != null ">and sim_id = #{simId}</if>
+            <if test="state != null  and state != ''">and state = #{state}</if>
+            <if test="priority != null ">and priority = #{priority}</if>
+            <if test="sendMsg != null  and sendMsg != ''">and send_msg = #{sendMsg}</if>
+            <if test="sendTime != null ">and send_time = #{sendTime}</if>
+            <if test="receiveMsg != null  and receiveMsg != ''">and receive_msg = #{receiveMsg}</if>
+            <if test="receiveTime != null ">and receive_time = #{receiveTime}</if>
+            <if test="retryCount != null ">and retry_count = #{retryCount}</if>
+        </where>
+    </select>
+
+    <select id="selectSimMsgBySimMsgId" parameterType="Long" resultMap="SimMsgResult">
+        <include refid="selectSimMsgVo"/>
+        where sim_msg_id = #{simMsgId}
+    </select>
+
+    <insert id="insertSimMsg" parameterType="SimMsg" useGeneratedKeys="true" keyProperty="simMsgId">
+        insert into sim_sim_msg
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="simId != null">sim_id,</if>
+            <if test="state != null and state != ''">state,</if>
+            <if test="priority != null">priority,</if>
+            <if test="sendMsg != null">send_msg,</if>
+            <if test="sendTime != null">send_time,</if>
+            <if test="receiveMsg != null">receive_msg,</if>
+            <if test="receiveTime != null">receive_time,</if>
+            <if test="retryCount != null">retry_count,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="simId != null">#{simId},</if>
+            <if test="state != null and state != ''">#{state},</if>
+            <if test="priority != null">#{priority},</if>
+            <if test="sendMsg != null">#{sendMsg},</if>
+            <if test="sendTime != null">#{sendTime},</if>
+            <if test="receiveMsg != null">#{receiveMsg},</if>
+            <if test="receiveTime != null">#{receiveTime},</if>
+            <if test="retryCount != null">#{retryCount},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateSimMsg" parameterType="SimMsg">
+        update sim_sim_msg
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="simId != null">sim_id = #{simId},</if>
+            <if test="state != null and state != ''">state = #{state},</if>
+            <if test="priority != null">priority = #{priority},</if>
+            <if test="sendMsg != null">send_msg = #{sendMsg},</if>
+            <if test="sendTime != null">send_time = #{sendTime},</if>
+            <if test="receiveMsg != null">receive_msg = #{receiveMsg},</if>
+            <if test="receiveTime != null">receive_time = #{receiveTime},</if>
+            <if test="retryCount != null">retry_count = #{retryCount},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where sim_msg_id = #{simMsgId}
+    </update>
+
+    <delete id="deleteSimMsgBySimMsgId" parameterType="Long">
+        delete
+        from sim_sim_msg
+        where sim_msg_id = #{simMsgId}
+    </delete>
+
+    <delete id="deleteSimMsgBySimMsgIds" parameterType="String">
+        delete from sim_sim_msg where sim_msg_id in
+        <foreach item="simMsgId" collection="array" open="(" separator="," close=")">
+            #{simMsgId}
+        </foreach>
+    </delete>
+</mapper>

+ 127 - 0
ruoyi-sim/src/main/resources/mapper/sim/SimMsg.xml

@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.sim.mapper.SimMsgMapper">
+
+    <resultMap type="SimMsg" id="SimMsgResult">
+        <result property="simMsgId" column="sim_msg_id"/>
+        <result property="simId" column="sim_id"/>
+        <result property="state" column="state"/>
+        <result property="priority" column="priority"/>
+        <result property="sendMsg" column="send_msg"/>
+        <result property="sendTime" column="send_time"/>
+        <result property="receiveMsg" column="receive_msg"/>
+        <result property="receiveTime" column="receive_time"/>
+        <result property="retryCount" column="retry_count"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectSimMsgVo">
+        select sim_msg_id,
+               sim_id,
+               state,
+               priority,
+               send_msg,
+               send_time,
+               receive_msg,
+               receive_time,
+               retry_count,
+               create_by,
+               create_time,
+               update_by,
+               update_time,
+               remark
+        from sim_sim_msg
+    </sql>
+
+    <select id="selectSimMsgList" parameterType="SimMsg" resultMap="SimMsgResult">
+        <include refid="selectSimMsgVo"/>
+        <where>
+            <if test="simId != null ">and sim_id = #{simId}</if>
+            <if test="state != null  and state != ''">and state = #{state}</if>
+            <if test="priority != null ">and priority = #{priority}</if>
+            <if test="sendMsg != null  and sendMsg != ''">and send_msg = #{sendMsg}</if>
+            <if test="sendTime != null ">and send_time = #{sendTime}</if>
+            <if test="receiveMsg != null  and receiveMsg != ''">and receive_msg = #{receiveMsg}</if>
+            <if test="receiveTime != null ">and receive_time = #{receiveTime}</if>
+            <if test="retryCount != null ">and retry_count = #{retryCount}</if>
+        </where>
+    </select>
+
+    <select id="selectSimMsgBySimMsgId" parameterType="Long" resultMap="SimMsgResult">
+        <include refid="selectSimMsgVo"/>
+        where sim_msg_id = #{simMsgId}
+    </select>
+
+    <insert id="insertSimMsg" parameterType="SimMsg" useGeneratedKeys="true" keyProperty="simMsgId">
+        insert into sim_sim_msg
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="simId != null">sim_id,</if>
+            <if test="state != null and state != ''">state,</if>
+            <if test="priority != null">priority,</if>
+            <if test="sendMsg != null">send_msg,</if>
+            <if test="sendTime != null">send_time,</if>
+            <if test="receiveMsg != null">receive_msg,</if>
+            <if test="receiveTime != null">receive_time,</if>
+            <if test="retryCount != null">retry_count,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="simId != null">#{simId},</if>
+            <if test="state != null and state != ''">#{state},</if>
+            <if test="priority != null">#{priority},</if>
+            <if test="sendMsg != null">#{sendMsg},</if>
+            <if test="sendTime != null">#{sendTime},</if>
+            <if test="receiveMsg != null">#{receiveMsg},</if>
+            <if test="receiveTime != null">#{receiveTime},</if>
+            <if test="retryCount != null">#{retryCount},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateSimMsg" parameterType="SimMsg">
+        update sim_sim_msg
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="simId != null">sim_id = #{simId},</if>
+            <if test="state != null and state != ''">state = #{state},</if>
+            <if test="priority != null">priority = #{priority},</if>
+            <if test="sendMsg != null">send_msg = #{sendMsg},</if>
+            <if test="sendTime != null">send_time = #{sendTime},</if>
+            <if test="receiveMsg != null">receive_msg = #{receiveMsg},</if>
+            <if test="receiveTime != null">receive_time = #{receiveTime},</if>
+            <if test="retryCount != null">retry_count = #{retryCount},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where sim_msg_id = #{simMsgId}
+    </update>
+
+    <delete id="deleteSimMsgBySimMsgId" parameterType="Long">
+        delete
+        from sim_sim_msg
+        where sim_msg_id = #{simMsgId}
+    </delete>
+
+    <delete id="deleteSimMsgBySimMsgIds" parameterType="String">
+        delete from sim_sim_msg where sim_msg_id in
+        <foreach item="simMsgId" collection="array" open="(" separator="," close=")">
+            #{simMsgId}
+        </foreach>
+    </delete>
+</mapper>

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor