@ -29,13 +29,22 @@ func (o *OrganizationApi) PositionList(c *gin.Context) {
gormDb = gormDb . Where ( "p.name LIKE ?" , "%" + requestData . Name + "%" )
gormDb = gormDb . Where ( "p.name LIKE ?" , "%" + requestData . Name + "%" )
}
}
if requestData . Number != "" {
if requestData . Number != "" {
gormDb = gormDb . Where ( "p.number = ?" , requestData . Number )
gormDb = gormDb . Where ( "p.number LIKE ?" , "%" + requestData . Number + "%" )
}
}
if requestData . Duties != "" {
if requestData . Duties != "" {
gormDb = gormDb . Where ( "p.duties = ?" , requestData . Duties )
gormDb = gormDb . Where ( "p.duties = ?" , requestData . Duties )
}
}
if requestData . Organization != "" {
if requestData . Organization != "" {
gormDb = gormDb . Where ( "p.administrative_organization = ?" , requestData . Organization )
orgIdInt , _ := strconv . ParseInt ( requestData . Organization , 10 , 64 )
// orgIdList := overallhandle.GetDepartmentSun(orgIdInt, []int64{})
// orgIdList = append(orgIdList, orgIdInt)
// gormDb = gormDb.Where("p.administrative_organization IN ?", orgIdList)
// fmt.Printf("所有子集--->%v\n", orgIdList)
var sunAry overallhandle . AllSunList [ int64 ]
sunAry . GetAllSunOrg ( orgIdInt )
sunAry . SunList = append ( sunAry . SunList , orgIdInt )
gormDb = gormDb . Where ( "p.administrative_organization IN ?" , sunAry . SunList )
}
}
if requestData . InCharge != 0 {
if requestData . InCharge != 0 {
gormDb = gormDb . Where ( "p.person_in_charge = ?" , requestData . InCharge )
gormDb = gormDb . Where ( "p.person_in_charge = ?" , requestData . InCharge )
@ -50,7 +59,8 @@ func (o *OrganizationApi) PositionList(c *gin.Context) {
total = 0
total = 0
}
}
var positionAry [ ] positionOutInfo
var positionAry [ ] positionOutInfo
errGorm := gormDb . Order ( "p.department DESC,p.duties DESC,p.duties ASC" ) . Limit ( requestData . PageSize ) . Offset ( overallhandle . LimitPage ( requestData . Page , requestData . PageSize ) ) . Find ( & positionAry ) . Error
// errGorm := gormDb.Order("p.department DESC,p.duties DESC,p.duties ASC").Limit(requestData.PageSize).Offset(overallhandle.LimitPage(requestData.Page, requestData.PageSize)).Find(&positionAry).Error
errGorm := gormDb . Order ( "p.id DESC" ) . Limit ( requestData . PageSize ) . Offset ( overallhandle . LimitPage ( requestData . Page , requestData . PageSize ) ) . Find ( & positionAry ) . Error
for i , v := range positionAry {
for i , v := range positionAry {
var getSpur models . Position
var getSpur models . Position
getWhe := overallhandle . MapOut ( )
getWhe := overallhandle . MapOut ( )
@ -185,6 +195,26 @@ func (o *OrganizationApi) GetPositionCont(c *gin.Context) {
getSpur . GetCont ( getWhe , "number" , "name" )
getSpur . GetCont ( getWhe , "number" , "name" )
postCont . SuperiorNumber = getSpur . Number
postCont . SuperiorNumber = getSpur . Number
postCont . SuperiorName = getSpur . Name
postCont . SuperiorName = getSpur . Name
if postCont . OrgList != "" {
json . Unmarshal ( [ ] byte ( postCont . OrgList ) , postCont . OrgListAry )
} else {
groupId , companyId , departmentId , sunDepartId , workShopId := overallhandle . GetOrgStructure ( postCont . AdministrativeOrganization )
if groupId != 0 && overallhandle . IsInTrue [ int64 ] ( groupId , postCont . OrgListAry ) == false {
postCont . OrgListAry = append ( postCont . OrgListAry , groupId )
}
if companyId != 0 && overallhandle . IsInTrue [ int64 ] ( companyId , postCont . OrgListAry ) == false {
postCont . OrgListAry = append ( postCont . OrgListAry , companyId )
}
if departmentId != 0 && overallhandle . IsInTrue [ int64 ] ( departmentId , postCont . OrgListAry ) == false {
postCont . OrgListAry = append ( postCont . OrgListAry , departmentId )
}
if sunDepartId != 0 && overallhandle . IsInTrue [ int64 ] ( sunDepartId , postCont . OrgListAry ) == false {
postCont . OrgListAry = append ( postCont . OrgListAry , sunDepartId )
}
if workShopId != 0 && overallhandle . IsInTrue [ int64 ] ( workShopId , postCont . OrgListAry ) == false {
postCont . OrgListAry = append ( postCont . OrgListAry , workShopId )
}
}
overallhandle . Result ( 0 , postCont , c )
overallhandle . Result ( 0 , postCont , c )
}
}
@ -431,3 +461,240 @@ func MenuOperation(jurisd int, menuId int64) (isTrue bool, operation []models.Me
}
}
return
return
}
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2022 - 11 - 22 0 8 : 40 : 38
@ 功能 : 根据行政组织获取岗位
@ 参数
# requestData 行政组织数组
@ 返回值
#
@ 方法原型
# func ( o * OrganizationApi ) BasisOrgGetPostList ( c * gin . Context )
* /
func ( o * OrganizationApi ) BasisOrgGetPostList ( c * gin . Context ) {
var requestData OrgGivePost
err := c . ShouldBindJSON ( & requestData )
if err != nil || len ( requestData . Id ) < 1 {
overallhandle . Result ( 100 , requestData , c )
return
}
orgList := [ ] int64 { 312 , 313 }
groupId , companyId , departmentId , _ , _ := overallhandle . GetOrgStructure ( requestData . Id [ len ( requestData . Id ) - 1 ] )
fmt . Printf ( "空间看到----->%v----->%v----->%v\n" , groupId , companyId , departmentId )
if overallhandle . IsInTrue [ int64 ] ( groupId , orgList ) == false {
orgList = append ( orgList , groupId )
}
if overallhandle . IsInTrue [ int64 ] ( companyId , orgList ) == false {
orgList = append ( orgList , companyId )
}
var postList [ ] models . Position
err = overall . CONSTANT_DB_HR . Model ( & models . Position { } ) . Where ( "`state` = 1 AND `administrative_organization` IN ?" , orgList ) . Or ( "`department` = ?" , departmentId ) . Order ( "person_in_charge ASC" ) . Find ( & postList ) . Error
if err != nil {
overallhandle . Result ( 107 , err , c )
return
}
overallhandle . Result ( 0 , postList , c )
}
/ * *
@ 作者 : 秦东
@ 时间 : 2022 - 11 - 22 10 : 04 : 48
@ 功能 : 添加职位 ( 岗位 ) 新版
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
//
func ( o * OrganizationApi ) AddPositionContNew ( c * gin . Context ) {
var requestData addPositionInfoNew
err := c . ShouldBindJSON ( & requestData )
if err != nil {
overallhandle . Result ( 100 , err , c )
return
}
if requestData . Number == "" {
overallhandle . Result ( 101 , requestData . Number , c , "职位编码不能为空!" )
return
}
if requestData . Name == "" {
overallhandle . Result ( 101 , requestData . Name , c , "职位名称不能为空!" )
return
}
if requestData . Duties == 0 {
overallhandle . Result ( 101 , requestData . Duties , c , "请指定该职位的职务!" )
return
}
if len ( requestData . Organization ) < 1 {
overallhandle . Result ( 101 , requestData . Organization , c , "请指定该职位归属的行政组织!" )
return
}
orgListJson , _ := json . Marshal ( requestData . Organization )
if requestData . InCharge == 0 {
requestData . InCharge = 2
}
var positionCont models . Position
//判断编号是否已经存在
isNumExit := overallhandle . MapOut ( )
isNumExit [ "number" ] = requestData . Number
judgeNumErr := positionCont . GetCont ( isNumExit )
if judgeNumErr == nil {
overallhandle . Result ( 101 , isNumExit , c , "该编号已经存在!请不要重复使用!" )
return
}
organizationId := requestData . Organization [ len ( requestData . Organization ) - 1 ]
_ , companyId , departmentId , _ , _ := overallhandle . GetOrgStructure ( organizationId )
if departmentId == 0 {
departmentId = companyId
}
//判断岗位名称是否已经存在
isExit := overallhandle . MapOut ( )
isExit [ "department" ] = departmentId
isExit [ "name" ] = requestData . Name
isExit [ "administrative_organization" ] = organizationId
judgeErr := positionCont . GetCont ( isExit )
if judgeErr == nil {
overallhandle . Result ( 101 , isExit , c , "该职位在本行政组织下已经存在!请不要重复添加" )
return
}
positionCont . Number = requestData . Number
positionCont . Name = requestData . Name
positionCont . Duties = requestData . Duties
positionCont . AdministrativeOrganization = organizationId
positionCont . Superior = requestData . Superior
positionCont . PersonInCharge = requestData . InCharge
positionCont . Department = departmentId
positionCont . State = 1
positionCont . Time = time . Now ( ) . Unix ( )
positionCont . OrgList = string ( orgListJson )
addDataErr := overall . CONSTANT_DB_HR . Create ( & positionCont ) . Error
if addDataErr != nil {
overallhandle . Result ( 104 , addDataErr , c )
} else {
overallhandle . Result ( 0 , addDataErr , c )
}
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2022 - 11 - 23 0 8 : 44 : 11
@ 功能 : 编辑职位 ( 岗位 )
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( o * OrganizationApi ) EitePositionContNew ( c * gin . Context ) {
var requestData eitePositionInfoNes
err := c . ShouldBindJSON ( & requestData )
if err != nil {
overallhandle . Result ( 100 , err , c )
return
}
if requestData . Id == 0 && requestData . IdStr == "" {
overallhandle . Result ( 101 , err , c , "行政类别Id不能为空!" )
return
}
if len ( requestData . Organization ) < 1 {
overallhandle . Result ( 101 , requestData . Organization , c , "请指定该职位归属的行政组织!" )
return
}
if requestData . IdStr != "" {
idInt64 , _ := strconv . ParseInt ( requestData . IdStr , 10 , 64 )
requestData . Id = idInt64
}
whereAry := overallhandle . MapOut ( )
whereAry [ "id" ] = requestData . Id
var govCont models . Position
judgeErr := govCont . GetCont ( whereAry )
if judgeErr != nil {
overallhandle . Result ( 107 , judgeErr , c )
return
}
saveData := overallhandle . MapOut ( )
if requestData . Number != "" && requestData . Number != govCont . Number {
isNumExit := overallhandle . MapOut ( )
isNumExit [ "number" ] = requestData . Number
var govContNum models . Position
judgeNumErr := govContNum . GetCont ( isNumExit , "id" , "number" )
if judgeNumErr == nil {
overallhandle . Result ( 101 , isNumExit , c , "该编号已经存在!请不要重复使用!" )
return
}
saveData [ "number" ] = requestData . Number
}
organizationId := requestData . Organization [ len ( requestData . Organization ) - 1 ]
_ , companyId , departmentId , _ , _ := overallhandle . GetOrgStructure ( organizationId )
if departmentId == 0 {
departmentId = companyId
}
departIsTrue := false
if departmentId != 0 && departmentId != govCont . Department {
departIsTrue = true
orgListJson , _ := json . Marshal ( requestData . Organization )
saveData [ "department" ] = departmentId
saveData [ "orglist" ] = orgListJson
}
if requestData . Name != "" && requestData . Name != govCont . Name {
if departIsTrue == true {
//判断岗位名称是否已经存在
isExit := overallhandle . MapOut ( )
isExit [ "department" ] = departmentId
isExit [ "name" ] = requestData . Name
var govContName models . Position
judgeErr := govContName . GetCont ( isExit , "id" , "department" , "name" )
if judgeErr == nil {
overallhandle . Result ( 101 , isExit , c , "该职位在本部门下已经存在!请不要重复添加" )
return
}
}
saveData [ "name" ] = requestData . Name
}
if requestData . Duties != 0 && requestData . Duties != govCont . Duties {
saveData [ "duties" ] = requestData . Duties
}
if organizationId != 0 && organizationId != govCont . AdministrativeOrganization {
saveData [ "administrative_organization" ] = organizationId
}
if requestData . Superior != 0 && requestData . Superior != govCont . Superior {
saveData [ "superior" ] = requestData . Superior
}
if requestData . InCharge != 0 {
saveData [ "person_in_charge" ] = requestData . InCharge
}
if len ( saveData ) < 1 {
overallhandle . Result ( 0 , saveData , c )
return
}
saveData [ "time" ] = time . Now ( ) . Unix ( )
eiteErr := govCont . EiteCont ( whereAry , saveData )
if eiteErr != nil {
overallhandle . Result ( 106 , eiteErr , c )
} else {
overallhandle . Result ( 0 , saveData , c )
}
}