diff --git a/rc_autoplc_backend/.idea/workspace.xml b/rc_autoplc_backend/.idea/workspace.xml
index 42d1131..590182f 100644
--- a/rc_autoplc_backend/.idea/workspace.xml
+++ b/rc_autoplc_backend/.idea/workspace.xml
@@ -4,51 +4,422 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- 1767767108230
+
+ 1766028143842
- 1767767108230
-
+ 1766028143842
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1766713813139
+
+
+
+ 1766713813139
+
+
+
+ 1767508525605
+
+
+
+ 1767508525605
+
+
+
+ 1768210652081
+
+
+
+ 1768210652081
+
+
+
+ 1768551076373
+
+
+
+ 1768551076373
+
+
+
+ 1773295839395
+
+
+
+ 1773295839395
+
+
+
+ 1776670763874
+
+
+
+ 1776670763874
+
+
+
+ 1777527998835
+
+
+
+ 1777527998835
+
+
+
+ 1777528107141
+
+
+
+ 1777528107141
+
+
+
+ 1777533044176
+
+
+
+ 1777533044176
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ file://$PROJECT_DIR$/rczn-autoplc/src/main/java/com/rczn/rcznautoplc/service/impl/GoodsInfoServiceImpl.java
+ 86
+
+
+
+
+
\ No newline at end of file
diff --git a/rc_autoplc_backend/LICENSE b/rc_autoplc_backend/LICENSE
index 0ad25db..e5cbdd7 100644
--- a/rc_autoplc_backend/LICENSE
+++ b/rc_autoplc_backend/LICENSE
@@ -85,16 +85,16 @@ distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
+parties to make or receive copies. Mere interaction with a userBusy through
a computer network, with no transfer of a copy, is not conveying.
- An interactive user interface displays "Appropriate Legal Notices"
+ An interactive userBusy interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
+tells the userBusy that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
+the interface presents a list of userBusy commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
@@ -215,7 +215,7 @@ terms of section 4, provided that you also meet all of these conditions:
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
- d) If the work has interactive user interfaces, each must display
+ d) If the work has interactive userBusy interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
@@ -287,9 +287,9 @@ tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
+product received by a particular userBusy, "normally used" refers to a
typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
+of the particular userBusy or of the way in which the particular userBusy
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
diff --git a/rc_autoplc_backend/README.md b/rc_autoplc_backend/README.md
index 69c3344..252cc97 100644
--- a/rc_autoplc_backend/README.md
+++ b/rc_autoplc_backend/README.md
@@ -35,3 +35,8 @@
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
+
+#### 增加日志生成:
+1. 2026-4-3:用户登录日志信息
+2. 2026-4-3:SOP用户操作日志信息
+3. 2026-4-3:基础数据(功能岛、SOP序列)用户操作(增-删-改)日志
\ No newline at end of file
diff --git a/rc_autoplc_backend/mvnw.cmd b/rc_autoplc_backend/mvnw.cmd
index 92450f9..1acdbea 100644
--- a/rc_autoplc_backend/mvnw.cmd
+++ b/rc_autoplc_backend/mvnw.cmd
@@ -23,7 +23,7 @@
@REM
@REM Optional ENV vars
@REM MVNW_REPOURL - repo url base for downloading maven distribution
-@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
+@REM MVNW_USERNAME/MVNW_PASSWORD - userBusy and password for downloading maven
@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output
@REM ----------------------------------------------------------------------------
diff --git a/rc_autoplc_backend/pom.xml b/rc_autoplc_backend/pom.xml
index 8b57d86..ff6d1b4 100644
--- a/rc_autoplc_backend/pom.xml
+++ b/rc_autoplc_backend/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.4.12
+ 3.2.12
@@ -30,6 +30,7 @@
4.4.0
4.5.0
6.0.0
+ 1.18.30
@@ -75,6 +76,34 @@
${jakarta.servlet-api.version}
provided
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+ 2.15.4
+
+
+ org.apache.commons
+ commons-lang3
+ 3.14.0
+
+
+ jakarta.validation
+ jakarta.validation-api
+ 3.0.2
+
+
+
+ com.github.s7connector
+ s7connector
+ 2.1
+
+
+
+ org.apache.commons
+ commons-pool2
+ 2.12.0
+
@@ -84,6 +113,7 @@
org.apache.maven.plugins
maven-compiler-plugin
+ 3.11.0
${java.version}
${java.version}
@@ -92,6 +122,7 @@
org.projectlombok
lombok
+ ${lombok.version}
diff --git a/rc_autoplc_backend/rczn-admin/pom.xml b/rc_autoplc_backend/rczn-admin/pom.xml
index 9df1e64..cef4882 100644
--- a/rc_autoplc_backend/rczn-admin/pom.xml
+++ b/rc_autoplc_backend/rczn-admin/pom.xml
@@ -67,6 +67,12 @@
runtime
+
+
+
+
+
+
org.projectlombok
@@ -79,10 +85,7 @@
com.auth0
java-jwt
-
- com.github.xiaoymin
- knife4j-openapi3-jakarta-spring-boot-starter
-
+
com.github.pagehelper
pagehelper-spring-boot-starter
@@ -92,6 +95,12 @@
jackson-datatype-jsr310
+
+
+
+
+
+
org.springframework.boot
diff --git a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/RcznAdminApplication.java b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/RcznAdminApplication.java
index dfc48d0..088abe0 100644
--- a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/RcznAdminApplication.java
+++ b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/RcznAdminApplication.java
@@ -3,9 +3,11 @@ package com.rczn;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
+import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@ComponentScan(value = "com.rczn.*")
+@EnableScheduling
public class RcznAdminApplication {
public static void main(String[] args) {
diff --git a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/config/CorsConfig.java b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/config/CorsConfig.java
index 7050a0b..89628bc 100644
--- a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/config/CorsConfig.java
+++ b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/config/CorsConfig.java
@@ -1,6 +1,10 @@
package com.rczn.config;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@@ -17,4 +21,25 @@ public class CorsConfig implements WebMvcConfigurer {
.allowCredentials(true) // 允许携带Cookie
.maxAge(3600); // 预检请求缓存1小时
}
+
+ @Bean
+ public CorsFilter corsFilter() {
+ CorsConfiguration config = new CorsConfiguration();
+ // 1. 允许前端源(不要用*,和withCredentials=true配合需指定具体源,或用allowedOriginPatterns)
+ config.addAllowedOriginPattern("*");
+ // 2. 允许携带凭证(和前端withCredentials=true对应)
+ config.setAllowCredentials(true);
+ // 3. 允许所有请求方法(包含OPTIONS)
+ config.addAllowedMethod("*");
+ // 4. 允许所有请求头(包含Authorization)
+ config.addAllowedHeader("*");
+ // 5. 预检请求缓存时间(减少OPTIONS请求次数)
+ config.setMaxAge(3600L);
+
+ // 配置生效路径
+ UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+ source.registerCorsConfiguration("/**", config);
+
+ return new CorsFilter(source);
+ }
}
\ No newline at end of file
diff --git a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/controller/ManageLogController.java b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/controller/ManageLogController.java
deleted file mode 100644
index 80fbccf..0000000
--- a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/controller/ManageLogController.java
+++ /dev/null
@@ -1,115 +0,0 @@
-package com.rczn.controller;
-
-import com.rczn.domain.PageBean;
-import com.rczn.domain.Result;
-import com.rczn.system.domain.ManageLog;
-import com.rczn.system.service.ManageLogService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Parameters;
-import io.swagger.v3.oas.annotations.enums.ParameterIn;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
-
-import java.time.LocalDateTime;
-
-@RestController
-@RequestMapping("/manage-log")
-@Tag(name = "操作日志管理", description = "操作日志增删改查+分页查询接口")
-public class ManageLogController {
-
- @Autowired
- private ManageLogService manageLogService;
-
- /**
- * 分页查询日志
- */
- @GetMapping(value = "/listPage", produces = MediaType.APPLICATION_JSON_VALUE)
- @Operation(summary = "分页查询操作日志", description = "支持多条件筛选,空条件自动忽略")
- @Parameters({
- @Parameter(name = "pageNum", description = "页码(必填)", required = true, example = "1", in = ParameterIn.QUERY),
- @Parameter(name = "pageSize", description = "每页条数(必填)", required = true, example = "10", in = ParameterIn.QUERY),
- @Parameter(name = "logName", description = "日志名称(可选,模糊查询)", required = false, example = "登录操作", in = ParameterIn.QUERY),
- @Parameter(name = "logType", description = "日志类型(可选,精准查询)", required = false, example = "LOGIN", in = ParameterIn.QUERY),
- @Parameter(name = "createId", description = "创建人ID(可选)", required = false, example = "1", in = ParameterIn.QUERY),
- @Parameter(name = "logWritetimeStart", description = "日志开始时间(可选,格式:yyyy-MM-dd HH:mm:ss)", required = false, example = "2025-01-01 00:00:00", in = ParameterIn.QUERY),
- @Parameter(name = "logWritetimeEnd", description = "日志结束时间(可选,格式:yyyy-MM-dd HH:mm:ss)", required = false, example = "2025-12-31 23:59:59", in = ParameterIn.QUERY)
- })
- public Result> getLogPage(
- @RequestParam Integer pageNum,
- @RequestParam Integer pageSize,
- @RequestParam(required = false) String logName,
- @RequestParam(required = false) String logType,
- @RequestParam(required = false) Long createId,
- @RequestParam(required = false) LocalDateTime logWritetimeStart,
- @RequestParam(required = false) LocalDateTime logWritetimeEnd) {
-
- // 构建查询条件(空字段自动忽略)
- ManageLog query = new ManageLog();
- query.setLogName(logName);
- query.setLogType(logType);
- query.setCreateId(createId);
- // 扩展字段:用于时间范围查询(实体类无需新增字段,MyBatis 支持直接取参)
- query.setStartTime(logWritetimeStart); // 实际用 logWritetimeStart,这里仅为传递参数
- query.setEndTime(logWritetimeEnd);
-
- PageBean pageBean = manageLogService.selectPage(pageNum, pageSize, query);
- return Result.success(pageBean);
- }
-
- /**
- * 按 ID 查询日志
- */
- @GetMapping(value = "/getById/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
- @Operation(summary = "查询单个操作日志", description = "按日志ID查询详情")
- public Result getLogById(@PathVariable Long id) {
- ManageLog log = manageLogService.selectById(id);
- return log != null ? Result.success(log) : Result.error("日志不存在或已删除");
- }
-
- /**
- * 新增操作日志
- */
- @PostMapping(value = "/add", produces = MediaType.APPLICATION_JSON_VALUE)
- @Operation(summary = "新增操作日志", description = "日志名称、类型为必填项,其他字段可选")
- public Result addLog(@RequestBody ManageLog manageLog) {
- try {
- Long logId = manageLogService.insert(manageLog);
- return Result.success("日志新增成功");
- } catch (IllegalArgumentException e) {
- return Result.error(e.getMessage());
- }
- }
-
- /**
- * 更新操作日志
- */
- @PutMapping(value = "/update", produces = MediaType.APPLICATION_JSON_VALUE)
- @Operation(summary = "更新操作日志", description = "需传入日志ID,其他字段非空则更新")
- public Result updateLog(@RequestBody ManageLog manageLog) {
- try {
- Boolean success = manageLogService.update(manageLog);
- return success ? Result.success( "日志更新成功") : Result.error("更新失败(日志不存在或已删除)");
- } catch (IllegalArgumentException e) {
- return Result.error(e.getMessage());
- }
- }
-
- /**
- * 逻辑删除操作日志
- */
- @DeleteMapping(value = "/del/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
- @Operation(summary = "删除操作日志", description = "逻辑删除(设置delSign=1,不物理删除)")
- public Result deleteLog(
- @PathVariable Long id,
- @RequestParam(required = false) Long updateId) {
- try {
- Boolean success = manageLogService.deleteById(id, updateId);
- return success ? Result.success("日志删除成功") : Result.error("删除失败(日志不存在或已删除)");
- } catch (IllegalArgumentException e) {
- return Result.error(e.getMessage());
- }
- }
-}
diff --git a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/controller/RoleController.java b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/controller/RoleController.java
index 014c66d..21873ca 100644
--- a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/controller/RoleController.java
+++ b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/controller/RoleController.java
@@ -9,6 +9,7 @@ import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.enums.ParameterIn;
import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -21,12 +22,8 @@ import java.util.List;
@Tag(name = "角色管理", description = "角色增删改查接口(支持分页+多条件查询+编码唯一性校验)")
public class RoleController {
- private final RoleService roleService;
-
- // 构造器注入
- public RoleController(RoleService roleService) {
- this.roleService = roleService;
- }
+ @Autowired
+ RoleService roleService;
/**
* 1. 分页查询角色(多条件模糊查询)
diff --git a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/controller/UserController.java b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/controller/UserController.java
index b2a6972..126a663 100644
--- a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/controller/UserController.java
+++ b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/controller/UserController.java
@@ -1,18 +1,33 @@
package com.rczn.controller;
+import com.fasterxml.jackson.databind.annotation.JsonAppend;
import com.rczn.domain.PageBean;
import com.rczn.domain.Result;
+import com.rczn.rcznautoplc.domain.ManageLog;
+import com.rczn.rcznautoplc.domain.RecordInfo;
+import com.rczn.rcznautoplc.service.ManageLogService;
+import com.rczn.rcznautoplc.service.RecordInfoService;
+import com.rczn.system.domain.Permission;
import com.rczn.system.domain.User;
import com.rczn.system.service.UserService;
+import com.rczn.utils.JwtUtil;
+import com.rczn.utils.Md5Util;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.enums.ParameterIn;
import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.constraints.Pattern;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* 用户管理 CRUD API(MyBatis+PageHelper 实现)
@@ -117,4 +132,108 @@ public class UserController {
Boolean success = userService.deleteById(id);
return success ? Result.success("删除用户成功") : Result.error("删除失败(用户不存在)");
}
+
+
+ @PostMapping("/register")
+ @Operation(summary = "注册", description = "用户名必须是2-16位的字母、数字、下划线或减号")
+ public Result register(@Pattern(regexp = "^[a-zA-Z0-9_-]{2,16}$", message = "用户名必须是2-16位的字母、数字、下划线或减号")
+ @Parameter(
+ name = "username",
+ description = "用户名"
+ )
+ @RequestParam
+ String username,
+ @Parameter(
+ name = "password",
+ description = "密码..."
+ )
+ @RequestParam
+ String password) {
+ //查询数据库是否有该用户
+ User user = userService.findeUserByUsername(username);
+ //注册
+ if (user == null) {
+ //如果用户不存在,则注册
+ int result = userService.register(username, password);
+ return Result.success("用户注册成功");
+ } else {
+ //用户存在,返回错误信息
+ return Result.error("该用户名已存在!");
+ }
+ }
+
+ @GetMapping("/getUserByUsername")
+ public Result getUserByUsername(String username) {
+ User user = userService.findeUserByUsername(username);
+ if (user == null) {
+ return Result.error("该用户不存在!");
+ } else {
+ return Result.success(user);
+ }
+ }
+
+ @Autowired
+ ManageLogService manageLogService;
+
+ @PostMapping("/login")
+ @Operation(summary = "用户登录接口",description = "根据用户名和密码登录,返回JWT Token")
+ public Result login(
+ @Parameter(
+ name = "username",
+ description = "登录用户名(2-16位的字母、数字、下划线或减号)",
+ required = true, // 标记为必填参数
+ example = "string"
+ )
+ @RequestParam
+ String username,
+ @Parameter(
+ name = "password",
+ description = "登录密码",
+ required = true
+ )
+ @RequestParam
+ String password) {
+
+ //TODO 登录逻辑
+ //查询数据库是否有该用户
+ User user = userService.findeUserByUsername(username);
+ //登录
+ if (user == null) {
+ //如果用户不存在,返回错误信息
+ return Result.error("该用户不存在!");
+ } else {
+ //校验密码:
+ String encryptPassword = user.getPassword();
+ if (encryptPassword.equals(password)) {
+ //登录成功,增加登录日志:
+ LocalDateTime loginTime = LocalDateTime.now();
+ ManageLog info = new ManageLog();
+ info.setCreateId(user.getId());
+ info.setLogName("登录日志");
+ info.setLogType("登录日志");//1:登录日志、2:SOP操作日志、3:基础数据操作日志
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.append("用户名:").append(user.getUserName()).append(",登录操作时间:").append(loginTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ info.setLogContent(stringBuilder.toString());
+ info.setCreateTime(loginTime);
+ manageLogService.insert(info);
+
+// if (Md5Util.checkPassword(password, encryptPassword)) {
+ //生产token
+ Map claims = new HashMap<>();
+ claims.put("id", user.getId());
+ claims.put("username", user.getUserName());
+ //获取权限列表:
+ List permissions = userService.findUserPermissions(user.getId());
+ List permissionList = permissions.stream().map(Permission::getPermissionCode).collect(Collectors.toList());
+ claims.put("permissions", permissionList);
+ String jwtToken = JwtUtil.genToken(claims);
+ //密码正确,返回成功信息
+ return Result.success(jwtToken);
+ } else {
+ //密码错误,返回错误信息
+ return Result.error("密码错误!");
+ }
+ }
+ }
+
}
\ No newline at end of file
diff --git a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/domain/ManageLog.java b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/domain/ManageLog.java
deleted file mode 100644
index 8cceedc..0000000
--- a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/domain/ManageLog.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.rczn.system.domain;
-
-import com.rczn.domain.BaseBean;
-
-
-import java.time.LocalDateTime;
-
-public class ManageLog extends BaseBean {
- private String logName;
-
- private String logType;
-
- private LocalDateTime logWritetime;
-
- private String logContent;
-
- public ManageLog() {
- }
-
- public ManageLog(Long id, Long createId, LocalDateTime createTime, Long updateId, LocalDateTime updateTime, boolean delSign, String remark) {
- super(id, createId, createTime, updateId, updateTime, delSign, remark);
- }
-
- @Override
- public String toString() {
- return "ManageLog{" +
- "logName='" + logName + '\'' +
- ", logType='" + logType + '\'' +
- ", logWritetime=" + logWritetime +
- ", logContent='" + logContent + '\'' +
- '}';
- }
-
- public String getLogName() {
- return logName;
- }
-
- public void setLogName(String logName) {
- this.logName = logName;
- }
-
- public String getLogType() {
- return logType;
- }
-
- public void setLogType(String logType) {
- this.logType = logType;
- }
-
- public LocalDateTime getLogWritetime() {
- return logWritetime;
- }
-
- public void setLogWritetime(LocalDateTime logWritetime) {
- this.logWritetime = logWritetime;
- }
-
- public String getLogContent() {
- return logContent;
- }
-
- public void setLogContent(String logContent) {
- this.logContent = logContent;
- }
-}
diff --git a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/domain/Permission.java b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/domain/Permission.java
index 0ca598f..dfc2554 100644
--- a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/domain/Permission.java
+++ b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/domain/Permission.java
@@ -1,16 +1,31 @@
package com.rczn.system.domain;
import com.rczn.domain.BaseBean;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import lombok.ToString;
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-@ToString
-public class Permission extends BaseBean {
+import java.util.List;
+
+public class Permission extends BaseBean{
+
+ private Integer parentId;
private String permissionName;
+ private String permissionCode;
- private String permissionCode;}
+ // 树形结构子节点 ✅
+ private List children;
+
+ // getter & setter
+ public Integer getParentId() { return parentId; }
+ public void setParentId(Integer parentId) { this.parentId = parentId; }
+ public String getPermissionName() { return permissionName; }
+ public void setPermissionName(String permissionName) { this.permissionName = permissionName; }
+ public String getPermissionCode() { return permissionCode; }
+ public void setPermissionCode(String permissionCode) { this.permissionCode = permissionCode; }
+
+ // children
+ public List getChildren() {
+ return children;
+ }
+ public void setChildren(List children) {
+ this.children = children;
+ }
+}
diff --git a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/mapper/ManageLogMapper.java b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/mapper/ManageLogMapper.java
deleted file mode 100644
index 399f858..0000000
--- a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/mapper/ManageLogMapper.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.rczn.system.mapper;
-
-import com.rczn.system.domain.ManageLog;
-import org.apache.ibatis.annotations.Mapper;
-import java.util.List;
-
-@Mapper // 标记为 MyBatis Mapper 接口,确保被 Spring 扫描
-public interface ManageLogMapper {
- // 新增日志(支持空字段,空字段用数据库默认值)
- int insert(ManageLog manageLog);
-
- // 逻辑删除日志(按 ID,设置 delSign=1)
- int deleteById(Long id);
-
- // 更新日志(仅更新非空字段,空字段不更新)
- int update(ManageLog manageLog);
-
- // 按 ID 查询日志(仅查未删除数据)
- ManageLog selectById(Long id);
-
- // 分页查询日志(支持按字段筛选,空字段忽略条件)
- List selectPage(ManageLog manageLog);
-
- // 查询分页总数(与分页查询条件一致)
- Long selectTotal(ManageLog manageLog);
-}
\ No newline at end of file
diff --git a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/mapper/UserMapper.java b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/mapper/UserMapper.java
index 1287781..bd19442 100644
--- a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/mapper/UserMapper.java
+++ b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/mapper/UserMapper.java
@@ -1,8 +1,11 @@
package com.rczn.system.mapper;
+import com.rczn.system.domain.Permission;
import com.rczn.system.domain.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
import java.util.List;
@Mapper
@@ -31,4 +34,10 @@ public interface UserMapper {
@Param("sex") Integer sex,
@Param("delSign") Boolean delSign
);
+
+ @Select("SELECT * FROM sys_user WHERE user_name = #{userName}")
+ User selectByUsername(String userName);
+
+ //根据用户id,查询出对应的权限列表
+ List findUserPermissions(Long userId);
}
\ No newline at end of file
diff --git a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/ManageLogService.java b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/ManageLogService.java
deleted file mode 100644
index 5dd7325..0000000
--- a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/ManageLogService.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.rczn.system.service;
-
-import com.rczn.domain.PageBean;
-import com.rczn.system.domain.ManageLog;
-
-public interface ManageLogService {
- // 新增日志
- Long insert(ManageLog manageLog);
-
- // 逻辑删除日志
- Boolean deleteById(Long id, Long updateId);
-
- // 更新日志(仅更新非空字段)
- Boolean update(ManageLog manageLog);
-
- // 按 ID 查询日志
- ManageLog selectById(Long id);
-
- // 分页查询日志(支持多条件筛选)
- PageBean selectPage(Integer pageNum, Integer pageSize, ManageLog manageLog);
-}
\ No newline at end of file
diff --git a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/UserRoleService.java b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/UserRoleService.java
index 72a1875..f3897ad 100644
--- a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/UserRoleService.java
+++ b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/UserRoleService.java
@@ -11,6 +11,13 @@ public interface UserRoleService {
Boolean deleteByRoleId(Integer roleId);
UserRole selectById(Long id);
List selectByUserId(Integer userId);
+
+/**
+ * Selects user roles by the given role ID
+ *
+ * @param roleId The ID of the role to search for
+ * @return List of UserRole objects associated with the given role ID
+ */
List selectByRoleId(Integer roleId);
PageBean selectPage(Integer pageNum, Integer pageSize, Integer userId, Integer roleId);
}
\ No newline at end of file
diff --git a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/UserService.java b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/UserService.java
index 4493171..8a73a04 100644
--- a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/UserService.java
+++ b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/UserService.java
@@ -1,6 +1,7 @@
package com.rczn.system.service;
import com.rczn.domain.PageBean;
+import com.rczn.system.domain.Permission;
import com.rczn.system.domain.User;
import java.util.List;
@@ -53,4 +54,25 @@ public interface UserService {
* @return 是否删除成功(true/false)
*/
Boolean deleteById(Long id);
+
+ /**
+ * 6. 根据用户名查询用户
+ * @param username 用户名
+ * @return 用户实体
+ */
+ User findeUserByUsername(String username);
+
+ /**
+ * 7. 注册用户
+ * @param username 用户名
+ * @param password 密码
+ */
+ int register(String username, String password);
+
+ /**
+ * 根据用户id查询出关联的用户权限对象列表,
+ * 表直接的关系是:
+ * 用户表(user)--用户权限表(user_role)--权限表(role)-- 权限资源表(role_resource)--资源表(resource)
+ */
+ List findUserPermissions(Long userId);
}
\ No newline at end of file
diff --git a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/impl/ManageLogServiceImpl.java b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/impl/ManageLogServiceImpl.java
deleted file mode 100644
index c723e76..0000000
--- a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/impl/ManageLogServiceImpl.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package com.rczn.system.service.impl;
-
-import com.github.pagehelper.Page;
-import com.rczn.domain.PageBean;
-import com.rczn.system.domain.ManageLog;
-import com.github.pagehelper.PageHelper;
-import com.rczn.system.domain.Position;
-import com.rczn.system.mapper.ManageLogMapper;
-import com.rczn.system.service.ManageLogService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.Assert;
-
-import java.time.LocalDateTime;
-import java.util.List;
-
-@Service
-public class ManageLogServiceImpl implements ManageLogService {
-
- @Autowired
- private ManageLogMapper manageLogMapper;
-
- @Override
- public Long insert(ManageLog manageLog) {
- // 校验必填字段(日志名称和类型为必填)
- Assert.notNull(manageLog.getLogName(), "日志名称不能为空");
- Assert.notNull(manageLog.getLogType(), "日志类型不能为空");
-
- //补充日志时间
- if (manageLog.getLogWritetime() == null) {
- manageLog.setLogWritetime(LocalDateTime.now());
- }
-// TODO 补充日志创建人信息
-// manageLog.setCreateId(null);
- manageLog.setCreateTime(LocalDateTime.now());
- int rows = manageLogMapper.insert(manageLog);
- return rows > 0 ? manageLog.getId() : null;
- }
-
- @Override
- public Boolean deleteById(Long id, Long updateId) {
- Assert.notNull(id, "日志ID不能为空");
- int rows = manageLogMapper.deleteById(id);
- return rows > 0;
- }
-
- @Override
- public Boolean update(ManageLog manageLog) {
- Assert.notNull(manageLog.getId(), "日志ID不能为空");
- //如果更新时间为空,则自动更新
- if (manageLog.getUpdateTime() == null) {
- manageLog.setUpdateTime(LocalDateTime.now());
- }
-// TODO 补充日志更新人信息
- // manageLog.setUpdateId(null);
- int rows = manageLogMapper.update(manageLog);
- return rows > 0;
- }
-
- @Override
- public ManageLog selectById(Long id) {
- Assert.notNull(id, "日志ID不能为空");
- return manageLogMapper.selectById(id);
- }
-
- @Override
- public PageBean selectPage(Integer pageNum, Integer pageSize, ManageLog manageLog) {
- // 校验分页参数
- Assert.notNull(pageNum, "页码不能为空");
- Assert.notNull(pageSize, "每页条数不能为空");
- Assert.isTrue(pageNum > 0, "页码必须大于0");
- Assert.isTrue(pageSize > 0 && pageSize <= 100000, "每页条数必须在1-10000之间");
-
- // PageHelper 分页(自动拦截查询,添加 LIMIT 条件)
- PageHelper.startPage(pageNum, pageSize);
- List logList = manageLogMapper.selectPage(manageLog);
- Page page = (Page) logList;
-
- PageBean pageBean = new PageBean<>();
- pageBean.setTotal(page.getTotal());
- pageBean.setItems(page.getResult());
-
- // 封装PageBean返回
- return pageBean;
- }
-}
\ No newline at end of file
diff --git a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/impl/UserRoleServiceImpl.java b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/impl/UserRoleServiceImpl.java
index 2be0cf1..a56a513 100644
--- a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/impl/UserRoleServiceImpl.java
+++ b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/impl/UserRoleServiceImpl.java
@@ -3,6 +3,7 @@ package com.rczn.system.service.impl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.rczn.domain.PageBean;
+import com.rczn.system.domain.Permission;
import com.rczn.system.domain.Position;
import com.rczn.system.domain.UserRole;
import com.rczn.system.mapper.UserRoleMapper;
diff --git a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/impl/UserServiceImpl.java b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/impl/UserServiceImpl.java
index 40d89e7..701d98a 100644
--- a/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/impl/UserServiceImpl.java
+++ b/rc_autoplc_backend/rczn-admin/src/main/java/com/rczn/system/service/impl/UserServiceImpl.java
@@ -3,6 +3,7 @@ package com.rczn.system.service.impl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.rczn.domain.PageBean;
+import com.rczn.system.domain.Permission;
import com.rczn.system.domain.User;
import com.rczn.system.mapper.UserMapper;
import com.rczn.system.service.UserService;
@@ -90,4 +91,41 @@ public class UserServiceImpl implements UserService {
int rows = userMapper.deleteById(id,null);
return rows > 0;
}
+
+ /**
+ * 6. 根据用户名查询用户
+ *
+ * @param username 用户名
+ * @return 用户实体
+ */
+ @Override
+ public User findeUserByUsername(String username) {
+ return userMapper.selectByUsername(username);
+ }
+
+ /**
+ * 7. 注册用户
+ *
+ * @param username 用户名
+ * @param password 密码
+ */
+ @Override
+ public int register(String username, String password) {
+ User user = new User();
+ user.setUserName(username);
+ user.setPassword(password);
+ return userMapper.insert(user);
+ }
+
+ /**
+ * 根据用户id查询出关联的用户权限对象列表,
+ * 表直接的关系是:
+ * 用户表(user)--用户权限表(user_role)--权限表(role)-- 权限资源表(role_resource)--资源表(resource)
+ *
+ * @param userId
+ */
+ @Override
+ public List findUserPermissions(Long userId) {
+ return userMapper.findUserPermissions(userId);
+ }
}
\ No newline at end of file
diff --git a/rc_autoplc_backend/rczn-admin/src/main/resources/application.yml b/rc_autoplc_backend/rczn-admin/src/main/resources/application.yml
index 74a95d1..720422e 100644
--- a/rc_autoplc_backend/rczn-admin/src/main/resources/application.yml
+++ b/rc_autoplc_backend/rczn-admin/src/main/resources/application.yml
@@ -14,7 +14,7 @@ spring:
# 数据源配置(MySQL 8.x)
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://47.116.126.33:3306/rc_autoplc_program?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
+ url: jdbc:mysql://47.116.126.33:3306/rc_autoplc_program?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
username: nianke
password: Jy@.niankeCrm2025
# 解决跨域(可选,配合之前的CorsConfig)
@@ -42,11 +42,12 @@ spring:
mybatis:
configuration:
map-underscore-to-camel-case: true # 下划线转驼峰
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 关键:SQL 打印到控制台
+ log-prefix: "[MyBatis] " # 可选:日志前缀,便于区分 SQL 日志
+ default-statement-timeout: 30 # 可选:SQL 执行超时时间(秒)
mapper-locations: classpath:mapper/**/*.xml # 补充:指定Mapper.xml文件路径(必加)
type-aliases-package: com.rczn.**.domain # 补充:实体类别名包(可选)
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 关键:SQL 打印到控制台
- log-prefix: "[MyBatis] " # 可选:日志前缀,便于区分 SQL 日志
- default-statement-timeout: 30 # 可选:SQL 执行超时时间(秒)
+
# HikariCP 连接池配置(关键)
hikari:
@@ -66,22 +67,22 @@ pagehelper:
support-methods-arguments: true # 支持通过 Mapper 接口参数传递分页参数
params: count=countSql # 分页参数名映射
-
-# SpringDoc OpenAPI 3 核心配置(适配Spring Boot 3.x)
-springdoc:
- packages-to-scan: com.rczn # 扫描的基础包(Controller所在包)
- api-docs:
- enabled: true # 启用/v3/api-docs接口
- path: /v3/api-docs # OpenAPI JSON数据路径(默认)
- swagger-ui:
- path: /swagger-ui.html # 自定义Swagger UI访问路径(兼容Spring Boot 2.x习惯)
- tags-sorter: alpha # 标签字母排序
- operations-sorter: alpha # 接口字母排序
- disable-swagger-default-url: true # 禁用默认PetStore示例
- default-flat-param-object: false # 禁用扁平参数对象
- paths-to-exclude: /error, /actuator/** # 排除错误接口/监控接口(可选)
-
-# OpenAPI文档基础信息(中文正常显示)
+#
+## SpringDoc OpenAPI 3 核心配置(适配Spring Boot 3.x)
+#springdoc:
+# packages-to-scan: com.rczn # 扫描的基础包(Controller所在包)
+# api-docs:
+# enabled: true # 启用/v3/api-docs接口
+# path: /v3/api-docs # OpenAPI JSON数据路径(默认)
+# swagger-ui:
+# path: /swagger-ui.html # 自定义Swagger UI访问路径(兼容Spring Boot 2.x习惯)
+# tags-sorter: alpha # 标签字母排序
+# operations-sorter: alpha # 接口字母排序
+# disable-swagger-default-url: true # 禁用默认PetStore示例
+# default-flat-param-object: false # 禁用扁平参数对象
+# paths-to-exclude: /error, /actuator/** # 排除错误接口/监控接口(可选)
+#
+## OpenAPI文档基础信息(中文正常显示)
openapi:
info:
title: XX自动化编程系统API文档
@@ -96,6 +97,40 @@ openapi:
- url: http://47.116.126.33:9090 # 测试环境地址
description: 测试环境
+
+# SpringDoc + Knife4j 核心配置
+springdoc:
+ packages-to-scan: com.rczn # 扫描Controller所在包
+ api-docs:
+ enabled: true
+ path: /v3/api-docs
+ swagger-ui:
+ tags-sorter: alpha
+ operations-sorter: alpha
+ paths-to-exclude: /error, /actuator/**
+
+# Knife4j增强配置(可选,开启中文UI)
+knife4j:
+ enable: true
+ setting:
+ language: zh_cn # 中文界面
+ enable-swagger-models: true # 显示模型
+ enable-document-manage: false # 关闭文档管理(开发环境)
+
+# OpenAPI文档信息
+#openapi:
+# info:
+# title: XX自动化编程系统API文档
+# description: SpringBoot 3.x + Knife4j + OpenAPI 3 接口文档
+# version: 1.0.0
+# contact:
+# name: 研发组
+# email: xxx@xxx.com
+# servers:
+# - url: http://localhost:9090
+# description: 本地开发环境
+# - url: http://47.116.126.33:9090
+# description: 测试环境
# Spring Boot 日志核心配置
logging:
# 1. 全局日志级别(可细化到包/类)
diff --git a/rc_autoplc_backend/rczn-admin/src/main/resources/mapper/ManageLogMapper.xml b/rc_autoplc_backend/rczn-admin/src/main/resources/mapper/ManageLogMapper.xml
deleted file mode 100644
index 915b2e5..0000000
--- a/rc_autoplc_backend/rczn-admin/src/main/resources/mapper/ManageLogMapper.xml
+++ /dev/null
@@ -1,175 +0,0 @@
-
-
-
-
-
-
- id, create_id, create_time, update_id, update_time, del_sign, remark
-
-
-
-
- log_name, log_type, log_writetime, log_content
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- INSERT INTO sys_manage_log (
-
-
- log_name,
- log_type,
- log_writetime,
- log_content,
-
- create_id,
- create_time,
- update_id,
- update_time,
- del_sign,
- remark,
-
- ) VALUES (
-
-
- #{logName},
- #{logType},
- #{logWritetime},
- #{logContent},
-
- #{createId},
- #{createTime},
- #{updateId},
- #{updateTime},
- #{delSign},
- #{remark},
-
- )
-
-
-
-
- UPDATE sys_manage_log
-
-
- log_name = #{logName},
- log_type = #{logType},
- log_writetime = #{logWritetime},
- log_content = #{logContent},
-
- update_id = #{updateId},
- remark = #{remark},
- del_sign = #{delSign},
-
- update_time = NOW()
-
-
- WHERE id = #{id}
- AND del_sign = 0
-
-
-
-
- UPDATE sys_manage_log
- SET
- del_sign = 1,
- update_time = NOW(),
- update_id = #{updateId}
- WHERE id = #{id}
- AND del_sign = 0
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/rc_autoplc_backend/rczn-admin/src/main/resources/mapper/UserMapper.xml b/rc_autoplc_backend/rczn-admin/src/main/resources/mapper/UserMapper.xml
index 5bf4d95..27907f9 100644
--- a/rc_autoplc_backend/rczn-admin/src/main/resources/mapper/UserMapper.xml
+++ b/rc_autoplc_backend/rczn-admin/src/main/resources/mapper/UserMapper.xml
@@ -198,5 +198,24 @@
+
\ No newline at end of file
diff --git a/rc_autoplc_backend/rczn-autoplc/pom.xml b/rc_autoplc_backend/rczn-autoplc/pom.xml
index 0d84e78..8eb981a 100644
--- a/rc_autoplc_backend/rczn-autoplc/pom.xml
+++ b/rc_autoplc_backend/rczn-autoplc/pom.xml
@@ -38,6 +38,7 @@
org.projectlombok
lombok
+ ${lombok.version}
true
@@ -46,12 +47,7 @@
5.3.3
compile
-
- io.swagger.core.v3
- swagger-annotations-jakarta
- 2.2.21
- compile
-
+
org.mybatis
mybatis
@@ -69,14 +65,18 @@
7.11.0
test
-
- org.springdoc
- springdoc-openapi-starter-common
- 2.3.0
- compile
-
+
+ io.swagger.core.v3
+ swagger-models-jakarta
+ 2.2.19
+ compile
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+
-
+
- island_id, dev_name, dev_model, ip_addr, port, protocol_type, company, status, dev_desc
+ island_id, dev_name, dev_model,plc_addr, ip_addr, port, protocol_type, company, status,run_model, dev_desc
@@ -25,11 +25,13 @@
+
+
@@ -41,11 +43,13 @@
island_id,
dev_name,
dev_model,
+ plc_addr,
ip_addr,
port,
protocol_type,
company,
status,
+ run_model,
`dev_desc`,
create_id,
@@ -61,11 +65,13 @@
#{islandId},
#{devName},
#{devModel},
+ #{plcAddr},
#{ipAddr},
#{port},
#{protocolType},
#{company},
#{status},
+ #{runModel},
#{devDesc},
#{createId},
@@ -78,7 +84,6 @@
)
-
UPDATE tb_dev_info
@@ -94,11 +99,13 @@
island_id = #{islandId},
dev_name = #{devName},
dev_model = #{devModel},
+ plc_addr = #{plcAddr},
ip_addr = #{ipAddr},
port = #{port},
protocol_type = #{protocolType},
company = #{company},
status = #{status},
+ #{runModel},
`dev_desc` = #{devDesc},
@@ -113,6 +120,7 @@
AND dev_model LIKE CONCAT('%', #{devModel}, '%')
+
+ and plc_addr = #{plcAddr}
+
AND ip_addr = #{ipAddr}
@@ -162,6 +173,9 @@
AND status = #{status}
+
+ and run_model = #{runModel}
+
AND protocol_type = #{protocolType}
@@ -183,12 +197,18 @@
AND dev_model LIKE CONCAT('%', #{devModel}, '%')
+
+ and plc_addr = #{plcAddr}
+
AND ip_addr = #{ipAddr}
AND status = #{status}
+
+ AND run_model = #{runModel}
+
AND protocol_type = #{protocolType}
@@ -203,4 +223,44 @@
WHERE del_sign = 0
ORDER BY id ASC
+
+
+
\ No newline at end of file
diff --git a/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/DevParamMapper.xml b/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/DevParamMapper.xml
index 8a5c76d..b0b33a3 100644
--- a/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/DevParamMapper.xml
+++ b/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/DevParamMapper.xml
@@ -8,45 +8,56 @@
- dev_id, param_name, param_value,param_type,param_unit,form_type, param_desc
+ dev_ids, param_name, plc_addr, dic_data_id, param_value, param_type, param_unit, form_type, param_desc
-
+
INSERT INTO tb_dev_param (
-
- dev_id,
- param_name,
- param_value,
- param_type,
- param_unit,
- form_type,
- param_desc,
- create_id,
- update_id,
- create_time, update_time, del_sign
-
- ) VALUES (
-
- #{devId},
- #{paramName},
- #{paramValue},
- #{paramType},
- #{paramUnit},
- #{formType},
- #{paramDesc},
- #{createId},
- #{updateId},
- NOW(), NOW(), 0
-
+
+ dev_ids,
+ plc_addr,
+ dic_data_id,
+ param_name,
+ param_value,
+ param_type,
+ param_unit,
+ form_type,
+ param_desc,
+ create_id,
+ update_id,
+ create_time,
+ update_time,
+ del_sign
+
+ )
+ VALUES (
+
+ #{devIds},
+ #{plcAddr},
+ #{dicDataId},
+ #{paramName},
+ #{paramValue},
+ #{paramType},
+ #{paramUnit},
+ #{formType},
+ #{paramDesc},
+ #{createId},
+ #{updateId},
+ NOW(),
+ NOW(),
+ 0
+
)
-
+
UPDATE tb_dev_param
- dev_id = #{devId},
+ dev_ids = #{devIds},
+ plc_addr = #{plcAddr},
+ dic_data_id = #{dicDataId},
param_name = #{paramName},
param_value = #{paramValue},
param_type = #{paramType},
@@ -54,19 +65,21 @@
form_type = #{formType},
param_desc = #{paramDesc},
update_id = #{updateId},
+ remark = #{remark},
update_time = NOW()
WHERE id = #{id} AND del_sign = 0
-
+
UPDATE tb_dev_param
SET del_sign = 1, update_time = NOW()
WHERE id = #{id} AND del_sign = 0
+ AND 1=2
-
+
-
+
+
+
+
+ UPDATE tb_dev_param
+ SET dev_ids = CASE
+ WHEN dev_ids IS NULL OR dev_ids = '' THEN CONCAT(#{devId}, ';')
+ ELSE CONCAT(dev_ids, #{devId}, ';')
+ END
+ WHERE id = #{paramId}
+ AND 1=2
+
+
+
+
+ UPDATE tb_dev_param
+ SET dev_ids = REPLACE(dev_ids, CONCAT(#{devId}, ';'), '')
+ WHERE id = #{paramId}
+ AND 1=2
+
\ No newline at end of file
diff --git a/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/GoodsFlowStatusMapper.xml b/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/GoodsFlowStatusMapper.xml
index 707f6ef..04873f4 100644
--- a/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/GoodsFlowStatusMapper.xml
+++ b/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/GoodsFlowStatusMapper.xml
@@ -6,7 +6,7 @@
- goods_id, flow_id, island_id, flow_sort, status
+ goods_id, flow_id, island_id,dev_id, flow_sort, status
@@ -14,7 +14,7 @@
,
create_id, create_time, update_id, update_time, del_sign
) VALUES (
- #{goodsId}, #{flowId}, #{islandId}, #{flowSort}, #{status},
+ #{goodsId}, #{flowId}, #{islandId},#{devId}, #{flowSort}, #{status},
#{createId}, NOW(), #{updateId}, NOW(), 0
)
@@ -26,6 +26,7 @@
flow_id = #{flowId},
island_id = #{islandId},
flow_sort = #{flowSort},
+ dev_id = #{devId},
status = #{status},
update_id = #{updateId},
update_time = NOW()
@@ -56,6 +57,7 @@
AND goods_id = #{goodsId}
AND flow_id = #{flowId}
AND island_id = #{islandId}
+ AND dev_id = #{devId}
AND status = #{status}
ORDER BY flow_sort ASC
diff --git a/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/GoodsInfoMapper.xml b/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/GoodsInfoMapper.xml
index 18eca1b..4286eee 100644
--- a/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/GoodsInfoMapper.xml
+++ b/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/GoodsInfoMapper.xml
@@ -6,7 +6,7 @@
- goods_name, goods_type, income_time, good_from, good_batch, `desc`
+ goods_name, goods_type, income_time, good_from, good_batch,point_num ,goal_detect,bar_code,flow_id,goods_status, `desc`
@@ -14,7 +14,7 @@
,
create_id, create_time, update_id, update_time, del_sign
) VALUES (
- #{goodsName}, #{goodsType}, #{incomeTime}, #{goodFrom}, #{goodBatch}, #{desc},
+ #{goodsName}, #{goodsType}, #{incomeTime}, #{goodFrom}, #{goodBatch},#{pointNum},#{goalDetect}, #{barCode}, #{flowId}, #{goodsStatus}, #{desc},
#{createId}, NOW(), #{updateId}, NOW(), 0
)
@@ -27,6 +27,11 @@
income_time = #{incomeTime},
good_from = #{goodFrom},
good_batch = #{goodBatch},
+ point_num = #{pointNum},
+ goal_detect = #{goalDetect},
+ bar_code = #{barCode},
+ flow_id = #{flowId},
+ goods_status = #{goodsStatus},
`desc` = #{desc},
update_id = #{updateId},
update_time = NOW()
@@ -48,6 +53,20 @@
WHERE id = #{id} AND del_sign = 0
+
+
+
+
\ No newline at end of file
diff --git a/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/IslandInfoMapper.xml b/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/IslandInfoMapper.xml
index 851d869..c2059a3 100644
--- a/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/IslandInfoMapper.xml
+++ b/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/IslandInfoMapper.xml
@@ -6,7 +6,7 @@
- island_name, island_code, island_logo, `desc`
+ island_name, island_code, plc_addr, island_logo, `desc`
@@ -14,7 +14,7 @@
,
create_id, create_time, update_id, update_time, del_sign
) VALUES (
- #{islandName}, #{islandCode}, #{islandLogo}, #{desc},
+ #{islandName}, #{islandCode},#{plcAddr}, #{islandLogo}, #{desc},
#{createId}, NOW(), #{updateId}, NOW(), 0
)
@@ -24,6 +24,7 @@
island_name = #{islandName},
island_code = #{islandCode},
+ plc_addr = #{plcAddr},
island_logo = #{islandLogo},
`desc` = #{desc},
update_id = #{updateId},
@@ -46,6 +47,20 @@
WHERE id = #{id} AND del_sign = 0
+
+
+
+
\ No newline at end of file
diff --git a/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/StepInfoMapper.xml b/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/StepInfoMapper.xml
index 5cf6fd9..6869197 100644
--- a/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/StepInfoMapper.xml
+++ b/rc_autoplc_backend/rczn-autoplc/src/main/resources/com/rczn/rcznautoplc/mapper/StepInfoMapper.xml
@@ -6,7 +6,7 @@
- island_id,dev_id, step_name, step_desc,flow_id,param_name,param_type,param_unit,param_value,form_type
+ island_id,dev_id,step_order ,step_name, step_desc,flow_id,param_name,param_type,param_unit,param_value,form_type
@@ -21,6 +21,7 @@
island_id,
dev_id,
+ step_order,
step_name,
step_desc,
flow_id,
@@ -43,6 +44,7 @@
#{islandId},
#{devId},
+ #{stepOrder},
#{stepName},
#{stepDesc},
#{flowId},
@@ -57,11 +59,178 @@
)
+
+
+ INSERT INTO tb_step_info (
+
+ create_id,
+ create_time,
+ update_id,
+ update_time,
+ remark,
+ del_sign,
+ island_id,
+ dev_id,
+ step_order,
+ step_name,
+ step_desc,
+ flow_id,
+ param_name,
+ param_type,
+ param_unit,
+ param_value,
+ form_type
+
+ ) VALUES
+
+ (
+
+ #{item.createId,jdbcType=BIGINT},
+ NOW(),
+ #{item.updateId,jdbcType=BIGINT},
+ NOW(),
+ #{item.remark},
+ null,
+ 0,
+ #{item.islandId,jdbcType=INTEGER},
+ null,
+ #{item.devId,jdbcType=INTEGER},
+ null,
+ #{item.stepOrder,jdbcType=INTEGER},
+ null,
+ #{item.stepName},
+ null,
+ #{item.stepDesc},
+ null,
+ #{item.flowId,jdbcType=INTEGER},
+ null,
+ #{item.paramName},
+ null,
+ #{item.paramType},
+ null,
+ #{item.paramUnit},
+ null,
+ #{item.paramValue},
+ null,
+ #{item.formType},
+ null,
+
+ )
+
+
+
+
+
+ UPDATE tb_step_info
+
+ update_id = #{item.updateId,jdbcType=BIGINT},
+ remark = #{item.remark},
+
+ island_id = #{item.islandId,jdbcType=INTEGER},
+ dev_id = #{item.devId,jdbcType=INTEGER},
+ step_order = #{item.stepOrder,jdbcType=INTEGER},
+ step_name = #{item.stepName},
+ step_desc = #{item.stepDesc},
+ flow_id = #{item.flowId,jdbcType=INTEGER},
+ param_name = #{item.paramName},
+ param_type = #{item.paramType},
+ param_unit = #{item.paramUnit},
+ param_value = #{item.paramValue},
+ form_type = #{item.formType},
+
+ update_time = NOW()
+
+ WHERE id = #{item.id,jdbcType=BIGINT}
+ AND del_sign = 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
UPDATE tb_step_info
island_id = #{islandId},
dev_id = #{devId},
+ step_order = #{stepOrder},
step_name = #{stepName},
step_desc = #{stepDesc},
update_id = #{updateId},
@@ -83,6 +252,19 @@
WHERE id = #{id} AND del_sign = 0
+
+
+ UPDATE tb_step_info
+ SET del_sign = 1, update_time = NOW()
+ WHERE id in
+
+ #{id}
+
+ AND del_sign = 0
+
+
+
+
+
+
+