package quantification import ( "fmt" "strconv" "gin_server_admin/commonus" "gin_server_admin/global" "gin_server_admin/model/assessmentmodel" ) //以时间维度查询统计 /* @taskId 指标ID @dataAry 接收的界定参数 */ func TimeDimensionStatistics(taskId string, dataAry natureParameter) (outputData GraphicStatistics, outErr bool) { outErr = true var normName string = "" norm := 1 //1:定性考核;2:定量考核 //获取指标信息 taskIdInt, _ := strconv.ParseInt(taskId, 10, 64) taskCont, taskErr := commonus.GetTargetInfo(taskIdInt) if taskErr == true { normName = taskCont.Title outErr = taskErr norm = taskCont.Type } else { // outErr = error.Error("此考核项目没有数据!") outErr = taskErr return } //获取时间参数 timeFrame := EstimatedTime(dataAry) //获取组织架构参数 // var orgAry []orgModelsAry var orgList []orgModels if len(dataAry.Org) > 0 { _, orgList = getGroupOrgList(dataAry.Org) } else { _, orgList = getGroupOrgList(GetTargerDepartment(taskCont.Dimension, taskIdInt)) } // fmt.Printf("orgList ---> %v\n", orgList) //统计方式 statisticalMethod := 3 if len(dataAry.AccMethod) == 1 { if commonus.IsItTrueInt(1, dataAry.AccMethod) == true { statisticalMethod = 1 } else { statisticalMethod = 2 } } // jsonCont, _ := json.Marshal(dataAry) // fmt.Printf("wherStr------>%v\n", string(jsonCont)) // return //根据时间维度进行统计 for _, tfv := range timeFrame { if commonus.IsItTrueString(tfv.XLine, outputData.XLine) == false { outputData.XLine = append(outputData.XLine, tfv.XLine) } switch tfv.Class { case 1: //半年 //组合月 monthStr := "(" for twi, twv := range tfv.Where { if twi != 0 { monthStr = fmt.Sprintf("%v,%v", monthStr, twv) } else { monthStr = fmt.Sprintf("%v%v", monthStr, twv) } } monthStr = fmt.Sprintf("%v)", monthStr) //定量考核 if len(orgList) > 0 { //有政组织 for _, orgv := range orgList { var orgvSunOrg string //获取此指标跟查询部门相关的考核方案ID var taskIdAry []int64 // global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation = ?", taskCont.Dimension, taskIdInt, orgv.Id).Find(&taskIdAry) if len(orgv.SunOrg) > 0 { orgvSunOrg = "(" for tiai, tiav := range orgv.SunOrg { if tiai != 0 { orgvSunOrg = fmt.Sprintf("%v,%v", orgvSunOrg, tiav) } else { orgvSunOrg = fmt.Sprintf("%v%v", orgvSunOrg, tiav) } } global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation IN ?", taskCont.Dimension, taskIdInt, orgv.SunOrg).Find(&taskIdAry) } else { global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation = ?", taskCont.Dimension, taskIdInt, orgv.Id).Find(&taskIdAry) } //组合考核方案ID taskIdStrWher := "(" for tiai, tiav := range taskIdAry { if tiai != 0 { taskIdStrWher = fmt.Sprintf("%v,%v", taskIdStrWher, tiav) } else { taskIdStrWher = fmt.Sprintf("%v%v", taskIdStrWher, tiav) } } taskIdStrWher = fmt.Sprintf("%v)", taskIdStrWher) for _, yearVal := range dataAry.Year { var sumScore float64 var averageScore float64 if len(taskIdAry) > 0 { var wherStr string if norm == 1 { var canKaoZhi float64 = 0 //定性考核 if len(orgv.SunOrg) > 0 { orgvSunOrg = fmt.Sprintf("%v)", orgvSunOrg) wherStr = fmt.Sprintf("sf_evaluation_plan IN %v AND `sf_year` = %v AND `sf_month` IN %v AND sf_duty_department IN %v", taskIdStrWher, yearVal, monthStr, orgvSunOrg) } else { wherStr = fmt.Sprintf("sf_evaluation_plan IN %v AND `sf_year` = %v AND `sf_month` IN %v AND sf_duty_department = %v", taskIdStrWher, yearVal, monthStr, orgv.Id) canKaoZhi = GetTargetReferenceValue(strconv.FormatInt(taskCont.Dimension, 10), taskId, orgv.Id) } sumScore, averageScore = AverageOfSumNature(wherStr, 1) if canKaoZhi != 0 { if sumScore > canKaoZhi { sumScore = canKaoZhi } } } else { //定量考核 if len(orgv.SunOrg) > 0 { wherStr = fmt.Sprintf("fld_evaluation_id IN %v AND `fl_year` = %v AND `fl_month` IN %v AND fl_duty_department IN %v", taskIdStrWher, yearVal, monthStr, orgvSunOrg) } else { wherStr = fmt.Sprintf("fld_evaluation_id IN %v AND `fl_year` = %v AND `fl_month` IN %v AND fl_duty_department = %v", taskIdStrWher, yearVal, monthStr, orgv.Id) } sumScore, averageScore = AverageOfSum(wherStr, 1) } } switch statisticalMethod { case 1: //合计 normNameTotal := fmt.Sprintf("%v%v %v", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } case 2: //平均 normNameAverage := fmt.Sprintf("%v%v %v平均值", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } default: //合计与平均 normNameTotal := fmt.Sprintf("%v%v %v", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } normNameAverage := fmt.Sprintf("%v%v %v平均值", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } } } } } else { //无行政组织 var sumScore float64 var averageScore float64 //获取此指标跟查询部门相关的考核方案ID var taskIdAry []int64 global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ?", taskCont.Dimension, taskIdInt).Find(&taskIdAry) //组合考核方案ID taskIdStrWher := "(" for tiai, tiav := range taskIdAry { if tiai != 0 { taskIdStrWher = fmt.Sprintf("%v,%v", taskIdStrWher, tiav) } else { taskIdStrWher = fmt.Sprintf("%v%v", taskIdStrWher, tiav) } } taskIdStrWher = fmt.Sprintf("%v)", taskIdStrWher) if len(taskIdAry) > 0 { if norm == 1 { //定性考核 wherStr := fmt.Sprintf("sf_evaluation_plan IN %v AND `sf_year` = %v AND `sf_month` IN %v ", taskIdStrWher, tfv.YearName, monthStr) sumScore, averageScore = AverageOfSumNature(wherStr, 1) } else { //定量考核 wherStr := fmt.Sprintf("fld_evaluation_id IN %v AND `fl_year` = %v AND `fl_month` IN %v", taskIdStrWher, tfv.YearName, monthStr) sumScore, averageScore = AverageOfSum(wherStr, 1) } } //不存在行政组织 switch statisticalMethod { case 1: //合计 normNameTotal := fmt.Sprintf("%v", normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } case 2: //平均 normNameAverage := fmt.Sprintf("%v平均值", normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } default: //合计与平均 normNameTotal := fmt.Sprintf("%v", normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } normNameAverage := fmt.Sprintf("%v平均值", normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } } } case 2: //季度 for _, yearVal := range dataAry.Year { if len(orgList) > 0 { //有组织 for _, orgv := range orgList { var sumScore float64 var averageScore float64 //获取此指标跟查询部门相关的考核方案ID var orgvSunOrg string var taskIdAry []int64 if len(orgv.SunOrg) > 0 { orgvSunOrg = "(" for tiai, tiav := range orgv.SunOrg { if tiai != 0 { orgvSunOrg = fmt.Sprintf("%v,%v", orgvSunOrg, tiav) } else { orgvSunOrg = fmt.Sprintf("%v%v", orgvSunOrg, tiav) } } orgvSunOrg = fmt.Sprintf("%v)", orgvSunOrg) global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation IN ?", taskCont.Dimension, taskIdInt, orgv.SunOrg).Find(&taskIdAry) } else { global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation = ?", taskCont.Dimension, taskIdInt, orgv.Id).Find(&taskIdAry) } //组合考核方案ID taskIdStrWher := "(" for tiai, tiav := range taskIdAry { if tiai != 0 { taskIdStrWher = fmt.Sprintf("%v,%v", taskIdStrWher, tiav) } else { taskIdStrWher = fmt.Sprintf("%v%v", taskIdStrWher, tiav) } } taskIdStrWher = fmt.Sprintf("%v)", taskIdStrWher) if len(taskIdAry) > 0 { var wherStr string var canKaoZhi float64 = 0 if norm == 1 { //定性考核 if len(orgv.SunOrg) > 0 { wherStr = fmt.Sprintf("sf_evaluation_plan IN %v AND `sf_year` = %v AND `sf_quarter` = %v AND sf_duty_department IN %v", taskIdStrWher, yearVal, tfv.YearName, orgvSunOrg) } else { wherStr = fmt.Sprintf("sf_evaluation_plan IN %v AND `sf_year` = %v AND `sf_quarter` = %v AND sf_duty_department = %v", taskIdStrWher, yearVal, tfv.YearName, orgv.Id) canKaoZhi = GetTargetReferenceValue(strconv.FormatInt(taskCont.Dimension, 10), taskId, orgv.Id) } sumScore, averageScore = AverageOfSumNature(wherStr, 1) if canKaoZhi != 0 && sumScore > canKaoZhi { sumScore = canKaoZhi } } else { //定量考核 if len(orgv.SunOrg) > 0 { wherStr = fmt.Sprintf("fld_evaluation_id IN %v AND `fl_year` = %v AND `fl_quarter` = %v AND fl_duty_department IN %v", taskIdStrWher, yearVal, tfv.YearName, orgvSunOrg) } else { wherStr = fmt.Sprintf("fld_evaluation_id IN %v AND `fl_year` = %v AND `fl_quarter` = %v AND fl_duty_department = %v", taskIdStrWher, yearVal, tfv.YearName, orgv.Id) } sumScore, averageScore = AverageOfSum(wherStr, 1) } } switch statisticalMethod { case 1: //合计 normNameTotal := fmt.Sprintf("%v%v %v", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } case 2: //平均 normNameAverage := fmt.Sprintf("%v%v %v平均值", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } default: //合计与平均 normNameTotal := fmt.Sprintf("%v%v %v", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } normNameAverage := fmt.Sprintf("%v %v平均值", orgv.Name, normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } } } } else { var sumScore float64 var averageScore float64 //获取此指标跟查询部门相关的考核方案ID var taskIdAry []int64 global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ?", taskCont.Dimension, taskIdInt).Find(&taskIdAry) //组合考核方案ID taskIdStrWher := "(" for tiai, tiav := range taskIdAry { if tiai != 0 { taskIdStrWher = fmt.Sprintf("%v,%v", taskIdStrWher, tiav) } else { taskIdStrWher = fmt.Sprintf("%v%v", taskIdStrWher, tiav) } } taskIdStrWher = fmt.Sprintf("%v)", taskIdStrWher) //无组织 if len(taskIdAry) > 0 { if norm == 1 { //定性考核 } else { //定量考核 // wherStr := fmt.Sprintf("`fl_year` = %v AND `fl_quarter` = %v", yearVal, tfv.YearName) wherStr := fmt.Sprintf("fld_evaluation_id IN %v AND `fl_year` = %v AND `fl_quarter` IN %v ", taskIdStrWher, yearVal, tfv.YearName) sumScore, averageScore = AverageOfSum(wherStr, 1) } } switch statisticalMethod { case 1: //合计 normNameTotal := fmt.Sprintf("%v", normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } case 2: //平均 normNameAverage := fmt.Sprintf("%v平均值", normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } default: //合计与平均 normNameTotal := fmt.Sprintf("%v", normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } normNameAverage := fmt.Sprintf("%v平均值", normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } } } } case 3: //月 for _, yearVal := range dataAry.Year { if len(orgList) > 0 { //有组织 for _, orgv := range orgList { var sumScore float64 var averageScore float64 //获取此指标跟查询部门相关的考核方案ID var orgvSunOrg string var taskIdAry []int64 if len(orgv.SunOrg) > 0 { orgvSunOrg = "(" for tiai, tiav := range orgv.SunOrg { if tiai != 0 { orgvSunOrg = fmt.Sprintf("%v,%v", orgvSunOrg, tiav) } else { orgvSunOrg = fmt.Sprintf("%v%v", orgvSunOrg, tiav) } } orgvSunOrg = fmt.Sprintf("%v)", orgvSunOrg) global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation IN ?", taskCont.Dimension, taskIdInt, orgv.SunOrg).Find(&taskIdAry) } else { global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation = ?", taskCont.Dimension, taskIdInt, orgv.Id).Find(&taskIdAry) } //组合考核方案ID taskIdStrWher := "(" for tiai, tiav := range taskIdAry { if tiai != 0 { taskIdStrWher = fmt.Sprintf("%v,%v", taskIdStrWher, tiav) } else { taskIdStrWher = fmt.Sprintf("%v%v", taskIdStrWher, tiav) } } taskIdStrWher = fmt.Sprintf("%v)", taskIdStrWher) if len(taskIdAry) > 0 { var wherStr string if norm == 1 { //定性考核 var canKaoZhi float64 = 0 if len(orgv.SunOrg) > 0 { wherStr = fmt.Sprintf("sf_evaluation_plan IN %v AND `sf_year` = %v AND `sf_month` = %v AND sf_duty_department IN %v", taskIdStrWher, yearVal, tfv.YearName, orgvSunOrg) } else { wherStr = fmt.Sprintf("sf_evaluation_plan IN %v AND `sf_year` = %v AND `sf_month` = %v AND sf_duty_department = %v", taskIdStrWher, yearVal, tfv.YearName, orgv.Id) canKaoZhi = GetTargetReferenceValue(strconv.FormatInt(taskCont.Dimension, 10), taskId, orgv.Id) } sumScore, averageScore = AverageOfSumNature(wherStr, 1) if canKaoZhi != 0 && sumScore > canKaoZhi { sumScore = canKaoZhi } } else { //定量考核 if len(orgv.SunOrg) > 0 { wherStr = fmt.Sprintf("fld_evaluation_id IN %v AND `fl_year` = %v AND `fl_month` = %v AND fl_duty_department IN %v", taskIdStrWher, yearVal, tfv.YearName, orgvSunOrg) } else { wherStr = fmt.Sprintf("fld_evaluation_id IN %v AND `fl_year` = %v AND `fl_month` = %v AND fl_duty_department = %v", taskIdStrWher, yearVal, tfv.YearName, orgv.Id) } sumScore, averageScore = AverageOfSum(wherStr, 1) } } switch statisticalMethod { case 1: //合计 normNameTotal := fmt.Sprintf("%v%v %v", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } case 2: //平均 normNameAverage := fmt.Sprintf("%v%v %v平均值", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } default: //合计与平均 normNameTotal := fmt.Sprintf("%v%v %v", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } normNameAverage := fmt.Sprintf("%v %v平均值", orgv.Name, normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } } } } else { //无组织 var sumScore float64 var averageScore float64 //获取此指标跟查询部门相关的考核方案ID var taskIdAry []int64 global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ?", taskCont.Dimension, taskIdInt).Find(&taskIdAry) //组合考核方案ID taskIdStrWher := "(" for tiai, tiav := range taskIdAry { if tiai != 0 { taskIdStrWher = fmt.Sprintf("%v,%v", taskIdStrWher, tiav) } else { taskIdStrWher = fmt.Sprintf("%v%v", taskIdStrWher, tiav) } } taskIdStrWher = fmt.Sprintf("%v)", taskIdStrWher) if len(taskIdAry) > 0 { if norm == 1 { //定性考核 } else { //定量考核 wherStr := fmt.Sprintf("fld_evaluation_id IN %v AND `fl_year` = %v AND `fl_month` = %v ", taskIdStrWher, yearVal, tfv.YearName) sumScore, averageScore = AverageOfSum(wherStr, 1) } } switch statisticalMethod { case 1: //合计 normNameTotal := fmt.Sprintf("%v", normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } case 2: //平均 normNameAverage := fmt.Sprintf("%v平均值", normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } default: //合计与平均 normNameTotal := fmt.Sprintf("%v", normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } normNameAverage := fmt.Sprintf("%v平均值", normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } } } } default: //全年 // if tfv.YearName == ""{} fmt.Printf("tfv------------>%v\n", tfv) if len(orgList) > 0 { for _, orgv := range orgList { var sumScore float64 var averageScore float64 //获取此指标跟查询部门相关的考核方案ID var orgvSunOrg string var taskIdAry []int64 if len(orgv.SunOrg) > 0 { orgvSunOrg = "(" for tiai, tiav := range orgv.SunOrg { if tiai != 0 { orgvSunOrg = fmt.Sprintf("%v,%v", orgvSunOrg, tiav) } else { orgvSunOrg = fmt.Sprintf("%v%v", orgvSunOrg, tiav) } } orgvSunOrg = fmt.Sprintf("%v)", orgvSunOrg) global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation IN ?", taskCont.Dimension, taskIdInt, orgv.SunOrg).Find(&taskIdAry) } else { global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation = ?", taskCont.Dimension, taskIdInt, orgv.Id).Find(&taskIdAry) } //组合考核方案ID taskIdStrWher := "(" for tiai, tiav := range taskIdAry { if tiai != 0 { taskIdStrWher = fmt.Sprintf("%v,%v", taskIdStrWher, tiav) } else { taskIdStrWher = fmt.Sprintf("%v%v", taskIdStrWher, tiav) } } taskIdStrWher = fmt.Sprintf("%v)", taskIdStrWher) if len(taskIdAry) > 0 { var wherStr string if norm == 1 { //定性考核 var canKaoZhi float64 = 0 if len(orgv.SunOrg) > 0 { wherStr = fmt.Sprintf("sf_evaluation_plan IN %v AND `sf_year` = %v AND sf_duty_department IN %v", taskIdStrWher, tfv.YearName, orgvSunOrg) } else { wherStr = fmt.Sprintf("sf_evaluation_plan IN %v AND `sf_year` = %v AND sf_duty_department = %v", taskIdStrWher, tfv.YearName, orgv.Id) canKaoZhi = GetTargetReferenceValue(strconv.FormatInt(taskCont.Dimension, 10), taskId, orgv.Id) } sumScore, averageScore = AverageOfSumNature(wherStr, 1) if canKaoZhi != 0 && sumScore > canKaoZhi { sumScore = canKaoZhi } } else { //定量考核 if len(orgv.SunOrg) > 0 { wherStr = fmt.Sprintf("fld_evaluation_id IN %v AND `fl_year` = %v AND fl_duty_department IN %v", taskIdStrWher, tfv.YearName, orgvSunOrg) } else { wherStr = fmt.Sprintf("fld_evaluation_id IN %v AND `fl_year` = %v AND fl_duty_department = %v", taskIdStrWher, tfv.YearName, orgv.Id) } // wherStr := fmt.Sprintf("fld_evaluation_id IN %v AND `fl_year` = %v AND fl_duty_department = %v", taskIdStrWher, tfv.YearName, orgv.Id) sumScore, averageScore = AverageOfSum(wherStr, 1) } } switch statisticalMethod { case 1: //合计 normNameTotal := fmt.Sprintf("%v %v", orgv.Name, normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } case 2: //平均 normNameAverage := fmt.Sprintf("%v %v平均值", orgv.Name, normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } default: //合计与平均 normNameTotal := fmt.Sprintf("%v %v", orgv.Name, normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } normNameAverage := fmt.Sprintf("%v %v平均值", orgv.Name, normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } } } } else { var sumScore float64 var averageScore float64 //获取此指标跟查询部门相关的考核方案ID var taskIdAry []int64 global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ?", taskCont.Dimension, taskIdInt).Find(&taskIdAry) //组合考核方案ID taskIdStrWher := "(" for tiai, tiav := range taskIdAry { if tiai != 0 { taskIdStrWher = fmt.Sprintf("%v,%v", taskIdStrWher, tiav) } else { taskIdStrWher = fmt.Sprintf("%v%v", taskIdStrWher, tiav) } } taskIdStrWher = fmt.Sprintf("%v)", taskIdStrWher) if len(taskIdAry) > 0 { if norm == 1 { //定性考核 wherStr := fmt.Sprintf("sf_evaluation_plan IN %v AND `sf_year` = %v", taskIdStrWher, tfv.YearName) sumScore, averageScore = AverageOfSumNature(wherStr, 1) } else { //定量考核 wherStr := fmt.Sprintf("fld_evaluation_id IN %v AND `fl_year` = %v ", taskIdStrWher, tfv.YearName) sumScore, averageScore = AverageOfSum(wherStr, 1) } } //不存在行政组织 switch statisticalMethod { case 1: //合计 normNameTotal := fmt.Sprintf("%v", normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } case 2: //平均 normNameAverage := fmt.Sprintf("%v平均值", normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } default: //合计与平均 normNameTotal := fmt.Sprintf("%v", normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } normNameAverage := fmt.Sprintf("%v平均值", normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } } } } } // fmt.Printf("orgAry====>%v\n", orgAry) // jn, je := json.Marshal(orgList) // fmt.Printf("orgList-====>%v-====>%v\n", string(jn), je) // fmt.Printf("timeFrame-====>%v\n", timeFrame) // fmt.Printf("normName-====>%v\n", normName) // fmt.Printf("statisticalMethod-====>%v\n", statisticalMethod) return } // 获取指标关联的部门 func GetTargerDepartment(dimension, targerId int64) (departID []string) { var taskIdAry []int64 global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_accept_evaluation").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ?", dimension, targerId).Find(&taskIdAry) if len(taskIdAry) > 0 { for _, v := range taskIdAry { departID = append(departID, strconv.FormatInt(v, 10)) } } return } func TimeDimensionStatisticsNew(taskId string, dataAry natureParameter) (outputData GraphicStatistics, outErr bool) { outErr = true var normName string = "" norm := 1 //1:定性考核;2:定量考核 //获取指标信息 taskIdInt, _ := strconv.ParseInt(taskId, 10, 64) taskCont, taskErr := commonus.GetTargetInfo(taskIdInt) if taskErr == true { normName = taskCont.Title outErr = taskErr norm = taskCont.Type } else { // outErr = error.Error("此考核项目没有数据!") outErr = taskErr return } //获取时间参数 timeFrame := EstimatedTime(dataAry) //获取组织架构参数 // var orgAry []orgModelsAry var orgList []orgModels if len(dataAry.Org) > 0 { _, orgList = getGroupOrgList(dataAry.Org) } else { _, orgList = getGroupOrgList(GetTargerDepartment(taskCont.Dimension, taskIdInt)) } // fmt.Printf("orgList ---> %v\n", orgList) //统计方式 statisticalMethod := 3 if len(dataAry.AccMethod) == 1 { if commonus.IsItTrueInt(1, dataAry.AccMethod) == true { statisticalMethod = 1 } else { statisticalMethod = 2 } } // jsonCont, _ := json.Marshal(dataAry) // fmt.Printf("wherStr------>%v\n", string(jsonCont)) // return //根据时间维度进行统计 for _, tfv := range timeFrame { if commonus.IsItTrueString(tfv.XLine, outputData.XLine) == false { outputData.XLine = append(outputData.XLine, tfv.XLine) } switch tfv.Class { case 1: //半年 //组合月 monthStr := "(" for twi, twv := range tfv.Where { if twi != 0 { monthStr = fmt.Sprintf("%v,%v", monthStr, twv) } else { monthStr = fmt.Sprintf("%v%v", monthStr, twv) } } monthStr = fmt.Sprintf("%v)", monthStr) //定量考核 if len(orgList) > 0 { //有政组织 for _, orgv := range orgList { var orgvSunOrg string //获取此指标跟查询部门相关的考核方案ID // var taskIdAry []int64 // global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation = ?", taskCont.Dimension, taskIdInt, orgv.Id).Find(&taskIdAry) // if len(orgv.SunOrg) > 0 { // orgvSunOrg = "(" // for tiai, tiav := range orgv.SunOrg { // if tiai != 0 { // orgvSunOrg = fmt.Sprintf("%v,%v", orgvSunOrg, tiav) // } else { // orgvSunOrg = fmt.Sprintf("%v%v", orgvSunOrg, tiav) // } // } // global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation IN ?", taskCont.Dimension, taskIdInt, orgv.SunOrg).Find(&taskIdAry) // } else { // global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation = ?", taskCont.Dimension, taskIdInt, orgv.Id).Find(&taskIdAry) // } //组合考核方案ID // taskIdStrWher := "(" // for tiai, tiav := range taskIdAry { // if tiai != 0 { // taskIdStrWher = fmt.Sprintf("%v,%v", taskIdStrWher, tiav) // } else { // taskIdStrWher = fmt.Sprintf("%v%v", taskIdStrWher, tiav) // } // } // taskIdStrWher = fmt.Sprintf("%v)", taskIdStrWher) for _, yearVal := range dataAry.Year { var sumScore float64 var averageScore float64 // if len(taskIdAry) > 0 { var wherStr string if norm == 1 { var canKaoZhi float64 = 0 //定性考核 if len(orgv.SunOrg) > 0 { orgvSunOrg = fmt.Sprintf("%v)", orgvSunOrg) wherStr = fmt.Sprintf("sf_target_id = %v AND `sf_year` = %v AND `sf_month` IN %v AND sf_duty_department IN %v", taskIdInt, yearVal, monthStr, orgvSunOrg) } else { wherStr = fmt.Sprintf("sf_target_id = %v AND `sf_year` = %v AND `sf_month` IN %v AND sf_duty_department = %v", taskIdInt, yearVal, monthStr, orgv.Id) canKaoZhi = GetTargetReferenceValue(strconv.FormatInt(taskCont.Dimension, 10), taskId, orgv.Id) } sumScore, averageScore = AverageOfSumNature(wherStr, 1) if canKaoZhi != 0 { if sumScore > canKaoZhi { sumScore = canKaoZhi } } } else { //定量考核 if len(orgv.SunOrg) > 0 { wherStr = fmt.Sprintf("fld_target_id = %v AND `fl_year` = %v AND `fl_month` IN %v AND fl_duty_department IN %v", taskIdInt, yearVal, monthStr, orgvSunOrg) } else { wherStr = fmt.Sprintf("fld_target_id = %v AND `fl_year` = %v AND `fl_month` IN %v AND fl_duty_department = %v", taskIdInt, yearVal, monthStr, orgv.Id) } sumScore, averageScore = AverageOfSum(wherStr, 1) } // } switch statisticalMethod { case 1: //合计 normNameTotal := fmt.Sprintf("%v%v %v", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } case 2: //平均 normNameAverage := fmt.Sprintf("%v%v %v平均值", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } default: //合计与平均 normNameTotal := fmt.Sprintf("%v%v %v", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } normNameAverage := fmt.Sprintf("%v%v %v平均值", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } } } } } else { //无行政组织 var sumScore float64 var averageScore float64 //获取此指标跟查询部门相关的考核方案ID // var taskIdAry []int64 // global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ?", taskCont.Dimension, taskIdInt).Find(&taskIdAry) //组合考核方案ID // taskIdStrWher := "(" // for tiai, tiav := range taskIdAry { // if tiai != 0 { // taskIdStrWher = fmt.Sprintf("%v,%v", taskIdStrWher, tiav) // } else { // taskIdStrWher = fmt.Sprintf("%v%v", taskIdStrWher, tiav) // } // } // taskIdStrWher = fmt.Sprintf("%v)", taskIdStrWher) // if len(taskIdAry) > 0 { if norm == 1 { //定性考核 wherStr := fmt.Sprintf("sf_target_id = %v AND `sf_year` = %v AND `sf_month` IN %v ", taskIdInt, tfv.YearName, monthStr) sumScore, averageScore = AverageOfSumNature(wherStr, 1) } else { //定量考核 wherStr := fmt.Sprintf("fld_target_id = %v AND `fl_year` = %v AND `fl_month` IN %v", taskIdInt, tfv.YearName, monthStr) sumScore, averageScore = AverageOfSum(wherStr, 1) } // } //不存在行政组织 switch statisticalMethod { case 1: //合计 normNameTotal := fmt.Sprintf("%v", normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } case 2: //平均 normNameAverage := fmt.Sprintf("%v平均值", normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } default: //合计与平均 normNameTotal := fmt.Sprintf("%v", normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } normNameAverage := fmt.Sprintf("%v平均值", normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } } } case 2: //季度 for _, yearVal := range dataAry.Year { if len(orgList) > 0 { //有组织 for _, orgv := range orgList { var sumScore float64 var averageScore float64 //获取此指标跟查询部门相关的考核方案ID var orgvSunOrg string // var taskIdAry []int64 if len(orgv.SunOrg) > 0 { orgvSunOrg = "(" for tiai, tiav := range orgv.SunOrg { if tiai != 0 { orgvSunOrg = fmt.Sprintf("%v,%v", orgvSunOrg, tiav) } else { orgvSunOrg = fmt.Sprintf("%v%v", orgvSunOrg, tiav) } } orgvSunOrg = fmt.Sprintf("%v)", orgvSunOrg) // global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation IN ?", taskCont.Dimension, taskIdInt, orgv.SunOrg).Find(&taskIdAry) } else { // global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation = ?", taskCont.Dimension, taskIdInt, orgv.Id).Find(&taskIdAry) } //组合考核方案ID // taskIdStrWher := "(" // for tiai, tiav := range taskIdAry { // if tiai != 0 { // taskIdStrWher = fmt.Sprintf("%v,%v", taskIdStrWher, tiav) // } else { // taskIdStrWher = fmt.Sprintf("%v%v", taskIdStrWher, tiav) // } // } // taskIdStrWher = fmt.Sprintf("%v)", taskIdStrWher) // if len(taskIdAry) > 0 { var wherStr string var canKaoZhi float64 = 0 if norm == 1 { //定性考核 if len(orgv.SunOrg) > 0 { wherStr = fmt.Sprintf("sf_target_id = %v AND `sf_year` = %v AND `sf_quarter` = %v AND sf_duty_department IN %v", taskIdInt, yearVal, tfv.YearName, orgvSunOrg) } else { wherStr = fmt.Sprintf("sf_target_id = %v AND `sf_year` = %v AND `sf_quarter` = %v AND sf_duty_department = %v", taskIdInt, yearVal, tfv.YearName, orgv.Id) canKaoZhi = GetTargetReferenceValue(strconv.FormatInt(taskCont.Dimension, 10), taskId, orgv.Id) } sumScore, averageScore = AverageOfSumNature(wherStr, 1) if canKaoZhi != 0 && sumScore > canKaoZhi { sumScore = canKaoZhi } } else { //定量考核 if len(orgv.SunOrg) > 0 { wherStr = fmt.Sprintf("fld_target_id = %v AND `fl_year` = %v AND `fl_quarter` = %v AND fl_duty_department IN %v", taskIdInt, yearVal, tfv.YearName, orgvSunOrg) } else { wherStr = fmt.Sprintf("fld_target_id = %v AND `fl_year` = %v AND `fl_quarter` = %v AND fl_duty_department = %v", taskIdInt, yearVal, tfv.YearName, orgv.Id) } sumScore, averageScore = AverageOfSum(wherStr, 1) } // } switch statisticalMethod { case 1: //合计 normNameTotal := fmt.Sprintf("%v%v %v", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } case 2: //平均 normNameAverage := fmt.Sprintf("%v%v %v平均值", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } default: //合计与平均 normNameTotal := fmt.Sprintf("%v%v %v", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } normNameAverage := fmt.Sprintf("%v %v平均值", orgv.Name, normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } } } } else { var sumScore float64 var averageScore float64 //获取此指标跟查询部门相关的考核方案ID // var taskIdAry []int64 // global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ?", taskCont.Dimension, taskIdInt).Find(&taskIdAry) //组合考核方案ID // taskIdStrWher := "(" // for tiai, tiav := range taskIdAry { // if tiai != 0 { // taskIdStrWher = fmt.Sprintf("%v,%v", taskIdStrWher, tiav) // } else { // taskIdStrWher = fmt.Sprintf("%v%v", taskIdStrWher, tiav) // } // } // taskIdStrWher = fmt.Sprintf("%v)", taskIdStrWher) //无组织 // if len(taskIdAry) > 0 { if norm == 1 { //定性考核 wherStr := fmt.Sprintf("sf_target_id = %v AND `sf_year` = %v AND `fl_quarter` IN %v ", taskIdInt, tfv.YearName, tfv.YearName) sumScore, averageScore = AverageOfSumNature(wherStr, 1) } else { //定量考核 // wherStr := fmt.Sprintf("`fl_year` = %v AND `fl_quarter` = %v", yearVal, tfv.YearName) wherStr := fmt.Sprintf("fld_target_id = %v AND `fl_year` = %v AND `fl_quarter` IN %v ", taskIdInt, yearVal, tfv.YearName) sumScore, averageScore = AverageOfSum(wherStr, 1) } // } switch statisticalMethod { case 1: //合计 normNameTotal := fmt.Sprintf("%v", normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } case 2: //平均 normNameAverage := fmt.Sprintf("%v平均值", normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } default: //合计与平均 normNameTotal := fmt.Sprintf("%v", normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } normNameAverage := fmt.Sprintf("%v平均值", normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } } } } case 3: //月 for _, yearVal := range dataAry.Year { if len(orgList) > 0 { //有组织 for _, orgv := range orgList { var sumScore float64 var averageScore float64 //获取此指标跟查询部门相关的考核方案ID var orgvSunOrg string // var taskIdAry []int64 if len(orgv.SunOrg) > 0 { orgvSunOrg = "(" for tiai, tiav := range orgv.SunOrg { if tiai != 0 { orgvSunOrg = fmt.Sprintf("%v,%v", orgvSunOrg, tiav) } else { orgvSunOrg = fmt.Sprintf("%v%v", orgvSunOrg, tiav) } } orgvSunOrg = fmt.Sprintf("%v)", orgvSunOrg) // global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation IN ?", taskCont.Dimension, taskIdInt, orgv.SunOrg).Find(&taskIdAry) } else { // global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation = ?", taskCont.Dimension, taskIdInt, orgv.Id).Find(&taskIdAry) } //组合考核方案ID // taskIdStrWher := "(" // for tiai, tiav := range taskIdAry { // if tiai != 0 { // taskIdStrWher = fmt.Sprintf("%v,%v", taskIdStrWher, tiav) // } else { // taskIdStrWher = fmt.Sprintf("%v%v", taskIdStrWher, tiav) // } // } // taskIdStrWher = fmt.Sprintf("%v)", taskIdStrWher) // if len(taskIdAry) > 0 { var wherStr string if norm == 1 { //定性考核 var canKaoZhi float64 = 0 if len(orgv.SunOrg) > 0 { wherStr = fmt.Sprintf("sf_target_id = %v AND `sf_year` = %v AND `sf_month` = %v AND sf_duty_department IN %v", taskIdInt, yearVal, tfv.YearName, orgvSunOrg) } else { wherStr = fmt.Sprintf("sf_target_id = %v AND `sf_year` = %v AND `sf_month` = %v AND sf_duty_department = %v", taskIdInt, yearVal, tfv.YearName, orgv.Id) canKaoZhi = GetTargetReferenceValue(strconv.FormatInt(taskCont.Dimension, 10), taskId, orgv.Id) } sumScore, averageScore = AverageOfSumNature(wherStr, 1) if canKaoZhi != 0 && sumScore > canKaoZhi { sumScore = canKaoZhi } } else { //定量考核 if len(orgv.SunOrg) > 0 { wherStr = fmt.Sprintf("fld_target_id = %v AND `fl_year` = %v AND `fl_month` = %v AND fl_duty_department IN %v", taskIdInt, yearVal, tfv.YearName, orgvSunOrg) } else { wherStr = fmt.Sprintf("fld_target_id = %v AND `fl_year` = %v AND `fl_month` = %v AND fl_duty_department = %v", taskIdInt, yearVal, tfv.YearName, orgv.Id) } sumScore, averageScore = AverageOfSum(wherStr, 1) } // } switch statisticalMethod { case 1: //合计 normNameTotal := fmt.Sprintf("%v%v %v", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } case 2: //平均 normNameAverage := fmt.Sprintf("%v%v %v平均值", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } default: //合计与平均 normNameTotal := fmt.Sprintf("%v%v %v", yearVal, orgv.Name, normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } normNameAverage := fmt.Sprintf("%v %v平均值", orgv.Name, normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } } } } else { //无组织 var sumScore float64 var averageScore float64 //获取此指标跟查询部门相关的考核方案ID // var taskIdAry []int64 // global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ?", taskCont.Dimension, taskIdInt).Find(&taskIdAry) //组合考核方案ID // taskIdStrWher := "(" // for tiai, tiav := range taskIdAry { // if tiai != 0 { // taskIdStrWher = fmt.Sprintf("%v,%v", taskIdStrWher, tiav) // } else { // taskIdStrWher = fmt.Sprintf("%v%v", taskIdStrWher, tiav) // } // } // taskIdStrWher = fmt.Sprintf("%v)", taskIdStrWher) // if len(taskIdAry) > 0 { if norm == 1 { //定性考核 wherStr := fmt.Sprintf("sf_target_id = %v AND `sf_year` = %v AND `fl_month` IN %v ", taskIdInt, tfv.YearName, tfv.YearName) sumScore, averageScore = AverageOfSumNature(wherStr, 1) } else { //定量考核 wherStr := fmt.Sprintf("fld_target_id = %v AND `fl_year` = %v AND `fl_month` = %v ", taskIdInt, yearVal, tfv.YearName) sumScore, averageScore = AverageOfSum(wherStr, 1) } // } switch statisticalMethod { case 1: //合计 normNameTotal := fmt.Sprintf("%v", normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } case 2: //平均 normNameAverage := fmt.Sprintf("%v平均值", normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } default: //合计与平均 normNameTotal := fmt.Sprintf("%v", normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } normNameAverage := fmt.Sprintf("%v平均值", normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } } } } default: //全年 // if tfv.YearName == ""{} // fmt.Printf("tfv------------>%v\n", tfv) if len(orgList) > 0 { for _, orgv := range orgList { var sumScore float64 var averageScore float64 //获取此指标跟查询部门相关的考核方案ID var orgvSunOrg string // var taskIdAry []int64 if len(orgv.SunOrg) > 0 { orgvSunOrg = "(" for tiai, tiav := range orgv.SunOrg { if tiai != 0 { orgvSunOrg = fmt.Sprintf("%v,%v", orgvSunOrg, tiav) } else { orgvSunOrg = fmt.Sprintf("%v%v", orgvSunOrg, tiav) } } orgvSunOrg = fmt.Sprintf("%v)", orgvSunOrg) // global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation IN ?", taskCont.Dimension, taskIdInt, orgv.SunOrg).Find(&taskIdAry) } else { // global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation = ?", taskCont.Dimension, taskIdInt, orgv.Id).Find(&taskIdAry) } //组合考核方案ID // taskIdStrWher := "(" // for tiai, tiav := range taskIdAry { // if tiai != 0 { // taskIdStrWher = fmt.Sprintf("%v,%v", taskIdStrWher, tiav) // } else { // taskIdStrWher = fmt.Sprintf("%v%v", taskIdStrWher, tiav) // } // } // taskIdStrWher = fmt.Sprintf("%v)", taskIdStrWher) // if len(taskIdAry) > 0 { var wherStr string if norm == 1 { //定性考核 var canKaoZhi float64 = 0 if len(orgv.SunOrg) > 0 { wherStr = fmt.Sprintf("sf_target_id = %v AND `sf_year` = %v AND sf_duty_department IN %v", taskIdInt, tfv.YearName, orgvSunOrg) } else { wherStr = fmt.Sprintf("sf_target_id = %v AND `sf_year` = %v AND sf_duty_department = %v", taskIdInt, tfv.YearName, orgv.Id) canKaoZhi = GetTargetReferenceValue(strconv.FormatInt(taskCont.Dimension, 10), taskId, orgv.Id) } sumScore, averageScore = AverageOfSumNature(wherStr, 1) if canKaoZhi != 0 && sumScore > canKaoZhi { sumScore = canKaoZhi } } else { //定量考核 if len(orgv.SunOrg) > 0 { wherStr = fmt.Sprintf("fld_target_id = %v AND `fl_year` = %v AND fl_duty_department IN %v", taskIdInt, tfv.YearName, orgvSunOrg) } else { wherStr = fmt.Sprintf("fld_target_id = %v AND `fl_year` = %v AND fl_duty_department = %v", taskIdInt, tfv.YearName, orgv.Id) } // wherStr := fmt.Sprintf("fld_evaluation_id IN %v AND `fl_year` = %v AND fl_duty_department = %v", taskIdStrWher, tfv.YearName, orgv.Id) sumScore, averageScore = AverageOfSum(wherStr, 1) } // } switch statisticalMethod { case 1: //合计 normNameTotal := fmt.Sprintf("%v %v", orgv.Name, normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } case 2: //平均 normNameAverage := fmt.Sprintf("%v %v平均值", orgv.Name, normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } default: //合计与平均 normNameTotal := fmt.Sprintf("%v %v", orgv.Name, normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } normNameAverage := fmt.Sprintf("%v %v平均值", orgv.Name, normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } } } } else { var sumScore float64 var averageScore float64 //获取此指标跟查询部门相关的考核方案ID // var taskIdAry []int64 // global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("qe_state = 1 AND qe_dimension = ? AND qe_target = ?", taskCont.Dimension, taskIdInt).Find(&taskIdAry) //组合考核方案ID // taskIdStrWher := "(" // for tiai, tiav := range taskIdAry { // if tiai != 0 { // taskIdStrWher = fmt.Sprintf("%v,%v", taskIdStrWher, tiav) // } else { // taskIdStrWher = fmt.Sprintf("%v%v", taskIdStrWher, tiav) // } // } // taskIdStrWher = fmt.Sprintf("%v)", taskIdStrWher) // if len(taskIdAry) > 0 { if norm == 1 { //定性考核 wherStr := fmt.Sprintf("sf_target_id = %v AND `sf_year` = %v", taskIdInt, tfv.YearName) sumScore, averageScore = AverageOfSumNature(wherStr, 1) } else { //定量考核 wherStr := fmt.Sprintf("fld_target_id = %v AND `fl_year` = %v ", taskIdInt, tfv.YearName) sumScore, averageScore = AverageOfSum(wherStr, 1) } // } //不存在行政组织 switch statisticalMethod { case 1: //合计 normNameTotal := fmt.Sprintf("%v", normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } case 2: //平均 normNameAverage := fmt.Sprintf("%v平均值", normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } default: //合计与平均 normNameTotal := fmt.Sprintf("%v", normName) if commonus.IsItTrueString(normNameTotal, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameTotal) var seriesInfo series seriesInfo.Name = normNameTotal seriesInfo.Data = append(seriesInfo.Data, sumScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfo) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameTotal { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, sumScore) } } } normNameAverage := fmt.Sprintf("%v平均值", normName) if commonus.IsItTrueString(normNameAverage, outputData.Cylindrical) == false { outputData.Cylindrical = append(outputData.Cylindrical, normNameAverage) var seriesInfoAverage series seriesInfoAverage.Name = normNameAverage seriesInfoAverage.Data = append(seriesInfoAverage.Data, averageScore) outputData.CylindricalData = append(outputData.CylindricalData, seriesInfoAverage) } else { for cdi, cdv := range outputData.CylindricalData { if cdv.Name == normNameAverage { outputData.CylindricalData[cdi].Data = append(outputData.CylindricalData[cdi].Data, averageScore) } } } } } } } // fmt.Printf("orgAry====>%v\n", orgAry) // jn, je := json.Marshal(orgList) // fmt.Printf("orgList-====>%v-====>%v\n", string(jn), je) // fmt.Printf("timeFrame-====>%v\n", timeFrame) // fmt.Printf("normName-====>%v\n", normName) // fmt.Printf("statisticalMethod-====>%v\n", statisticalMethod) return }