package dutyassess
import (
"encoding/json"
"fmt"
"strconv"
"strings"
"time"
"gin_server_admin/commonus"
"gin_server_admin/global"
"gin_server_admin/model/assessmentmodel"
"gin_server_admin/model/common/response"
"github.com/gin-gonic/gin"
)
// 获取定性考核指标列表(下拉列表)
func ( d * DutyAssessApi ) SelectDutyList ( c * gin . Context ) {
var evalTargetList [ ] assessmentmodel . EvaluationTarget
err := global . GVA_DB_Performanceappraisal . Where ( "`et_type` = 1 AND `et_state` = 1" ) . Find ( & evalTargetList ) . Error
if err != nil {
response . Result ( 101 , err , "没有数据!" , c )
return
}
var listAry [ ] DutySelectList
for _ , v := range evalTargetList {
var cont DutySelectList
cont . Id = v . Id
cont . Title = v . Title
cont . Type = v . Type
cont . State = v . State
cont . AddTime = v . AddTime
cont . Share = v . Share
cont . RelevantDepartments = v . RelevantDepartments
cont . Dimension = v . Dimension
cont . Key = v . Key
cont . Report = v . Report
cont . Uniteing = v . Uniteing
cont . Cycles = v . Cycles
cont . CycleAttres = v . CycleAttres
cont . VisibleRange = v . VisibleRange
cont . VisibleRangeGroup = v . VisibleRangeGroup
cont . DepartmentList = strings . Split ( v . RelevantDepartments , "," )
listAry = append ( listAry , cont )
}
response . Result ( 0 , listAry , "查询完成!" , c )
}
// 定性考核列表(部门方案用的)
func ( d * DutyAssessApi ) DutyDepartmentList ( c * gin . Context ) {
var requestData getDepartAssObtains
err := c . ShouldBindJSON ( & requestData )
if err != nil {
// response.Result(101, err, "参数错误!请重新提交!", c)
// return
}
var targetId [ ] int64
gormDb := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeEvaluation { } ) . Select ( "qe_target" )
if requestData . DepartID != "" {
gormDb = gormDb . Where ( "`qe_accept_evaluation` = ?" , requestData . DepartID )
}
gormDb = gormDb . Where ( "`qe_state` = 1 AND `qe_type` = 1" )
listTargetErr := gormDb . Group ( "qe_target" ) . Find ( & targetId ) . Error
if listTargetErr != nil {
response . Result ( 101 , listTargetErr , "没有数据!" , c )
return
}
var targetList [ ] OutDutyList
for _ , v := range targetId {
var targetCont OutDutyList
targetCont . Id = strconv . FormatInt ( v , 10 )
tarCont , _ := commonus . GetTargetInfo ( v )
targetCont . Target = strconv . FormatInt ( v , 10 ) //指标ID
targetCont . TargetName = tarCont . Title //指标名称
targetCont . Dimension = strconv . FormatInt ( tarCont . Dimension , 10 ) //维度ID
dutyClassCont , dutyClassErr := commonus . GetDutyClassInfo ( tarCont . Dimension )
if dutyClassErr == true {
targetCont . DimensionName = dutyClassCont . Title //维度名称
}
targetCont . Content = "" //指标说明
targetCont . Unit = tarCont . Uniteing //单位"`
targetCont . ReferenceScore = 0 //标准分值"`
targetCont . Cycles = tarCont . Cycles //1:班;2:天;3:周;4:月;5:季度;6:年"`
targetCont . CycleAttres = tarCont . CycleAttres //辅助计数"`
targetCont . State = 1
targetCont . DepartmentId , targetCont . DepartmentAry = GetDutyFangAnDepart ( v , 1 )
shenPiRen := strings . Split ( tarCont . Report , "," )
targetCont . 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 } )
if usErr == true {
var userCont QualEvalArrt
userCont . Id = v
userCont . Name = usCont . Name
targetCont . UserListAry = append ( targetCont . UserListAry , userCont )
}
}
targetList = append ( targetList , targetCont )
}
// var qualitativeEvaluationAry []assessmentmodel.QualitativeEvaluation
response . Result ( 0 , targetList , "查询完成!" , c )
}
// 获取方案中的所有所有相关部们
func GetDutyFangAnDepart ( dutyId int64 , class int ) ( departId [ ] int64 , departAry [ ] DepartmentAryType ) {
err := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeEvaluation { } ) . Select ( "qe_accept_evaluation" ) . Where ( "`qe_state` = 1 AND `qe_target` = ? AND `qe_type` = ?" , dutyId , class ) . Group ( "qe_accept_evaluation" ) . Find ( & departId ) . Error
if err != nil {
return
}
for _ , v := range departId {
deparConErr , deparConCont := commonus . GetBranchFactory ( v )
if deparConErr == true {
var departcont DepartmentAryType
departcont . Parentname = deparConCont . Name
departcont . Parentid = strconv . FormatInt ( v , 10 )
departAry = append ( departAry , departcont )
}
}
return
}
// 根据指标ID获取列表信息
func ( d * DutyAssessApi ) IdToTargetSunList ( c * gin . Context ) {
var requestData commonus . SetIds
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "数据获取失败!" , c )
return
}
if requestData . Id == 0 && requestData . OutId == "" {
response . Result ( 102 , err , "参数错误!请重新提交!" , c )
return
}
if requestData . OutId != "" {
idInt , inIntErr := strconv . ParseInt ( requestData . OutId , 10 , 64 )
if inIntErr == nil {
requestData . Id = idInt
}
}
tarCont , isTrue := commonus . GetTargetInfo ( requestData . Id )
if isTrue != true {
response . Result ( 103 , err , "数据获取失败!" , c )
return
}
var targetCont TargetFormId
targetCont . Id = strconv . FormatInt ( requestData . Id , 10 )
targetCont . Target = strconv . FormatInt ( requestData . Id , 10 ) //指标ID
targetCont . TargetName = tarCont . Title //指标名称
targetCont . Dimension = strconv . FormatInt ( tarCont . Dimension , 10 ) //维度ID
dutyClassCont , dutyClassErr := commonus . GetDutyClassInfo ( tarCont . Dimension )
if dutyClassErr == true {
targetCont . DimensionName = dutyClassCont . Title //维度名称
}
targetCont . Content = "" //指标说明
targetCont . Unit = tarCont . Uniteing //单位"`
targetCont . ReferenceScore = 0 //标准分值"`
targetCont . Cycles = tarCont . Cycles //1:班;2:天;3:周;4:月;5:季度;6:年"`
targetCont . CycleAttres = tarCont . CycleAttres //辅助计数"`
targetCont . State = 1
targetCont . DepartmentId , targetCont . DepartmentAry = GetDutyFangAnDepart ( requestData . Id , 1 )
targetCont . SunTargetList = GetSunTargetList ( requestData . Id , tarCont . Dimension , targetCont . DepartmentId )
targetCont . Reportmap = strings . Split ( tarCont . Report , "," )
// for _, vv := range jieguo {
// targetCont.SunTargetList = append(targetCont.SunTargetList, vv)
// }
// targetCont.SunTargetList = jieguo
// jsonstr, _ := json.Marshal(targetCont)
// fmt.Printf("+++++++++>%v----->\n", string(jsonstr))
response . Result ( 0 , targetCont , "查询完成!" , c )
}
// 获取子指标和指标详情
func GetSunTargetList ( targetId , demID int64 , parAryId [ ] int64 ) ( cont [ ] SunTargetListType ) {
var qualTargetCont [ ] assessmentmodel . QualitativeTarget
err := global . GVA_DB_Performanceappraisal . Where ( "`q_state` = 1 AND `q_parent_id` = ?" , targetId ) . Find ( & qualTargetCont ) . Error
if err != nil {
return
}
// fmt.Printf("%v\n", qualTargetCont)
for _ , v := range qualTargetCont {
var sunCont SunTargetListType
sunCont . Id = strconv . FormatInt ( v . Id , 10 )
sunCont . Title = v . Title
sunCont . DetailedTarget = GetDetailTrager ( targetId , v . Id , demID , parAryId )
// fmt.Printf("-->%v-->%v\n", v.Id, v.Title)
cont = append ( cont , sunCont )
}
// fmt.Printf("=========>%v\n", cont)
return
}
// 获取指标详情
func GetDetailTrager ( targetId , detId , demID int64 , parAryId [ ] int64 ) ( cont [ ] DetailedTargetType ) {
var qualTargetCont [ ] assessmentmodel . DetailedTarget
err := global . GVA_DB_Performanceappraisal . Where ( "`dt_state` = 1 AND `dt_parentid` = ? AND `dt_parentid_sun` = ?" , targetId , detId ) . Find ( & qualTargetCont ) . Error
if err != nil {
return
}
for _ , v := range qualTargetCont {
var sunCont DetailedTargetType
sunCont . Id = strconv . FormatInt ( v . Id , 10 )
sunCont . Title = v . Title
sunCont . UserList , sunCont . UserListAry = GetOperator ( demID , targetId , detId , v . Id , parAryId )
cont = append ( cont , sunCont )
}
return
}
// 获取执行人
func GetOperator ( dimID , tarId , sunTarId , detaId int64 , parAryId [ ] int64 ) ( UserList [ ] string , UserListAry [ ] QualEvalArrt ) {
var qualEval [ ] assessmentmodel . QualitativeEvaluation
err := global . GVA_DB_Performanceappraisal . Where ( "`qe_state` = 1 AND `qe_dimension` = ? AND `qe_target` = ? AND `qe_target_sun` = ? AND `qe_detailed_target` = ? AND `qe_accept_evaluation` IN ?" , dimID , tarId , sunTarId , detaId , parAryId ) . Find ( & qualEval ) . Error
if err != nil {
return
}
for _ , v := range qualEval {
if v . Operator != "" {
usAry := strings . Split ( v . Operator , "," )
if len ( usAry ) > 0 {
for _ , vv := range usAry {
if commonus . IsItTrueString ( vv , UserList ) == false {
UserList = append ( UserList , vv )
usCont , usErr := commonus . GetUserInfoPublic ( [ ] string { "worker_man.wm_number" , "worker_man_data.wmd_name" } , map [ string ] interface { } { "wm_key" : vv } )
if usErr == true {
var userCont QualEvalArrt
userCont . Id = vv
userCont . Name = usCont . Name
UserListAry = append ( UserListAry , userCont )
}
}
}
}
}
}
return
}
// 获取定性指标->指标细则修改回显
func ( d * DutyAssessApi ) GetDetailedTargetCallBack ( c * gin . Context ) {
var requestData commonus . SetIds
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "数据获取失败!" , c )
return
}
if requestData . Id == 0 && requestData . OutId == "" {
response . Result ( 102 , err , "参数错误!请重新提交!" , c )
return
}
if requestData . OutId != "" {
idInt , inIntErr := strconv . ParseInt ( requestData . OutId , 10 , 64 )
if inIntErr == nil {
requestData . Id = idInt
}
}
var cont assessmentmodel . QualitativeEvaluation
errErr := global . GVA_DB_Performanceappraisal . Where ( "`qe_id` = ?" , requestData . Id ) . Find ( & cont ) . Error
if errErr != nil {
response . Result ( 103 , err , "没有获取到数据!" , c )
return
}
//输出格式
var content OutTargetCont
content . Id = strconv . FormatInt ( requestData . Id , 10 )
//获取子栏目信息
sunTargetCont , _ := commonus . GetQualitativeTargetInfo ( cont . TargetSun )
content . SunTargerId = strconv . FormatInt ( sunTargetCont . Id , 10 )
content . SunTargetName = sunTargetCont . Title
//获取指标细则信息
detaileInfo , _ := commonus . GetDetailedTargetInfo ( cont . DetailedTarget )
content . DetailedTargetId = strconv . FormatInt ( detaileInfo . Id , 10 )
content . DetailedTargetName = detaileInfo . Title
content . DetailedTargetContent = detaileInfo . Content
shenPiRen := strings . Split ( cont . Operator , "," )
content . Operator = 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 } )
if usErr == true {
var userCont QualEvalArrt
userCont . Id = v
userCont . Name = usCont . Name
content . OperatorAry = append ( content . OperatorAry , userCont )
}
}
//获取所有子栏目
var qualTar [ ] assessmentmodel . QualitativeTarget
quaTarErr := global . GVA_DB_Performanceappraisal . Where ( "`q_parent_id` = ?" , cont . Target ) . Find ( & qualTar ) . Error
if quaTarErr == nil {
for _ , s_v := range qualTar {
var sunTarCont QualEvalArrt
sunTarCont . Id = strconv . FormatInt ( s_v . Id , 10 )
sunTarCont . Name = s_v . Title
content . SunTargerList = append ( content . SunTargerList , sunTarCont )
}
}
response . Result ( 0 , content , "获取成功!" , c )
}
// 获取定性指标->指标细则修改回显
func ( d * DutyAssessApi ) EiteDetailedTargetCallBack ( c * gin . Context ) {
var requestData GetEiteTargetCont
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "数据获取失败!" , c )
return
}
if requestData . Id == "" {
response . Result ( 102 , err , "参数错误!请重新提交!" , c )
return
}
var cont assessmentmodel . QualitativeEvaluation
errErr := global . GVA_DB_Performanceappraisal . Where ( "`qe_id` = ?" , requestData . Id ) . Find ( & cont ) . Error
if errErr != nil {
response . Result ( 103 , err , "未能获取到数据!" , c )
return
}
isTrue := false
if requestData . Class != 1 {
isTrue = NewEiteData ( requestData , cont )
} else {
isTrue = NewAddData ( requestData , cont )
}
if isTrue == false {
response . Result ( 104 , err , "数据处理失败" , c )
return
}
response . Result ( 0 , err , "数据处理成功" , c )
}
// 新增
func NewAddData ( getData GetEiteTargetCont , oldData assessmentmodel . QualitativeEvaluation ) ( isTrue bool ) {
isTrue = false
var detailedTargetInfo assessmentmodel . DetailedTarget
detailedTargetInfo . Title = getData . DetailedTargetName
detailedTargetInfo . Content = getData . DetailedTargetContent
detailedTargetInfo . ParentId = oldData . Target
detailedTargetInfo . ParentIdSun = oldData . TargetSun
detailedTargetInfo . State = 1
detailedTargetInfo . AddTime = time . Now ( ) . Unix ( )
addErr := global . GVA_DB_Performanceappraisal . Create ( & detailedTargetInfo ) . Error
if addErr != nil {
return
}
var saveData assessmentmodel . QualitativeEvaluation
saveData . Title = oldData . Title
saveData . DepartmentId = oldData . DepartmentId
saveData . Dimension = oldData . Dimension
saveData . Target = oldData . Target
saveData . TargetSun = oldData . TargetSun
saveData . DetailedTarget = detailedTargetInfo . Id
saveData . Type = oldData . Type
saveData . Weight = oldData . Weight
saveData . Unit = oldData . Unit
saveData . ReferenceScore = oldData . ReferenceScore
saveData . State = oldData . State
saveData . Addtime = time . Now ( ) . Unix ( )
saveData . Eitetime = time . Now ( ) . Unix ( )
saveData . Group = oldData . Group
saveData . QualEvalId = oldData . QualEvalId
saveData . Cycles = oldData . Cycles
saveData . CycleAttres = oldData . CycleAttres
saveData . AcceptEvaluation = oldData . AcceptEvaluation
saveData . Operator = oldData . Operator
saveData . Content = oldData . Content
addErrQE := global . GVA_DB_Performanceappraisal . Create ( & saveData ) . Error
if addErrQE != nil {
return
}
isTrue = true
return
}
// 修改
func NewEiteData ( getData GetEiteTargetCont , oldData assessmentmodel . QualitativeEvaluation ) ( isTrue bool ) {
isTrue = false
eiteDetailedInfo := commonus . MapOut ( )
eiteDetailedInfo [ "dt_time" ] = time . Now ( ) . Unix ( )
if getData . DetailedTargetName != "" {
eiteDetailedInfo [ "dt_title" ] = getData . DetailedTargetName
}
if getData . DetailedTargetContent != "" {
eiteDetailedInfo [ "dt_content" ] = getData . DetailedTargetContent
}
eiteDetaInfoErr := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . DetailedTarget { } ) . Where ( "`dt_id` = ?" , oldData . DetailedTarget ) . Updates ( & eiteDetailedInfo ) . Error
if eiteDetaInfoErr != nil {
return
}
if len ( getData . Operator ) > 0 {
eiteQualEvlInfo := commonus . MapOut ( )
eiteQualEvlInfo [ "qe_eitetime" ] = time . Now ( ) . Unix ( )
eiteQualEvlInfo [ "qe_operator" ] = strings . Join ( getData . Operator , "," )
eiteQualEvlInfo [ "qe_department_id" ] = strings . Join ( commonus . GetDepartmentByUserBast ( getData . Operator ) , "," )
eiteDetaQuaInfoErr := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeEvaluation { } ) . Where ( "`qe_id` = ?" , oldData . Id ) . Updates ( & eiteQualEvlInfo ) . Error
if eiteDetaQuaInfoErr != nil {
return
}
}
isTrue = true
return
}
// 修改子栏目名称
func ( d * DutyAssessApi ) EiteSunTargetName ( c * gin . Context ) {
var requestData EiteTargetContListSun
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "数据获取失败!" , c )
return
}
if requestData . Id == "" {
response . Result ( 102 , requestData , "参数错误!请重新提交!" , c )
return
}
if requestData . Name == "" {
response . Result ( 103 , err , "参数错误!请重新提交!" , c )
return
}
if requestData . Group == "" {
response . Result ( 104 , err , "参数错误!无法获取数据" , c )
return
}
if requestData . Dimension == "" {
response . Result ( 105 , err , "参数错误!无法获取数据" , c )
return
}
if requestData . TargetId == "" {
response . Result ( 106 , err , "参数错误!无法获取数据" , c )
return
}
if len ( requestData . Operator ) < 1 {
response . Result ( 107 , err , "没有执行人!" , c )
return
}
var assCont assessmentmodel . Assesstarget
assErr := global . GVA_DB_Performanceappraisal . Where ( "`group` = ? AND `dimension` = ? AND `targetid` = ? AND `suntargetid` = ?" , requestData . Group , requestData . Dimension , requestData . TargetId , requestData . Id ) . First ( & assCont ) . Error
if assErr != nil {
response . Result ( 104 , err , "没有该数据!" , c )
return
}
var userMap [ ] DutyAssEssTarget
jsonErr := json . Unmarshal ( [ ] byte ( assCont . Content ) , & userMap )
var detaTargetid [ ] int64
if jsonErr == nil {
var saveUserAry [ ] DutyAssEssTarget
for _ , um_v := range userMap {
var saveUserCont DutyAssEssTarget
saveUserCont . Id = um_v . Id
saveUserCont . Operator = requestData . Operator
saveUserAry = append ( saveUserAry , saveUserCont )
detaTargetid = append ( detaTargetid , um_v . Id )
}
if len ( saveUserAry ) > 0 {
eiteAssCont := commonus . MapOut ( )
eiteAssCont [ "time" ] = time . Now ( ) . Unix ( )
eiteUserJson , _ := json . Marshal ( saveUserAry )
eiteAssCont [ "content" ] = string ( eiteUserJson )
global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . Assesstarget { } ) . Where ( "`at_id` = ?" , assCont . Id ) . Updates ( eiteAssCont )
}
if len ( detaTargetid ) > 0 {
eiteAssContDeite := commonus . MapOut ( )
eiteAssContDeite [ "dt_time" ] = time . Now ( ) . Unix ( )
if requestData . Cycles > 0 {
eiteAssContDeite [ "dt_cycle" ] = requestData . Cycles
}
if requestData . CycleAttres > 0 {
eiteAssContDeite [ "dt_cycleattr" ] = requestData . CycleAttres
}
if requestData . CensorType > 0 {
eiteAssContDeite [ "dt_censor_type" ] = requestData . CensorType
}
eiteAssContDeite [ "dt_censor_cont" ] = requestData . CensorCont
if requestData . CensorRate > 0 {
// eiteAssContDeite["dt_censor_rate"] = requestData.CensorRate
eiteAssContDeite [ "dt_cycle" ] = requestData . CensorRate
}
if len ( requestData . DepartmentMap ) > 0 {
eiteAssContDeite [ "dt_paretment" ] = strings . Join ( requestData . DepartmentMap , "," )
}
global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . DetailedTarget { } ) . Where ( "`dt_id` IN ?" , detaTargetid ) . Updates ( eiteAssContDeite )
}
}
var oldId int64
errCont := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeTarget { } ) . Select ( "q_id" ) . Where ( "`q_id` = ?" , requestData . Id ) . First ( & oldId ) . Error
if errCont != nil {
response . Result ( 104 , err , "没有该数据!" , c )
return
}
eiteCont := commonus . MapOut ( )
eiteCont [ "q_time" ] = time . Now ( ) . Unix ( )
eiteCont [ "q_title" ] = requestData . Name
if len ( requestData . DepartmentMap ) > 0 {
eiteCont [ "q_depart" ] = strings . Join ( requestData . DepartmentMap , "," )
} else {
eiteCont [ "q_depart" ] = ""
}
errEiteCont := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeTarget { } ) . Where ( "`q_id` = ?" , requestData . Id ) . Updates ( & eiteCont ) . Error
if errEiteCont != nil {
response . Result ( 105 , err , "修改失败!" , c )
return
}
WriteBackTargetDepartment ( requestData . TargetId , requestData . DepartmentMap )
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 ) AddDutyRelationOld ( 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
}
// fmt.Printf("kjh------11------>%v\n", requestData)
sunTarDepartStr := strings . Join ( requestData . AcceptDepartmentId , "," )
//获取子目标情况
sunTargetCont , sunTargetErr := commonus . JudgeColumn ( requestData . Target , requestData . TargetSun , requestData . TargetSunTitle , sunTarDepartStr )
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)
// detailedTargetInfo, dtiIsTrue := commonus.JudgeDetailsCopy(requestData.Target, v.Title, v.Content, v.DetailedTarget, v.ReferenceScore, v.Unit, sunTargetCont.Id, v.AddOrReduce)
// fmt.Printf("关联部门------11------>%v\n", sunTarDepartStr)
// panic(sunTarDepartStr)
detailedTargetInfo , dtiIsTrue := JudgeDetailsCopyEs ( requestData . Target , sunTarDepartStr , sunTargetCont . Id , v )
/ *
参数说明
@ ascription 归属指标栏目
@ title 指标细则
@ explain 指标说明 '
@ explainId 指标明细ID
@ ReferenceScore 分数
@ CompanyCont 单位
@ sunTargetId 子栏目
* /
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 {
if commonus . IsItTrue ( f_v , newAddId ) != true {
var targetContInfos DutyAssEssTarget
targetContInfos . Id = f_v
targetContList = append ( targetContList , targetContInfos )
}
}
// response.Result(0, targetContList, "处理成功!", c)
// return
//判断该集团指标子栏目是否存在
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
//判断指标是否存在并且获取已存在的所有指标关联部门
var guanLianBuMen [ ] string
for _ , vvk_vs := range requestData . AcceptDepartmentId {
if commonus . IsItTrueString ( vvk_vs , guanLianBuMen ) == false {
guanLianBuMen = append ( guanLianBuMen , vvk_vs )
}
}
var sunTarId [ ] int64
judgeARkTErr := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . Assesstarget { } ) . Select ( "`suntargetid`" ) . Where ( "`group` = ? AND `dimension` = ? AND `targetid` = ? " , groupInt , dimensionInt , targetInt ) . Find ( & sunTarId ) . Error
// fmt.Printf("kjh------1------>%v------>%v\n", sunTarId, judgeARkTErr)
if judgeARkTErr == nil {
var sunTarDepartMap [ ] string
judgeSunTarkTErr := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeTarget { } ) . Select ( "`q_depart`" ) . Where ( "`q_id` IN ?" , sunTarId ) . Find ( & sunTarDepartMap ) . Error
// fmt.Printf("kjh------2------>%v\n", sunTarDepartMap)
if judgeSunTarkTErr == nil {
// var departStrAry []string
for _ , vvk := range sunTarDepartMap {
departStrAry := strings . Split ( vvk , "," )
for _ , vvk_v := range departStrAry {
if commonus . IsItTrueString ( vvk_v , guanLianBuMen ) == false {
guanLianBuMen = append ( guanLianBuMen , vvk_v )
}
}
}
}
eiteContkk := commonus . MapOut ( )
eiteContkk [ "departmentmap" ] = strings . Join ( guanLianBuMen , "," )
eiteContkk [ "time" ] = time . Now ( ) . Unix ( )
global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . Assesstarget { } ) . Where ( "`suntargetid` IN ?" , sunTarId ) . Updates ( eiteContkk )
// fmt.Printf("kjh------3------>%v\n", eiteContkk)
}
if judgeARTErr == nil {
var eiteTarList [ ] DutyAssEssTarget
// var eiteId []int64
if arTaegetInfo . Content != "" && arTaegetInfo . Content != "null" {
var tarList [ ] DutyAssEssTarget
jsonErr := json . Unmarshal ( [ ] byte ( arTaegetInfo . Content ) , & tarList )
if jsonErr == nil {
// if len(tarList) > len(targetContList) {
// for _, tl_v := range tarList {
// tarInfo, tarInfoErr := JudgeDeiScor(tl_v.Id, targetContList)
// if tarInfoErr == false {
// eiteTarList = append(eiteTarList, tarInfo)
// } else {
// eiteTarList = append(eiteTarList, tl_v)
// }
// }
// } else {
// for _, ttl_v := range targetContList {
// tarInfo, tarInfoErr := JudgeDeiScor(ttl_v.Id, tarList)
// if tarInfoErr == true {
// eiteTarList = append(eiteTarList, tarInfo)
// } else {
// eiteTarList = append(eiteTarList, ttl_v)
// }
// }
// }
for _ , ttl_v := range targetContList {
eiteTarList = append ( eiteTarList , ttl_v )
}
for _ , tl_v := range tarList {
_ , tarInfoErr := JudgeDeiScor ( tl_v . Id , targetContList )
if tarInfoErr == false {
eiteTarList = append ( eiteTarList , tl_v )
}
}
}
} else {
eiteTarList = targetContList
}
// fmt.Printf("llllllllllll----->%v\n", newAddId)
eiteCont := commonus . MapOut ( )
// oldDepartAry := strings.Join(",",",")
// oldDepartAry := strings.Split(arTaegetInfo.Departmentmap, ",")
// mergeDepartMap := append(oldDepartAry, requestData.AcceptDepartmentId...)
// var finalResultDepartId []string //最终结果
// for _, mdm_v := range mergeDepartMap {
// if commonus.IsItTrueString(mdm_v, finalResultDepartId) != true {
// finalResultDepartId = append(finalResultDepartId, mdm_v)
// }
// }
// eiteCont["departmentmap"] = strings.Join(requestData.AcceptDepartmentId, ",")
// eiteCont["departmentmap"] = strings.Join(guanLianBuMen, ",")
eiteCont [ "time" ] = time . Now ( ) . Unix ( )
jsonStr , jsonMErr := json . Marshal ( eiteTarList )
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 , "处理成功!1" , c )
} else {
response . Result ( 107 , err , "请添加测评详情!" , c )
}
} else {
arTaegetInfo . Group = groupInt
arTaegetInfo . Departmentmap = strings . Join ( guanLianBuMen , "," )
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 , "处理成功!2" , c )
} else {
response . Result ( 107 , err , "请添加测评详情!" , c )
}
}
}
// 判断是否存在项目
func JudgeDeiScor ( id int64 , listCont [ ] DutyAssEssTarget ) ( cont DutyAssEssTarget , isTrue bool ) {
isTrue = false
for _ , v := range listCont {
if id == v . Id {
cont = v
isTrue = true
}
}
return
}
// 获取定性考核指标关系指定列表
func ( d * DutyAssessApi ) GetDutyRelationList ( c * gin . Context ) {
var targetAssessAry [ ] assessmentmodel . Assesstarget
errGroup := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . Assesstarget { } ) . Select ( "`group`,`dimension`,`targetid`" ) . Group ( "`group`,`dimension`,`targetid`" ) . Order ( "`group` ASC" ) . Order ( "`dimension` ASC" ) . Order ( "`targetid` ASC" ) . Find ( & targetAssessAry ) . Error
if errGroup != nil {
response . Result ( 107 , errGroup , "没有信息" , c )
return
}
var outContList [ ] dutyOutNew
for _ , v := range targetAssessAry {
var tarContMap assessmentmodel . EvaluationTarget
tarErr := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . EvaluationTarget { } ) . Select ( "`et_title`,`et_cycle`,`et_cycleattr`" ) . Where ( "`et_id` = ?" , v . TargetId ) . First ( & tarContMap ) . Error
if tarErr == nil {
var outInfo dutyOutNew
outInfo . Group = strconv . FormatInt ( v . Group , 10 )
//维度信息
dutyClassCont , _ := commonus . GetDutyClassInfo ( v . Dimension )
outInfo . Dimension = strconv . FormatInt ( v . Dimension , 10 )
outInfo . Dimensionname = dutyClassCont . Title
//指标信息
outInfo . Target = strconv . FormatInt ( v . TargetId , 10 )
tarCont , _ := commonus . GetTargetInfo ( v . TargetId )
outInfo . Targetname = tarCont . Title
outInfo . Cycles = tarCont . Cycles //1:班;2:天;3:周;4:月;5:季度;6:年"`
outInfo . CycleAttres = tarCont . CycleAttres //辅助计数"`
outInfo . Departmentid , outInfo . Departmentmap , outInfo . UserList , outInfo . UserListAry = jieXiDutyList ( v . Group , v . Dimension , v . TargetId )
outContList = append ( outContList , outInfo )
}
}
response . Result ( 0 , outContList , "查询完成!" , c )
return
// var list []assessmentmodel.Assesstarget
// err := global.GVA_DB_Performanceappraisal.Order("`group` ASC").Order("`targetid` ASC").Order("`suntargetid` ASC").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.Group = strconv.FormatInt(v.Group, 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, ","))
// outCont.DepartmentId, outCont.DepartmentAry = commonus.GetNewOrgList(strings.Split(v.Departmentmap, ","))
// shenPiRen := strings.Split(tarCont.Report, ",")
// outCont.UserList = shenPiRen
// for _, v := range shenPiRen {
// // usCont, usErr := commonus.GetWorkUser(v)
// userWher := commonus.MapOut()
// userWher["key"] = v
// usCont, usErr := commonus.GetNewHrPeopleInfo(userWher)
// // GetWorkUser
// if usErr == true {
// var userCont QualEvalArrt
// userCont.Id = v
// userCont.Name = usCont.Name
// userCont.Icon = usCont.Icon
// where := commonus.MapOut()
// // where["id"] = usCont.Group
// where["id"] = usCont.Company
// orgCont, _ := commonus.GetNewOrgCont(where, "id", "name", "abbreviation")
// userCont.GroupName = orgCont.Name
// if orgCont.Abbreviation != "" {
// userCont.GroupName = orgCont.Abbreviation
// }
// whereDepart := commonus.MapOut()
// // whereDepart["id"] = usCont.DepartmentId
// whereDepart["id"] = usCont.Deparment
// orgContDepart, _ := commonus.GetNewOrgCont(whereDepart, "id", "name")
// userCont.DepartmentName = orgContDepart.Name
// // _, groupInfo := commonus.GetGroupCont(usCont.Group)
// // userCont.GroupName = groupInfo.Name
// // _, bfInfo := commonus.GetBranchFactory(usCont.DepartmentId)
// // userCont.DepartmentName = bfInfo.Name
// userCont.Number = usCont.Number
// outCont.UserListAry = append(outCont.UserListAry, userCont)
// }
// }
// outList = append(outList, outCont)
// }
// response.Result(0, outList, "查询完成!", c)
}
// 查看定性考核项目详情
func ( d * DutyAssessApi ) LookDutyTargetInfoOld ( 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 ( 103 , err , "参数错误!无法获取数据" , c )
return
}
if requestData . TargetId == "" {
response . Result ( 104 , err , "参数错误!无法获取数据" , c )
return
}
var assessInfoList [ ] assessmentmodel . Assesstarget
goromDb := global . GVA_DB_Performanceappraisal . Where ( "`group` = ? AND `dimension` = ? AND `targetid` = ?" , requestData . Group , requestData . Dimension , requestData . TargetId )
// if requestData.DepartId != "" {
// goromDb = goromDb.Where("FIND_IN_SET(?,`qe_operator`)", requestData.DepartId)
// }
assErr := goromDb . Find ( & assessInfoList ) . Error
if assErr != nil {
response . Result ( 105 , assErr , "没有获取到数据!" , c )
return
}
// response.Result(104, assessInfoList, "参数错误!无法获取数据", c)
// return
var uotContAry [ ] TargetContOutCont
for _ , v := range assessInfoList {
var uotCont TargetContOutCont
uotCont . DutyAssessId = strconv . FormatInt ( v . Id , 10 )
uotCont . Type = 1
//集团
uotCont . Group = requestData . Group
// _, groupCont := commonus.GetGroupCont(v.Group)
// uotCont.GroupNAme = groupCont.Name
where := commonus . MapOut ( )
where [ "id" ] = v . Group
orgCont , _ := commonus . GetNewOrgCont ( where , "id" , "name" )
uotCont . GroupNAme = orgCont . Name
//执行部门
uotCont . DepartmentId = v . Departmentmap
_ , DepartmentAry := commonus . GetNewOrgList ( strings . Split ( v . Departmentmap , "," ) )
var depNameMap [ ] string
for _ , sep_v := range DepartmentAry {
depNameMap = append ( depNameMap , sep_v . Parentname )
}
// _, 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 . DepartNameMap = 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 )
sunTarDepartMap := strings . Split ( info . Depart , "," )
uotCont . DepartIdMap = sunTarDepartMap
//查询部门
isShow := true
// if requestData.DepartId != "" {
// if commonus.IsItTrueString(requestData.DepartId, sunTarDepartMap) == true {
// isShow = true
// }
// } else {
// isShow = true
// }
fmt . Printf ( "isShow-------->%v-------->%v-------->%v---->%v\n" , isShow , requestData . DepartId , sunTarDepartMap , v . SunTargetId )
if isShow == true {
uotCont . TargetSunName = info . Title
//拆解指标详情
var detailedList [ ] DutyAssEssTarget
detailedListErr := json . Unmarshal ( [ ] byte ( v . Content ) , & detailedList )
if detailedListErr == nil {
// var detaiList []TargetContOutCont
// for _,d_v := range detailedList{}
if len ( detailedList ) > 0 {
for _ , d_v := range detailedList {
uotCont . Id = strconv . FormatInt ( d_v . Id , 10 )
uotCont . DetailedTarget = strconv . FormatInt ( d_v . Id , 10 )
uotCont . UserList = d_v . Operator
// dtCont, _ := commonus.GetDetailedTargetInfo(d_v.Id)
// isDepartAry := strings.Split(dtCont.Paretment, ",")
// isShowTar := false
// if len(isDepartAry) > 0 && requestData.DepartId != "" {
// if commonus.IsItTrueString(requestData.DepartId, isDepartAry) == true {
// isShowTar = true
// } else {
// isShowTar = false
// }
// } else {
// isShowTar = true
// }
isShowTar := false
var dtCont assessmentmodel . DetailedTarget
gormDbDetaTar := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . DetailedTarget { } ) . Where ( "dt_id = ?" , d_v . Id )
if requestData . DepartId != "" {
gormDbDetaTar = gormDbDetaTar . Where ( "FIND_IN_SET(?,`dt_paretment`)" , requestData . DepartId )
}
if requestData . CensorRate != 0 {
gormDbDetaTar = gormDbDetaTar . Where ( "dt_censor_rate = ?" , requestData . CensorRate )
}
if requestData . CensorCont != "" {
gormDbDetaTar = gormDbDetaTar . Where ( "dt_censor_cont LIKE ?" , "%" + requestData . CensorCont + "%" )
}
errDetaTar := gormDbDetaTar . First ( & dtCont ) . Error
if errDetaTar == nil {
if len ( requestData . CensorType ) > 0 {
conCensorType := strings . Split ( dtCont . CensorType , "," )
for _ , cvk := range requestData . CensorType {
if commonus . IsItTrueString ( cvk , conCensorType ) == true {
isShowTar = true
}
}
} else {
isShowTar = true
}
}
fmt . Printf ( "isShowTar------isShowTar-->%v--requestData-->%v--DepartId-->%v--dtCont-->%v\n" , isShowTar , requestData , requestData . DepartId , dtCont )
if isShowTar == true {
uotCont . DetailedTargetName = dtCont . Title
uotCont . Content = dtCont . Content
uotCont . Unit = dtCont . Company
uotCont . State = dtCont . State
uotCont . MinScore = float64 ( dtCont . MinScore ) / 100
uotCont . MaxScore = float64 ( dtCont . MaxScore ) / 100
uotCont . CyclesDetTar = dtCont . Cycles //`json:"cycledettar"` //1:班;2:天;3:周;4:月;5:季度;6:年
uotCont . CycleDetTarAttres = dtCont . CycleAttres //`json:"cycleattrdettar"` //辅助计数
uotCont . CensorType = strings . Split ( dtCont . CensorType , "," ) //`json:"censortype"` //检查方式(1:现场检查;2:资料检查;3:事件触发)
uotCont . CensorCont = dtCont . CensorCont //`json:"censorcont"` //检查依据
uotCont . CensorRate = dtCont . CensorRate //`json:"censorrate"` //检查频次
uotCont . ScoreIng = "0"
if dtCont . MinScore > 0 && dtCont . MaxScore > 0 {
uotCont . ScoreIng = fmt . Sprintf ( "%v-%v" , float64 ( dtCont . MinScore ) / 100 , float64 ( dtCont . MaxScore ) / 100 )
} else if dtCont . MinScore > 0 && dtCont . MaxScore <= 0 {
uotCont . ScoreIng = fmt . Sprintf ( "%v" , float64 ( dtCont . MinScore ) / 100 )
} else if dtCont . MinScore <= 0 && dtCont . MaxScore > 0 {
uotCont . ScoreIng = fmt . Sprintf ( "%v" , float64 ( dtCont . MaxScore ) / 100 )
} else {
uotCont . ScoreIng = "0"
}
for _ , u_v := range d_v . Operator {
usCont , usErr := commonus . GetWorkUser ( u_v )
if usErr == true {
var userCont QualEvalArrt
userCont . Id = u_v
userCont . Name = usCont . Name
userCont . Icon = usCont . Icon
where := commonus . MapOut ( )
where [ "id" ] = usCont . Company
orgCont , _ := commonus . GetNewOrgCont ( where , "id" , "name" )
userCont . GroupName = orgCont . Name
whereDepart := commonus . MapOut ( )
whereDepart [ "id" ] = usCont . MainDeparment
orgContDepart , _ := commonus . GetNewOrgCont ( whereDepart , "id" , "name" )
userCont . DepartmentName = orgContDepart . Name
// _, groupInfo := commonus.GetGroupCont(usCont.Group)
// userCont.GroupName = groupInfo.Name
// _, bfInfo := commonus.GetBranchFactory(usCont.DepartmentId)
// userCont.DepartmentName = bfInfo.Name
userCont . Number = usCont . Number
uotCont . UserListAry = append ( uotCont . UserListAry , userCont )
}
}
uotContAry = append ( uotContAry , uotCont )
}
}
} else {
uotContAry = append ( uotContAry , uotCont )
}
} else {
uotContAry = append ( uotContAry , uotCont )
}
}
}
if len ( uotContAry ) <= 0 {
response . Result ( 106 , uotContAry , "没有获取到数据!" , c )
} else {
response . Result ( 0 , uotContAry , "获取成功!" , c )
}
}
// 删除考核指标
func ( d * DutyAssessApi ) NewDelTarGet ( 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 ( 103 , err , "参数错误!无法获取数据" , c )
return
}
if requestData . TargetId == "" {
response . Result ( 104 , err , "参数错误!无法获取数据" , c )
return
}
groupId , _ := strconv . ParseInt ( requestData . Group , 10 , 64 )
dimensionId , _ := strconv . ParseInt ( requestData . Dimension , 10 , 64 )
targetId , _ := strconv . ParseInt ( requestData . TargetId , 10 , 64 )
isTrue := commonus . JudegDutyIsUse ( groupId , dimensionId , targetId , 0 , 0 )
if isTrue != true {
response . Result ( 105 , err , "你当前要删除的项目已经使用!请不要删除!以免造成正在进行的审批统计产生数据误差!" , c )
return
}
var oldAssEssData [ ] assessmentmodel . Assesstarget
global . GVA_DB_Performanceappraisal . Where ( "`group` = ? AND `dimension` = ? AND `targetid` = ?" , requestData . Group , requestData . Dimension , requestData . TargetId ) . Find ( & oldAssEssData )
if len ( oldAssEssData ) > 0 {
assessAttbar ( oldAssEssData )
}
// response.Result(0, oldAssEssData, "删除成功!", c)
delErr := global . GVA_DB_Performanceappraisal . Where ( "`group` = ? AND `dimension` = ? AND `targetid` = ?" , requestData . Group , requestData . Dimension , requestData . TargetId ) . Delete ( & assessmentmodel . Assesstarget { } ) . Error
if delErr != nil {
response . Result ( 106 , delErr , "删除失败!" , c )
return
}
response . Result ( 0 , delErr , "删除成功!" , c )
}
// 执行附属软删除
func assessAttbar ( oldAssEssData [ ] assessmentmodel . Assesstarget ) {
var targetId [ ] int64
var targetSunId [ ] int64
var detaredTargetSunId [ ] int64
for _ , v := range oldAssEssData {
if commonus . IsItTrue ( v . TargetId , targetId ) == false {
targetId = append ( targetId , v . TargetId )
}
if commonus . IsItTrue ( v . SunTargetId , targetSunId ) == false {
targetSunId = append ( targetSunId , v . SunTargetId )
}
var duyEssTarget [ ] DutyAssEssTarget
duyTarJsonErr := json . Unmarshal ( [ ] byte ( v . Content ) , & duyEssTarget )
if duyTarJsonErr == nil {
if len ( duyEssTarget ) > 0 {
for _ , dv := range duyEssTarget {
if commonus . IsItTrue ( dv . Id , detaredTargetSunId ) == false {
detaredTargetSunId = append ( detaredTargetSunId , dv . Id )
}
}
}
}
}
// if len(targetId) > 0 {
// saveTarData := commonus.MapOut()
// saveTarData["et_state"] = 3
// saveTarData["et_time"] = time.Now().Unix()
// global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationTarget{}).Where("`et_id` IN ?", targetId).Updates(&saveTarData)
// }
if len ( targetSunId ) > 0 {
saveSunTarData := commonus . MapOut ( )
saveSunTarData [ "q_state" ] = 3
saveSunTarData [ "q_time" ] = time . Now ( ) . Unix ( )
global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeTarget { } ) . Where ( "`q_id` IN ?" , targetSunId ) . Updates ( & saveSunTarData )
}
if len ( detaredTargetSunId ) > 0 {
saveTarData := commonus . MapOut ( )
saveTarData [ "dt_time" ] = time . Now ( ) . Unix ( )
saveTarData [ "dt_state" ] = 3
global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . DetailedTarget { } ) . Where ( "`dt_id` IN ?" , detaredTargetSunId ) . Updates ( & saveTarData )
}
// panic(detaredTargetSunId)
}
// 获取被修改指标细则的详情
func ( d * DutyAssessApi ) GetNewEiteDetailedTarget ( c * gin . Context ) {
var requestData GetDeitalTarCont
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "数据获取失败!" , c )
return
}
if requestData . Id == "" {
response . Result ( 102 , requestData , "参数错误!请重新提交!" , c )
return
}
if requestData . AssId == "" {
response . Result ( 103 , requestData , "参数错误!请重新提交!" , c )
return
}
var cont assessmentmodel . DetailedTarget
errErr := global . GVA_DB_Performanceappraisal . Where ( "`dt_id` = ?" , requestData . Id ) . First ( & cont ) . Error
if errErr != nil {
response . Result ( 104 , errErr , "没有获取到数据!" , c )
return
}
var assCont assessmentmodel . Assesstarget
errAssErr := global . GVA_DB_Performanceappraisal . Where ( "`at_id` = ?" , requestData . AssId ) . First ( & assCont ) . Error
if errAssErr != nil {
response . Result ( 105 , errAssErr , "没有获取到数据!" , c )
return
}
var outPutCont NewOutPutDetailedTarget
outPutCont . Id = strconv . FormatInt ( cont . Id , 10 )
//获取子栏目信息
sunTargetCont , _ := commonus . GetQualitativeTargetInfo ( cont . ParentIdSun )
outPutCont . SunTargerId = strconv . FormatInt ( sunTargetCont . Id , 10 )
outPutCont . SunTargetName = sunTargetCont . Title
//获取指标细则信息
outPutCont . DetailedTargetId = strconv . FormatInt ( cont . Id , 10 )
outPutCont . DetailedTargetName = cont . Title
outPutCont . DetailedTargetContent = cont . Content
outPutCont . Cycles = cont . Cycles
outPutCont . CycleAttres = cont . CycleAttres
cenType := strings . Split ( cont . CensorType , "," )
outPutCont . CensorType = cenType
outPutCont . CensorCont = cont . CensorCont
outPutCont . CensorRate = cont . CensorRate
outPutCont . AddReduce = cont . AddReduce
//单位
outPutCont . Unit = cont . Company
if cont . MinScore > 0 && cont . MaxScore > 0 {
outPutCont . Score = fmt . Sprintf ( "%v-%v" , float64 ( cont . MinScore ) / 100 , float64 ( cont . MaxScore ) / 100 )
} else if cont . MinScore > 0 && cont . MaxScore <= 0 {
outPutCont . Score = fmt . Sprintf ( "%v" , float64 ( cont . MinScore ) / 100 )
} else if cont . MinScore <= 0 && cont . MaxScore > 0 {
outPutCont . Score = fmt . Sprintf ( "%v" , float64 ( cont . MaxScore ) / 100 )
} else {
outPutCont . Score = "0"
}
if cont . Paretment != "" {
outPutCont . DepartmentId = strings . Split ( cont . Paretment , "," )
}
//解析考核方案内的指标关联人
//拆解指标详情
var detailedList [ ] DutyAssEssTarget
detailedListErr := json . Unmarshal ( [ ] byte ( assCont . Content ) , & detailedList )
if detailedListErr == nil {
for _ , v := range detailedList {
if v . Id == cont . Id {
for _ , us_key := range v . Operator {
usCont , _ := commonus . GetWorkUser ( us_key )
var userCont QualEvalArrt
userCont . Id = us_key
userCont . Name = usCont . Name
userCont . Icon = usCont . Icon
where := commonus . MapOut ( )
where [ "id" ] = usCont . Company
orgCont , _ := commonus . GetNewOrgCont ( where , "id" , "name" )
userCont . GroupName = orgCont . Name
whereDepart := commonus . MapOut ( )
whereDepart [ "id" ] = usCont . MainDeparment
orgContDepart , _ := commonus . GetNewOrgCont ( whereDepart , "id" , "name" )
userCont . DepartmentName = orgContDepart . Name
// _, groupInfo := commonus.GetGroupCont(usCont.Group)
// userCont.GroupName = groupInfo.Name
// _, bfInfo := commonus.GetBranchFactory(usCont.DepartmentId)
// userCont.DepartmentName = bfInfo.Name
userCont . Number = usCont . Number
outPutCont . OperatorAry = append ( outPutCont . OperatorAry , userCont )
outPutCont . Operator = append ( outPutCont . Operator , us_key )
}
}
}
}
//获取所有子栏目
var qualTar [ ] assessmentmodel . QualitativeTarget
quaTarErr := global . GVA_DB_Performanceappraisal . Where ( "`q_parent_id` = ?" , cont . ParentId ) . Find ( & qualTar ) . Error
if quaTarErr == nil {
for _ , s_v := range qualTar {
var sunTarCont QualEvalArrt
sunTarCont . Id = strconv . FormatInt ( s_v . Id , 10 )
sunTarCont . Name = s_v . Title
outPutCont . SunTargerList = append ( outPutCont . SunTargerList , sunTarCont )
}
}
outPutCont . AssId = requestData . AssId
response . Result ( 0 , outPutCont , "获取成功!" , c )
}
// 修改定性考核指标细则内容
func ( d * DutyAssessApi ) NewEiteDetailedTarget ( c * gin . Context ) {
var requestData NewEiteDtyDiteCont
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "数据获取失败!" , c )
return
}
// if requestData.Id == "" {
// response.Result(102, requestData, "参数错误!请重新提交!", c)
// return
// }
if requestData . AssId == "" {
response . Result ( 103 , requestData , "参数错误!请重新提交!" , c )
return
}
var assCont assessmentmodel . Assesstarget
errAssErr := global . GVA_DB_Performanceappraisal . Where ( "`at_id` = ?" , requestData . AssId ) . First ( & assCont ) . Error
if errAssErr != nil {
response . Result ( 104 , errAssErr , "没有获取到数据!" , c )
return
}
var departmentStr string
if len ( requestData . DepartmentId ) > 0 {
departmentStr = strings . Join ( requestData . DepartmentId , "," )
} else {
departmentStr = assCont . Departmentmap
}
// detailedTargetInfo, dtiIsTrue := commonus.JudgeDetailsCopy(strconv.FormatInt(assCont.TargetId, 10), requestData.DetailedTargetName, requestData.DetailedTargetContent, requestData.Id, requestData.Score, requestData.Unit, assCont.SunTargetId, requestData.AddOrReduce)
//判断考核细则是否存在(新规则)
/ *
参数说明
@ ascription 归属指标栏目
@ title 指标细则
@ explain 指标说明 '
@ explainId 指标明细ID
@ ReferenceScore 分数
@ CompanyCont 单位
@ sunTargetId 子栏目
* /
// func JudgeDetailsCopy(ascription, title, explain, explainId, ReferenceScore, CompanyCont string, sunTargetId int64, addReduce int) (content assessmentmodel.DetailedTarget, isTrue bool)
var detailedTarget QualEvalSunList
detailedTarget . DetailedTarget = requestData . Id //`json:"id"` //考核细则
detailedTarget . Title = requestData . DetailedTargetName //`json:"title"` //指标说明
detailedTarget . Content = requestData . DetailedTargetContent //`json:"content"` //指标说明
detailedTarget . Unit = requestData . Unit //`json:"unit"` //单位
detailedTarget . ReferenceScore = requestData . Score //`json:"referencescore"` //标准分值
// detailedTarget.Cycles = fmt.Sprintf("%v", requestData.Cycles) //`json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年
detailedTarget . Cycles = requestData . Cycles //`json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年
detailedTarget . CycleAttres = requestData . CycleAttres // `json:"cycleattr"` //辅助计数
// detailedTarget.DepartmentId =requestData. `json:"parentid"` //执行考核部门ID
detailedTarget . Operator = requestData . Operator //`json:"userlist"` //考核执行人
// detailedTarget.MinScore =requestData. //`json:"minscore"` //最小分*100保存
// detailedTarget.MaxScore =requestData. //`json:"maxscore"` //最大分*100保存
detailedTarget . AddOrReduce = requestData . AddOrReduce //`json:"addorreduce"` //1:减少;2:增加
detailedTarget . CensorType = requestData . CensorType //`json:"censortype"` //检查方式(1:现场检查;2:资料检查;3:事件触发)
detailedTarget . CensorCont = requestData . CensorCont //`json:"censorcont"` //检查依据
detailedTarget . CensorRate = requestData . CensorRate //`json:"censorrate"` //检查频次
// Id string `json:"id"`
// Class int `json:"class"` //1、新增;2、修改
// SunTargerId string `json:"suntargetid"`
// SunTargetName string `json:"suntargetname"`
// DetailedTargetName string `json:"detailedtargetname"`
// DetailedTargetContent string `json:"detailedtargetcontent"`
// Operator []string `json:"operator"`
// Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年
// CycleAttres int `json:"cycleattr"` //辅助计数
// CensorType int `json:"censortype"` //检查方式(1:现场检查;2:资料检查;3:事件触发)
// CensorCont string `json:"censorcont"` //检查依据
// CensorRate int `json:"censorrate"` //检查频次
// AssId string `json:"assid"`
// Unit string `json:"unit"` //单位
// Score string `json:"score"` //分值
// AddOrReduce int `json:"addorreduce"` //1:减少;2:增加
detailedTargetInfo , dtiIsTrue := JudgeDetailsCopyEs ( strconv . FormatInt ( assCont . TargetId , 10 ) , departmentStr , assCont . SunTargetId , detailedTarget )
if dtiIsTrue != true {
response . Result ( 105 , errAssErr , "指标明细编辑失败!" , c )
return
}
WriteBackTargetDepartment ( strconv . FormatInt ( assCont . TargetId , 10 ) , strings . Split ( departmentStr , "," ) )
WriteBackSunTargetDepartment ( assCont . Group , assCont . Dimension , assCont . TargetId , strconv . FormatInt ( assCont . SunTargetId , 10 ) , strings . Split ( departmentStr , "," ) )
//设定定性考核指标新增键对关系
var addOpentDetial DutyAssEssTarget
addOpentDetial . Id = detailedTargetInfo . Id
addOpentDetial . Operator = requestData . Operator
//拆解指标详情
var detailedList [ ] DutyAssEssTarget
detailedListErr := json . Unmarshal ( [ ] byte ( assCont . Content ) , & detailedList )
// ssss := commonus.MapOut()
// ssss["Content"] = assCont.Content
// ssss["detailedList"] = detailedList
// ssss["detailedListErr"] = detailedListErr
// response.Result(105, ssss, "指标明细编辑失败!", c)
// return
if detailedListErr != nil {
var eiteOpentDetiallist [ ] DutyAssEssTarget
isAdd := false
for _ , dil_v := range detailedList {
var detailedEiteCont DutyAssEssTarget
if dil_v . Id == detailedTargetInfo . Id {
detailedEiteCont . Id = dil_v . Id
detailedEiteCont . Operator = requestData . Operator
isAdd = true
} else {
detailedEiteCont . Id = dil_v . Id
detailedEiteCont . Operator = dil_v . Operator
}
eiteOpentDetiallist = append ( eiteOpentDetiallist , detailedEiteCont )
}
if isAdd == false {
eiteOpentDetiallist = append ( eiteOpentDetiallist , addOpentDetial )
}
eiteContIng := commonus . MapOut ( )
eiteContIng [ "time" ] = time . Now ( ) . Unix ( )
jsonStr , jsonMErr := json . Marshal ( eiteOpentDetiallist )
if jsonMErr == nil {
eiteContIng [ "content" ] = string ( jsonStr )
}
eiteErring := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . Assesstarget { } ) . Where ( "`at_id` = ?" , assCont . Id ) . Updates ( & eiteContIng ) . Error
if eiteErring == nil {
// WriteBackTargetDepartment(strconv.FormatInt(assCont.TargetId, 10), strings.Split(departmentStr, ","))
// WriteBackSunTargetDepartment(strconv.FormatInt(assCont.SunTargetId, 10), strings.Split(departmentStr, ","))
response . Result ( 0 , err , "处理成功!2" , c )
} else {
response . Result ( 107 , err , "请添加测评详情!" , c )
}
} else {
// var eiteOpentDetiallist []DutyAssEssTarget
var eiteOpentDetiallist [ ] DutyAssEssTarget
isAdd := false
for _ , dil_v := range detailedList {
var detailedEiteCont DutyAssEssTarget
if dil_v . Id == detailedTargetInfo . Id {
detailedEiteCont . Id = dil_v . Id
detailedEiteCont . Operator = requestData . Operator
isAdd = true
} else {
detailedEiteCont . Id = dil_v . Id
detailedEiteCont . Operator = dil_v . Operator
}
eiteOpentDetiallist = append ( eiteOpentDetiallist , detailedEiteCont )
}
if isAdd == false {
eiteOpentDetiallist = append ( eiteOpentDetiallist , addOpentDetial )
}
eiteCont := commonus . MapOut ( )
eiteCont [ "time" ] = time . Now ( ) . Unix ( )
jsonStr , jsonMErr := json . Marshal ( eiteOpentDetiallist )
if jsonMErr == nil {
eiteCont [ "content" ] = string ( jsonStr )
}
eiteErr := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . Assesstarget { } ) . Where ( "`at_id` = ?" , assCont . Id ) . Updates ( & eiteCont ) . Error
if eiteErr == nil {
// WriteBackTargetDepartment(strconv.FormatInt(assCont.TargetId, 10), strings.Split(departmentStr, ","))
// WriteBackSunTargetDepartment(strconv.FormatInt(assCont.SunTargetId, 10), strings.Split(departmentStr, ","))
response . Result ( 0 , err , "处理成功!1" , c )
} else {
response . Result ( 107 , err , "请添加测评详情!" , c )
}
}
}
// 删除指标
func ( d * DutyAssessApi ) NewDelDetailedTarget ( c * gin . Context ) {
var requestData GetDeitalTarCont
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "数据获取失败!" , c )
return
}
if requestData . Id == "" {
response . Result ( 102 , requestData , "参数错误!请重新提交!" , c )
return
}
if requestData . AssId == "" {
response . Result ( 103 , requestData , "参数错误!请重新提交!" , c )
return
}
detailId , _ := strconv . ParseInt ( requestData . Id , 10 , 64 )
var assCont assessmentmodel . Assesstarget
errAssErr := global . GVA_DB_Performanceappraisal . Where ( "`at_id` = ?" , requestData . AssId ) . First ( & assCont ) . Error
if errAssErr != nil {
response . Result ( 105 , errAssErr , "没有获取到数据!" , c )
return
}
eiteCont := commonus . MapOut ( )
eiteCont [ "dt_time" ] = time . Now ( ) . Unix ( )
eiteCont [ "dt_state" ] = 3
global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . DetailedTarget { } ) . Where ( "`dt_id` = ?" , requestData . Id ) . Updates ( & eiteCont )
var detailedList [ ] DutyAssEssTarget
detailedListErr := json . Unmarshal ( [ ] byte ( assCont . Content ) , & detailedList )
if detailedListErr == nil {
var eiteAssContList [ ] DutyAssEssTarget
for _ , v := range detailedList {
if v . Id != detailId {
eiteAssContList = append ( eiteAssContList , v )
}
}
if len ( eiteAssContList ) > 0 {
eiteAssCont := commonus . MapOut ( )
eiteAssCont [ "time" ] = time . Now ( ) . Unix ( )
jsonStr , jsonMErr := json . Marshal ( eiteAssContList )
if jsonMErr == nil {
eiteAssCont [ "content" ] = string ( jsonStr )
}
global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . Assesstarget { } ) . Where ( "`at_id` = ?" , requestData . AssId ) . Updates ( & eiteAssCont )
}
}
response . Result ( 0 , requestData , "修改完成!" , c )
}
// 删除子栏目
func ( d * DutyAssessApi ) NewDelSunTarget ( c * gin . Context ) {
var requestData GetDeitalTarCont
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "数据获取失败!" , c )
return
}
if requestData . Id == "" {
response . Result ( 102 , requestData , "参数错误!请重新提交!" , c )
return
}
if requestData . AssId == "" {
response . Result ( 103 , requestData , "参数错误!请重新提交!" , c )
return
}
var assCont [ ] assessmentmodel . Assesstarget
errAssErr := global . GVA_DB_Performanceappraisal . Where ( "`targetid` = ? AND `suntargetid` = ?" , requestData . AssId , requestData . Id ) . Find ( & assCont ) . Error
if errAssErr != nil {
response . Result ( 105 , errAssErr , "没有获取到数据!" , c )
return
}
var delDetaId [ ] int64
var delAssId [ ] int64
for _ , v := range assCont {
var detailedList [ ] DutyAssEssTarget
detailedListErr := json . Unmarshal ( [ ] byte ( v . Content ) , & detailedList )
if detailedListErr == nil {
for _ , d_v := range detailedList {
delDetaId = append ( delDetaId , d_v . Id )
}
}
delAssId = append ( delAssId , v . Id )
}
if len ( delDetaId ) > 0 {
eiteCont := commonus . MapOut ( )
eiteCont [ "dt_time" ] = time . Now ( ) . Unix ( )
eiteCont [ "dt_state" ] = 3
global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . DetailedTarget { } ) . Where ( "`dt_id` IN ?" , delDetaId ) . Updates ( & eiteCont )
}
if len ( delAssId ) > 0 {
global . GVA_DB_Performanceappraisal . Where ( "`at_id` IN ?" , delAssId ) . Delete ( & assessmentmodel . Assesstarget { } )
}
response . Result ( 0 , requestData , "修改完成!" , c )
}
// 新的部门考核指标获取列表
func ( d * DutyAssessApi ) NewGerDerpatTarList ( c * gin . Context ) {
var requestData rationSelect
c . ShouldBindJSON ( & requestData )
//获取维度列表
var dutyClassAry [ ] assessmentmodel . DutyClass
gromDb := global . GVA_DB_Performanceappraisal
gromDb = gromDb . Where ( "`state` = 1" )
classErr := gromDb . Order ( "sort ASC" ) . Find ( & dutyClassAry ) . Error
if classErr != nil {
response . Result ( 0 , classErr , "未获取到数据" , c )
return
}
var departAryList [ ] DepartTargetListTop
for _ , v := range dutyClassAry {
conList := GetTargetGroup ( requestData . Group , strconv . FormatInt ( v . Id , 10 ) , requestData . DepartmentId )
var departcontInfo DepartTargetListTop
departcontInfo . Id = strconv . FormatInt ( v . Id , 10 )
departcontInfo . Name = v . Title
departcontInfo . Child = conList
if len ( conList ) > 0 {
departAryList = append ( departAryList , departcontInfo )
}
}
response . Result ( 0 , departAryList , "数据获取成功!" , c )
}
//获取指标组合
/ *
@ group 集团
@ dimensionId 维度
@ departID 部门
* /
func GetTargetGroup ( group , dimensionId , departID string ) ( contAry [ ] DepartTargetList ) {
var rationId [ ] int64
gormDb := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . EvaluationTarget { } ) . Select ( "et_id" ) . Where ( "`et_type` = 2 AND `et_state` = 1 AND `et_dimension` = ?" , dimensionId )
if departID != "" {
// sqlOrStr := fmt.Sprintf("FIND_IN_SET(%v,`et_relevant_departments`)", departID)
// sqlOrStr = fmt.Sprintf("`et_share` = 1 OR (`et_share` = 2 AND (%v))", sqlOrStr)
sqlOrStr := fmt . Sprintf ( "`et_relevant_departments` = '' OR FIND_IN_SET(%v,`et_relevant_departments`)" , departID )
gormDb = gormDb . Where ( sqlOrStr )
}
listErr := gormDb . Find ( & rationId ) . Error
if listErr != nil {
// return
}
var qualit [ ] int64
errAssErr := global . GVA_DB_Performanceappraisal . Select ( "targetid" ) . Model ( & assessmentmodel . Assesstarget { } ) . Where ( "`state` = 1 AND `group` = ? AND `dimension` = ? AND FIND_IN_SET(?,`departmentmap`)" , group , dimensionId , departID ) . Find ( & qualit ) . Error
if errAssErr != nil {
// return
}
mergeMap := append ( rationId , qualit ... ) //合并两个数组
var finalResultId [ ] int64 //最终结果
for _ , m_v := range mergeMap {
if commonus . IsItTrue ( m_v , finalResultId ) != true {
finalResultId = append ( finalResultId , m_v )
}
}
//获取指标列表
var evaluatCont [ ] assessmentmodel . EvaluationTarget
aryErr := global . GVA_DB_Performanceappraisal . Where ( "`et_state` = 1 AND `et_id` IN ?" , finalResultId ) . Find ( & evaluatCont ) . Error
if aryErr != nil {
return
}
for _ , e_v := range evaluatCont {
var cont DepartTargetList
cont . Id = strconv . FormatInt ( e_v . Id , 10 )
cont . Name = e_v . Title
cont . Content = ""
cont . Unit = e_v . Uniteing
cont . State = e_v . State
cont . ReferenceScore = commonus . GetWeight ( group , dimensionId , departID , strconv . FormatInt ( e_v . Id , 10 ) , int64 ( e_v . Type ) )
cont . IsTrue = 2
contAry = append ( contAry , cont )
}
return
}
// 部门考核添加。NEW
func ( d * DutyAssessApi ) NewAddDepartDuty ( c * gin . Context ) {
var requestData AddDutyNewContGroup
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "数据获取失败!" , c )
return
}
if requestData . Group == "" {
response . Result ( 102 , err , "数据获取失败!" , c )
return
}
groupId , groupErr := strconv . ParseInt ( requestData . Group , 10 , 64 ) //集团ID
if groupErr != nil {
groupId = 0
}
if requestData . DepartmentId == "" {
response . Result ( 103 , err , "数据获取失败!" , c )
return
}
departId , departErr := strconv . ParseInt ( requestData . DepartmentId , 10 , 64 ) //部门ID
if departErr != nil {
departId = 0
}
if len ( requestData . Child ) < 0 {
response . Result ( 104 , err , "没有要添加的数据" , c )
return
}
var eiteIdAry [ ] int64 //被修改的考核条目
var saveDataAry [ ] assessmentmodel . QualitativeEvaluation //新增条目
for _ , v := range requestData . Child { //维度
commonus . AddWeight ( requestData . Group , v . Id , requestData . DepartmentId , "" , int64 ( v . ZhiFraction ) , 1 )
for _ , tar_v := range v . Child { //指标
if tar_v . Status == 1 {
//使用
targetId , targetErr := strconv . ParseInt ( tar_v . Id , 10 , 64 ) //指标ID转换
if targetErr == nil {
fmt . Printf ( "Targer---1---->%v\n" , targetId )
evalTarCont , evalTarContErr := commonus . GetTargetInfo ( targetId ) //获取指标内容
if evalTarContErr == true {
fmt . Printf ( "Targer---2---->%v\n" , targetId )
//判断是定量还是定性
if evalTarCont . Type == 2 {
commonus . AddWeight ( requestData . Group , v . Id , requestData . DepartmentId , tar_v . Id , tar_v . ReferenceScore , 2 )
//定量指标操作
var saveData assessmentmodel . QualitativeEvaluation
var qeId [ ] int64 //需要编辑的ID
eiteQualEvalSaveData := commonus . MapOut ( ) //需要编辑的内容
gormQualEval := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeEvaluation { } ) . Select ( "qe_id" ) . Where ( "`qe_group` = ? AND `qe_dimension` = ? AND `qe_target` = ? AND `qe_type` = ? AND `qe_accept_evaluation` = ?" , groupId , v . Id , targetId , evalTarCont . Type , departId )
judgeContErr := gormQualEval . Find ( & qeId ) . Error
fmt . Printf ( "Targer---4---->%v---->%v\n" , qeId , judgeContErr )
//维度ID
dimId , dimErr := strconv . ParseInt ( v . Id , 10 , 64 )
if dimErr == nil {
saveData . Dimension = dimId
}
saveData . Target = targetId //指标
saveData . Type = evalTarCont . Type //类型
saveData . Unit = evalTarCont . Uniteing //单位
saveData . ReferenceScore = tar_v . ReferenceScore //分值
// saveData.ReferenceScore = v_s.ReferenceScore //分值
saveData . State = 1 //状态
saveData . Addtime = time . Now ( ) . Unix ( )
saveData . Eitetime = time . Now ( ) . Unix ( )
saveData . Group = groupId //集团
saveData . Cycles = evalTarCont . Cycles //单位
saveData . CycleAttres = evalTarCont . CycleAttres //辅助计数
saveData . AcceptEvaluation = departId //接受考核部门
saveData . Content = tar_v . Content //描述
saveData . Operator = evalTarCont . Report //执行考核人
var departAry [ ] string
userKeyAry := strings . Split ( evalTarCont . Report , "," )
if len ( userKeyAry ) > 0 {
for _ , u_v := range userKeyAry {
usCont , usErr := commonus . GetWorkUser ( u_v )
if usErr == true {
departIdStr := strconv . FormatInt ( usCont . MainDeparment , 10 )
if commonus . IsItTrueString ( departIdStr , departAry ) == false {
departAry = append ( departAry , departIdStr )
}
}
}
}
saveData . DepartmentId = strings . Join ( departAry , "," )
eiteQualEvalSaveData [ "qe_department_id" ] = strings . Join ( departAry , "," )
if judgeContErr == nil {
if len ( qeId ) > 0 {
eiteQualEvalSaveData [ "qe_dimension" ] = dimId
eiteQualEvalSaveData [ "qe_target" ] = targetId
eiteQualEvalSaveData [ "qe_type" ] = evalTarCont . Type
eiteQualEvalSaveData [ "qe_unit" ] = evalTarCont . Uniteing
eiteQualEvalSaveData [ "qe_reference_score" ] = tar_v . ReferenceScore
eiteQualEvalSaveData [ "qe_state" ] = 1
eiteQualEvalSaveData [ "qe_eitetime" ] = time . Now ( ) . Unix ( )
eiteQualEvalSaveData [ "qe_group" ] = groupId
eiteQualEvalSaveData [ "qe_cycle" ] = evalTarCont . Cycles
eiteQualEvalSaveData [ "qe_cycleattr" ] = evalTarCont . CycleAttres
eiteQualEvalSaveData [ "qe_accept_evaluation" ] = departId
eiteQualEvalSaveData [ "qe_operator" ] = evalTarCont . Report
eiteQualEvalSaveData [ "qe_content" ] = tar_v . Content
eiteIdAry = append ( eiteIdAry , dimId )
//修改已经存在的内容
global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeEvaluation { } ) . Where ( "`qe_id` IN ?" , qeId ) . Updates ( eiteQualEvalSaveData )
} else {
saveDataAry = append ( saveDataAry , saveData )
}
} else {
//要新增的条目
saveDataAry = append ( saveDataAry , saveData )
}
} else {
commonus . AddWeight ( requestData . Group , v . Id , requestData . DepartmentId , tar_v . Id , tar_v . ReferenceScore , 1 )
//定性指标操作
//获取部门关联考核指标项目
var assessTarList [ ] assessmentmodel . Assesstarget
judgeARTErr := global . GVA_DB_Performanceappraisal . Where ( "`group` = ? AND `dimension` = ? AND `targetid` = ? AND FIND_IN_SET(?,`departmentmap`)" , groupId , v . Id , tar_v . Id , departId ) . Find ( & assessTarList ) . Error
fmt . Printf ( "Targer---5---->%v---->%v---->%v\n" , targetId , v . Id , tar_v . Id )
if judgeARTErr == nil {
var guoDu [ ] AddPartMentGuodu
for _ , ass_v := range assessTarList {
judgeTure := commonus . JudegSunTarToDepart ( ass_v . SunTargetId , departId )
if judgeTure == true {
var guoDuCont AddPartMentGuodu
guoDuCont . Group = groupId
guoDuCont . DeaprtId = departId
guoDuCont . Dimension = ass_v . Dimension
guoDuCont . TargetId = ass_v . TargetId
guoDuCont . SunTargetId = ass_v . SunTargetId
if ass_v . Content != "" {
//拆解指标详情
var detailedList [ ] DutyAssEssTarget
detailedListErr := json . Unmarshal ( [ ] byte ( ass_v . Content ) , & detailedList )
if detailedListErr == nil {
for _ , det_v := range detailedList {
guoDuCont . DetailedTarget = det_v . Id
guoDuCont . Operator = det_v . Operator
guoDu = append ( guoDu , guoDuCont )
fmt . Printf ( "Targer---6---->%v---->%v---->%v\n" , ass_v . TargetId , ass_v . SunTargetId , det_v . Id )
}
} else {
guoDu = append ( guoDu , guoDuCont )
}
} else {
guoDu = append ( guoDu , guoDuCont )
}
}
}
//判断关联项目
if len ( guoDu ) > 0 {
guoDuJsonm , _ := json . Marshal ( guoDu )
fmt . Printf ( "Targer---7---->%v---->%v\n" , string ( guoDuJsonm ) , guoDu )
for _ , ae_v := range guoDu {
//判断该项是否已经存在
var eiteGetId int64
gormQualEval := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeEvaluation { } ) . Select ( "qe_id" ) . Where ( "`qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_target` = ? AND `qe_target_sun` = ? AND `qe_detailed_target` = ? AND `qe_type` = 1" , ae_v . Group , ae_v . DeaprtId , ae_v . Dimension , ae_v . TargetId , ae_v . SunTargetId , ae_v . DetailedTarget )
judgeContErr := gormQualEval . First ( & eiteGetId ) . Error
fmt . Printf ( "Targer---8---->%v---->%v---->%v---->%v---->%v---->%v---->%v\n" , eiteGetId , ae_v . Group , ae_v . DeaprtId , ae_v . Dimension , ae_v . TargetId , ae_v . SunTargetId , ae_v . DetailedTarget )
if judgeContErr == nil {
eiteQualEvalSaveData := commonus . MapOut ( ) //需要编辑的内容
eiteQualEvalSaveData [ "qe_dimension" ] = ae_v . Dimension
eiteQualEvalSaveData [ "qe_target" ] = ae_v . TargetId
eiteQualEvalSaveData [ "qe_type" ] = 1
getEvalTarCont , _ := commonus . GetDetailedTargetInfo ( ae_v . DetailedTarget ) //获取指标内容
eiteQualEvalSaveData [ "qe_unit" ] = getEvalTarCont . Company
eiteQualEvalSaveData [ "qe_reference_score" ] = 0
eiteQualEvalSaveData [ "qe_min_score" ] = getEvalTarCont . MinScore
eiteQualEvalSaveData [ "qe_max_score" ] = getEvalTarCont . MaxScore
eiteQualEvalSaveData [ "qe_state" ] = 1
eiteQualEvalSaveData [ "qe_eitetime" ] = time . Now ( ) . Unix ( )
eiteQualEvalSaveData [ "qe_group" ] = ae_v . Group
evaDingXinglTarCont , _ := commonus . GetTargetInfo ( ae_v . TargetId ) //获取指标内容
eiteQualEvalSaveData [ "qe_cycle" ] = evaDingXinglTarCont . Cycles
eiteQualEvalSaveData [ "qe_cycleattr" ] = evaDingXinglTarCont . CycleAttres
eiteQualEvalSaveData [ "qe_accept_evaluation" ] = ae_v . DeaprtId
eiteQualEvalSaveData [ "qe_operator" ] = strings . Join ( ae_v . Operator , "," )
eiteQualEvalSaveData [ "qe_content" ] = getEvalTarCont . Content
//获取执行人部门
var departAry [ ] string
if len ( ae_v . Operator ) > 0 {
for _ , u_v := range ae_v . Operator {
usCont , usErr := commonus . GetWorkUser ( u_v )
if usErr == true {
departIdStr := strconv . FormatInt ( usCont . MainDeparment , 10 )
if commonus . IsItTrueString ( departIdStr , departAry ) == false {
departAry = append ( departAry , departIdStr )
}
}
}
}
eiteQualEvalSaveData [ "qe_department_id" ] = strings . Join ( departAry , "," )
eiteIdAry = append ( eiteIdAry , eiteGetId )
//修改已经存在的内容
global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeEvaluation { } ) . Where ( "`qe_id` = ?" , eiteGetId ) . Updates ( eiteQualEvalSaveData )
} else {
//写入新的定性考核细则
var saveData assessmentmodel . QualitativeEvaluation
saveData . Dimension = ae_v . Dimension
saveData . Target = ae_v . TargetId //指标
saveData . Type = 1 //类型
saveData . TargetSun = ae_v . SunTargetId
getEvalTarCont , _ := commonus . GetDetailedTargetInfo ( ae_v . DetailedTarget ) //获取指标内容
saveData . DetailedTarget = ae_v . DetailedTarget
saveData . Unit = getEvalTarCont . Company //单位
saveData . ReferenceScore = 0 //分值
saveData . MinScore = getEvalTarCont . MinScore
saveData . MaxScore = getEvalTarCont . MaxScore
// saveData.ReferenceScore = v_s.ReferenceScore //分值
saveData . State = 1 //状态
saveData . Addtime = time . Now ( ) . Unix ( )
saveData . Eitetime = time . Now ( ) . Unix ( )
saveData . Group = ae_v . Group //集团
evaDingXinglTarCont , _ := commonus . GetTargetInfo ( ae_v . TargetId ) //获取指标内容
saveData . Cycles = evaDingXinglTarCont . Cycles //1:班;2:天;3:周;4:月;5:季度;6:年
saveData . CycleAttres = evaDingXinglTarCont . CycleAttres //辅助计数
saveData . AcceptEvaluation = ae_v . DeaprtId //接受考核部门
saveData . Content = getEvalTarCont . Content //描述
saveData . Operator = strings . Join ( ae_v . Operator , "," ) //执行考核人
//获取执行人部门
var departAry [ ] string
if len ( ae_v . Operator ) > 0 {
for _ , u_v := range ae_v . Operator {
usCont , usErr := commonus . GetWorkUser ( u_v )
if usErr == true {
departIdStr := strconv . FormatInt ( usCont . MainDeparment , 10 )
if commonus . IsItTrueString ( departIdStr , departAry ) == false {
departAry = append ( departAry , departIdStr )
}
}
}
}
saveData . DepartmentId = strings . Join ( departAry , "," )
saveDataJsonm , _ := json . Marshal ( saveData )
fmt . Printf ( "Targer---9---->%v---->%v\n" , string ( saveDataJsonm ) , saveData )
//要新增的条目
saveDataAry = append ( saveDataAry , saveData )
}
}
}
}
}
}
} else {
fmt . Printf ( "Targer---3---->%v\n" , targetId )
}
} else {
//禁用
qualEvalSave := commonus . MapOut ( )
qualEvalSave [ "qe_state" ] = 2
qualEvalSave [ "qe_eitetime" ] = time . Now ( ) . Unix ( )
global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . QualitativeEvaluation { } ) . Where ( "`qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_target` = ?" , groupId , departId , v . Id , tar_v . Id ) . Updates ( qualEvalSave )
}
}
}
if len ( saveDataAry ) <= 0 && len ( eiteIdAry ) <= 0 {
response . Result ( 105 , saveDataAry , "没有要添加的数据" , c )
return
}
if len ( saveDataAry ) > 0 {
addErr := global . GVA_DB_Performanceappraisal . Create ( & saveDataAry ) . Error
if addErr != nil {
response . Result ( 106 , len ( saveDataAry ) , "数据添加失败" , c )
return
}
}
response . Result ( 0 , saveDataAry , "数据添加成功" , c )
}
// 获取考核方法要修改的数据
func ( d * DutyAssessApi ) GetEiteSunTarterInfo ( c * gin . Context ) {
var requestData LookTargetContListSun
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 ( 103 , err , "参数错误!无法获取数据" , c )
return
}
if requestData . TargetId == "" {
response . Result ( 104 , err , "参数错误!无法获取数据" , c )
return
}
// var assessInfoList assessmentmodel.Assesstarget
var userStr string
assErr := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . Assesstarget { } ) . Select ( "content" ) . Where ( "`group` = ? AND `dimension` = ? AND `targetid` = ? AND `suntargetid` = ?" , requestData . Group , requestData . Dimension , requestData . TargetId , requestData . SunTargetId ) . First ( & userStr ) . Error
if assErr != nil {
response . Result ( 105 , assErr , "没有获取到数据!" , c )
return
}
var userMap [ ] DutyAssEssTarget
jsonErr := json . Unmarshal ( [ ] byte ( userStr ) , & userMap )
if jsonErr != nil {
response . Result ( 104 , jsonErr , "没有数据" , c )
return
}
var userAry [ ] string
for _ , v := range userMap {
for _ , o_v := range v . Operator {
if commonus . IsItTrueString ( o_v , userAry ) == false {
userAry = append ( userAry , o_v )
}
}
}
response . Result ( 0 , userAry , "没有数据" , c )
}
// 修改考核方法指标审核人
func ( d * DutyAssessApi ) EiteSunTarterInfoUser ( c * gin . Context ) {
var requestData EiteTargetContListSun
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 ( 103 , err , "参数错误!无法获取数据" , c )
return
}
if requestData . TargetId == "" {
response . Result ( 104 , err , "参数错误!无法获取数据" , c )
return
}
// if
}