@ -5,6 +5,7 @@ import (
"fmt"
"hr_server/grocerystore"
"hr_server/models"
"hr_server/models/hrmodels"
"hr_server/overall"
"hr_server/overall/overallhandle"
"sort"
@ -91,9 +92,9 @@ func (o *OrganizationApi) AddGovCont(c *gin.Context) {
govClassIdInt , _ := strconv . ParseInt ( requestData . GovClass , 10 , 64 )
govClassId = govClassIdInt
}
if requestData . WechatId == 0 {
requestData . WechatId = 1
}
// if requestData.WechatId == 0 {
// requestData.WechatId = 1
// }
var name string
judgeErr := overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganization { } ) . Select ( "`name`" ) . Where ( "`organization_type` IN ? AND `name` = ?" , [ ] int { 1 , 2 } , requestData . Name ) . First ( & name ) . Error
if judgeErr == nil {
@ -495,84 +496,104 @@ func (o *OrganizationApi) GovThreeAboutMan(c *gin.Context) {
// overallhandle.Result(101, requestData, c, "行政类别Id不能为空!")
// return
// }
redisFileKey := fmt . Sprintf ( "OrgPost:OrgAndPeople:%v_%v_%v%v%v" , overall . CONSTANT_CONFIG . RedisPrefixStr . Alias , "OrgUserTree" , requestData . Id , requestData . All , requestData . Level )
redisClient := grocerystore . RunRedis ( overall . CONSTANT_REDIS4 )
orgErr , orgUserList := redisClient . Get ( redisFileKey )
var jsonErr error
if orgErr == true && orgUserList != "" {
var orgManCont orgPeopleCont
jsonErr = json . Unmarshal ( [ ] byte ( orgUserList ) , & orgManCont )
outputDataAry := overallhandle . MapOut ( )
outputDataAry [ "three" ] = orgManCont . Three
outputDataAry [ "list" ] = orgManCont . List
overallhandle . Result ( 0 , outputDataAry , c )
}
if jsonErr != nil || orgErr == false {
//获取行政组织
var orgList [ ] models . OrgContType
gormDb := overall . CONSTANT_DB_HR . Model ( & models . OrgContType { } ) . Select ( "`id`,`numbe`,`name`,`superior`,`state`,`typename`,`level`" ) . Where ( "`state` = ? " , 1 )
if requestData . All == 0 {
requestData . Id = "312"
gormDb = gormDb . Where ( "`id` NOT IN ?" , [ ] int { 312 , 293 , 305 , 306 , 307 } )
}
if requestData . Level != 0 {
gormDb = gormDb . Where ( "`level` <= ?" , requestData . Level )
}
//获取行政组织
var orgList [ ] models . OrgContType
gormDb := overall . CONSTANT_DB_HR . Where ( "`state` = ? " , 1 )
if requestData . All == 0 {
requestData . Id = "312"
gormDb = gormDb . Where ( "`id` NOT IN ?" , [ ] int { 312 , 293 , 305 , 306 , 307 } )
}
if requestData . Level != 0 {
gormDb = gormDb . Where ( "`level` <= ?" , requestData . Level )
}
err := gormDb . Find ( & orgList ) . Error
if err != nil {
overallhandle . Result ( 107 , err , c )
return
}
var total int64
totalErr := gormDb . Count ( & total ) . Error
if totalErr != nil {
total = 0
}
pageSize := 1
//计算分协程数据基数
switch {
case total > 10 && total <= 10000 :
pageSize = 100
case total > 10000 :
pageSize = 1000
default :
pageSize = 1
}
// overallhandle.Result(0, pageSize, c)
// return
var sendDataList [ ] OrgAndPeople //组装分组信息
var allOrgAndPeople synProReadData
for i , v := range orgList {
var sendDataCont OrgAndPeople
sendDataCont . Id = strconv . FormatInt ( v . Id , 10 ) //行政组织Id或人员Key
sendDataCont . Name = v . Name //行政组织名称或人员名称
sendDataCont . Number = v . Number //行政组织编号或人员编号
sendDataCont . OrgId = strconv . FormatInt ( v . Id , 10 ) //行政组织ID
// sendDataCont.Icon = "" //行政组织头像或人员头像
sendDataCont . ParentId = strconv . FormatInt ( v . Superior , 10 ) //上级
sendDataCont . IsMan = 1 //是部门还是个人(1:行政组织;2:人员)
sendDataCont . Sort = 2
if ( i + 1 ) % pageSize == 0 {
sendDataList = append ( sendDataList , sendDataCont )
err := gormDb . Find ( & orgList ) . Error
if err != nil {
overallhandle . Result ( 107 , err , c )
return
}
var total int64
totalErr := gormDb . Count ( & total ) . Error
if totalErr != nil {
total = 0
}
pageSize := 1
//计算分协程数据基数
switch {
case total > 10 && total <= 10000 :
pageSize = 100
case total > 10000 :
pageSize = 1000
default :
pageSize = 1
}
// overallhandle.Result(0, pageSize, c)
// return
var sendDataList [ ] OrgAndPeople //组装分组信息
var allOrgAndPeople synProReadData
for i , v := range orgList {
var sendDataCont OrgAndPeople
sendDataCont . Id = strconv . FormatInt ( v . Id , 10 ) //行政组织Id或人员Key
sendDataCont . Name = v . Name //行政组织名称或人员名称
sendDataCont . Number = v . Number //行政组织编号或人员编号
sendDataCont . OrgId = strconv . FormatInt ( v . Id , 10 ) //行政组织ID
// sendDataCont.Icon = "" //行政组织头像或人员头像
sendDataCont . ParentId = strconv . FormatInt ( v . Superior , 10 ) //上级
sendDataCont . IsMan = 1 //是部门还是个人(1:行政组织;2:人员)
sendDataCont . Sort = 2
if ( i + 1 ) % pageSize == 0 {
sendDataList = append ( sendDataList , sendDataCont )
synPro . Add ( 1 )
go allOrgAndPeople . GetOrgAboutPeople ( sendDataList ) //协程处理行政组织下的人员信息
sendDataList = [ ] OrgAndPeople { }
// fmt.Printf("执行一次---------->%v\n", i)
} else {
sendDataList = append ( sendDataList , sendDataCont )
}
allOrgAndPeople . OrgAndPeopleList = append ( allOrgAndPeople . OrgAndPeopleList , sendDataCont )
}
if len ( sendDataList ) > 0 { //判断盈余分组数据
synPro . Add ( 1 )
go allOrgAndPeople . GetOrgAboutPeople ( sendDataList ) //协程处理行政组织下的人员信息
sendDataList = [ ] OrgAndPeople { }
// fmt.Printf("执行一次---------->%v\n", i)
} else {
sendDataList = append ( sendDataList , sendDataCont )
go allOrgAndPeople . GetOrgAboutPeople ( sendDataList )
}
allOrgAndPeople . OrgAndPeopleList = append ( allOrgAndPeople . OrgAndPeopleList , sendDataCont )
}
if len ( sendDataList ) > 0 { //判断盈余分组数据
synPro . Add ( 1 )
go allOrgAndPeople . GetOrgAboutPeople ( sendDataList )
}
synPro . Wait ( )
// fmt.Printf("%v\n", len(allOrgAndPeople.OrgAndPeopleList))
for oi , _ := range allOrgAndPeople . OrgAndPeopleList {
allOrgAndPeople . OrgAndPeopleList [ oi ] . Identify = oi + 1
synPro . Wait ( )
// fmt.Printf("%v\n", len(allOrgAndPeople.OrgAndPeopleList))
for oi , _ := range allOrgAndPeople . OrgAndPeopleList {
allOrgAndPeople . OrgAndPeopleList [ oi ] . Identify = oi + 1
}
idInt , _ := strconv . ParseInt ( requestData . Id , 10 , 64 )
sort . Slice ( allOrgAndPeople . OrgAndPeopleList , func ( i , j int ) bool {
return allOrgAndPeople . OrgAndPeopleList [ i ] . Sort < allOrgAndPeople . OrgAndPeopleList [ j ] . Sort
} )
// var outputDataList []OrgAndPeople
// fmt.Printf("idInt------------------>%v\n", idInt)
govMapThree := OrgAndMAnThree ( idInt , allOrgAndPeople . OrgAndPeopleList )
outputDataAry := overallhandle . MapOut ( )
outputDataAry [ "three" ] = govMapThree
outputDataAry [ "list" ] = allOrgAndPeople . OrgAndPeopleList
var orgManCont orgPeopleCont
orgManCont . List = allOrgAndPeople . OrgAndPeopleList
orgManCont . Three = govMapThree
sendStr , _ := json . Marshal ( orgManCont )
redisClient . SetRedisTime ( 86400 )
redisClient . Set ( redisFileKey , string ( sendStr ) )
overallhandle . Result ( 0 , outputDataAry , c )
}
idInt , _ := strconv . ParseInt ( requestData . Id , 10 , 64 )
sort . Slice ( allOrgAndPeople . OrgAndPeopleList , func ( i , j int ) bool {
return allOrgAndPeople . OrgAndPeopleList [ i ] . Sort < allOrgAndPeople . OrgAndPeopleList [ j ] . Sort
} )
// var outputDataList []OrgAndPeople
// fmt.Printf("idInt------------------>%v\n", idInt)
govMapThree := OrgAndMAnThree ( idInt , allOrgAndPeople . OrgAndPeopleList )
outputDataAry := overallhandle . MapOut ( )
outputDataAry [ "three" ] = govMapThree
outputDataAry [ "list" ] = allOrgAndPeople . OrgAndPeopleList
overallhandle . Result ( 0 , outputDataAry , c )
}
/ *
@ -641,7 +662,7 @@ func (s *synProReadData) GetOrgAboutPeople(orgList []OrgAndPeople) {
}
}
var peopleList [ ] models . PersonArchives
err := overall . CONSTANT_DB_HR . Model ( & models . PersonArchives { } ) . Select ( "`key`,`number`,`name`,`icon`,`admin_org`" ) . Where ( "`state` = ? AND `admin_org` IN ? AND `emp_type` BETWEEN ? AND ? " , 1 , orgId , 1 , 10 ) . Find ( & peopleList ) . Error
err := overall . CONSTANT_DB_HR . Model ( & models . PersonArchives { } ) . Select ( "`key`,`number`,`name`,`icon`,`admin_org`,`icon_photo` " ) . Where ( "`state` = ? AND `admin_org` IN ? AND `emp_type` BETWEEN ? AND ? " , 1 , orgId , 1 , 10 ) . Find ( & peopleList ) . Error
if err == nil {
if len ( peopleList ) > 0 {
for _ , v := range peopleList {
@ -678,6 +699,7 @@ func (s *synProReadData) MakePeopleToOrg(manCont models.PersonArchives, orgList
sendDataCont . ParentId = v . Id //上级
sendDataCont . IsMan = 2 //是部门还是个人(1:行政组织;2:人员)
sendDataCont . Sort = 1
sendDataCont . IconBase64 = manCont . IconPhoto
sendDataCont . AllName = fmt . Sprintf ( "%v(%v)" , manCont . Name , manCont . Number )
s . OrgAndPeopleList = append ( s . OrgAndPeopleList , sendDataCont )
}
@ -1339,3 +1361,418 @@ func (o *OrganizationApi) GetAppointOrg(c *gin.Context) {
}
overallhandle . Result ( 0 , orgList , c )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2023 - 04 - 22 15 : 56 : 42
@ 功能 :
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( o * OrganizationApi ) BasisOrgAllPeople ( c * gin . Context ) {
var requestData overallhandle . ConstId
err := c . ShouldBindJSON ( & requestData )
if err != nil {
overallhandle . Result ( 100 , err , c )
return
}
if requestData . Id == "" {
overallhandle . Result ( 101 , err , c )
return
}
orgInt , _ := strconv . ParseInt ( requestData . Id , 10 , 64 )
var sunAry overallhandle . AllSunList [ int64 ]
sunAry . GetAllSunOrg ( orgInt )
sunAry . SunList = append ( sunAry . SunList , orgInt )
var userList [ ] models . PersonArchives
err = overall . CONSTANT_DB_HR . Model ( & models . PersonArchives { } ) . Where ( "emp_type BETWEEN 1 AND 10 AND admin_org IN ?" , sunAry . SunList ) . Find ( & userList ) . Error
if err != nil {
overallhandle . Result ( 105 , err , c )
return
}
var sendContList [ ] OrgAllPeopleList
for _ , v := range userList {
var sendCont OrgAllPeopleList
sendCont . Id = strconv . FormatInt ( v . Id , 10 ) //id"`
sendCont . Number = v . Number //number"`
sendCont . Name = v . Name //name"`
sendCont . Icon = v . Icon //icon"`
sendCont . Adminorg = strconv . FormatInt ( v . AdminOrg , 10 ) //adminorg"`
sendCont . Teamid = strconv . FormatInt ( v . TeamId , 10 ) //teamid"`
sendCont . Position = strconv . FormatInt ( v . Position , 10 ) //position"`
sendCont . Wechat = v . Wechat //wechat"`
if v . WorkWechat != "" {
sendCont . Wechat = v . WorkWechat
}
sendCont . Key = strconv . FormatInt ( v . Key , 10 ) //key"`
sendCont . Iconphoto = v . IconPhoto //iconphoto"`
sendContList = append ( sendContList , sendCont )
}
overallhandle . Result ( 0 , sendContList , c )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2023 - 06 - 05 11 : 53 : 21
@ 功能 :
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( o * OrganizationApi ) GovNewThreeIng ( c * gin . Context ) {
var requestData SearchOrgCont
c . ShouldBindJSON ( & requestData )
var orgContList [ ] hrmodels . OrgCont
gotmDb := overall . CONSTANT_DB_HR . Model ( & hrmodels . OrgCont { } ) . Where ( "state IN ?" , [ ] int { 1 , 2 } )
if requestData . KeyWords != "" {
gotmDb = gotmDb . Where ( "name LIKE ? OR number LIKE ?" , "%" + requestData . KeyWords + "%" , "%" + requestData . KeyWords + "%" )
}
if requestData . Class != 0 {
gotmDb = gotmDb . Where ( "organization_type = ?" , requestData . Class )
}
err := gotmDb . Find ( & orgContList ) . Error
if err != nil && len ( orgContList ) < 1 {
overallhandle . Result ( 107 , err , c )
return
}
if requestData . KeyWords != "" || requestData . Class != 0 {
var govMap [ ] SendOrgTreeList
for i := 0 ; i < len ( orgContList ) ; i ++ {
var govCont SendOrgTreeList
govCont . Id = orgContList [ i ] . Id //
govCont . Number = orgContList [ i ] . Number //行政编码"`
govCont . Name = orgContList [ i ] . Name //组织名称"`
govCont . Superior = orgContList [ i ] . Superior //上级ID"`
govCont . OrganizationType = orgContList [ i ] . OrganizationType //行政组织类型"`
govCont . Abbreviation = orgContList [ i ] . Abbreviation //行政组织简称"`
govCont . Time = orgContList [ i ] . Time //创建时间"`
govCont . State = orgContList [ i ] . State //状态(1:启用;2:禁用;3:删除)"`
govCont . WechatOrganizationId = orgContList [ i ] . WechatOrganizationId //微信组织架构对照码"`
govCont . SuperiorSun = orgContList [ i ] . SuperiorSun //级联ID"`
govCont . Schoole = orgContList [ i ] . Schoole //原知行学院对照码"`
govCont . KingdeeId = orgContList [ i ] . KingdeeId //金蝶对照ID"`
govCont . IsPower = orgContList [ i ] . IsPower //是否为实权部门"`
govCont . Sort = orgContList [ i ] . Sort //排序"`
govCont . TypeName = orgContList [ i ] . TypeName //'类型名称"`
govCont . Level = orgContList [ i ] . Level //级别"`
if orgContList [ i ] . State == 1 {
govCont . Status = true
} else {
govCont . Status = false
}
govMap = append ( govMap , govCont )
}
overallhandle . Result ( 0 , govMap , c )
} else {
if requestData . OrgId == 0 {
requestData . OrgId = 313
}
govMapThree := GovOrgTree ( requestData . OrgId , orgContList )
overallhandle . Result ( 0 , govMapThree , c )
}
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2023 - 06 - 05 13 : 24 : 19
@ 功能 : 行政组织树
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func GovOrgTree ( parentId int64 , govList [ ] hrmodels . OrgCont ) ( govMap [ ] SendOrgTreeList ) {
for i := 0 ; i < len ( govList ) ; i ++ {
if govList [ i ] . Superior == parentId {
var govCont SendOrgTreeList
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
}
// 添加行政组织
func ( o * OrganizationApi ) NewAddGovCont ( c * gin . Context ) {
var requestData addGovInfoNew
err := c . ShouldBindJSON ( & requestData )
if err != nil {
overallhandle . Result ( 100 , err , c )
return
}
if requestData . Name == "" {
overallhandle . Result ( 101 , requestData . Name , c , "行政组织名称为空!" )
return
}
var superiorId int64 = 0
if requestData . Superior != "" {
superiorInt , _ := strconv . ParseInt ( requestData . Superior , 10 , 64 )
superiorId = superiorInt
} else {
overallhandle . Result ( 101 , requestData . Superior , c , "请指定归属上级!" )
return
}
var govClassId int64 = 0
if requestData . GovClass == "" {
overallhandle . Result ( 101 , requestData . GovClass , c , "请指定归属行政组织类型!" )
return
} else {
govClassIdInt , _ := strconv . ParseInt ( requestData . GovClass , 10 , 64 )
govClassId = govClassIdInt
}
var wechatIdVal int64 = 0
if requestData . WechatId != "" {
wechatIdVal , _ = strconv . ParseInt ( requestData . WechatId , 10 , 64 )
// requestData.WechatId = 1
}
var name string
judgeErr := overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganization { } ) . Select ( "`name`" ) . Where ( "`organization_type` IN ? AND `name` = ?" , [ ] int { 1 , 2 } , requestData . Name ) . First ( & name ) . Error
if judgeErr == nil {
overallhandle . Result ( 103 , name , c )
return
}
var saveData models . AdministrativeOrganization
saveData . Name = requestData . Name
saveData . Superior = superiorId
saveData . OrganizationType = govClassId
saveData . Abbreviation = requestData . Abbreviation
saveData . Time = time . Now ( ) . Unix ( )
saveData . State = 1
// saveData.WechatOrganizationId = int64(requestData.WechatId)
saveData . WechatOrganizationId = wechatIdVal
if requestData . Number != "" {
saveData . Number = requestData . Number
} else {
//获取首字母
govFirstWords := overallhandle . GetGovFirstWords ( requestData . Name , requestData . Abbreviation , requestData . GovClass , requestData . Superior )
saveData . Number = overallhandle . CreateNumber ( govFirstWords , requestData . Superior )
}
saveErr := overall . CONSTANT_DB_HR . Create ( & saveData ) . Error
if saveErr == nil {
overallhandle . Result ( 0 , saveData , c )
} else {
overallhandle . Result ( 104 , saveErr , c )
}
}
// 编辑行政组织
func ( o * OrganizationApi ) NewEiteGovCont ( c * gin . Context ) {
var requestData NewEiteGovInfo
err := c . ShouldBindJSON ( & requestData )
if err != nil {
overallhandle . Result ( 100 , err , c )
return
}
if requestData . Id == 0 {
overallhandle . Result ( 101 , err , c , "行政类别Id不能为空!" )
return
}
whereAry := overallhandle . MapOut ( )
whereAry [ "id" ] = requestData . Id
var govCont models . AdministrativeOrganization
judgeErr := govCont . GetCont ( whereAry )
if judgeErr != nil {
overallhandle . Result ( 107 , judgeErr , c )
return
}
saveData := overallhandle . MapOut ( )
saveData [ "time" ] = time . Now ( ) . Unix ( )
if requestData . Name != "" && requestData . Name != govCont . Name {
saveData [ "name" ] = requestData . Name
}
if requestData . Superior != "" && requestData . Superior != strconv . FormatInt ( govCont . Superior , 10 ) {
saveData [ "superior" ] = requestData . Superior
}
if requestData . GovClass != "" && requestData . GovClass != strconv . FormatInt ( govCont . OrganizationType , 10 ) {
saveData [ "organization_type" ] = requestData . GovClass
}
if requestData . Abbreviation != "" && requestData . Abbreviation != govCont . Abbreviation {
saveData [ "abbreviation" ] = requestData . Abbreviation
}
if requestData . WechatId != "" {
wechatIdInt , _ := strconv . ParseInt ( requestData . WechatId , 10 , 64 )
if wechatIdInt != govCont . WechatOrganizationId {
saveData [ "wechat_organization_id" ] = wechatIdInt
}
} else {
saveData [ "wechat_organization_id" ] = 0
}
if requestData . Number != "" && requestData . Number != govCont . Number {
if requestData . Superior != "" && requestData . Superior != strconv . FormatInt ( govCont . Superior , 10 ) {
//获取首字母
govFirstWords := overallhandle . GetGovFirstWords ( requestData . Name , requestData . Abbreviation , requestData . GovClass , requestData . Superior )
saveData [ "number" ] = overallhandle . CreateNumber ( govFirstWords , requestData . Superior )
} else if requestData . Superior != "" {
saveData [ "number" ] = requestData . Number
}
}
eiteErr := govCont . EiteCont ( whereAry , saveData )
if eiteErr != nil {
overallhandle . Result ( 106 , eiteErr , c )
} else {
overallhandle . Result ( 0 , saveData , c )
}
}
// 改变行政组织状态
func ( o * OrganizationApi ) NewEiteGovStateOrDel ( c * gin . Context ) {
var requestData DelOrgStatus
err := c . ShouldBindJSON ( & requestData )
if err != nil {
overallhandle . Result ( 100 , err , c )
return
}
if requestData . Id == 0 {
overallhandle . Result ( 1 , err , c , "未知行政组织!请检查!" )
return
}
if requestData . Status == 0 {
requestData . Status = 1
}
if requestData . IsTrue == 0 {
requestData . IsTrue = 2
}
where := overallhandle . MapOut ( )
where [ "`id`" ] = requestData . Id
var orgCont models . AdministrativeOrganization
err = orgCont . GetCont ( where , "`id`" , "`name`" , "`superior`" )
if err != nil {
overallhandle . Result ( 1 , err , c , "未知行政组织!请检查!" )
return
}
editCont := overallhandle . MapOut ( )
editCont [ "state" ] = requestData . Status
editCont [ "time" ] = time . Now ( ) . Unix ( )
if requestData . Status != 3 {
if requestData . Status == 1 {
//获取所有上级
var fatherOrg overallhandle . AllSunList [ int64 ]
fatherOrg . GetAllFatherOrg ( orgCont . Superior )
fatherOrg . SunList = append ( fatherOrg . SunList , orgCont . Id )
err = overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganization { } ) . Where ( "`id` IN ? AND state BETWEEN ? AND ?" , fatherOrg . SunList , 1 , 2 ) . Updates ( editCont ) . Error
if err != nil {
overallhandle . Result ( 106 , err , c )
return
}
} else {
//获取所有下级
var orgSun overallhandle . AllSunList [ int64 ]
orgSun . GetAllSunOrg ( orgCont . Id )
orgSun . SunList = append ( orgSun . SunList , orgCont . Id )
err = overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganization { } ) . Where ( "`id` IN ? AND state BETWEEN ? AND ?" , orgSun . SunList , 1 , 2 ) . Updates ( editCont ) . Error
if err != nil {
overallhandle . Result ( 106 , err , c )
return
}
}
} else {
if requestData . IsTrue == 1 {
//获取所有下级
var orgSun overallhandle . AllSunList [ int64 ]
orgSun . GetAllSunOrg ( orgCont . Id )
orgSun . SunList = append ( orgSun . SunList , orgCont . Id )
var curryMan int64
overall . CONSTANT_DB_HR . Model ( & models . PersonArchives { } ) . Select ( "`id`" ) . Where ( "admin_org IN ?" , orgSun . SunList ) . Count ( & curryMan )
if curryMan > 0 {
if requestData . Status == 1 {
var fatherOrg overallhandle . AllSunList [ int64 ]
fatherOrg . GetAllFatherOrg ( orgCont . Superior )
fatherOrg . SunList = append ( fatherOrg . SunList , orgCont . Id )
err = overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganization { } ) . Where ( "`id` IN ? AND state BETWEEN ? AND ?" , fatherOrg . SunList , 1 , 2 ) . Updates ( editCont ) . Error
if err != nil {
overallhandle . Result ( 106 , err , c )
return
}
} else {
err = overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganization { } ) . Where ( "`id` IN ? AND state BETWEEN ? AND ?" , orgSun . SunList , 1 , 2 ) . Updates ( editCont ) . Error
if err != nil {
overallhandle . Result ( 106 , err , c )
return
}
}
} else {
err = overall . CONSTANT_DB_HR . Where ( "`id` IN ?" , orgSun . SunList ) . Delete ( & models . AdministrativeOrganization { } ) . Error
if err != nil {
overallhandle . Result ( 106 , err , c )
return
}
}
} else {
if requestData . Status == 1 {
var fatherOrg overallhandle . AllSunList [ int64 ]
fatherOrg . GetAllFatherOrg ( orgCont . Superior )
fatherOrg . SunList = append ( fatherOrg . SunList , orgCont . Id )
err = overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganization { } ) . Where ( "`id` IN ? AND state BETWEEN ? AND ?" , fatherOrg . SunList , 1 , 2 ) . Updates ( editCont ) . Error
if err != nil {
overallhandle . Result ( 106 , err , c )
return
}
} else {
//获取所有下级
var orgSun overallhandle . AllSunList [ int64 ]
orgSun . GetAllSunOrg ( orgCont . Id )
orgSun . SunList = append ( orgSun . SunList , orgCont . Id )
err = overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganization { } ) . Where ( "`id` IN ? AND state BETWEEN ? AND ?" , orgSun . SunList , 1 , 2 ) . Updates ( editCont ) . Error
if err != nil {
overallhandle . Result ( 106 , err , c )
return
}
}
}
}
overallhandle . Result ( 0 , err , c )
}