@ -1,6 +1,7 @@
package dutyassess
package dutyassess
import (
import (
"encoding/json"
"strconv"
"strconv"
"strings"
"strings"
"time"
"time"
@ -437,3 +438,323 @@ func (d *DutyAssessApi) EiteSunTargetName(c *gin.Context) {
}
}
response . Result ( 0 , err , "数据处理成功" , c )
response . Result ( 0 , err , "数据处理成功" , c )
}
}
//删除定性考核指标
func ( d * DutyAssessApi ) DelDutyTarget ( c * gin . Context ) {
var requestData QualEvalArrt
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "数据获取失败!" , c )
return
}
if requestData . Id == "" {
response . Result ( 102 , err , "参数错误!请重新提交!" , c )
return
}
eiteCont := commonus . MapOut ( )
eiteCont [ "qe_eitetime" ] = time . Now ( ) . Unix ( )
eiteCont [ "qe_state" ] = 3
errEiteCont := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeEvaluation { } ) . Where ( "`qe_target` = ?" , requestData . Id ) . Updates ( & eiteCont ) . Error
if errEiteCont != nil {
response . Result ( 105 , errEiteCont , "删除失败!" , c )
return
}
response . Result ( 0 , err , "数据处理成功" , c )
}
//删除子栏目及附属指标详情
func ( d * DutyAssessApi ) DelSunTarDimeat ( c * gin . Context ) {
var requestData QualEvalArrt
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "数据获取失败!" , c )
return
}
if requestData . Id == "" {
response . Result ( 102 , err , "参数错误!请重新提交!" , c )
return
}
var qualId int64
errEiteQualGuiShuCont := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeTarget { } ) . Select ( "q_parent_id" ) . Where ( "`q_id` = ?" , requestData . Id ) . First ( & qualId ) . Error
if errEiteQualGuiShuCont != nil {
response . Result ( 103 , err , "参数错误!请重新提交!" , c )
return
}
eiteCont := commonus . MapOut ( )
eiteCont [ "qe_eitetime" ] = time . Now ( ) . Unix ( )
eiteCont [ "qe_state" ] = 3
errEiteCont := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeEvaluation { } ) . Where ( "`qe_target_sun` = ?" , requestData . Id ) . Updates ( & eiteCont ) . Error
if errEiteCont != nil {
response . Result ( 105 , errEiteCont , "删除失败!" , c )
return
}
eiteQualTar := commonus . MapOut ( )
eiteQualTar [ "q_time" ] = time . Now ( ) . Unix ( )
eiteQualTar [ "q_state" ] = 3
errEiteQualCont := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeTarget { } ) . Where ( "`q_id` = ?" , requestData . Id ) . Updates ( & eiteQualTar ) . Error
if errEiteQualCont == nil {
eiteQualTarDited := commonus . MapOut ( )
eiteQualTarDited [ "dt_time" ] = time . Now ( ) . Unix ( )
eiteQualTarDited [ "dt_state" ] = 3
global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . DetailedTarget { } ) . Where ( "`dt_parentid` = ? AND `dt_parentid_sun` = ?" , qualId , requestData . Id ) . Updates ( & eiteQualTarDited )
}
response . Result ( 0 , err , "数据处理成功" , c )
}
//添加 定性考核指标关系指定
func ( d * DutyAssessApi ) AddDutyRelation ( c * gin . Context ) {
var requestData AddQualEval
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "数据获取失败!" , c )
return
}
if requestData . Group == "" {
response . Result ( 102 , err , "请选择归属集团" , c )
return
}
if len ( requestData . AcceptDepartmentId ) <= 0 {
response . Result ( 103 , err , "请选择接受考核的部门!" , c )
return
}
// if requestData.Dimension == "" {
// response.Result(102, err, "请选择考核维度", c)
// return
// }
if requestData . Target == "" {
response . Result ( 104 , err , "请选择考核指标" , c )
return
}
if requestData . TargetSunTitle == "" {
response . Result ( 105 , err , "请输入栏目名称!" , c )
return
}
if len ( requestData . EvaluationList ) <= 0 {
response . Result ( 106 , err , "请添加测评详情!" , c )
return
}
//获取子目标情况
sunTargetCont , sunTargetErr := commonus . JudgeColumn ( requestData . Target , requestData . TargetSun , requestData . TargetSunTitle )
if sunTargetErr != true {
}
//将集团Id转化成整型
groupInt , groupIntErr := strconv . ParseInt ( requestData . Group , 10 , 64 )
if groupIntErr != nil {
groupInt = 1
}
//指标
targetInt , targetIntErr := strconv . ParseInt ( requestData . Target , 10 , 64 )
if targetIntErr != nil {
targetInt = 0
}
//维度
dimensionInt , departinIntErr := strconv . ParseInt ( requestData . Dimension , 10 , 64 )
if departinIntErr != nil {
dimensionInt = 0
}
if dimensionInt == 0 {
targetInfo , targetInfoErr := commonus . GetTargetInfo ( targetInt )
if targetInfoErr == true {
dimensionInt = targetInfo . Dimension
}
}
//关联集团部门考核维度
commonus . AddDepartDimension ( requestData . Group , strconv . FormatInt ( dimensionInt , 10 ) , requestData . Dimension , 1 )
//原指标细则
var oldId [ ] int64
global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . DetailedTarget { } ) . Select ( "`dt_id`" ) . Where ( "`dt_state` = 1 AND `dt_parentid` = ? AND `dt_parentid_sun` = ?" , requestData . Target , sunTargetCont . Id ) . Find ( & oldId )
//遍历指标细则
var targetContList [ ] DutyAssEssTarget
var newAddId [ ] int64
for _ , v := range requestData . EvaluationList {
detailedTargetInfo , dtiIsTrue := commonus . JudgeDetails ( requestData . Target , v . Title , v . Content , v . DetailedTarget , sunTargetCont . Id )
if dtiIsTrue == true {
if detailedTargetInfo . Id != 0 {
newAddId = append ( newAddId , detailedTargetInfo . Id )
var targetContInfo DutyAssEssTarget
targetContInfo . Id = detailedTargetInfo . Id
targetContInfo . Operator = v . Operator
targetContList = append ( targetContList , targetContInfo )
}
}
}
mergeMap := append ( oldId , newAddId ... ) //合并两个数组
var finalResultId [ ] int64 //最终结果
for _ , m_v := range mergeMap {
if commonus . IsItTrue ( m_v , finalResultId ) != true {
finalResultId = append ( finalResultId , m_v )
}
}
//组合写入数据
for _ , f_v := range finalResultId {
for _ , t_v := range targetContList {
if f_v != t_v . Id {
var targetContInfos DutyAssEssTarget
targetContInfos . Id = f_v
targetContList = append ( targetContList , targetContInfos )
}
}
}
//判断该集团指标子栏目是否存在
var arTaegetInfo assessmentmodel . Assesstarget
judgeARTErr := global . GVA_DB_Performanceappraisal . Where ( "`group` = ? AND `dimension` = ? AND `targetid` = ? AND `suntargetid` = ?" , groupInt , dimensionInt , targetInt , sunTargetCont . Id ) . First ( & arTaegetInfo ) . Error
if judgeARTErr == nil {
if arTaegetInfo . Content != "" {
var tarList [ ] DutyAssEssTarget
jsonErr := json . Unmarshal ( [ ] byte ( arTaegetInfo . Content ) , & tarList )
if jsonErr == nil {
for _ , tl_v := range tarList {
for _ , tcl_v := range targetContList {
if tl_v . Id != tcl_v . Id {
targetContList = append ( targetContList , tl_v )
}
}
}
}
}
eiteCont := commonus . MapOut ( )
eiteCont [ "departmentmap" ] = strings . Join ( requestData . AcceptDepartmentId , "," )
eiteCont [ "time" ] = time . Now ( ) . Unix ( )
jsonStr , jsonMErr := json . Marshal ( targetContList )
if jsonMErr == nil {
eiteCont [ "content" ] = string ( jsonStr )
}
eiteErr := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . Assesstarget { } ) . Where ( "`at_id` = ?" , arTaegetInfo . Id ) . Updates ( & eiteCont ) . Error
if eiteErr == nil {
response . Result ( 0 , err , "处理成功!" , c )
} else {
response . Result ( 107 , err , "请添加测评详情!" , c )
}
} else {
arTaegetInfo . Group = groupInt
arTaegetInfo . Departmentmap = strings . Join ( requestData . AcceptDepartmentId , "," )
arTaegetInfo . TargetId = targetInt
arTaegetInfo . SunTargetId = sunTargetCont . Id
arTaegetInfo . Dimension = dimensionInt
jsonStr , jsonMErr := json . Marshal ( targetContList )
if jsonMErr == nil {
arTaegetInfo . Content = string ( jsonStr )
}
arTaegetInfo . Time = time . Now ( ) . Unix ( )
addErr := global . GVA_DB_Performanceappraisal . Create ( & arTaegetInfo ) . Error
if addErr == nil {
response . Result ( 0 , err , "处理成功!" , c )
} else {
response . Result ( 107 , err , "请添加测评详情!" , c )
}
}
}
//获取定性考核指标关系指定列表
func ( d * DutyAssessApi ) GetDutyRelationList ( c * gin . Context ) {
var list [ ] assessmentmodel . Assesstarget
err := global . GVA_DB_Performanceappraisal . Find ( & list ) . Error
if err != nil {
response . Result ( 107 , err , "没有信息" , c )
return
}
var outList [ ] OutDutyListes
for _ , v := range list {
var outCont OutDutyListes
outCont . Id = strconv . FormatInt ( v . Id , 10 )
//指标信息
outCont . Target = strconv . FormatInt ( v . TargetId , 10 )
tarCont , _ := commonus . GetTargetInfo ( v . TargetId )
outCont . TargetName = tarCont . Title
//维度信息
dutyClassCont , _ := commonus . GetDutyClassInfo ( tarCont . Dimension )
outCont . Dimension = strconv . FormatInt ( tarCont . Dimension , 10 )
outCont . DimensionName = dutyClassCont . Title
outCont . Content = "" //指标说明
outCont . Unit = tarCont . Uniteing //单位"`
outCont . ReferenceScore = 0 //标准分值"`
outCont . Cycles = tarCont . Cycles //1:班;2:天;3:周;4:月;5:季度;6:年"`
outCont . CycleAttres = tarCont . CycleAttres //辅助计数"`
outCont . State = 1
outCont . DepartmentId , outCont . DepartmentAry = commonus . GetBranchDepartAry ( strings . Split ( v . Departmentmap , "," ) )
shenPiRen := strings . Split ( tarCont . Report , "," )
outCont . UserList = shenPiRen
for _ , v := range shenPiRen {
usCont , usErr := commonus . GetUserInfoPublic ( [ ] string { "worker_man.wm_number" , "worker_man_data.wmd_name" } , map [ string ] interface { } { "wm_key" : v } )
// GetWorkUser
if usErr == true {
var userCont QualEvalArrt
userCont . Id = v
userCont . Name = usCont . Name
outCont . UserListAry = append ( outCont . UserListAry , userCont )
}
}
outList = append ( outList , outCont )
}
response . Result ( 0 , outList , "查询完成!" , c )
}
//查看定性考核项目详情
func ( d * DutyAssessApi ) LookDutyTargetInfo ( c * gin . Context ) {
var requestData LookTargetContList
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "数据获取失败!" , c )
return
}
if requestData . Group == "" {
response . Result ( 102 , err , "参数错误!无法获取数据" , c )
return
}
if requestData . Dimension == "" {
response . Result ( 102 , err , "参数错误!无法获取数据" , c )
return
}
if requestData . TargetId == "" {
response . Result ( 102 , err , "参数错误!无法获取数据" , c )
return
}
var assessInfoList [ ] assessmentmodel . Assesstarget
assErr := global . GVA_DB_Performanceappraisal . Where ( "`group` = ? AND `dimension` = ? AND `targetid` = ?" , requestData . Group , requestData . Dimension , requestData . TargetId ) . Find ( & assessInfoList ) . Error
if assErr != nil {
response . Result ( 102 , assErr , "没有获取到数据!" , c )
return
}
var uotContAry [ ] TargetContOutCont
for _ , v := range assessInfoList {
var uotCont TargetContOutCont
uotCont . Type = 1
//集团
uotCont . Group = requestData . Group
_ , groupCont := commonus . GetGroupCont ( v . Group )
uotCont . GroupNAme = groupCont . Name
//执行部门
uotCont . DepartmentId = v . Departmentmap
_ , departInfoAry := commonus . GetBranchDepartAry ( strings . Split ( v . Departmentmap , "," ) )
var depNameMap [ ] string
for _ , sep_v := range departInfoAry {
depNameMap = append ( depNameMap , sep_v . Parentname )
}
uotCont . DepartmentName = strings . Join ( depNameMap , "," )
//维度
uotCont . Dimension = strconv . FormatInt ( v . Dimension , 10 )
dutyClassCont , _ := commonus . GetDutyClassInfo ( v . Dimension )
uotCont . DimensionName = dutyClassCont . Title
//指标
uotCont . Target = requestData . TargetId
targetInfo , _ := commonus . GetTargetInfo ( v . TargetId )
uotCont . TargetName = targetInfo . Title
//子栏目
uotCont . TargetSun = strconv . FormatInt ( v . SunTargetId , 10 )
info , _ := commonus . GetQualitativeTargetInfo ( v . SunTargetId )
uotCont . TargetSunName = info . Title
//拆解指标详情
// detailedList := json.Unmarshal()
uotContAry = append ( uotContAry , uotCont )
}
}