You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1134 lines
30 KiB
1134 lines
30 KiB
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) {
|
|
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) {
|
|
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) {
|
|
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) {
|
|
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})
|
|
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)
|
|
}
|
|
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)
|
|
}
|
|
}
|
|
}
|
|
|