refactor(os-ems): 重构清空数据功能并支持级联删除

- 移除 CommonClearController 中的级联删除逻辑- 新增 ICommonClearService接口的 clearTableDataWithCascade 方法
- 实现 CommonClearServiceImpl 中的级联删除逻辑
- 更新 application.yml 文件路径和 Redis密码配置
boardTest
zch 3 weeks ago
parent ff4a648371
commit 7f619c5dd0

@ -9,7 +9,7 @@ ruoyi:
# 实例演示开关 # 实例演示开关
demoEnabled: true demoEnabled: true
# 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath # 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath
profile: D:/ruoyi/uploadPath profile: /media/tao_iot/ruoyi/uploadPath
# 获取ip地址开关 # 获取ip地址开关
addressEnabled: false addressEnabled: false
# 验证码类型 math 数字计算 char 字符验证 # 验证码类型 math 数字计算 char 字符验证
@ -86,7 +86,7 @@ spring:
# 数据库索引 # 数据库索引
database: 2 database: 2
# 密码 # 密码
password: 123456 password: haiwei@123
# 连接超时时间 # 连接超时时间
timeout: 30s timeout: 30s
lettuce: lettuce:

@ -58,9 +58,6 @@ public class CommonClearController extends BaseController
// 监督检查清单 // 监督检查清单
put("supervisionChecklist", new TableInfo("power_energy_supervision_checklist", "监督检查清单", "ems/info:supervisionChecklist:remove")); put("supervisionChecklist", new TableInfo("power_energy_supervision_checklist", "监督检查清单", "ems/info:supervisionChecklist:remove"));
// 备件库记录(特殊处理:需要级联删除明细表)
put("sparePartsInventory", new TableInfo("spare_parts_inventory", "备件库记录", "ems/info:sparePartsInventory:remove", true));
}}; }};
/** /**
@ -105,14 +102,7 @@ public class CommonClearController extends BaseController
} }
// 5. 执行清空操作 // 5. 执行清空操作
int result; int result = commonClearService.clearTableData(tableName);
if (tableInfo.isCascadeDelete()) {
// 对于需要级联删除的表(如备件库记录),使用特殊处理
result = commonClearService.clearTableDataWithCascade(tableName, moduleKey);
} else {
// 普通表直接清空
result = commonClearService.clearTableData(tableName);
}
// 6. 记录操作日志 // 6. 记录操作日志
logger.info("用户 {} 成功清空了 {} 表,影响行数: {}", getUsername(), tableInfo.getDisplayName(), result); logger.info("用户 {} 成功清空了 {} 表,影响行数: {}", getUsername(), tableInfo.getDisplayName(), result);
@ -178,23 +168,16 @@ public class CommonClearController extends BaseController
private final String tableName; // 数据库表名 private final String tableName; // 数据库表名
private final String displayName; // 显示名称 private final String displayName; // 显示名称
private final String permission; // 所需权限 private final String permission; // 所需权限
private final boolean cascadeDelete; // 是否需要级联删除
public TableInfo(String tableName, String displayName, String permission) { public TableInfo(String tableName, String displayName, String permission) {
this(tableName, displayName, permission, false);
}
public TableInfo(String tableName, String displayName, String permission, boolean cascadeDelete) {
this.tableName = tableName; this.tableName = tableName;
this.displayName = displayName; this.displayName = displayName;
this.permission = permission; this.permission = permission;
this.cascadeDelete = cascadeDelete;
} }
public String getTableName() { return tableName; } public String getTableName() { return tableName; }
public String getDisplayName() { return displayName; } public String getDisplayName() { return displayName; }
public String getPermission() { return permission; } public String getPermission() { return permission; }
public boolean isCascadeDelete() { return cascadeDelete; }
} }
} }

@ -15,4 +15,13 @@ public interface ICommonClearService
* @return * @return
*/ */
public int clearTableData(String tableName); public int clearTableData(String tableName);
/**
*
*
* @param tableName
* @param moduleKey
* @return
*/
public int clearTableDataWithCascade(String tableName, String moduleKey);
} }

@ -33,4 +33,36 @@ public class CommonClearServiceImpl implements ICommonClearService
// 表名已在Controller层通过白名单验证这里直接执行 // 表名已在Controller层通过白名单验证这里直接执行
return commonClearMapper.clearTableData(tableName); return commonClearMapper.clearTableData(tableName);
} }
/**
*
* 使
*
* @param tableName
* @param moduleKey
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public int clearTableDataWithCascade(String tableName, String moduleKey)
{
int totalDeleted = 0;
// 根据模块标识进行特殊处理
if ("sparePartsInventory".equals(moduleKey)) {
// 备件库记录:先删除明细表,再删除主表
// 1. 删除备件盘点记录明细表
int detailDeleted = commonClearMapper.clearTableData("spare_parts_inventory_check");
totalDeleted += detailDeleted;
// 2. 删除备件库记录主表
int mainDeleted = commonClearMapper.clearTableData("spare_parts_inventory");
totalDeleted += mainDeleted;
return totalDeleted;
} else {
// 其他模块使用普通删除
return commonClearMapper.clearTableData(tableName);
}
}
} }
Loading…
Cancel
Save