今日接口:使用Microi吾码的接口引擎,获取组织机构的父级Id,使得整体创建成几-几的树形结构表现形式

接口作用

客户后台组织机构的存储逻辑是通过随机的Id存储,上级通过父级Id查找,这样的存储形式通过sql查找对应部门的所有下级部门,不好通过模糊搜索查找。

所以通过接口引擎,创建出一个中间表,产生一个新的字段为对应的机构代码,表现形式就是1-1-1一级级层级下去的树形结构。

这样就方便直接通过sql的like去查找对应部门的所有下级部门机构数据。

代码逻辑

  1. 使用平台的方法,创建一个Token
  2. 通过对应的Api接口,获取到组织机构的信息表
  3. 组织机构中有个_Child字段,存储着对应下级的组织机构
  4. 首先创建好组织机构的顶层数据
  5. 接着通过递归的方法,首先新增好当层的表接口,然后查看_Child是否存在,存在则递归

核心代码

获取Token值

//OsClient为每个后台对应的OsClient值
var Token = V8.Method.GetCurrentToken('', 'OsClient')

获取组织机构信息

// 平台目前post和get方法都支持了
var res =V8.Http.Post({
  url:'url', // 对应URL地址
  headers: {
    'authorization': `Bearer ${Token.Token}`
  },
})
// 获取到的为字符型,将转换回数组类型
res = JSON.parse(res)

 创建一层结构

// 删除原有数据
// 平台支持原生sql
V8.Db.FromSql(`delete from diy_ZuZhiJiGouCode where IsDeleted = 0`).ExecuteNonQuery()
res.Data.forEach((item,index)=>{
  var JigouDM = `${index+1}`
// 平台包含特有的语言
  V8.FormEngine.AddFormData({
    FormEngineKey : 'diy_ZuZhiJiGouCode',
    Id:item.Code,
    _RowModel : {
        JigouDM : JigouDM+'-',
        JigouM : item.Name,
        JigouID : item.Code,
        
    }
  });
// 查看是否有对应下级,有则进入对应递归算法
  if(item._Child){
    addZuZhi(item._Child,JigouDM)
  }
})

//返回结果执行完毕
V8.Result = {Code:1,Msg:'执行完毕'};
return

递归算法

function addZuZhi(array,JigouDM){
  array.forEach((item,index)=>{
    var myCode = `${JigouDM}-${index+1}`
    V8.FormEngine.AddFormData({
      FormEngineKey : 'diy_ZuZhiJiGouCode',
      Id:item.Code,
      _RowModel : {
        JigouDM : myCode,
        JigouM : item.Name,
        JigouID : item.Code,
        ParentId : item.ParentId,
      }
    });
    if(item._Child){
      addZuZhi(item._Child,myCode)
    }
  })
}

最终结果

Microi吾码只有你想不到,没有做不到 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值