package user import ( "appPlatform/models/modelAppPlatform" "appPlatform/models/modelshr" "appPlatform/models/modelssystempermission" "appPlatform/overall" "appPlatform/overall/publicmethod" "encoding/json" "fmt" "sort" "strconv" "strings" "time" "github.com/gin-gonic/gin" ) /* * @ 作者: 秦东 @ 时间: 2023-05-22 10:54:15 @ 功能: 获取当前登录用户信息 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) GetUserCont(c *gin.Context) { context, _ := c.Get(overall.MyContJwt) var myContInfo modelshr.ManCont jsonCont, _ := json.Marshal(context) jsonUnErr := json.Unmarshal(jsonCont, &myContInfo) outMap := publicmethod.MapOut[string]() outMap["context"] = context outMap["exi"] = jsonUnErr outMap["myContInfo"] = myContInfo var sendData SendUserCont sendData.UserId = strconv.FormatInt(myContInfo.Key, 10) sendData.Number = myContInfo.Number sendData.NickName = myContInfo.Name sendData.Company = strconv.FormatInt(myContInfo.Company, 10) //公司 var companyCont modelshr.AdministrativeOrganization companyCont.GetCont(map[string]interface{}{"`id`": myContInfo.Company}, "`name`") sendData.CompanyName = companyCont.Name //公司名称 sendData.Department = strconv.FormatInt(myContInfo.MainDeparment, 10) //主部门 var departCont modelshr.AdministrativeOrganization departCont.GetCont(map[string]interface{}{"`id`": myContInfo.MainDeparment}, "`name`") sendData.DepartmentName = departCont.Name //主部门名称 sendData.Organization = strconv.FormatInt(myContInfo.AdminOrg, 10) //行政组织 var orgCont modelshr.AdministrativeOrganization orgCont.GetCont(map[string]interface{}{"`id`": myContInfo.MainDeparment}, "`name`") sendData.OrganizationName = orgCont.Name //行政组织名称 sendData.Avatar = myContInfo.Icon if myContInfo.IconPhpto != "" { sendData.Avatar = myContInfo.IconPhpto } roleList := strings.Split(myContInfo.Role, ",") // roleList = append(roleList, "ROOT") sendData.Roles = roleList //获取权限 menuPoint, _, _, _ := GetUserPower("appsystem", myContInfo.Position, roleList) // menuPoint, opeart, orgList.level := GetUserPower("appsystem", myContInfo.Position, roleList) // fmt.Printf("menuPoint======>%v\nopeart======>%v\norgList======>%v\n", menuPoint, opeart, orgList) sendData.Perms = menuPoint switch myContInfo.Gender { case 1: sendData.GenderStr = "男" case 2: sendData.GenderStr = "女" default: sendData.GenderStr = "第三性别" } sendData.EmpType = myContInfo.EmpType sendData.PostList = GainOrgPostLog(myContInfo.Key) sendData.Mobilephone = myContInfo.Mobilephone sendData.Currentresidence = myContInfo.Currentresidence publicmethod.Result(0, sendData, c) } /* * @ 作者: 秦东 @ 时间: 2023-11-07 10:19:45 @ 功能: 获取集团内任职记录 @ 参数 # @ 返回值 # @ 方法原型 # */ func GainOrgPostLog(uid int64) (postLog []string) { var workHistory []modelshr.InsideWorkHistory err := overall.CONSTANT_DB_HR.Where("`state` = 1 AND `end_time` = 0 AND `key` = ?", uid).Order("`assign_type` ASC").Order("`start_time` DESC").Find(&workHistory).Error if err != nil && len(workHistory) < 1 { return } for _, v := range workHistory { var orgList []int64 var orgNameList []string if !publicmethod.IsInTrue[int64](v.Company, orgList) && v.Company != 0 { orgList = append(orgList, v.Company) var orgOne modelshr.AdministrativeOrganization orgOne.GetCont(map[string]interface{}{"`id`": v.Company}, "`name`") orgNameList = append(orgNameList, orgOne.Name) } if !publicmethod.IsInTrue[int64](v.Department, orgList) && v.Department != 0 { orgList = append(orgList, v.Department) var orgTwo modelshr.AdministrativeOrganization orgTwo.GetCont(map[string]interface{}{"`id`": v.Department}, "`name`") orgNameList = append(orgNameList, orgTwo.Name) } if !publicmethod.IsInTrue[int64](v.WorkShop, orgList) && v.WorkShop != 0 { orgList = append(orgList, v.WorkShop) var orgTree modelshr.AdministrativeOrganization orgTree.GetCont(map[string]interface{}{"`id`": v.WorkShop}, "`name`") orgNameList = append(orgNameList, orgTree.Name) } if !publicmethod.IsInTrue[int64](v.WorkshopSection, orgList) && v.WorkshopSection != 0 { orgList = append(orgList, v.WorkshopSection) var orgTree modelshr.AdministrativeOrganization orgTree.GetCont(map[string]interface{}{"`id`": v.WorkshopSection}, "`name`") orgNameList = append(orgNameList, orgTree.Name) } // fmt.Println(orgNameList) // fmt.Println(orgList) // fmt.Println(v.WorkshopSection) if len(orgNameList) > 0 { allOrgName := strings.Join(orgNameList, " / ") if v.Position != 0 { var postCont modelshr.Position postCont.GetCont(map[string]interface{}{"`id`": v.Position}, "`name`") if v.GradePositions != 0 { allOrgName = fmt.Sprintf("%v %v级%v", allOrgName, v.GradePositions, postCont.Name) } else { allOrgName = fmt.Sprintf("%v %v", allOrgName, postCont.Name) } } if v.AssignType == 1 { allOrgName = fmt.Sprintf("%v(主职)", allOrgName) postLog = append(postLog, allOrgName) } else { allOrgName := fmt.Sprintf("%v(兼职)", allOrgName) postLog = append(postLog, allOrgName) } } } return } /* * @ 作者: 秦东 @ 时间: 2023-05-22 11:30:44 @ 功能: 获取用户权限 @ 参数 #appType 系统标识 #postId 职务 #roleList 角色列表 @ 返回值 #menuPoint 菜单操作列表 #opeart 点位 #orgList 行政组织 #lever 最高管理等级 @ 方法原型 #func GetUserPower(appType string, postId int64, roleList []string) (menuPoint []string, opeart []string, orgList []string) */ func GetUserPower(appType string, postId int64, roleList []string) (menuPoint, opeart, orgList []string, lever int) { if postId == 0 { return } //获取职务权限 var emPower modelssystempermission.Empower err := emPower.GetCont(map[string]interface{}{"`post_id`": postId, "`system`": appType}) if err == nil { if emPower.PointId != "" { pointIdList := strings.Split(emPower.PointId, ",") menuPoint = publicmethod.MergeStruct[string](pointIdList, menuPoint) } if emPower.Operation != "" { operationIdList := strings.Split(emPower.Operation, ",") opeart = publicmethod.MergeStruct[string](operationIdList, opeart) } if emPower.Organization != "" { orgIdList := strings.Split(emPower.Organization, ",") orgList = publicmethod.MergeStruct[string](orgIdList, orgList) } if lever <= emPower.Level { lever = emPower.Level } } // fmt.Printf("职务权限:---->%v\n:---->%v\n", len(roleList), roleList) //获取角色权限 if len(roleList) > 0 { var roleId []int64 err = overall.CONSTANT_DB_System_Permission.Model(&modelssystempermission.SystemRole{}).Select("`id`").Where("`state` = 1 AND `id` IN ?", roleList).Find(&roleId).Error if err == nil && len(roleId) > 0 { for _, v := range roleId { var roleEmpower modelssystempermission.RoleEmpower err = roleEmpower.GetCont(map[string]interface{}{"`role_id`": v, "`system`": appType}) // fmt.Printf("\n\n\n%v----------1-------->%v\n\n\n", v, roleEmpower.PointId) if err == nil { if roleEmpower.PointId != "" { pointIdList := strings.Split(roleEmpower.PointId, ",") // fmt.Printf("%v------------------>%v\n\n\n", roleEmpower.RoleId, pointIdList) menuPoint = publicmethod.MergeStruct[string](pointIdList, menuPoint) } if roleEmpower.Operation != "" { operationIdList := strings.Split(roleEmpower.Operation, ",") opeart = publicmethod.MergeStruct[string](operationIdList, opeart) } if roleEmpower.Organization != "" { orgIdList := strings.Split(roleEmpower.Organization, ",") orgList = publicmethod.MergeStruct[string](orgIdList, orgList) } if lever <= roleEmpower.Level { lever = roleEmpower.Level } } } } // for _, v := range roleList { // var roleEmpower modelssystempermission.RoleEmpower // err = roleEmpower.GetCont(map[string]interface{}{"`role_id`": v, "`system`": appType}) // if err == nil { // if roleEmpower.PointId != "" { // pointIdList := strings.Split(roleEmpower.PointId, ",") // menuPoint = publicmethod.MergeStruct[string](pointIdList, menuPoint) // } // if roleEmpower.Operation != "" { // operationIdList := strings.Split(roleEmpower.Operation, ",") // opeart = publicmethod.MergeStruct[string](operationIdList, opeart) // } // if roleEmpower.Organization != "" { // orgIdList := strings.Split(roleEmpower.Organization, ",") // orgList = publicmethod.MergeStruct[string](orgIdList, orgList) // } // } // } } return } /* * @ 作者: 秦东 @ 时间: 2023-11-08 16:37:43 @ 功能: 统计行政组织下人员年龄比例 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) StatisticalAgeRatio(c *gin.Context) { var requestData publicmethod.PublicId err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } if requestData.Id == "" { requestData.Id = "309" } orgId, _ := strconv.ParseInt(requestData.Id, 10, 64) var sunOrg publicmethod.GetOrgAllParent sunOrg.GetOrgSonAllId(orgId) sunOrg.Id = append(sunOrg.Id, orgId) var idCard []string err = overall.CONSTANT_DB_HR.Model(&modelshr.ManCont{}).Select("COALESCE(`idcardno`,'')").Where("`admin_org` IN ? AND emp_type BETWEEN ? AND ?", sunOrg.Id, 1, 10).Find(&idCard).Error if err != nil && len(idCard) < 1 { publicmethod.Result(107, err, c) return } var ageAry []int // jisuan for i := 0; i < len(idCard); i++ { if idCard[i] != "" { var myAge publicmethod.BirthdayAge myAge.GetAgeByBirthday(idCard[i]) // if publicmethod.IsInTrue[int](myAge.Age,ageAry){} ageAry = append(ageAry, myAge.Age) } } if len(ageAry) < 1 { publicmethod.Result(107, err, c) return } //根据维度序号排序 sort.Slice(ageAry, func(i, j int) bool { return ageAry[i] < ageAry[j] }) maxAge := ageAry[len(ageAry)-1] // maxAge = 42 ageNumberList := publicmethod.StatisticalDuplication[int](ageAry) ageMap := make(map[int]int) if len(ageNumberList) > 0 { for i, v := range ageNumberList { if i <= maxAge && i <= 20 { if _, isOk := ageMap[20]; isOk { ageMap[20] = ageMap[20] + v } else { ageMap[20] = v } } if i <= maxAge && i <= 25 && i > 20 { if _, isOk := ageMap[25]; isOk { ageMap[25] = ageMap[25] + v } else { ageMap[25] = v } } if i <= maxAge && i <= 30 && i > 25 { if _, isOk := ageMap[30]; isOk { ageMap[30] = ageMap[30] + v } else { ageMap[30] = v } } if i <= maxAge && i <= 35 && i > 30 { if _, isOk := ageMap[35]; isOk { ageMap[35] = ageMap[35] + v } else { ageMap[35] = v } } if i <= maxAge && i <= 40 && i > 35 { if _, isOk := ageMap[40]; isOk { ageMap[40] = ageMap[40] + v } else { ageMap[40] = v } } if i <= maxAge && i <= 45 && i > 40 { if _, isOk := ageMap[45]; isOk { ageMap[45] = ageMap[45] + v } else { ageMap[45] = v } } if i <= maxAge && i <= 50 && i > 45 { if _, isOk := ageMap[50]; isOk { ageMap[50] = ageMap[50] + v } else { ageMap[50] = v } } if i <= maxAge && i <= 55 && i > 50 { if _, isOk := ageMap[55]; isOk { ageMap[55] = ageMap[55] + v } else { ageMap[55] = v } } if i <= maxAge && i <= 60 && i > 55 { if _, isOk := ageMap[60]; isOk { ageMap[60] = ageMap[60] + v } else { ageMap[60] = v } } if i <= maxAge && i > 60 { if _, isOk := ageMap[70]; isOk { ageMap[70] = ageMap[70] + v } else { ageMap[70] = v } } } } var sendAgeAry []AgeType if len(ageMap) > 0 { if ageVal, isOk := ageMap[20]; isOk { var sendAgeCont AgeType sendAgeCont.Name = "20岁以下" sendAgeCont.Value = ageVal sendAgeAry = append(sendAgeAry, sendAgeCont) } if ageVal, isOk := ageMap[25]; isOk { var sendAgeCont AgeType sendAgeCont.Name = "20岁-25岁(含)" sendAgeCont.Value = ageVal sendAgeAry = append(sendAgeAry, sendAgeCont) } if ageVal, isOk := ageMap[30]; isOk { var sendAgeCont AgeType sendAgeCont.Name = "25岁-30岁(含)" sendAgeCont.Value = ageVal sendAgeAry = append(sendAgeAry, sendAgeCont) } if ageVal, isOk := ageMap[35]; isOk { var sendAgeCont AgeType sendAgeCont.Name = "30岁-35岁(含)" sendAgeCont.Value = ageVal sendAgeAry = append(sendAgeAry, sendAgeCont) } if ageVal, isOk := ageMap[40]; isOk { var sendAgeCont AgeType sendAgeCont.Name = "35岁-40岁(含)" sendAgeCont.Value = ageVal sendAgeAry = append(sendAgeAry, sendAgeCont) } if ageVal, isOk := ageMap[45]; isOk { var sendAgeCont AgeType sendAgeCont.Name = "40岁-45岁(含)" sendAgeCont.Value = ageVal sendAgeAry = append(sendAgeAry, sendAgeCont) } if ageVal, isOk := ageMap[50]; isOk { var sendAgeCont AgeType sendAgeCont.Name = "45岁-50岁(含)" sendAgeCont.Value = ageVal sendAgeAry = append(sendAgeAry, sendAgeCont) } if ageVal, isOk := ageMap[55]; isOk { var sendAgeCont AgeType sendAgeCont.Name = "50岁-55岁(含)" sendAgeCont.Value = ageVal sendAgeAry = append(sendAgeAry, sendAgeCont) } if ageVal, isOk := ageMap[60]; isOk { var sendAgeCont AgeType sendAgeCont.Name = "55岁-60岁(含)" sendAgeCont.Value = ageVal sendAgeAry = append(sendAgeAry, sendAgeCont) } if ageVal, isOk := ageMap[70]; isOk { var sendAgeCont AgeType sendAgeCont.Name = "60岁以上" sendAgeCont.Value = ageVal sendAgeAry = append(sendAgeAry, sendAgeCont) } } sheng := publicmethod.MapOut[string]() sheng["aaffg"] = ageNumberList sheng["ageAry"] = ageAry sheng["maxAge"] = maxAge sheng["ageMap"] = ageMap sheng["sendAgeAry"] = sendAgeAry publicmethod.Result(0, sendAgeAry, c) } /* * @ 作者: 秦东 @ 时间: 2024-01-24 11:30:15 @ 功能: 获取人员信息单页(手机)查看权限 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) LookOnePeopleArchives(c *gin.Context) { var requestData LookOneMan err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } var sendData SendPower sendData.IsOk = 2 if requestData.SurveyMan == "" { publicmethod.Result(0, sendData, c) return } if requestData.UnSurveyMan == "" { requestData.UnSurveyMan = requestData.SurveyMan } var surverManInfo modelshr.ManCont err = surverManInfo.GetCont(map[string]interface{}{"`number`": requestData.SurveyMan}, "`emp_type`", "`company`", "`maindeparment`", "`admin_org`", "`position`", "`position`", "`role`") if err != nil { publicmethod.Result(0, sendData, c) return } roleList := strings.Split(surverManInfo.Role, ",") //获取权限 var orgList []string sendData.Purview, _, orgList, sendData.Level = GetUserPower("appsystem", surverManInfo.Position, roleList) if publicmethod.IsInTrue[string]("210700510225772544", sendData.Purview) { //获取被查看人行政组织 var lookManInfo modelshr.PersonArchives lookManInfo.GetCont(map[string]interface{}{"`number`": requestData.UnSurveyMan}, "`company`", "`maindeparment`", "`admin_org`") switch sendData.Level { case 1: var sunOrg publicmethod.GetOrgAllParent sunOrg.GetOrgSun(surverManInfo.AdminOrg) sunOrg.Id = append(sunOrg.Id, surverManInfo.AdminOrg) if publicmethod.IsInTrue[int64](lookManInfo.Company, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.MainDeparment, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.AdminOrg, sunOrg.Id) { sendData.IsOk = 1 } case 2: var sunOrg publicmethod.GetOrgAllParent sunOrg.GetOrgSun(surverManInfo.MainDeparment) sunOrg.Id = append(sunOrg.Id, surverManInfo.MainDeparment) if publicmethod.IsInTrue[int64](lookManInfo.Company, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.MainDeparment, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.AdminOrg, sunOrg.Id) { sendData.IsOk = 1 } case 3: var sunOrg publicmethod.GetOrgAllParent sunOrg.GetOrgSun(surverManInfo.Company) sunOrg.Id = append(sunOrg.Id, surverManInfo.Company) if publicmethod.IsInTrue[int64](lookManInfo.Company, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.MainDeparment, sunOrg.Id) || publicmethod.IsInTrue[int64](lookManInfo.AdminOrg, sunOrg.Id) { sendData.IsOk = 1 } case 4: departMent := strconv.FormatInt(lookManInfo.MainDeparment, 10) orgId := strconv.FormatInt(lookManInfo.AdminOrg, 10) companyId := strconv.FormatInt(lookManInfo.Company, 10) if publicmethod.IsInTrue[string](companyId, orgList) || publicmethod.IsInTrue[string](departMent, orgList) || publicmethod.IsInTrue[string](orgId, orgList) { sendData.IsOk = 1 } case 5: sendData.IsOk = 1 default: sendData.IsOk = 2 } } publicmethod.Result(0, sendData, c) } /* * @ 作者: 秦东 @ 时间: 2024-08-24 09:18:04 @ 功能: 获取人员信息模版列表 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) GainUserInfoDownTemplateList(c *gin.Context) { var requestData publicmethod.PagesTurn err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } if requestData.Page == 0 { requestData.Page = 1 } if requestData.PageSize == 0 { requestData.PageSize = 20 } var temList []SendUserTemInfo gormDb := overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.UserInfoDownTemplate{}).Where("`status` = 1") var total int64 totalErr := gormDb.Count(&total).Error if totalErr != nil { total = 0 } gormDb = publicmethod.PageTurningSettings(gormDb, requestData.Page, requestData.PageSize) err = gormDb.Order("`id` DESC").Find(&temList).Error if err != nil { publicmethod.Result(0, err, c) return } for i, v := range temList { var orgCont modelshr.AdministrativeOrganization if v.OrgId != 0 { err = orgCont.GetCont(map[string]interface{}{"`id`": v.OrgId}, "`name`") if err != nil { orgCont.Name = "" } } temList[i].OrgName = orgCont.Name temList[i].OrgIdStr = strconv.FormatInt(v.OrgId, 10) temList[i].IdStr = strconv.FormatInt(v.Id, 10) } publicmethod.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(temList)), temList, c) } /* * @ 作者: 秦东 @ 时间: 2024-08-24 14:58:42 @ 功能: 上传人员信息模版保存 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) UploadUserTemplate(c *gin.Context) { var requestData UpLoadTemSave err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } if requestData.OrgId == "" || requestData.OrgId == "0" { publicmethod.Result(1, err, c, "未知行政组织!不可上传模版") return } if requestData.FileUrl == "" { publicmethod.Result(1, err, c, "请上传模版文件!") return } var fileOrg modelAppPlatform.UserInfoDownTemplate orgIdInt, _ := strconv.ParseInt(requestData.OrgId, 10, 64) fileOrg.OrgId = orgIdInt fileOrg.FileName = requestData.FileName fileOrg.FilePath = requestData.FilePath fileOrg.FileUrl = requestData.FileUrl fileOrg.Status = 1 fileOrg.DateTime = time.Now().Unix() err = overall.CONSTANT_DB_AppPlatform.Create(&fileOrg).Error if err != nil { publicmethod.Result(104, err, c) return } publicmethod.Result(0, err, c) } /* * @ 作者: 秦东 @ 时间: 2024-08-26 11:16:33 @ 功能: 编辑人员模版列表状态 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) EditUserTempr(c *gin.Context) { var requestData publicmethod.PublicStates err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } if requestData.Id == "" || requestData.Id == "0" { publicmethod.Result(1, err, c, "未知行政组织!不可编辑") return } if requestData.Status == 0 { requestData.Status = 1 } saveData := publicmethod.MapOut[string]() saveData["status"] = requestData.Status saveData["dateTime"] = time.Now().Unix() var fileOrg modelAppPlatform.UserInfoDownTemplate err = fileOrg.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if err != nil { publicmethod.Result(106, err, c) return } publicmethod.Result(0, err, c) } /* * @ 作者: 秦东 @ 时间: 2024-08-26 11:28:00 @ 功能: 获取员工模版信息 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) GainUserTemplateInfo(c *gin.Context) { var requestData publicmethod.PublicId err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } if requestData.Id == "" || requestData.Id == "0" { publicmethod.Result(1, err, c, "未知行政组织!不可编辑") return } var fileOrg SendUserTemInfo err = fileOrg.GetCont(map[string]interface{}{"`id`": requestData.Id}) if err != nil { publicmethod.Result(106, err, c) return } var orgCont modelshr.AdministrativeOrganization if fileOrg.OrgId != 0 { err = orgCont.GetCont(map[string]interface{}{"`id`": fileOrg.OrgId}, "`name`") if err != nil { orgCont.Name = "" } } fileOrg.OrgName = orgCont.Name fileOrg.OrgIdStr = strconv.FormatInt(fileOrg.OrgId, 10) fileOrg.IdStr = strconv.FormatInt(fileOrg.Id, 10) publicmethod.Result(0, fileOrg, c) } /* * @ 作者: 秦东 @ 时间: 2024-08-26 11:31:10 @ 功能: 编辑模版内容 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) EditUserTemplateInfo(c *gin.Context) { var requestData EditTemplateCont err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } if requestData.Id == "" || requestData.Id == "0" { publicmethod.Result(1, err, c, "未知行政组织!不可编辑") return } var oldInfo modelAppPlatform.UserInfoDownTemplate err = oldInfo.GetCont(map[string]interface{}{"`id`": requestData.Id}) if err != nil { publicmethod.Result(107, err, c) return } saveData := publicmethod.MapOut[string]() if requestData.OrgId != "" { orgOldId := strconv.FormatInt(oldInfo.OrgId, 10) if requestData.OrgId != orgOldId { saveData["orgId"] = requestData.OrgId } } if requestData.FileName != oldInfo.FileName { saveData["fileName"] = requestData.FileName } if requestData.FilePath != oldInfo.FilePath { saveData["filePath"] = requestData.FilePath } if requestData.FileUrl != oldInfo.FileUrl { saveData["fileUrl"] = requestData.FileUrl } if len(saveData) > 0 { saveData["status"] = 1 saveData["dateTime"] = time.Now().Unix() var fileOrg modelAppPlatform.UserInfoDownTemplate err = fileOrg.EiteCont(map[string]interface{}{"`id`": requestData.Id}, saveData) if err != nil { publicmethod.Result(106, err, c) return } } publicmethod.Result(0, err, c) } /* * @ 作者: 秦东 @ 时间: 2024-08-26 13:00:11 @ 功能: 获取现有模版归属那个组织 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) GainTempleateOrgList(c *gin.Context) { var list []int64 err := overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.UserInfoDownTemplate{}).Select("`orgId`").Where("`status` = 1").Find(&list).Error if err != nil || len(list) == 0 { publicmethod.Result(107, err, c) return } var orgList []modelshr.AdministrativeOrganization err = overall.CONSTANT_DB_HR.Model(&modelshr.AdministrativeOrganization{}).Select("`id`,`name`").Where("`id` IN ?", list).Find(&orgList).Error if err != nil || len(orgList) == 0 { publicmethod.Result(107, err, c) return } publicmethod.Result(0, orgList, c) } /* * @ 作者: 秦东 @ 时间: 2025-03-19 14:01:00 @ 功能: 获取角色列表 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) GainRoleList(c *gin.Context) { var roleMode modelssystempermission.SystemRole roleList, _ := roleMode.ContMap(map[string]interface{}{"state": 1}) publicmethod.Result(0, roleList, c) } /* * @ 作者: 秦东 @ 时间: 2025-03-19 15:08:47 @ 功能: 获取岗位 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) GainPickPost(c *gin.Context) { var requestData publicmethod.PublicId c.ShouldBindJSON(&requestData) var orgList []modelshr.AdministrativeOrganization gormDb := overall.CONSTANT_DB_HR.Where("`state` = 1") if requestData.Id != "" { adminorgInt, _ := strconv.ParseInt(requestData.Id, 10, 64) var sunOrg publicmethod.GetOrgAllParent sunOrg.GetOrgSun(adminorgInt) sunOrg.Id = append(sunOrg.Id, adminorgInt) gormDb = gormDb.Where("`id` IN ?", sunOrg.Id) } gormDb.Find(&orgList) var orgPostList PostJieguo if len(orgList) > 0 { for _, v := range orgList { if v.Id == 102 { syncSeting.Add(1) go orgPostList.OrgPostMap(v) } } syncSeting.Wait() } // publicmethod.Result(0, orgPostList.List, c) orgPostMap := OrgPostTree(requestData.Id, orgPostList.List) publicmethod.Result(0, orgPostMap, c) } /* * @ 作者: 秦东 @ 时间: 2025-03-19 15:34:32 @ 功能: 获取每个行政组织的岗位 */ func (p *PostJieguo) OrgPostMap(org modelshr.AdministrativeOrganization) { defer syncSeting.Done() var inFor SendPostUnit inFor.Id = strconv.FormatInt(org.Id, 10) inFor.Value = org.Number inFor.Label = org.Name inFor.IsOrg = true inFor.Superior = strconv.FormatInt(org.Superior, 10) // inFor.Children = GainOrgPost(org.Id) p.List = append(p.List, inFor) p.List = append(p.List, GainOrgPost(org.Id)...) } /* * @ 作者: 秦东 @ 时间: 2025-03-19 15:39:30 @ 功能: */ func GainOrgPost(org int64) (postMap []SendPostUnit) { var postList []modelshr.Position overall.CONSTANT_DB_HR.Where("`state` = 1 AND `department` = ?", org).Find(&postList) // var postAry []SendPostUnit if len(postList) > 0 { for _, v := range postList { var inFor SendPostUnit inFor.Id = strconv.FormatInt(v.Id, 10) inFor.Value = v.Number inFor.Label = v.Name inFor.IsOrg = false inFor.OrgId = strconv.FormatInt(v.Department, 10) inFor.Superior = strconv.FormatInt(v.Department, 10) postMap = append(postMap, inFor) } } // postMap = OrgPostTree("0", postAry) return } /* * @ 作者: 秦东 @ 时间: 2025-03-19 16:03:39 @ 功能: 生成树 */ func OrgPostTree(parentId string, postMap []SendPostUnit) (menusTree []SendPostUnit) { fmt.Printf("上一级OrgId:%v\n", parentId) if len(postMap) > 0 { for _, v := range postMap { // if v.IsOrg { if v.Superior == parentId { var inFor SendPostUnit inFor.Id = v.Id inFor.Value = v.Value inFor.Label = v.Label inFor.IsOrg = v.IsOrg inFor.OrgId = v.OrgId inFor.Superior = v.Superior inFor.Children = OrgPostTree(v.Id, postMap) menusTree = append(menusTree, inFor) } // } else { // if v.OrgId == parentId { // var inFor SendPostUnit // inFor.Id = v.Id // inFor.Value = v.Value // inFor.Label = v.Label // inFor.IsOrg = v.IsOrg // inFor.OrgId = v.OrgId // inFor.Superior = v.Superior // inFor.Children = OrgPostTree(v.OrgId, postMap) // menusTree = append(menusTree, inFor) // } // } } } return } /* * @ 作者: 秦东 @ 时间: 2025-03-26 16:13:07 @ 功能: 获取行政组织几人员关系 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) GainOegAndPeople(c *gin.Context) { var requestData publicmethod.PublicId err := c.ShouldBindJSON(&requestData) if err != nil || requestData.Id == "0" || requestData.Id == "" { context, _ := c.Get(overall.MyContJwt) var userCont modelshr.ManCont userCont.GetLoginCont(context) //当前操作人 requestData.Id = strconv.FormatInt(userCont.Company, 10) } orgId, _ := strconv.ParseInt(requestData.Id, 10, 64) var sendInfo SendOrgAndPeople //行政组织 syncSeting.Add(1) go sendInfo.GainOrgList(requestData.Id) //获取该组织下得人员 syncSeting.Add(1) go sendInfo.GainPeopleList(requestData.Id) //面包屑 syncSeting.Add(1) go sendInfo.GainBreadcrumb(orgId) syncSeting.Wait() var sendMap SendOrgAndManInfo sendMap.OrgManList = append(sendMap.OrgManList, sendInfo.OrgList...) sendMap.OrgManList = append(sendMap.OrgManList, sendInfo.PeopleList...) sendMap.Breadcrumb = sendInfo.Breadcrumb publicmethod.Result(0, sendMap, c) } /* * @ 作者: 秦东 @ 时间: 2025-03-27 08:09:27 @ 功能: 获取选择项面包屑 */ func (s *SendOrgAndPeople) GainBreadcrumb(orgId int64) { defer syncSeting.Done() var fatherOrg publicmethod.GetOrgAllParent fatherOrg.GetOrgAllFatherId(orgId, 4) orgIdLen := len(fatherOrg.Id) if orgIdLen > 0 { s.Breadcrumb = s.Breadcrumb[:0] for i := orgIdLen - 1; i >= 0; i-- { if fatherOrg.Id[i] != 0 { var orgInfo modelshr.AdministrativeOrganization orgInfo.GetCont(map[string]interface{}{"`id`": fatherOrg.Id[i]}, "`id`", "`number`", "`name`") var orgInfoBrea OrgAndPeopleInfo orgInfoBrea.Id = strconv.FormatInt(orgInfo.Id, 10) orgInfoBrea.Number = orgInfo.Number orgInfoBrea.Name = orgInfo.Name if orgInfo.Id > 0 { s.Breadcrumb = append(s.Breadcrumb, orgInfoBrea) } } } } } /* * @ 作者: 秦东 @ 时间: 2025-03-26 16:23:23 @ 功能: 获取人员信息 */ func (s *SendOrgAndPeople) GainPeopleList(orgId string) { defer syncSeting.Done() if orgId == "0" || orgId == "" { orgId = "313" } var orgList []modelshr.PersonArchives overall.CONSTANT_DB_HR.Model(&modelshr.PersonArchives{}).Select("`id`,`number`,`name`,`icon`,`icon_photo`").Where("`state` = 1 AND `emp_type` BETWEEN 1 AND 10 AND `admin_org` = ?", orgId).Find(&orgList) if len(orgList) > 0 { s.PeopleList = s.PeopleList[:0] for _, v := range orgList { var orgInfo OrgAndPeopleInfo orgInfo.Id = strconv.FormatInt(v.Id, 10) orgInfo.Number = v.Number orgInfo.Name = v.Name orgInfo.Icon = v.IconPhoto if v.Icon != "" { orgInfo.Icon = v.Icon } orgInfo.Types = "people" s.PeopleList = append(s.PeopleList, orgInfo) } } } /* * @ 作者: 秦东 @ 时间: 2025-03-26 16:23:23 @ 功能: 获取行政组织 */ func (s *SendOrgAndPeople) GainOrgList(orgId string) { defer syncSeting.Done() if orgId == "0" || orgId == "" { orgId = "313" } var orgList []modelshr.AdministrativeOrganization overall.CONSTANT_DB_HR.Model(&modelshr.AdministrativeOrganization{}).Select("`id`,`number`,`name`").Where("`state` = 1 AND `superior` = ?", orgId).Find(&orgList) if len(orgList) > 0 { s.OrgList = s.OrgList[:0] for _, v := range orgList { var orgInfo OrgAndPeopleInfo orgInfo.Id = strconv.FormatInt(v.Id, 10) orgInfo.Number = v.Number orgInfo.Name = v.Name orgInfo.Types = "masterOrg" s.OrgList = append(s.OrgList, orgInfo) } } }