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());
}
}
/**
* 编辑数据 编辑部门的部分数据,并保存到数据库
*
@@ -4,18 +4,17 @@ import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.NumberUtil;
import com.alibaba.fastjson.JSONObject;
import com.bamboocloud.codec.BamboocloudFacade;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.jero.common.constant.CommonConstant;
import com.jero.common.constant.FillRuleConstant;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.DateUtils;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.UUIDGenerator;
import com.jero.common.util.UUIDUtils;
import com.jero.common.util.*;
import com.jero.modules.docking.iam.annotation.IamProperty;
import com.jero.modules.docking.iam.dto.IamCommonAcceptDto;
import com.jero.modules.docking.iam.dto.IamOrgAcceptDto;
@@ -375,6 +374,11 @@ public class SyncIamService {
SysDepart sysDepart = new SysDepart();
sysDepart.setId(orgAcceptDto.getSrmsOrgCode());
sysDepart.setParentId(orgAcceptDto.getSrmsParentCode());
// 生成orgCode
JSONObject formData = new JSONObject();
formData.put("parentId", orgAcceptDto.getSrmsParentCode());
String[] codeArray = (String[]) FillRuleUtil.executeRule(FillRuleConstant.DEPART, formData);
sysDepart.setOrgCode(codeArray[0]);
sysDepart.setDepartName(orgAcceptDto.getSrmsDepartName());
sysDepart.setDepartOrder(100); // 接入数据无排序,都设置为100