package statistics import ( "sync" "github.com/flipped-aurora/gin-vue-admin/server/model/assessmentmodel" ) // 统计 type ApiGroup struct{} // 协程设置 var syncProcess = sync.WaitGroup{} var syncProcessDepartTarget = sync.WaitGroup{} //获取指标相关参数 // 数据计量统计(表格统计) type tablePlanVersionStic struct { TableScore []TableScoreList mutext sync.RWMutex } // 读取锁数据 func (t *tablePlanVersionStic) readMyDayData() []TableScoreList { t.mutext.RLock() defer t.mutext.RUnlock() return t.TableScore } // 成绩表 type TranscriptTableData struct { ScoreStatistics []TranscriptTableDateList Defen []defenfenxi mutext sync.RWMutex } // 读取成绩表锁数据 func (t *TranscriptTableData) readTranscriptData() []TranscriptTableDateList { t.mutext.RLock() defer t.mutext.RUnlock() return t.ScoreStatistics } // 数据锁统计 type dataLockStatistics struct { outData []TargetContOutCont mutext sync.RWMutex } // 读取锁数据 func (d *dataLockStatistics) readMyDayData() []TargetContOutCont { d.mutext.RLock() defer d.mutext.RUnlock() return d.outData } // 计算部门每月成绩分数 type countEveryDepartmentMonthScore struct { outData []everyDepartmentScore mutext sync.RWMutex } // 部门月分数 type everyDepartmentScore struct { MonthVal int64 `json:"monthval"` Score float64 `json:"score"` } // 读取锁数据 func (c *countEveryDepartmentMonthScore) readMyDayData() []everyDepartmentScore { c.mutext.RLock() defer c.mutext.RUnlock() return c.outData } // 考核方案版本列表查询 type DutyPlanVersio struct { Group string `json:"group"` //归属集团 DeaprtId string `json:"deaprtid"` //部门ID Year string `json:"year"` //年度 Versio string `json:"versio"` //版本 VersioNum string `json:"versionum"` //编号 State int `json:"state"` //状态 } type PlanVersioMingXi struct { Group string `json:"group"` //归属集团 DeaprtId string `json:"deaprtid"` //部门ID Year string `json:"year"` //年度 Title string `json:"title"` //编号 Class int `json:"class"` //状态 Month int `json:"month"` //月 } // 考核方案版本列表查询输出 type DutyPlanVersioOut struct { assessmentmodel.PlanVersio GroupName string `json:"groupname"` //归属集团 DeaprtName string `json:"deaprtname"` //部门ID Time string `json:"time"` } // 方案回显 type AddDutyNewCont struct { Id string `json:"id"` //维度ID Name string `json:"name"` // Order int64 `json:"ordering"` ZhiFraction int `json:"zhiFraction"` Child []EvaluPross `json:"child"` //考核细则 } // 指标 type EvaluPross struct { Id string `json:"id"` //维度ID Name string `json:"name"` Content string `json:"content"` //指标说明 Unit string `json:"unit"` //单位"` ReferenceScore int64 `json:"referencescore"` //标准分值"` Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年"` CycleAttres int `json:"cycleattr"` //辅助计数"` State int `json:"state"` Score int64 `json:"score"` //分数 QualEvalId string `json:"qeid"` Status int `json:"status"` } // 统计表格输出 type StaticsOut struct { Id string `json:"id"` //维度ID Key string `json:"name"` Group string `json:"group"` //归属集团 GroupName string `json:"groupname"` //归属集团名称 DeaprtId string `json:"deaprtid"` //部门ID DeaprtName string `json:"deaprtname"` //部门名称 Child []StaticsOutData `json:"child"` //考核细则 } type StaticsOutData struct { Id string `json:"id"` //维度ID Name string `json:"name"` Content string `json:"content"` //指标说明 Unit string `json:"unit"` //单位"` ReferenceScore int64 `json:"referencescore"` //标准分值"` DeaprtName string `json:"deaprtname"` //数据提交部门ID Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年"` CycleAttres int `json:"cycleattr"` //辅助计数"` StatisticsData []float64 `json:"statisticsdata"` //统计值 Child []StaticsOutData `json:"child"` //考核细则 } type OrgStatics struct { Id string `json:"id"` //维度ID Name string `json:"name"` Child []OrgStaticsDepary `json:"child"` //考核细则 } type OrgStaticsDepary struct { Id string `json:"id"` //维度ID Name string `json:"name"` Child []ProgrammeStatisticsCallBack `json:"child"` //考核细则 } // 方案统计回显 type ProgrammeStatisticsCallBack struct { Id string `json:"id"` //维度ID Name string `json:"name"` ZhiFraction int `json:"zhiFraction"` Child []EvaluProssCall `json:"child"` //考核细则 } // 指标 type EvaluProssCall struct { Id string `json:"id"` //指标ID Name string `json:"name"` //指标名称 Content string `json:"content"` //指标说明 Unit string `json:"unit"` //单位"` ReferenceScore int64 `json:"referencescore"` //标准分值"` Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年"` CycleAttres int `json:"cycleattr"` //辅助计数"` ExecuteDepart []string `json:"executedepart"` //执行部门 TimeData []float64 `json:"timedata"` //统计结果 } // 考核方案细则列表输出 type TargetContOutCont struct { Id string `json:"id"` Type int `json:"type"` Group string `json:"group"` GroupName string `json:"groupname"` DepartmentId string `json:"departmentid"` DepartmentName string `json:"departmentname"` Dimension string `json:"dimension"` //维度ID DimensionName string `json:"dimensionname"` //维度名称 DimensionWeight int64 `json:"dimensionweight"` //维度权重 Target string `json:"target"` //指标Id TargetName string `json:"targetname"` //指标名称 TargetCont string `json:"targetcont"` //指标描述 TargetWeight int64 `json:"targetweight"` //指标权重 Unit string `json:"unit"` //单位"` ReferenceScore int64 `json:"referencescore"` //标准分值"` Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年"` CycleAttres int `json:"cycleattr"` //辅助计数"` Score []ScoreList `json:"score"` //得分 ExecutiveDepartment []string `json:"executivedepartment"` //执行部门 ScoreAllList []ScoreListAry `json:"scorealllist"` StatisticsName []string `json:"statisticsname"` //执行部门 ManualGear int `json:"manualgear"` //1:自动;2:手动 } type ScoreList struct { Class int `json:"class"` //统计类型 ScoreVal float64 `json:"scoreval"` //原始值 AllPrize float64 `json:"allprize"` //全奖值 ZeroPrize float64 `json:"zeroprize"` //零奖值 CappingVal float64 `json:"cappingval"` //封顶值 ActualScore float64 `json:"actualscore"` //实际得分 Achievement float64 `json:"achievement"` //达成率 } type ScoreListAry struct { Class int `json:"class"` //统计类型 ScoreVal []float64 `json:"scoreval"` //原始值 AllPrize []float64 `json:"allprize"` //全奖值 ZeroPrize []float64 `json:"zeroprize"` //零奖值 CappingVal []float64 `json:"cappingval"` //封顶值 ActualScore []float64 `json:"actualscore"` //实际得分 Achievement []float64 `json:"achievement"` //达成率 } // 协程表格统计 type TableScoreList struct { Counter int `json:"counter"` //计数器 ScoreList ExecutiveDepartment []string `json:"executivedepartment"` //执行部门 } type TongjiFenShu struct { Score float64 `json:"score" gorm:"column:sf_score;type:bigint(20) unsigned;default:0;not null;comment:分值(乘100录入)"` Count float64 `json:"count" gorm:"column:sf_count;type:int(5) unsigned;default:1;not null;comment:发生次数"` } type banNian struct { Month []int `json:"month"` } // 定量流水全奖值、零奖值、封顶值 type FlowLogAllZreo struct { Id string `json:"id"` TargetId string `json:"targetid"` //指标ID` Zeroprize float64 `json:"zeroprize"` //零奖值"` Allprize float64 `json:"allprize"` //全奖值"` Capping float64 `json:"capping"` //封顶值"` } type FlowDataLogList struct { assessmentmodel.FlowLogData Key int64 `json:"key" gorm:"column:fld_flow_log;type:bigint(20) unsigned;default:0;not null;comment:识别标志"` Score int64 `json:"score" gorm:"column:fld_score;type:bigint(20) unsigned;default:0;not null;comment:数据"` ScoringMethod int `json:"scoringmethod" gorm:"column:fld_scoring_method;type:int(1) unsigned;default:1;not null;comment:计分方式(1:自动;2:手动)"` ScoringScore float64 `json:"scoringscore" gorm:"column:fld_scoring_score;type:bigint(20) unsigned;default:0;not null;comment:手动分"` EvaluationDepartment int64 `json:"evaluationdepartment" gorm:"column:fl_evaluation_department;type:bigint(20) unsigned;default:0;not null;comment:测评部门"` } // 绩效考核成绩表 type TranscriptTable struct { Group string `json:"group"` Department string `json:"department"` Year string `year` Month []int `json:"month"` } // 绩效考核成绩表结果 type TranscriptTableDateList struct { DepartmentId string `json:"departmentid"` Department string `json:"department"` A float64 `json:"a"` B float64 `json:"b"` C float64 `json:"C"` D float64 `json:"d"` E float64 `json:"e"` F float64 `json:"f"` G float64 `json:"g"` H float64 `json:"h"` I float64 `json:"i"` J float64 `json:"J"` K float64 `json:"K"` L float64 `json:"L"` } // 图标维度输出 type TranscriptTableDateListChars struct { XLine []string `json:"xline"` Cylindrical []string `json:"cylindrical"` YLine []YlineData `json:"cylindricaldata"` } type YlineData struct { Name string `json:"name"` Data []float64 `json:"data"` } // 计算得分性质 type defenfenxi struct { Title string `json:"title"` TimeClass string `json:"timeclass"` Month int64 `json:"month"` Stroce float64 `json:"stroce"` State int `json:"state"` } // 行政组织级统计 type orgShierTongji struct { A []float64 `json:"a"` B []float64 `json:"b"` C []float64 `json:"C"` D []float64 `json:"d"` E []float64 `json:"e"` F []float64 `json:"f"` G []float64 `json:"g"` H []float64 `json:"h"` I []float64 `json:"i"` J []float64 `json:"J"` K []float64 `json:"K"` L []float64 `json:"L"` }