package administrativeorganization
import (
"hr_server/models"
"hr_server/overall"
"hr_server/overall/overallhandle"
"strconv"
"time"
"github.com/gin-gonic/gin"
)
/ *
*
@ 作者 : 秦东
@ 时间 : 2023 - 06 - 05 15 : 26 : 31
@ 功能 : 获取所有行政组织类型
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( o * OrganizationApi ) GovClassAllList ( c * gin . Context ) {
var requestData overallhandle . NameOverall
c . ShouldBindJSON ( & requestData )
var govClassMap [ ] models . AdministrativeOrganizationType
gormDb := overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganizationType { } ) . Where ( "state IN ?" , [ ] int { 1 , 2 } )
if requestData . Name != "" {
gormDb = gormDb . Where ( "name LIKE ?" , "%" + requestData . Name + "%" )
}
err := gormDb . Find ( & govClassMap ) . Error
if err != nil {
overallhandle . Result ( 107 , err , c )
return
}
var sendOrgTypesList [ ] SendOrgTypes
for _ , v := range govClassMap {
var sendOrgTypesCont SendOrgTypes
sendOrgTypesCont . Id = v . Id //
sendOrgTypesCont . Name = v . Name //类型名称"`
sendOrgTypesCont . Time = v . Time //创建时间"`
sendOrgTypesCont . State = v . State //状态(1:启用;2:禁用;3:删除)"`
sendOrgTypesCont . Level = v . Level //级别"`
sendOrgTypesCont . KingdeeId = v . KingdeeId //金蝶对照ID"`
if v . State == 1 {
sendOrgTypesCont . Status = true
} else {
sendOrgTypesCont . Status = false
}
sendOrgTypesList = append ( sendOrgTypesList , sendOrgTypesCont )
}
overallhandle . Result ( 0 , sendOrgTypesList , c )
}
// 行政类型
func ( o * OrganizationApi ) GovClassList ( c * gin . Context ) {
var requestData selectNameOrState
c . ShouldBindJSON ( & requestData )
if requestData . Page < 0 {
requestData . Page = 1
}
if requestData . PageSize < 0 {
requestData . PageSize = 10
}
var govClassMap [ ] models . AdministrativeOrganizationType
gormDb := overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganizationType { } )
if requestData . State != 0 {
gormDb = gormDb . Where ( "state = ?" , requestData . State )
} else {
gormDb = gormDb . Where ( "state IN ?" , [ ] int { 1 , 2 } )
}
if requestData . Name != "" {
gormDb = gormDb . Where ( "name LIKE ?" , "%" + requestData . Name + "%" )
}
if requestData . Level != 0 {
gormDb = gormDb . Where ( "`level` = ?" , requestData . Level )
}
var total int64
totalErr := gormDb . Count ( & total ) . Error
if totalErr != nil {
total = 0
}
errGorm := gormDb . Limit ( requestData . PageSize ) . Offset ( overallhandle . LimitPage ( requestData . Page , requestData . PageSize ) ) . Find ( & govClassMap ) . Error
if errGorm != nil {
overallhandle . Result ( 105 , errGorm , c )
} else {
var sendOrgTypesList [ ] SendOrgTypes
for _ , v := range govClassMap {
var sendOrgTypesCont SendOrgTypes
sendOrgTypesCont . Id = v . Id //
sendOrgTypesCont . Name = v . Name //类型名称"`
sendOrgTypesCont . Time = v . Time //创建时间"`
sendOrgTypesCont . State = v . State //状态(1:启用;2:禁用;3:删除)"`
sendOrgTypesCont . Level = v . Level //级别"`
sendOrgTypesCont . KingdeeId = v . KingdeeId //金蝶对照ID"`
if v . State == 1 {
sendOrgTypesCont . Status = true
} else {
sendOrgTypesCont . Status = false
}
sendOrgTypesList = append ( sendOrgTypesList , sendOrgTypesCont )
}
overallhandle . ResultList ( 0 , requestData . Page , requestData . PageSize , total , int64 ( len ( sendOrgTypesList ) ) , sendOrgTypesList , c )
}
}
// 添加行政组织类别
func ( o * OrganizationApi ) AddGovClass ( c * gin . Context ) {
var requestData addGovClassInfo
err := c . ShouldBindJSON ( & requestData )
if err != nil {
overallhandle . Result ( 100 , err , c )
return
}
if requestData . Name == "" {
overallhandle . Result ( 101 , err , c , "行政组织类别名称为空!" )
return
}
if requestData . Level == 0 {
requestData . Level = 1
}
var name string
judgeErr := overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganizationType { } ) . Select ( "`name`" ) . Where ( "`name` = ?" , requestData . Name ) . First ( & name ) . Error
if judgeErr == nil {
overallhandle . Result ( 103 , name , c )
return
}
var saveData models . AdministrativeOrganizationType
saveData . Name = requestData . Name
saveData . Level = requestData . Level
saveData . Time = time . Now ( ) . Unix ( )
saveData . State = 1
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 ) GetGovClassCont ( c * gin . Context ) {
var requestData overallhandle . GetId
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 requestData . IdStr != "" {
idInt64 , _ := strconv . ParseInt ( requestData . IdStr , 10 , 64 )
requestData . Id = idInt64
}
var Contents models . AdministrativeOrganizationType
dbErr := overall . CONSTANT_DB_HR . Where ( "`id` = ?" , requestData . Id ) . First ( & Contents ) . Error
if dbErr != nil {
overallhandle . Result ( 105 , dbErr , c )
} else {
overallhandle . Result ( 0 , Contents , c )
}
}
// 修改行政组织类别详情
func ( o * OrganizationApi ) EiteGovClassCont ( c * gin . Context ) {
var requestData eiteGovClassInfo
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 requestData . IdStr != "" {
idInt64 , _ := strconv . ParseInt ( requestData . IdStr , 10 , 64 )
requestData . Id = idInt64
}
gormDb := overall . CONSTANT_DB_HR
var jobClassInfo models . AdministrativeOrganizationType
//判断职务类型是否存在
judgeExist := gormDb . Where ( "`id` = ?" , requestData . Id ) . First ( & jobClassInfo ) . Error
if judgeExist != nil {
overallhandle . Result ( 107 , judgeExist , c )
return
}
saveData := overallhandle . MapOut ( )
saveData [ "time" ] = time . Now ( ) . Unix ( )
if requestData . Name != "" {
if requestData . Name != jobClassInfo . Name {
//查询一下修改的职务名称是否已经存在
var name string
judgeErr := overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganizationType { } ) . Select ( "`name`" ) . Where ( "`name` = ?" , requestData . Name ) . First ( & name ) . Error
if judgeErr == nil {
overallhandle . Result ( 103 , name , c )
return
}
saveData [ "name" ] = requestData . Name
}
}
if requestData . Level != 0 {
saveData [ "level" ] = requestData . Level
}
whereMap := overallhandle . MapOut ( )
whereMap [ "id" ] = requestData . Id
eiteErr := jobClassInfo . EiteCont ( whereMap , saveData )
if eiteErr != nil {
overallhandle . Result ( 106 , eiteErr , c )
} else {
overallhandle . Result ( 0 , saveData , c )
}
}
// 修改行政类别状态或删除
func ( o * OrganizationApi ) EiteGovClassStateOrDel ( c * gin . Context ) {
var requestData EiteJobStateDel
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 requestData . IdStr != "" {
idInt64 , _ := strconv . ParseInt ( requestData . IdStr , 10 , 64 )
requestData . Id = idInt64
}
if requestData . State == 0 {
requestData . State = 1
}
var jobClassInfo models . AdministrativeOrganizationType
//判断职务类型是否存在
judgeExist := overall . CONSTANT_DB_HR . Where ( "`id` = ?" , requestData . Id ) . First ( & jobClassInfo ) . Error
if judgeExist != nil {
overallhandle . Result ( 107 , judgeExist , c )
return
}
saveData := overallhandle . MapOut ( )
saveData [ "time" ] = time . Now ( ) . Unix ( )
saveData [ "state" ] = requestData . State
whereMap := overallhandle . MapOut ( )
whereMap [ "id" ] = requestData . Id
if requestData . State != 3 {
eiteErr := jobClassInfo . EiteCont ( whereMap , saveData )
if eiteErr != nil {
overallhandle . Result ( 106 , eiteErr , c )
} else {
overallhandle . Result ( 0 , saveData , c )
}
} else {
if requestData . IsTrue != 1 {
//软删除
eiteErr := jobClassInfo . EiteCont ( whereMap , saveData )
if eiteErr != nil {
overallhandle . Result ( 106 , eiteErr , c )
} else {
overallhandle . Result ( 0 , saveData , c )
}
} else {
//硬删除
delErr := overall . CONSTANT_DB_HR . Where ( "`id` = ?" , requestData . Id ) . Delete ( & jobClassInfo )
if delErr == nil {
overallhandle . Result ( 0 , saveData , c )
} else {
overallhandle . Result ( 108 , delErr , c )
}
}
}
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2023 - 06 - 05 10 : 37 : 05
@ 功能 : 批量编辑组织分类状态或删除
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( o * OrganizationApi ) BaseEditOrgClassStatus ( c * gin . Context ) {
var requestData BaseOrgTypesState
err := c . ShouldBindJSON ( & requestData )
if err != nil {
overallhandle . Result ( 100 , err , c )
return
}
if len ( requestData . Id ) < 1 {
overallhandle . Result ( 1 , err , c , "未知操作项!" )
return
}
if requestData . Status == 0 {
requestData . Status = 1
}
if requestData . IsTrue == 0 {
requestData . IsTrue = 2
}
saveData := overallhandle . MapOut ( )
saveData [ "time" ] = time . Now ( ) . Unix ( )
saveData [ "state" ] = requestData . Status
if requestData . Status != 3 {
err = overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganizationType { } ) . Where ( "`id` IN ?" , requestData . Id ) . Updates ( saveData ) . Error
if err != nil {
overallhandle . Result ( 106 , err , c )
return
} else {
overallhandle . Result ( 0 , err , c )
}
} else {
if requestData . Status != 3 {
err = overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganizationType { } ) . Where ( "`id` IN ?" , requestData . Id ) . Updates ( saveData ) . Error
if err != nil {
overallhandle . Result ( 106 , err , c )
return
}
} else {
var useOrgCalssCount int64
err = overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganization { } ) . Select ( "`id`" ) . Where ( "`organization_type` IN ?" , requestData . Id ) . Count ( & useOrgCalssCount ) . Error
if err == nil && useOrgCalssCount > 0 {
err = overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganizationType { } ) . Where ( "`id` IN ?" , requestData . Id ) . Updates ( saveData ) . Error
if err != nil {
overallhandle . Result ( 106 , err , c )
return
} else {
overallhandle . Result ( 0 , err , c )
}
} else {
if requestData . IsTrue == 1 {
//硬删除
err = overall . CONSTANT_DB_HR . Where ( "`id` IN ?" , requestData . Id ) . Delete ( & models . AdministrativeOrganizationType { } ) . Error
if err == nil {
overallhandle . Result ( 0 , err , c )
} else {
overallhandle . Result ( 108 , err , c )
}
} else {
err = overall . CONSTANT_DB_HR . Model ( & models . AdministrativeOrganizationType { } ) . Where ( "`id` IN ?" , requestData . Id ) . Updates ( saveData ) . Error
if err != nil {
overallhandle . Result ( 106 , err , c )
return
} else {
overallhandle . Result ( 0 , err , c )
}
}
}
}
}
}