package humanResources import ( "appPlatform/models/modelshr" "appPlatform/overall" "appPlatform/overall/publicmethod" "encoding/json" "fmt" "github.com/gin-gonic/gin" ) /** @ 作者: 秦东 @ 时间: 2025-11-27 13:15:24 @ 功能: 行政组织事务处理模块 */ /* * @ 作者: 秦东 @ 时间: 2025-11-27 13:19:44 @ 功能: 行政组织树 */ func (a *ApiMethod) AuthorizeOrgTree(c *gin.Context) { var requestData MenuIdCont err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } context, _ := c.Get(overall.MyContJwt) var myContInfo modelshr.ManCont jsonCont, _ := json.Marshal(context) json.Unmarshal(jsonCont, &myContInfo) var orgList []modelshr.OrgCont gotmDb := overall.CONSTANT_DB_HR.Model(&modelshr.OrgCont{}).Where("state = ?", 1) fmt.Printf("权限-----22222222222222222222222222222222222222222222222222222222222222222222222---->%v\n\n\n", gotmDb) //获取权限 myPower := publicmethod.GetMyMenuPower(myContInfo.Key, requestData.MenuId) fmt.Printf("权限--------->%v------>%v\n\n\n", myPower.Scope, myPower) switch myPower.Scope { //可见范围(1:本人;2:本岗位;3:本部门;4:本分部;5:指定行政组织;6:所有) case 2: var sunGroupId publicmethod.GetOrgAllParent sunGroupId.GetFormGroupSun(myContInfo.AdminOrg) sunGroupId.Id = append(sunGroupId.Id, myContInfo.AdminOrg) gotmDb = gotmDb.Where("`id` IN ?", sunGroupId.Id) case 3: var sunGroupId publicmethod.GetOrgAllParent sunGroupId.GetFormGroupSun(myContInfo.MainDeparment) sunGroupId.Id = append(sunGroupId.Id, myContInfo.MainDeparment) gotmDb = gotmDb.Where("`id` IN ?", sunGroupId.Id) case 4: var sunGroupId publicmethod.GetOrgAllParent sunGroupId.GetFormGroupSun(myContInfo.Company) sunGroupId.Id = append(sunGroupId.Id, myContInfo.Company) gotmDb = gotmDb.Where("`id` IN ?", sunGroupId.Id) case 5: gotmDb = gotmDb.Where("`id` IN ?", myPower.ScopeManAry) case 6: default: var sunGroupId publicmethod.GetOrgAllParent sunGroupId.GetFormGroupSun(myContInfo.AdminOrg) sunGroupId.Id = append(sunGroupId.Id, myContInfo.AdminOrg) gotmDb = gotmDb.Where("`id` IN ?", sunGroupId.Id) } err = gotmDb.Find(&orgList).Error var sendTree []OrgTreePower if err != nil { publicmethod.Result(0, sendTree, c) return } fmt.Printf("权限--------->%v------>%v\n\n\n", myPower.Scope, orgList) sendTree = GovOrgTree(0, orgList) publicmethod.Result(0, sendTree, c) } /* * @ 作者: 秦东 @ 时间: 2025-11-27 16:34:15 @ 功能: 组装行政树 */ func GovOrgTree(parentId int64, govList []modelshr.OrgCont) (govMap []OrgTreePower) { for i := 0; i < len(govList); i++ { if govList[i].Superior == parentId { var govCont OrgTreePower govCont.Id = govList[i].Id // govCont.Number = govList[i].Number //行政编码"` govCont.Name = govList[i].Name //组织名称"` govCont.Superior = govList[i].Superior //上级ID"` govCont.OrganizationType = govList[i].OrganizationType //行政组织类型"` govCont.Abbreviation = govList[i].Abbreviation //行政组织简称"` govCont.Time = govList[i].Time //创建时间"` govCont.State = govList[i].State //状态(1:启用;2:禁用;3:删除)"` govCont.WechatOrganizationId = govList[i].WechatOrganizationId //微信组织架构对照码"` govCont.SuperiorSun = govList[i].SuperiorSun //级联ID"` govCont.Schoole = govList[i].Schoole //原知行学院对照码"` govCont.KingdeeId = govList[i].KingdeeId //金蝶对照ID"` govCont.IsPower = govList[i].IsPower //是否为实权部门"` govCont.Sort = govList[i].Sort //排序"` govCont.TypeName = govList[i].TypeName //'类型名称"` govCont.Level = govList[i].Level //级别"` if govList[i].State == 1 { govCont.Status = true } else { govCont.Status = false } govCont.Child = GovOrgTree(govList[i].Id, govList) govMap = append(govMap, govCont) } } return }