fix(部门): org_code问题修复

This commit is contained in:
yjz
2023-12-11 18:35:47 +08:00
parent bfaaf2c9bc
commit 85bfe3e7d7
2 changed files with 50 additions and 4 deletions
@@ -3,14 +3,17 @@ package com.jero.modules.system.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.constant.CacheConstant;
import com.jero.common.constant.CommonConstant;
import com.jero.common.constant.FillRuleConstant;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.util.JwtUtil;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.system.vo.SysDepartTreeModel;
import com.jero.common.util.FillRuleUtil;
import com.jero.common.util.ImportExcelUtil;
import com.jero.common.util.YouBianCodeUtil;
import com.jero.common.util.oConvertUtils;
@@ -22,6 +25,7 @@ import com.jero.modules.system.service.ISysUserDepartService;
import com.jero.modules.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecgframework.poi.excel.ExcelImportUtil;
@@ -180,6 +184,44 @@ public class SysDepartController {
}
}
/**
* 刷新OrgCode层级关系
* 先把数据库org_code字段设置允许为空,删除org_code唯一索引,
* 保留根目录org_code='A01',更新其它org_code为null
* 更新完成后重新设置约束和唯一索引
* @return
*/
@PostMapping("/refreshOrgCode")
public Result<T> refreshOrgCode() {
SysDepart sysDepart = sysDepartService.getOne(
new LambdaQueryWrapper<SysDepart>()
.eq(SysDepart::getId, "0")
.eq(SysDepart::getDelFlag, "0"));
if (!Objects.isNull(sysDepart)){
recursion(sysDepart.getId());
}
return Result.OK("操作成功!");
}
private void recursion(String id) {
List<SysDepart> list = sysDepartService.list(
new LambdaQueryWrapper<SysDepart>()
.eq(SysDepart::getParentId, id));
for (SysDepart sysDepart : list) {
// 生成orgCode
JSONObject formData = new JSONObject();
formData.put("parentId", sysDepart.getParentId());
String[] codeArray = (String[]) FillRuleUtil.executeRule(FillRuleConstant.DEPART, formData);
sysDepartService.update(new LambdaUpdateWrapper<SysDepart>()
.eq(SysDepart::getId, sysDepart.getId())
.eq(SysDepart::getDelFlag, "0")
.set(SysDepart::getOrgCode, codeArray[0]));
log.info("===========" + sysDepart.getDepartName() + codeArray[0]);
// 递归
recursion(sysDepart.getId());
}
}
/**
* 编辑数据 编辑部门的部分数据,并保存到数据库
*