diff --git a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java index d4dbd167..60ee66c0 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java @@ -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 refreshOrgCode() { + SysDepart sysDepart = sysDepartService.getOne( + new LambdaQueryWrapper() + .eq(SysDepart::getId, "0") + .eq(SysDepart::getDelFlag, "0")); + if (!Objects.isNull(sysDepart)){ + recursion(sysDepart.getId()); + } + return Result.OK("操作成功!"); + } + + private void recursion(String id) { + List list = sysDepartService.list( + new LambdaQueryWrapper() + .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() + .eq(SysDepart::getId, sysDepart.getId()) + .eq(SysDepart::getDelFlag, "0") + .set(SysDepart::getOrgCode, codeArray[0])); + log.info("===========" + sysDepart.getDepartName() + codeArray[0]); + // 递归 + recursion(sysDepart.getId()); + } + } + /** * 编辑数据 编辑部门的部分数据,并保存到数据库 * diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/service/SyncIamService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/service/SyncIamService.java index 74d91ef1..0c0700e0 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/service/SyncIamService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/iam/service/SyncIamService.java @@ -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