@ -653,3 +653,595 @@ func (a *ApiMethod) PostConfigListNews(c *gin.Context) {
}
}
publicmethod . Result ( 0 , outList , c )
publicmethod . Result ( 0 , outList , c )
}
}
// 岗位定量考核目标列表(新版)
func ( a * ApiMethod ) PeopleConfigList ( c * gin . Context ) {
var requestData SelectQuantitativeConfig
c . ShouldBindJSON ( & requestData )
// if err != nil {
// publicmethod.Result(1, err, c, "数据获取失败!")
// return
// }
// var qualConfigList []assessmentmodel.QuantitativeConfig
var qualConfigList [ ] modelskpi . QuanPeopleConfigTarget
// gormDb := overall.CONSTANT_DB_KPI.Model(&modelskpi.QuanPeopleConfigTarget{}).Distinct("`user_key`,`company_id`,`department_id`,`org_id`,`post_id`,`dimension`,`target`,`title`,`year`,`type`")
gormDb := overall . CONSTANT_DB_KPI . Model ( & modelskpi . QuanPeopleConfigTarget { } )
if requestData . GroupId != "" {
gormDb = gormDb . Where ( "`company_id` = ?" , requestData . GroupId )
}
if requestData . DepartmentID != "" {
gormDb = gormDb . Where ( "`org_id` = ?" , requestData . DepartmentID )
}
if requestData . PostId != "" {
gormDb = gormDb . Where ( "`post_id` = ?" , requestData . PostId )
}
if requestData . Dimension != "" {
gormDb = gormDb . Where ( "`dimension` = ?" , requestData . Dimension )
}
if requestData . Target != "" {
gormDb = gormDb . Where ( "`target` = ?" , requestData . Target )
}
if requestData . Year != 0 {
gormDb = gormDb . Where ( "`year` = ?" , requestData . Year )
}
if requestData . State != 0 {
gormDb = gormDb . Where ( "`state` = ?" , requestData . State )
} else {
gormDb = gormDb . Where ( "`state` = 1" )
}
if requestData . Type != 0 {
gormDb = gormDb . Where ( "`type` = ?" , requestData . Type )
}
if requestData . Title != "" {
gormDb = gormDb . Where ( "`title` LIKE ?" , "%" + requestData . Title + "%" )
}
if len ( requestData . UserKey ) > 0 {
gormDb = gormDb . Where ( "`user_key` IN ?" , requestData . UserKey )
}
// gormDb = gormDb.Order("group ASC,departmentid ASC,dimension ASC,target ASC,targetconfig ASC").Order("year DESC").Order("timecopy ASC,id ASC")
gormDb = gormDb . Order ( "`user_key` ASC" ) . Order ( "`company_id` ASC" ) . Order ( "`department_id` ASC" ) . Order ( "`org_id` ASC" ) . Order ( "`post_id` ASC" ) . Order ( "`dimension` ASC" ) . Order ( "`target` ASC" ) . Order ( "`year` DESC" )
contErr := gormDb . Find ( & qualConfigList ) . Error
if contErr != nil {
publicmethod . Result ( 1 , contErr , c , "没有数据!" )
return
}
var outList [ ] OutQuanPeopleConfig
for _ , v := range qualConfigList {
var outCont OutQuanPeopleConfig
outCont . Id = v . Id
outCont . Title = v . Title
outCont . CompanyId = v . CompanyId
outCont . DepartmentId = v . DepartmentId
outCont . OrgId = v . OrgId
outCont . PostId = v . PostId
outCont . Dimension = v . Dimension
outCont . Target = v . Target
outCont . Type = v . Type
outCont . Year = v . Year
outCont . Timecopy = v . Timecopy
outCont . Zeroprize = v . Zeroprize / 100
outCont . Allprize = v . Allprize / 100
outCont . Capping = v . Capping
outCont . CappingVal = v . CappingVal / 100
outCont . Time = v . Time
outCont . State = v . State
outCont . DimensionId = strconv . FormatInt ( v . Dimension , 10 )
var companyCont modelshr . AdministrativeOrganization
companyCont . GetCont ( map [ string ] interface { } { "`id`" : v . CompanyId } , "id" , "name" )
outCont . GroupTitle = companyCont . Name
var departmenCont modelshr . AdministrativeOrganization
departmenCont . GetCont ( map [ string ] interface { } { "`id`" : v . DepartmentId } , "id" , "name" )
outCont . DepartmentTitle = departmenCont . Name
var postCont modelshr . Position
postCont . GetCont ( map [ string ] interface { } { "`id`" : v . PostId } , "id" , "name" )
outCont . PostTitle = postCont . Name
var dimensionCont modelskpi . DutyClass
dimensionCont . GetCont ( map [ string ] interface { } { "`id`" : v . Dimension } , "id" , "title" )
outCont . DimensionTitle = dimensionCont . Title
outCont . TargetTitle = v . Title
// dErr, departmentInfo := commonus.GetBranchFactory(v.DepartmentId)
// if dErr == true {
// outCont.DimensionTitle = departmentInfo.Name
// }
// targetInfo, tErr := commonus.GetTargetInfo(v.Target)
// if tErr == true {
// outCont.TargetTitle = targetInfo.Title
// }
var manCont modelshr . PersonArchives
manCont . GetCont ( map [ string ] interface { } { "`key`" : v . UserKey } )
outCont . UserName = manCont . Name
outCont . MyKey = strconv . FormatInt ( v . UserKey , 10 )
outList = append ( outList , outCont )
}
publicmethod . Result ( 0 , outList , c )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2023 - 01 - 0 8 0 9 : 10 : 42
@ 功能 : 人员定量目标设定
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( a * ApiMethod ) SetEvaluationObjectivMan ( c * gin . Context ) {
var requestData SetEvaluationObjectivMan
err := c . ShouldBindJSON ( & requestData )
if err != nil {
publicmethod . Result ( 1 , err , c , "数据获取失败!" )
return
}
if requestData . Year == 0 {
publicmethod . Result ( 1 , err , c , "请填写年度" )
return
}
if len ( requestData . UserKey ) < 1 {
publicmethod . Result ( 1 , err , c , "请选择人员" )
return
}
if requestData . DepartMent == "" {
publicmethod . Result ( 1 , err , c , "请选择归属行政组织" )
return
}
if requestData . PostId == "" {
publicmethod . Result ( 1 , err , c , "请选择归属岗位" )
return
}
if requestData . Dimension == "" {
publicmethod . Result ( 1 , err , c , "请选择归属维度" )
return
}
if requestData . Target == "" {
publicmethod . Result ( 1 , err , c , "请选择归属指标" )
return
}
switch requestData . Cycle {
case 1 :
if len ( requestData . CycleAdded ) != 1 {
publicmethod . Result ( 1 , err , c , "年度只可填写一条!" )
return
}
case 2 :
if len ( requestData . CycleAdded ) > 4 {
publicmethod . Result ( 1 , err , c , "季度最多只可填写四条!" )
return
}
if len ( requestData . CycleAdded ) < 1 {
publicmethod . Result ( 1 , err , c , "季度至少填写一条!" )
return
}
case 3 :
if len ( requestData . CycleAdded ) > 12 {
publicmethod . Result ( 1 , err , c , "月度最多只可填写十二条!" )
return
}
if len ( requestData . CycleAdded ) < 1 {
publicmethod . Result ( 1 , err , c , "月度至少填写一条!" )
return
}
default :
publicmethod . Result ( 1 , err , c , "请选择周期" )
return
}
orgId , _ := strconv . ParseInt ( requestData . DepartMent , 10 , 64 )
_ , companyId , departmentId , _ , _ := publicmethod . GetOrgStructure ( orgId ) //公司部门
var timecopy [ ] int64
gromDb := overall . CONSTANT_DB_KPI . Model ( & modelskpi . QuanPeopleConfig { } ) . Select ( "timecopy" ) . Where ( "`group` = ? AND `org_id` = ? AND `post_id` = ? AND `dimension` = ? AND `target` = ? AND `year` = ? AND `user_key` IN ? " , companyId , requestData . DepartMent , requestData . PostId , requestData . Dimension , requestData . Target , requestData . Year , requestData . UserKey )
judgeErr := gromDb . Find ( & timecopy ) . Error
if judgeErr == nil {
if len ( timecopy ) > 0 {
publicmethod . Result ( 1 , judgeErr , c , "选中的人员已经设定目标值!不要重复添加!" )
return
}
}
var saveData [ ] modelskpi . QuanPeopleConfig
var eiteAddData [ ] int64
for _ , v := range requestData . CycleAdded {
if judgeErr != nil {
var saveDataCont modelskpi . QuanPeopleConfig
for _ , uv := range requestData . UserKey {
saveDataCont . CompanyId = companyId
saveDataCont . DepartmentId = departmentId
saveDataCont . OrgId = orgId //行政组织
postIdInt , _ := strconv . ParseInt ( requestData . PostId , 10 , 64 )
saveDataCont . PostId = postIdInt //岗位
dimensionId , _ := strconv . ParseInt ( requestData . Dimension , 10 , 64 )
saveDataCont . Dimension = dimensionId //维度
targetId , _ := strconv . ParseInt ( requestData . Target , 10 , 64 )
saveDataCont . Target = targetId //指标
saveDataCont . Type = int64 ( requestData . Cycle )
saveDataCont . Year = requestData . Year
saveDataCont . Timecopy = v . Id
if v . Zeroprize < 0 {
saveDataCont . Zeroprize = 0
} else {
saveDataCont . Zeroprize = v . Zeroprize * 100
}
if v . Allprize < 0 {
saveDataCont . Allprize = 0
} else {
saveDataCont . Allprize = v . Allprize * 100
}
if v . Capping > 0 {
saveDataCont . Capping = 1
saveDataCont . CappingVal = v . Capping * 100
} else {
saveDataCont . Capping = 2
saveDataCont . CappingVal = 0
}
saveDataCont . Time = time . Now ( ) . Unix ( )
saveDataCont . State = 1
userKeyInt , _ := strconv . ParseInt ( uv , 10 , 64 )
saveDataCont . UserKey = userKeyInt
saveData = append ( saveData , saveDataCont )
}
} else {
if len ( timecopy ) <= 0 {
var saveDataCont modelskpi . QuanPeopleConfig
// orgId, _ := strconv.ParseInt(requestData.DepartMent, 10, 64)
// _, saveDataCont.CompanyId, saveDataCont.DepartmentId, _, _ = publicmethod.GetOrgStructure(orgId) //公司部门
for _ , uv := range requestData . UserKey {
saveDataCont . CompanyId = companyId
saveDataCont . DepartmentId = departmentId
saveDataCont . OrgId = orgId //行政组织
postIdInt , _ := strconv . ParseInt ( requestData . PostId , 10 , 64 )
saveDataCont . PostId = postIdInt //岗位
dimensionId , _ := strconv . ParseInt ( requestData . Dimension , 10 , 64 )
saveDataCont . Dimension = dimensionId //维度
targetId , _ := strconv . ParseInt ( requestData . Target , 10 , 64 )
saveDataCont . Target = targetId //指标
saveDataCont . Type = int64 ( requestData . Cycle )
saveDataCont . Year = requestData . Year
saveDataCont . Timecopy = v . Id
if v . Zeroprize < 0 {
saveDataCont . Zeroprize = 0
} else {
saveDataCont . Zeroprize = v . Zeroprize * 100
}
if v . Allprize < 0 {
saveDataCont . Allprize = 0
} else {
saveDataCont . Allprize = v . Allprize * 100
}
if v . Capping > 0 {
saveDataCont . Capping = 1
saveDataCont . CappingVal = v . Capping * 100
} else {
saveDataCont . Capping = 2
saveDataCont . CappingVal = 0
}
saveDataCont . Time = time . Now ( ) . Unix ( )
saveDataCont . State = 1
userKeyInt , _ := strconv . ParseInt ( uv , 10 , 64 )
saveDataCont . UserKey = userKeyInt
saveData = append ( saveData , saveDataCont )
}
} else {
for _ , s_v := range timecopy {
if s_v != v . Id {
var saveDataCont modelskpi . QuanPeopleConfig
for _ , uv := range requestData . UserKey {
saveDataCont . CompanyId = companyId
saveDataCont . DepartmentId = departmentId
saveDataCont . OrgId = orgId //行政组织
postIdInt , _ := strconv . ParseInt ( requestData . PostId , 10 , 64 )
saveDataCont . PostId = postIdInt //岗位
dimensionId , _ := strconv . ParseInt ( requestData . Dimension , 10 , 64 )
saveDataCont . Dimension = dimensionId //维度
targetId , _ := strconv . ParseInt ( requestData . Target , 10 , 64 )
saveDataCont . Target = targetId //指标
saveDataCont . Type = int64 ( requestData . Cycle )
saveDataCont . Year = requestData . Year
saveDataCont . Timecopy = v . Id
if v . Zeroprize < 0 {
saveDataCont . Zeroprize = 0
} else {
saveDataCont . Zeroprize = v . Zeroprize * 100
}
if v . Allprize < 0 {
saveDataCont . Allprize = 0
} else {
saveDataCont . Allprize = v . Allprize * 100
}
if v . Capping > 0 {
saveDataCont . Capping = 1
saveDataCont . CappingVal = v . Capping * 100
} else {
saveDataCont . Capping = 2
saveDataCont . CappingVal = 0
}
saveDataCont . Time = time . Now ( ) . Unix ( )
saveDataCont . State = 1
userKeyInt , _ := strconv . ParseInt ( uv , 10 , 64 )
saveDataCont . UserKey = userKeyInt
saveData = append ( saveData , saveDataCont )
}
} else {
eiteDataMap := publicmethod . MapOut [ string ] ( )
eiteDataMap [ "type" ] = requestData . Cycle
eiteDataMap [ "timecopy" ] = v . Id
if v . Zeroprize < 0 {
eiteDataMap [ "zeroprize" ] = 0
} else {
eiteDataMap [ "zeroprize" ] = v . Zeroprize * 100
}
if v . Allprize < 0 {
eiteDataMap [ "allprize" ] = 0
} else {
eiteDataMap [ "allprize" ] = v . Allprize * 100
}
if v . Capping > 0 {
eiteDataMap [ "capping" ] = 1
eiteDataMap [ "capping_val" ] = v . Capping * 100
} else {
eiteDataMap [ "capping" ] = 2
eiteDataMap [ "capping_val" ] = 0
}
eiteDataMap [ "time" ] = time . Now ( ) . Unix ( )
for _ , uv := range requestData . UserKey {
gromDb := overall . CONSTANT_DB_KPI . Model ( & modelskpi . QuanPostConfig { } ) . Select ( "Timecopy" ) . Where ( "`company_id` = ? AND `org_id` = ? AND `post_id` = ? AND `dimension` = ? AND `target` = ? AND `year` = ? AND `type` = ? AND `user_key`" , companyId , requestData . DepartMent , requestData . PostId , requestData . Dimension , requestData . Target , requestData . Year , requestData . Cycle , uv )
gromDb . Updates ( eiteDataMap )
eiteAddData = append ( eiteAddData , 1 )
}
}
}
}
}
}
if len ( saveData ) <= 0 && len ( eiteAddData ) <= 0 {
publicmethod . Result ( 1 , err , c , "没有要添加的数据!" )
return
}
if len ( saveData ) > 0 {
saveErr := overall . CONSTANT_DB_KPI . Create ( & saveData ) . Error
if saveErr != nil {
publicmethod . Result ( 1 , err , c , "数据添加失败!" )
return
}
}
publicmethod . Result ( 0 , err , c )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2023 - 01 - 0 8 10 : 29 : 57
@ 功能 :
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( a * ApiMethod ) LookPeopleConfig ( c * gin . Context ) {
var requestData SelectQuantitativeConfigMan
err := c . ShouldBindJSON ( & requestData )
if err != nil {
publicmethod . Result ( 1 , err , c , "数据获取失败!" )
return
}
// var qualConfigList []assessmentmodel.QuantitativeConfig
var qualConfigList [ ] modelskpi . QuanPeopleConfigTarget
gormDb := overall . CONSTANT_DB_KPI
if requestData . GroupId != "" {
gormDb = gormDb . Where ( "`company_id` = ?" , requestData . GroupId )
}
if requestData . DepartmentID != "" {
gormDb = gormDb . Where ( "`department_id` = ?" , requestData . DepartmentID )
}
if requestData . OrgID != "" {
gormDb = gormDb . Where ( "`org_id` = ?" , requestData . OrgID )
}
if requestData . PostId != "" {
gormDb = gormDb . Where ( "`post_id` = ?" , requestData . PostId )
}
if requestData . Dimension != "" {
gormDb = gormDb . Where ( "`dimension` = ?" , requestData . Dimension )
}
if requestData . Target != "" {
gormDb = gormDb . Where ( "`target` = ?" , requestData . Target )
}
switch requestData . Type {
case 1 :
gormDb = gormDb . Where ( "`type` = ?" , requestData . Type )
case 2 :
gormDb = gormDb . Where ( "`type` = ?" , requestData . Type )
if requestData . Class != 0 {
gormDb = gormDb . Where ( "`timecopy` = ?" , requestData . Class )
}
case 3 :
gormDb = gormDb . Where ( "`type` = ?" , requestData . Type )
if requestData . Class != 0 {
gormDb = gormDb . Where ( "`timecopy` = ?" , requestData . Class )
}
default :
}
if requestData . Year != 0 {
gormDb = gormDb . Where ( "`year` = ?" , requestData . Year )
}
if requestData . State != 0 {
gormDb = gormDb . Where ( "`state` = ?" , requestData . State )
}
if requestData . UserKey != "" {
gormDb = gormDb . Where ( "`user_key` = ?" , requestData . UserKey )
}
if requestData . Title != "" {
gormDb = gormDb . Where ( "`title` LIKE ?" , "%" + requestData . Title + "%" )
}
// gormDb = gormDb.Order("group ASC,departmentid ASC,dimension ASC,target ASC,targetconfig ASC").Order("year DESC").Order("timecopy ASC,id ASC")
gormDb = gormDb . Order ( "`company_id` ASC" ) . Order ( "`department_id` ASC" ) . Order ( "`org_id` ASC" ) . Order ( "`dimension` ASC" ) . Order ( "`target` ASC" ) . Order ( "`year` DESC" ) . Order ( "`timecopy` ASC" ) . Order ( "`id` ASC" )
contErr := gormDb . Find ( & qualConfigList ) . Error
if contErr != nil {
publicmethod . Result ( 1 , err , c , "没有数据!" )
return
}
var outList [ ] OutQuanPeopleConfig
for _ , v := range qualConfigList {
var outCont OutQuanPeopleConfig
outCont . Id = v . Id
outCont . IdStr = strconv . FormatInt ( v . Id , 10 )
outCont . DepartmentId = v . DepartmentId
outCont . CompanyId = v . CompanyId
outCont . Dimension = v . Dimension
outCont . PostId = v . PostId
outCont . Target = v . Target
outCont . Type = v . Type
outCont . Year = v . Year
outCont . Timecopy = v . Timecopy
outCont . Zeroprize = v . Zeroprize / 100
outCont . Allprize = v . Allprize / 100
outCont . Time = v . Time
outCont . State = v . State
outCont . DimensionId = strconv . FormatInt ( v . Dimension , 10 )
var companyCont modelshr . AdministrativeOrganization
companyCont . GetCont ( map [ string ] interface { } { "`id`" : v . CompanyId } , "id" , "name" )
outCont . GroupTitle = companyCont . Name
var departmenCont modelshr . AdministrativeOrganization
departmenCont . GetCont ( map [ string ] interface { } { "`id`" : v . DepartmentId } , "id" , "name" )
outCont . DepartmentTitle = departmenCont . Name
var postCont modelshr . Position
postCont . GetCont ( map [ string ] interface { } { "`id`" : v . PostId } , "id" , "name" )
outCont . PostTitle = postCont . Name
var dimensionCont modelskpi . DutyClass
dimensionCont . GetCont ( map [ string ] interface { } { "`id`" : v . Dimension } , "id" , "title" )
outCont . DimensionTitle = dimensionCont . Title
outCont . TargetTitle = v . Title
outCont . Capping = v . Capping
outCont . CappingVal = v . CappingVal / 100
var manCont modelshr . PersonArchives
manCont . GetCont ( map [ string ] interface { } { "`key`" : v . UserKey } )
outCont . UserName = manCont . Name
outCont . MyKey = strconv . FormatInt ( v . UserKey , 10 )
outList = append ( outList , outCont )
}
publicmethod . Result ( 0 , outList , c )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2023 - 01 - 0 8 10 : 44 : 38
@ 功能 : 修改人员考核目标设置
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( a * ApiMethod ) EiteQuantitativeManConfig ( c * gin . Context ) {
var requestData [ ] EiteQuantConfig
err := c . ShouldBindJSON ( & requestData )
if err != nil {
publicmethod . Result ( 1 , err , c , "数据获取失败!" )
return
}
if len ( requestData ) < 1 {
publicmethod . Result ( 1 , err , c , "数据获取失败!" )
return
}
for _ , v := range requestData {
eiteCont := publicmethod . MapOut [ string ] ( )
eiteCont [ "allprize" ] = v . Allprize * 100
eiteCont [ "zeroprize" ] = v . Zeroprize * 100
eiteCont [ "capping_val" ] = v . Capping * 100
err = overall . CONSTANT_DB_KPI . Model ( & modelskpi . QuanPeopleConfig { } ) . Where ( "`id` = ?" , v . Id ) . Updates ( eiteCont ) . Error
}
if err != nil {
publicmethod . Result ( 104 , err , c )
} else {
publicmethod . Result ( 0 , err , c )
}
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2023 - 01 - 0 8 10 : 48 : 54
@ 功能 : 删除人员考核项目
@ 参数
#
@ 返回值
#
@ 方法原型
#
* /
func ( a * ApiMethod ) NewDelQuantitativeManConfig ( c * gin . Context ) {
var receivedValue newDelTargetManConfig
err := c . ShouldBindJSON ( & receivedValue )
if err != nil {
publicmethod . Result ( 100 , err , c )
return
}
if receivedValue . OrgID == "" || receivedValue . PostId == "" || receivedValue . Dimension == "" || receivedValue . Target == "" || receivedValue . Type == 0 || receivedValue . Year == 0 || receivedValue . UserKey == "" {
publicmethod . Result ( 101 , receivedValue , c , "数据获取失败!" )
return
}
err = overall . CONSTANT_DB_KPI . Where ( "`org_id` = ? AND `post_id` = ? AND `dimension` = ? AND `target` = ? AND `type` = ? AND `year` = ? AND `user_key` = ?" , receivedValue . OrgID , receivedValue . PostId , receivedValue . Dimension , receivedValue . Target , receivedValue . Type , receivedValue . Year , receivedValue . UserKey ) . Delete ( & modelskpi . QuanPostConfig { } ) . Error
if err != nil {
publicmethod . Result ( 108 , err , c )
} else {
publicmethod . Result ( 0 , err , c )
}
}