Browse Source

部门月度统计详情

qin_1
超级管理员 3 years ago
parent
commit
b54d1faf0b
  1. 9
      gin_server_admin/api/admin/dutyassess/assess.go
  2. 1
      gin_server_admin/api/index/statistics/enter.go
  3. 95
      gin_server_admin/api/index/statistics/newstatistics.go
  4. 20
      gin_server_admin/api/index/statistics/tablestatistics.go
  5. 45
      gin_server_admin/api/statistics/quantification/enter.go
  6. 69
      gin_server_admin/api/v1/custom/customhandle.go
  7. 2
      gin_server_admin/api/v1/examtestpage/grouphandle.go
  8. 174
      gin_server_admin/api/v1/shiyan/shiyan.go
  9. 31
      gin_server_admin/commonus/publichaneld.go
  10. 70
      gin_server_admin/middleware/myjwt.go
  11. 1
      gin_server_admin/model/system/request/sys_user.go
  12. 1
      gin_server_admin/router/statisticsrouter/statistics.go

9
gin_server_admin/api/admin/dutyassess/assess.go

@ -494,10 +494,13 @@ func (e *DutyAssessApi) LookQuantitativeConfig(c *gin.Context) {
// outCont.TargetTitle = targetInfo.Title // outCont.TargetTitle = targetInfo.Title
// } // }
outCont.TargetTitle = v.Title outCont.TargetTitle = v.Title
dtargetInfo, dtErr := commonus.GetDetailedTargetInfo(v.TargetConfig) if v.TargetConfig != 0 {
if dtErr == true { dtargetInfo, dtErr := commonus.GetDetailedTargetInfo(v.TargetConfig)
outCont.DetailedTargetTitle = dtargetInfo.Title if dtErr == true {
outCont.DetailedTargetTitle = dtargetInfo.Title
}
} }
outCont.Capping = v.Capping outCont.Capping = v.Capping
outCont.CappingVal = v.CappingVal / 100 outCont.CappingVal = v.CappingVal / 100
outList = append(outList, outCont) outList = append(outList, outCont)

1
gin_server_admin/api/index/statistics/enter.go

@ -70,6 +70,7 @@ type PlanVersioMingXi struct {
Year string `json:"year"` //年度 Year string `json:"year"` //年度
Title string `json:"title"` //编号 Title string `json:"title"` //编号
Class int `json:"class"` //状态 Class int `json:"class"` //状态
Month int `json:"month"` //月
} }
//考核方案版本列表查询输出 //考核方案版本列表查询输出

95
gin_server_admin/api/index/statistics/newstatistics.go

@ -61,10 +61,11 @@ func (t *tablePlanVersionStic) conditionStatisticsNew(group, department, dimensi
var mtScore float64 = 0 var mtScore float64 = 0
var atScore float64 = 0 var atScore float64 = 0
var lastEvalId int64 var lastEvalId int64
var scoreSum float64 = 0 // var scoreSum float64 = 0
var shouDongFenzhi float64 = 0 var shouDongFenzhi float64 = 0
var zhidongDongLiang float64 = 0 var zhidongDongLiang float64 = 0
// var realScore float64 = 0
if len(fldList) > 0 { if len(fldList) > 0 {
for _, v := range fldList { for _, v := range fldList {
// fmt.Printf("Key----------------->%v\n", v.Key) // fmt.Printf("Key----------------->%v\n", v.Key)
@ -78,16 +79,19 @@ func (t *tablePlanVersionStic) conditionStatisticsNew(group, department, dimensi
atScore = atScore + float64(v.ScoringScore) atScore = atScore + float64(v.ScoringScore)
shouDongFenzhi = shouDongFenzhi + float64(v.ScoringScore) shouDongFenzhi = shouDongFenzhi + float64(v.ScoringScore)
} }
scoreSum = scoreSum + float64(v.Score) // scoreSum = scoreSum + atScore
// scoreSum = scoreSum + float64(v.Score)
mtScore = mtScore + v.ScoringScore mtScore = mtScore + v.ScoringScore
if v.DutyDepartment != 0 {
whereDepart := commonus.MapOut()
whereDepart["id"] = v.DutyDepartment
orgContDer, _ := commonus.GetNewOrgCont(whereDepart, "name")
tableScoreCont.ExecutiveDepartment = append(tableScoreCont.ExecutiveDepartment, orgContDer.Name)
}
whereDepart := commonus.MapOut()
whereDepart["id"] = v.DutyDepartment
orgContDer, _ := commonus.GetNewOrgCont(whereDepart, "name")
tableScoreCont.ExecutiveDepartment = append(tableScoreCont.ExecutiveDepartment, orgContDer.Name)
} }
} }
tableScoreCont.ScoreVal = commonus.Decimal(scoreSum / 100) tableScoreCont.ScoreVal = commonus.Decimal(atScore / 100)
targetIdInt, _ := strconv.ParseInt(targetId, 10, 64) targetIdInt, _ := strconv.ParseInt(targetId, 10, 64)
groupId, _ := strconv.ParseInt(group, 10, 64) groupId, _ := strconv.ParseInt(group, 10, 64)
departmentId, _ := strconv.ParseInt(department, 10, 64) departmentId, _ := strconv.ParseInt(department, 10, 64)
@ -96,8 +100,8 @@ func (t *tablePlanVersionStic) conditionStatisticsNew(group, department, dimensi
// fmt.Printf("scoreSum--->%v------->mtScore--->%v---->zeroPrize--->%v---->allPrize--->%v---->cappingPrize--->%v---->typeClass---->%v\n", scoreSum, mtScore, zeroPrize, allPrize, cappingPrize, typeClass) // fmt.Printf("scoreSum--->%v------->mtScore--->%v---->zeroPrize--->%v---->allPrize--->%v---->cappingPrize--->%v---->typeClass---->%v\n", scoreSum, mtScore, zeroPrize, allPrize, cappingPrize, typeClass)
// tableScoreCont.ActualScore, tableScoreCont.AllPrize, tableScoreCont.ZeroPrize, tableScoreCont.CappingVal, tableScoreCont.Achievement = commonus.CalculateScore(referenceScore, scoreSum, allPrize, zeroPrize, cappingPrize, typeClass) tableScoreCont.ActualScore, tableScoreCont.AllPrize, tableScoreCont.ZeroPrize, tableScoreCont.CappingVal, tableScoreCont.Achievement = commonus.CalculateScore(referenceScore, atScore, allPrize, zeroPrize, cappingPrize, typeClass)
tableScoreCont.ActualScore, tableScoreCont.AllPrize, tableScoreCont.ZeroPrize, tableScoreCont.CappingVal, tableScoreCont.Achievement = commonus.CalculateScore(referenceScore, zhidongDongLiang, allPrize, zeroPrize, cappingPrize, typeClass) // tableScoreCont.ActualScore, tableScoreCont.AllPrize, tableScoreCont.ZeroPrize, tableScoreCont.CappingVal, tableScoreCont.Achievement = commonus.CalculateScore(referenceScore, zhidongDongLiang, allPrize, zeroPrize, cappingPrize, typeClass)
// fmt.Printf("达成率--13-->%v-->%v-->%v-->%v-->%v\n", tableScoreCont.ActualScore, tableScoreCont.AllPrize, tableScoreCont.ZeroPrize, tableScoreCont.CappingVal, tableScoreCont.Achievement) // fmt.Printf("达成率--13-->%v-->%v-->%v-->%v-->%v\n", tableScoreCont.ActualScore, tableScoreCont.AllPrize, tableScoreCont.ZeroPrize, tableScoreCont.CappingVal, tableScoreCont.Achievement)
if status == 3 { if status == 3 {
tableScoreCont.ActualScore = float64(referenceScore) tableScoreCont.ActualScore = float64(referenceScore)
@ -120,7 +124,9 @@ func (t *tablePlanVersionStic) conditionStatisticsNew(group, department, dimensi
@timecopy 辅助计数 @timecopy 辅助计数
*/ */
func GetAllZreoCapp(flKey, group, depart, dimen, targetId, year, timecopy, deaTarget int64) (zeroPrize, allPrize, cappingPrize float64) { func GetAllZreoCapp(flKey, group, depart, dimen, targetId, year, timecopy, deaTarget int64) (zeroPrize, allPrize, cappingPrize float64) {
if flKey == 0 {
return
}
var baseLineStr string var baseLineStr string
err := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.FlowLog{}).Select("fl_baseline").Where("fl_key = ?", flKey).First(&baseLineStr).Error err := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.FlowLog{}).Select("fl_baseline").Where("fl_key = ?", flKey).First(&baseLineStr).Error
if err != nil { if err != nil {
@ -183,7 +189,7 @@ func (a *ApiGroup) DepartmentTranscript(c *gin.Context) {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return return
} }
fmt.Printf("userCont------------------->%v\n", userCont) // fmt.Printf("userCont------------------->%v\n", userCont)
var requestData TranscriptTable var requestData TranscriptTable
c.ShouldBindJSON(&requestData) c.ShouldBindJSON(&requestData)
var orgList []hrsystem.AdministrativeOrganization var orgList []hrsystem.AdministrativeOrganization
@ -209,21 +215,21 @@ func (a *ApiGroup) DepartmentTranscript(c *gin.Context) {
} }
var orgAry []hrsystem.AdministrativeOrganization var orgAry []hrsystem.AdministrativeOrganization
for _, ov := range orgList { for _, ov := range orgList {
if ov.Id == 281 || ov.Id == 280 { orgAry = append(orgAry, ov)
var ovlist []hrsystem.AdministrativeOrganization // if ov.Id == 281 || ov.Id == 280 {
ovErr := global.GVA_DB_HrDataBase.Where("state = 1").Where("superior = ?", ov.Id).Find(&ovlist).Error var ovlist []hrsystem.AdministrativeOrganization
if ovErr == nil { ovErr := global.GVA_DB_HrDataBase.Where("state = 1").Where("ispower = 1 AND superior = ?", ov.Id).Find(&ovlist).Error
for _, ovl := range ovlist { if ovErr == nil {
// orgList = append(orgList, ovl) for _, ovl := range ovlist {
orgAry = append(orgAry, ovl) // orgList = append(orgList, ovl)
} orgAry = append(orgAry, ovl)
} }
} else {
orgAry = append(orgAry, ov)
} }
// } else {
// orgAry = append(orgAry, ov)
// }
} }
currentYear := commonus.ComputingTime(time.Now().Unix(), 1) currentYear := commonus.ComputingTime(time.Now().Unix(), 1)
if requestData.Year != "" { if requestData.Year != "" {
yearInt64, _ := strconv.ParseInt(requestData.Year, 10, 64) yearInt64, _ := strconv.ParseInt(requestData.Year, 10, 64)
@ -628,19 +634,20 @@ func StatisVersionTable(group string, planVersionCont []AddDutyNewCont, orgId, y
for _, v := range planVersionCont { for _, v := range planVersionCont {
sumScore = sumScore + float64(v.ZhiFraction) sumScore = sumScore + float64(v.ZhiFraction)
for _, vc := range v.Child { for _, vc := range v.Child {
// if vc.Id == "6" {
var listggCont defenfenxi var listggCont defenfenxi
listggCont.Title = vc.Name
sumScoreKS = sumScoreKS + float64(vc.ReferenceScore) sumScoreKS = sumScoreKS + float64(vc.ReferenceScore)
if vc.Status == 3 { if vc.Status == 3 {
deScore = deScore + float64(vc.ReferenceScore) deScore = deScore + float64(vc.ReferenceScore)
listggCont.Stroce = float64(vc.ReferenceScore) listggCont.Stroce = float64(vc.ReferenceScore)
// fmt.Printf("Score---观察---ID--%v--->%v---->deScore---->%v\n", vc.Name, float64(vc.ReferenceScore), deScore) fmt.Printf("Score---观察------指标--%v----指标分----->%v---->结算分---->%v\n", vc.Name, float64(vc.ReferenceScore), deScore)
} }
if vc.Status == 1 && vc.Status != 3 { if vc.Status == 1 && vc.Status != 3 {
var targetInfo assessmentmodel.EvaluationTarget var targetInfo assessmentmodel.EvaluationTarget
targetInfo.GetCont(map[string]interface{}{"et_id": vc.Id}, "et_type,et_cycle,et_title") targetInfo.GetCont(map[string]interface{}{"et_id": vc.Id}, "et_type,et_cycle,et_title")
listggCont.Title = targetInfo.Title
// if targetInfo.Type == 1 { // if targetInfo.Type == 1 {
// //定性考核 // //定性考核
// gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_target_id` = ? AND `sf_duty_department` = ? AND `sf_year` = ? AND `sf_month` = ?", vc.Id, orgId, year, month) // gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_target_id` = ? AND `sf_duty_department` = ? AND `sf_year` = ? AND `sf_month` = ?", vc.Id, orgId, year, month)
@ -689,7 +696,8 @@ func StatisVersionTable(group string, planVersionCont []AddDutyNewCont, orgId, y
if targetInfo.Type == 1 { if targetInfo.Type == 1 {
//定性考核 //定性考核
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_target_id` = ? AND `sf_duty_department` = ? AND `sf_year` = ? AND `sf_quarter` = ?", vc.Id, orgId, year, jidu) gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_target_id` = ? AND `sf_duty_department` = ? AND `sf_year` = ? AND `sf_quarter` = ?", vc.Id, orgId, year, jidu)
fffff := calculationDingXingScore(gormDb, float64(vc.ReferenceScore)) gormDbs := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_target_id` = ? AND `sf_duty_department` = ? AND `sf_year` = ? AND `sf_quarter` = ?", vc.Id, orgId, year, jidu)
fffff := calculationDingXingScore(gormDb, gormDbs, float64(vc.ReferenceScore))
deScore = deScore + fffff deScore = deScore + fffff
listggCont.Stroce = fffff listggCont.Stroce = fffff
listggCont.TimeClass = "1" listggCont.TimeClass = "1"
@ -715,7 +723,8 @@ func StatisVersionTable(group string, planVersionCont []AddDutyNewCont, orgId, y
if targetInfo.Type == 1 { if targetInfo.Type == 1 {
//定性考核 //定性考核
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_target_id` = ? AND `sf_duty_department` = ? AND `sf_year` = ?", vc.Id, orgId, year) gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_target_id` = ? AND `sf_duty_department` = ? AND `sf_year` = ?", vc.Id, orgId, year)
fffff := calculationDingXingScore(gormDb, float64(vc.ReferenceScore)) gormDbs := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_target_id` = ? AND `sf_duty_department` = ? AND `sf_year` = ?", vc.Id, orgId, year)
fffff := calculationDingXingScore(gormDb, gormDbs, float64(vc.ReferenceScore))
deScore = deScore + fffff deScore = deScore + fffff
listggCont.Stroce = fffff listggCont.Stroce = fffff
listggCont.TimeClass = "1" listggCont.TimeClass = "1"
@ -761,7 +770,8 @@ func StatisVersionTable(group string, planVersionCont []AddDutyNewCont, orgId, y
if targetInfo.Type == 1 { if targetInfo.Type == 1 {
//定性考核 //定性考核
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_target_id` = ? AND `sf_duty_department` = ? AND `sf_year` = ? AND `sf_month` IN ?", vc.Id, orgId, year, monthAry) gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_target_id` = ? AND `sf_duty_department` = ? AND `sf_year` = ? AND `sf_month` IN ?", vc.Id, orgId, year, monthAry)
fffff := calculationDingXingScore(gormDb, float64(vc.ReferenceScore)) gormDbs := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_target_id` = ? AND `sf_duty_department` = ? AND `sf_year` = ? AND `sf_month` IN ?", vc.Id, orgId, year, monthAry)
fffff := calculationDingXingScore(gormDb, gormDbs, float64(vc.ReferenceScore))
deScore = deScore + fffff deScore = deScore + fffff
listggCont.Stroce = fffff listggCont.Stroce = fffff
@ -785,7 +795,8 @@ func StatisVersionTable(group string, planVersionCont []AddDutyNewCont, orgId, y
if targetInfo.Type == 1 { if targetInfo.Type == 1 {
//定性考核 //定性考核
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_target_id` = ? AND `sf_duty_department` = ? AND `sf_year` = ? AND `sf_month` = ?", vc.Id, orgId, year, month) gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_target_id` = ? AND `sf_duty_department` = ? AND `sf_year` = ? AND `sf_month` = ?", vc.Id, orgId, year, month)
fffff := calculationDingXingScore(gormDb, float64(vc.ReferenceScore)) gormDbs := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Where("`sf_target_id` = ? AND `sf_duty_department` = ? AND `sf_year` = ? AND `sf_month` = ?", vc.Id, orgId, year, month)
fffff := calculationDingXingScore(gormDb, gormDbs, float64(vc.ReferenceScore))
deScore = deScore + fffff deScore = deScore + fffff
listggCont.Stroce = fffff listggCont.Stroce = fffff
listggCont.TimeClass = "1" listggCont.TimeClass = "1"
@ -803,10 +814,11 @@ func StatisVersionTable(group string, planVersionCont []AddDutyNewCont, orgId, y
} }
// fmt.Printf("deScore--name:%v--->%v\n", vc.Name, deScore) // fmt.Printf("deScore--name:%v--->%v\n", vc.Name, deScore)
listgg = append(listgg, listggCont) listgg = append(listgg, listggCont)
// }
} }
} }
// jskd, _ := json.Marshal(listgg) jskd, _ := json.Marshal(listgg)
// fmt.Printf("listgg----->%v\n", string(jskd)) fmt.Printf("listgg----->%v\n", string(jskd))
// fmt.Printf("sumScore----->%v-----sumScoreKS---->%v---->deScore---->%v\n", sumScore, sumScoreKS, deScore) // fmt.Printf("sumScore----->%v-----sumScoreKS---->%v---->deScore---->%v\n", sumScore, sumScoreKS, deScore)
return commonus.Decimal(deScore) return commonus.Decimal(deScore)
@ -818,10 +830,11 @@ mm8888
@gormDb 要查询得语句 @gormDb 要查询得语句
@referenceScore 指标权重 @referenceScore 指标权重
*/ */
func calculationDingXingScore(gormDb *gorm.DB, referenceScore float64) float64 { func calculationDingXingScore(gormDbJia *gorm.DB, gormDbJian *gorm.DB, referenceScore float64) float64 {
// return 0 // return 0
var jiaFenAry []TongjiFenShu var jiaFenAry []TongjiFenShu
gormDb.Select("sf_score,sf_count").Where("sf_plus_reduce_score = 1").Where("sf_reply IN (2,3)").Find(&jiaFenAry) gormDbJia.Select("sf_score,sf_count").Where("sf_plus_reduce_score = 1").Where("sf_reply IN (2,3)").Find(&jiaFenAry)
//加分 //加分
var addSumScore float64 = 0 var addSumScore float64 = 0
for _, jiav := range jiaFenAry { for _, jiav := range jiaFenAry {
@ -830,12 +843,16 @@ func calculationDingXingScore(gormDb *gorm.DB, referenceScore float64) float64 {
//减分 //减分
var scoreReduction float64 = 0 var scoreReduction float64 = 0
var jianFenAry []TongjiFenShu var jianFenAry []TongjiFenShu
gormDb.Select("sf_score,sf_count").Where("sf_plus_reduce_score = 2").Where("sf_reply IN (2,3)").Find(&jianFenAry)
gormDbJian.Select("sf_score,sf_count").Where("sf_plus_reduce_score = 2").Where("sf_reply IN (2,3)").Find(&jianFenAry)
for _, jianv := range jianFenAry { for _, jianv := range jianFenAry {
scoreReduction = scoreReduction + (jianv.Score * jianv.Count) scoreReduction = scoreReduction + (jianv.Score * jianv.Count)
// fmt.Printf("scoreReduction----->%v------->jianv.Score----->%v------->jianv.Count-------->%v\n", scoreReduction, jianv.Score, jianv.Count)
} }
sumScore := scoreReduction - addSumScore sumScore := scoreReduction - addSumScore
return referenceScore - commonus.Decimal(sumScore/100) shijiFEn := referenceScore - commonus.Decimal(sumScore/100)
// fmt.Printf("定性分值---addSumScore----->%v---->scoreReduction----->%v---->sumScore----->%v---->shijiFEn----->%v---->referenceScore-->%v\n", addSumScore, scoreReduction, sumScore, shijiFEn, referenceScore)
return shijiFEn
} }
//计算定量得分 //计算定量得分
@ -880,9 +897,13 @@ func calculationDingLiangScore(group, department, dimensionId, targetId string,
} else { } else {
zeroprize, allprize, capping = GetPassRate(groupId, departmentId, dimensionIdInt, targetIdInt, year, monthType, 0) zeroprize, allprize, capping = GetPassRate(groupId, departmentId, dimensionIdInt, targetIdInt, year, monthType, 0)
} }
actualScoreVal, _, _, _, _ := commonus.CalculateScore(referenceScore, float64(v.Score), allprize, zeroprize, capping, 2) if v.ScoringMethod == 1 {
actualScore = actualScore + actualScoreVal actualScoreVal, _, _, _, _ := commonus.CalculateScore(referenceScore, float64(v.Score), allprize, zeroprize, capping, 2)
actualScore = actualScore + actualScoreVal
} else {
actualScore = actualScore + (float64(v.ScoringScore) / 100)
}
// fmt.Printf("actualScoreVal--actualScoreVal--->%v---referenceScore-->%v---Score-->%v---allprize-->%v---zeroprize-->%v----capping->%v\n", actualScoreVal, referenceScore, float64(v.Score), allprize, zeroprize, capping)
} }
} }

20
gin_server_admin/api/index/statistics/tablestatistics.go

@ -1319,16 +1319,30 @@ func (d *dataLockStatistics) planVersiconProcessV1(pvInfo assessmentmodel.PlanVe
} }
default: //月 default: //月
monthValue := commonus.TimeStampToDate(time.Now().Unix(), 12) monthValue := commonus.TimeStampToDate(time.Now().Unix(), 12)
if commonus.TimeStampToDate(time.Now().Unix(), 11) != giveData.Year { if commonus.TimeStampToDate(time.Now().Unix(), 11) != giveData.Year {
monthValue = "12" monthValue = "12"
} }
monthValueInt, _ := strconv.Atoi(monthValue) monthValueInt, _ := strconv.Atoi(monthValue)
var tpsProcess tablePlanVersionStic var tpsProcess tablePlanVersionStic
for i := 1; i <= monthValueInt; i++ { if giveData.Month != 0 {
monthIsDay := giveData.Month
if monthIsDay > 12 {
monthIsDay = 12
}
if monthIsDay < 1 {
monthIsDay = 1
}
syncProcessDepartTarget.Add(1) syncProcessDepartTarget.Add(1)
go tpsProcess.conditionStatisticsNew(strconv.FormatInt(pvInfo.Group, 10), strconv.FormatInt(pvInfo.Department, 10), pv.Id, pcv.Id, i, pcv.Status, scoringMethod, 2, yserInt, pcv.ReferenceScore, 4, 2) go tpsProcess.conditionStatisticsNew(strconv.FormatInt(pvInfo.Group, 10), strconv.FormatInt(pvInfo.Department, 10), pv.Id, pcv.Id, monthIsDay, pcv.Status, scoringMethod, 2, yserInt, pcv.ReferenceScore, 4, 2)
} else {
for i := 1; i <= monthValueInt; i++ {
syncProcessDepartTarget.Add(1)
go tpsProcess.conditionStatisticsNew(strconv.FormatInt(pvInfo.Group, 10), strconv.FormatInt(pvInfo.Department, 10), pv.Id, pcv.Id, i, pcv.Status, scoringMethod, 2, yserInt, pcv.ReferenceScore, 4, 2)
}
} }
syncProcessDepartTarget.Wait() syncProcessDepartTarget.Wait()
readStatisticsData := tpsProcess.readMyDayData() readStatisticsData := tpsProcess.readMyDayData()
//按照最大值排序 //按照最大值排序
@ -1367,7 +1381,7 @@ func (d *dataLockStatistics) planVersiconProcessV1(pvInfo assessmentmodel.PlanVe
} }
} }
outCont.ScoreAllList = append(outCont.ScoreAllList, stccStatistics) outCont.ScoreAllList = append(outCont.ScoreAllList, stccStatistics)
outCont.StatisticsName = []string{"全奖值", "零奖值", "实际值", "达成率", "得分"} outCont.StatisticsName = []string{"全奖值", "零奖值", "封顶值", "实际值", "达成率", "得分"}
if isAdd == 1 { if isAdd == 1 {
d.outData = append(d.outData, outCont) d.outData = append(d.outData, outCont)
} }

45
gin_server_admin/api/statistics/quantification/enter.go

@ -139,3 +139,48 @@ type EvaluPross struct {
QualEvalId string `json:"qeid"` QualEvalId string `json:"qeid"`
Status int `json:"status"` Status int `json:"status"`
} }
//查询成绩表月份明细
type detailedResults struct {
Department string `json:"department"` //部门
Year int64 `json:"year"` //年
Months int `json:"month"` //月份
}
//输出程序月份详情表
type detailedResultsList struct {
GroupId string `json:"group"` //集团Id
GroupName string `json:"groupname"` //集团名称
DepartmentId string `json:"departmentid"` //部门ID
DepartmentName string `json:"departmentname"` //部门名称
DimensionId string `json:"dimensionid"` //维度Id
DimensionName string `json:"dimensionname"` //维度名称
DimensionWeight int64 `json:"dimensionweight"` //维度权重
TargetId string `json:"targetid"` //指标ID
TargetName string `json:"targetname"` //指标名称
TargetCont string `json:"targetCont"` //指标说明
Targetweight int64 `json:"targetweight"` //指标权重
Type int `json:"type"` //1:定性;2:定量
Unit string `json:"unit"` //单位
Cycle int `json:"cycle"` //周期
Cycleattr int `json:"cycleattr"` //辅助参数
ExecutiveDepartment []string `json:"executivedepartment"` //执行部门
Score float64 `json:"score"` //得分
}
//定量流水全奖值、零奖值、封顶值
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 detailedResultsLog struct {
TargetId string `json:"targetid"` //指标ID
Department string `json:"department"` //部门
Year int64 `json:"year"` //年
Months int `json:"month"` //月份
}

69
gin_server_admin/api/v1/custom/customhandle.go

@ -10,6 +10,7 @@ import (
"github.com/flipped-aurora/gin-vue-admin/server/commonus" "github.com/flipped-aurora/gin-vue-admin/server/commonus"
"github.com/flipped-aurora/gin-vue-admin/server/global" "github.com/flipped-aurora/gin-vue-admin/server/global"
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response" "github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
"github.com/flipped-aurora/gin-vue-admin/server/model/hrsystem"
systemReq "github.com/flipped-aurora/gin-vue-admin/server/model/system/request" systemReq "github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
roleModel "github.com/flipped-aurora/gin-vue-admin/server/model/systemuser" roleModel "github.com/flipped-aurora/gin-vue-admin/server/model/systemuser"
"github.com/flipped-aurora/gin-vue-admin/server/utils" "github.com/flipped-aurora/gin-vue-admin/server/utils"
@ -354,7 +355,7 @@ func (cu *CustomHandle) ScanCodeLogin(c *gin.Context) {
userAgent = "250" userAgent = "250"
userAdminErr, userAdmin := systemuser.GetSysAdminLoginInfo(l.Username, l.Password) userAdminErr, userAdmin := systemuser.GetSysAdminLoginInfo(l.Username, l.Password)
fmt.Printf("jieguo----------------->%v\n", userAdminErr) // fmt.Printf("jieguo----------------->%v\n", userAdminErr)
// userAdminErr, _ := systemuser.HrUserInfor(l.Username, l.Password) // userAdminErr, _ := systemuser.HrUserInfor(l.Username, l.Password)
if userAdminErr == true { if userAdminErr == true {
if userAdmin.State == 2 { if userAdmin.State == 2 {
@ -440,6 +441,10 @@ func (cu *CustomHandle) ScanCodeLogin(c *gin.Context) {
response.Result(109, userErr, "登录失败!", c) response.Result(109, userErr, "登录失败!", c)
return return
} }
if l.OpenId != "" {
var sysUserCont hrsystem.PersonArchives
sysUserCont.EiteCont(map[string]interface{}{"id": user.Id}, map[string]interface{}{"work_wechat": l.OpenId})
}
if user.State == 2 { if user.State == 2 {
response.Result(102, userErr, "登陆失败! 该账号已经被禁用!", c) response.Result(102, userErr, "登陆失败! 该账号已经被禁用!", c)
return return
@ -511,7 +516,67 @@ func (cu *CustomHandle) ScanCodeLogin(c *gin.Context) {
redisClient.SetRedisDb(5) redisClient.SetRedisDb(5)
redisClient.SetRedisTime(10800) redisClient.SetRedisTime(10800)
redisClient.HashMsetAdd(redisFileKey, writeRedisData) redisClient.HashMsetAdd(redisFileKey, writeRedisData)
fmt.Printf("Login------->%v---------->%v\n", userKeyCode, md5Token) // fmt.Printf("Login------->%v---------->%v\n", userKeyCode, md5Token)
var userCont hrsystem.ManCont
userErrd := userCont.GetCont(map[string]interface{}{"`id`": user.Id})
if userErrd != nil {
response.Result(102, userErr, "登陆失败! 该账号不存在!", c)
return
}
//缓存写入个人信息
redisMyContKey := fmt.Sprintf("ScanCode:Authentication:UserCont_%v_%v", global.GVA_CONFIG.RedisPrefix.Alias, userCont.Number)
myCont := commonus.MapOut()
myCont["id"] = userCont.Id
myCont["number"] = userCont.Number //员工工号
myCont["name"] = userCont.Name //姓名
myCont["icon"] = userCont.Icon //头像
myCont["hire_class"] = userCont.HireClass //雇佣类型(1:雇佣入职;2:再入职;)
myCont["emp_type"] = userCont.EmpType //用工关系(1:临时工 , 2:编外人员 ;3:实习&实习生;4:试用员工;5:待分配;6:待岗;7:临时调入;8:正式员工;9:长期病假;10:停薪留职;11:退休;12:辞职;13:辞退;14:离职)
myCont["company"] = userCont.Company //入职公司
myCont["maindeparment"] = userCont.MainDeparment //主部门
myCont["sun_main_department"] = userCont.SunMainDeparment //二级主部门
myCont["deparment"] = userCont.Deparment //部门
myCont["admin_org"] = userCont.AdminOrg //所属行政组织
myCont["teamid"] = userCont.TeamId //班组
myCont["position"] = userCont.Position //职位
myCont["job_class"] = userCont.JobClass //职务分类
myCont["job_id"] = userCont.JobId //职务
myCont["job_leve"] = userCont.JobLeve //职务等级
myCont["wechat"] = userCont.Wechat //微信UserId
myCont["work_wechat"] = userCont.WorkWechat //企业微信UserId
myCont["state"] = userCont.State //状态(1:启用;2:禁用;3:删除)
myCont["key"] = userCont.Key //key
myCont["is_admin"] = userCont.IsAdmin //是否为管理员(1:不是;2:分公司;3:集团管理员;4:超级管
myCont["password"] = userCont.Password //密码
myCont["role"] = userCont.Role //角色
myCont["idcardno"] = userCont.Idcardno //身份证号
myCont["passportno"] = userCont.Passportno //护照号码
myCont["globalroaming"] = userCont.Globalroaming //国际区号
myCont["mobilephone"] = userCont.Mobilephone //手机号码
myCont["email"] = userCont.Email //电子邮件
myCont["gender"] = userCont.Gender //性别(1:男性;2:女性;3:中性)
myCont["birthday"] = userCont.Birthday //birthday
myCont["myfolk"] = userCont.Myfolk //民族
myCont["nativeplace"] = userCont.Nativeplace //籍贯
myCont["idcardstartdate"] = userCont.Idcardstartdate //身份证有效期开始
myCont["idcardenddate"] = userCont.Idcardenddate //身份证有效期结束
myCont["idcardaddress"] = userCont.Idcardaddress //身份证地址
myCont["idcardIssued"] = userCont.IdcardIssued //身份证签发机关
myCont["health"] = userCont.Health //健康状况(1:良好;2:一般;3:较弱,4:有生理缺陷;5:残废)
myCont["maritalstatus"] = userCont.Maritalstatus //婚姻状况(1:未婚;2:已婚;3:丧偶;4:离异)
myCont["internaltelephone"] = userCont.Internaltelephone //内线电话
myCont["currentresidence"] = userCont.Currentresidence //现居住地址
myCont["constellationing"] = userCont.Constellation //星座(1:白羊座;2:金牛座;3:双子座;4:巨蟹座;5:狮子座;6:处女座;7:天枰座;8:天蝎座;9:射手座;10:摩羯座;11:水瓶座;12:双鱼座)
myCont["isdoubleworker"] = userCont.Isdoubleworker //是否双职工(1:是;2:否)
myCont["isveterans"] = userCont.Isveterans //是否为退役军人(1:是;2:否)
myCont["veteransnumber"] = userCont.Veteransnumber //退役证编号
myCont["jobstartdate"] = userCont.Jobstartdate //参加工作日期
myCont["entrydate"] = userCont.Entrydate //入职日期
myCont["probationperiod"] = userCont.Probationperiod //试用期
myCont["planformaldate"] = userCont.Planformaldate //预计转正日期
myCont["political_outlook"] = userCont.PoliticalOutlook //政治面貌(1:群众;2:无党派;3:台盟会员;4:九三社员;5:致公党员;6:农工党员;7:民进会员;8:民建会员;9:民盟盟员;10:民革会员,11:共青团员;12:预备党员;13:中共党员)
redisClient.HashMsetAdd(redisMyContKey, myCont)
response.Result(0, saveData, "登录成功!", c) response.Result(0, saveData, "登录成功!", c)
} }

2
gin_server_admin/api/v1/examtestpage/grouphandle.go

@ -1251,7 +1251,7 @@ func GovUserThreeList(parentId int64, govAry []govUserCont) []govUserContThree {
//获取Hr人员信息 //获取Hr人员信息
func getUserList(departmentId int64, level int) (userList []peopleList) { func getUserList(departmentId int64, level int) (userList []peopleList) {
var userAry []hrsystem.PersonArchives var userAry []hrsystem.PersonArchives
gormDb := global.GVA_DB_HrDataBase.Model(&hrsystem.PersonArchives{}).Select("`id`,`number`,`name`,`wechat`,`work_wechat`,`key`").Where("state = 1 AND emp_type BETWEEN 1 AND 5 ") gormDb := global.GVA_DB_HrDataBase.Model(&hrsystem.PersonArchives{}).Select("`id`,`number`,`name`,`wechat`,`work_wechat`,`key`").Where("state = 1 AND emp_type BETWEEN 1 AND 10 ")
if level <= 4 { if level <= 4 {
gormDb = gormDb.Where(" FIND_IN_SET(?,`maindeparment`)", departmentId) gormDb = gormDb.Where(" FIND_IN_SET(?,`maindeparment`)", departmentId)
} else { } else {

174
gin_server_admin/api/v1/shiyan/shiyan.go

@ -2251,59 +2251,59 @@ func GovThreeList(parentId int64, govAry []OutGovCont) []govThree {
//绩效考核系统对照行政组织关系 //绩效考核系统对照行政组织关系
func (s *ShiyanApi) CorrectingOrg(c *gin.Context) { func (s *ShiyanApi) CorrectingOrg(c *gin.Context) {
//assessment_loging //assessment_loging
synPro.Add(1) // synPro.Add(1)
go corAssMentLog() //考核记录自建审批流 // go corAssMentLog() //考核记录自建审批流
synPro.Add(1) // synPro.Add(1)
go corAssAssesstarget() //考核指标 // go corAssAssesstarget() //考核指标
//部门维度 // //部门维度
synPro.Add(1) // synPro.Add(1)
go corDeparDime() // go corDeparDime()
//部门考核指标权重 // //部门考核指标权重
synPro.Add(1) // synPro.Add(1)
go corDepartDimWeight() // go corDepartDimWeight()
//指标细则 // //指标细则
synPro.Add(1) // synPro.Add(1)
go corDetailedTarget() // go corDetailedTarget()
//划分责任 // //划分责任
synPro.Add(1) // synPro.Add(1)
go corDivResp() // go corDivResp()
//审批流程 //审批流程
synPro.Add(1) synPro.Add(1)
go corEvalProcess() go corEvalProcess()
//测评指标 // //测评指标
synPro.Add(1) // synPro.Add(1)
go corEvaluaTionTarget() // go corEvaluaTionTarget()
//定量考核数据表 // //定量考核数据表
synPro.Add(1) // synPro.Add(1)
go flowLogDivResp() // go flowLogDivResp()
//考核方案版本内容 // //考核方案版本内容
synPro.Add(1) // synPro.Add(1)
go corPlanversio() // go corPlanversio()
//定性考核 // //定性考核
synPro.Add(1) // synPro.Add(1)
go corQualitativeEvaluation() // go corQualitativeEvaluation()
//定性指标子栏目 // //定性指标子栏目
synPro.Add(1) // synPro.Add(1)
go corQualitativeTarget() // go corQualitativeTarget()
//定量考核目标设定 // //定量考核目标设定
synPro.Add(1) // synPro.Add(1)
go corQualitativeConfig() // go corQualitativeConfig()
//整改措施 // //整改措施
synPro.Add(1) // synPro.Add(1)
go corRectificationMeasures() // go corRectificationMeasures()
//分数流水 // //分数流水
synPro.Add(1) // synPro.Add(1)
go corScoreFlow() // go corScoreFlow()
synPro.Wait() synPro.Wait()
@ -2614,23 +2614,60 @@ func corEvalProcess() {
userCont.Icon = fvu.Icon //操作人头像 userCont.Icon = fvu.Icon //操作人头像
userCont.Wechat = fvu.Wechat //微信Openid userCont.Wechat = fvu.Wechat //微信Openid
userCont.Group = 309 //集团公司 userCont.Group = 309 //集团公司
var manCont hrsystem.PersonArchives
manCont.GetCont(map[string]interface{}{"`key`": fvu.Id}, "company", "maindeparment", "admin_org", "position", "job_id", "teamid")
// var groupCont hrsystem.AdministrativeOrganization // var groupCont hrsystem.AdministrativeOrganization
// groupCont.GetCont(map[string]interface{}{"`id`": 309}, "`name`") // groupCont.GetCont(map[string]interface{}{"`id`": 309}, "`name`")
// userCont.GroupName = groupCont.Name //集团公司名称 // userCont.GroupName = groupCont.Name //集团公司名称
userCont.GroupName = "山东恒信高科能源有限公司" userCont.GroupName = "山东恒信高科能源有限公司"
departInfo := oldSchooldBf(fvu.DepartmentId, "`id`", "`name`")
fmt.Printf("departInfo---------->%v--------->%v--------->%v\n", fvu.DepartmentId, departInfo.Id, departInfo.Name) var orgComy hrsystem.AdministrativeOrganization
userCont.DepartmentId = departInfo.Id //分厂Id orgComy.GetCont(map[string]interface{}{"`id`": manCont.MainDeparment}, "name")
userCont.DepartmentName = departInfo.Name //分厂名称 userCont.DepartmentId = manCont.MainDeparment //分厂Id
worksInfo := oldSchooldBf(fvu.WorkshopId, "`id`", "`name`") userCont.DepartmentName = orgComy.Name //分厂名称
userCont.WorkshopId = worksInfo.Id //工段Id var orgComyPost hrsystem.AdministrativeOrganization
userCont.WorkshopName = worksInfo.Name //工段名称 orgComyPost.GetCont(map[string]interface{}{"`id`": manCont.AdminOrg}, "name")
positInfo := positToKingdeePositScho(fvu.PostId, "`id`", "`name`") userCont.WorkshopId = manCont.AdminOrg //工段Id
userCont.PostId = positInfo.Id //职务Id userCont.WorkshopName = orgComyPost.Name //工段名称
userCont.PostName = positInfo.Name //职务名称 var postContuse hrsystem.PostDutiesJob
userCont.Tema = fvu.Tema //班组Id postContuse.GetCont(map[string]interface{}{"`id`": manCont.Position}, "name")
userCont.TemaName = fvu.TemaName //班组名称 userCont.PostId = manCont.Position //职务Id
userCont.LogList = fvu.LogList //操作记录 userCont.PostName = postContuse.Name //职务名称
// if fvu.DepartmentName == "" {
// departInfo := oldSchooldBf(fvu.DepartmentId, "`id`", "`name`")
// fmt.Printf("departInfo---------->%v--------->%v--------->%v\n", fvu.DepartmentId, departInfo.Id, departInfo.Name)
// userCont.DepartmentId = departInfo.Id //分厂Id
// userCont.DepartmentName = departInfo.Name //分厂名称
// } else {
// userCont.DepartmentId = fvu.DepartmentId //分厂Id
// }
// if fvu.WorkshopName == "" {
// worksInfo := oldSchooldBf(fvu.WorkshopId, "`id`", "`name`")
// userCont.WorkshopId = worksInfo.Id //工段Id
// userCont.WorkshopName = worksInfo.Name //工段名称
// } else {
// userCont.WorkshopId = fvu.WorkshopId //工段Id
// }
// if fvu.PostName == "" {
// positInfo := positToKingdeePositScho(fvu.PostId, "`id`", "`name`")
// userCont.PostId = positInfo.Id //职务Id
// userCont.PostName = positInfo.Name //职务名称
// } else {
// userCont.PostId = fvu.PostId //职务Id
// }
var teamCont hrsystem.TeamGroup
teamErr := teamCont.GetCont(map[string]interface{}{"`id`": manCont.TeamId}, "name")
if teamErr == nil {
userCont.Tema = manCont.TeamId //班组Id
userCont.TemaName = teamCont.Name //班组名称
} else {
userCont.Tema = fvu.Tema //班组Id
userCont.TemaName = fvu.TemaName //班组名称
}
userCont.LogList = fvu.LogList //操作记录
userList = append(userList, userCont) userList = append(userList, userCont)
} }
@ -2648,19 +2685,19 @@ func corEvalProcess() {
} }
} }
if v.SetupDepartment != 0 { // if v.SetupDepartment != 0 {
excedepart := orgTransCoding(v.SetupDepartment) // excedepart := orgTransCoding(v.SetupDepartment)
if excedepart != 0 { // if excedepart != 0 {
saveData["ep_setup_department"] = excedepart // saveData["ep_setup_department"] = excedepart
} // }
} // }
if v.AcceptDepartment != 0 { // if v.AcceptDepartment != 0 {
excedepartEval := orgTransCoding(v.AcceptDepartment) // excedepartEval := orgTransCoding(v.AcceptDepartment)
if excedepartEval != 0 { // if excedepartEval != 0 {
saveData["ep_accept_department"] = excedepartEval // saveData["ep_accept_department"] = excedepartEval
} // }
} // }
if len(saveData) > 0 { if len(saveData) > 0 {
saveData["ep_time"] = time.Now().Unix() saveData["ep_time"] = time.Now().Unix()
@ -2679,6 +2716,9 @@ func oldSchooldBf(ordId int64, field ...string) (newOrgCont hrsystem.Administrat
} }
var oldOrgCont hrsystem.AdministrativeOrganization var oldOrgCont hrsystem.AdministrativeOrganization
oldErr := global.GVA_DB_HrDataBase.Model(&oldOrgCont).Select("`number`").Where("`schoole` = ?", ordId).First(&oldOrgCont).Error oldErr := global.GVA_DB_HrDataBase.Model(&oldOrgCont).Select("`number`").Where("`schoole` = ?", ordId).First(&oldOrgCont).Error
if oldErr != nil {
oldErr = global.GVA_DB_HrDataBase.Model(&oldOrgCont).Select("`number`").Where("`wechat_organization_id` = ?", ordId).First(&oldOrgCont).Error
}
if oldErr != nil { if oldErr != nil {
return return
} }

31
gin_server_admin/commonus/publichaneld.go

@ -1485,6 +1485,9 @@ func GetQualitativeTargetInfo(id int64) (content assessmentmodel.QualitativeTarg
//获取考核指标细则 //获取考核指标细则
func GetDetailedTargetInfo(id int64) (content assessmentmodel.DetailedTarget, isTrue bool) { func GetDetailedTargetInfo(id int64) (content assessmentmodel.DetailedTarget, isTrue bool) {
isTrue = false isTrue = false
if id == 0 {
return
}
err := global.GVA_DB_Performanceappraisal.Where("dt_id = ?", id).First(&content).Error err := global.GVA_DB_Performanceappraisal.Where("dt_id = ?", id).First(&content).Error
if err == nil { if err == nil {
@ -4309,7 +4312,7 @@ func CalculateScore(targetScore int64, resultval, allPrizes, zeroPrizes, Capping
CappingVal = CappingVals / 100 CappingVal = CappingVals / 100
resultval = resultval / 100 resultval = resultval / 100
// fmt.Printf("达成率--1-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, allPrize, zeroPrize, CappingVal) fmt.Printf("达成率--1-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, allPrize, zeroPrize, CappingVal)
//不修正精度的达成率 //不修正精度的达成率
var achievementAll float64 = 0 var achievementAll float64 = 0
@ -4321,7 +4324,7 @@ func CalculateScore(targetScore int64, resultval, allPrizes, zeroPrizes, Capping
scoreVal = 0 scoreVal = 0
} }
achievementAll = 100 achievementAll = 100
// fmt.Printf("达成率--11-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement) fmt.Printf("达成率--11-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement)
} else { } else {
if allPrize > zeroPrize { //如果全奖值大于零奖值 执行一下操作 if allPrize > zeroPrize { //如果全奖值大于零奖值 执行一下操作
if resultval <= zeroPrize { //实际结算值小于零奖值 那么达成率和实际得分都是0 if resultval <= zeroPrize { //实际结算值小于零奖值 那么达成率和实际得分都是0
@ -4329,7 +4332,7 @@ func CalculateScore(targetScore int64, resultval, allPrizes, zeroPrizes, Capping
scoreVal = 0 scoreVal = 0
achievementAll = 0 achievementAll = 0
// } else if resultval > allPrize { //实际结算值大于全奖值 执行一下操作 // } else if resultval > allPrize { //实际结算值大于全奖值 执行一下操作
// fmt.Printf("达成率--7-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement) fmt.Printf("达成率--7-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement)
} else { //实际结算值在全奖值 与 零奖值之间 } else { //实际结算值在全奖值 与 零奖值之间
chuShu := resultval - float64(zeroPrize) chuShu := resultval - float64(zeroPrize)
beiChuShu := float64(allPrize) - float64(zeroPrize) beiChuShu := float64(allPrize) - float64(zeroPrize)
@ -4341,7 +4344,7 @@ func CalculateScore(targetScore int64, resultval, allPrizes, zeroPrizes, Capping
achievement = 0 achievement = 0
scoreVal = 0 scoreVal = 0
achievementAll = 0 achievementAll = 0
// fmt.Printf("达成率--8-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement) fmt.Printf("达成率--8-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement)
} else { } else {
if achievement*100 >= CappingVal { if achievement*100 >= CappingVal {
//如果达成率大于等于封顶值 //如果达成率大于等于封顶值
@ -4350,7 +4353,7 @@ func CalculateScore(targetScore int64, resultval, allPrizes, zeroPrizes, Capping
// scoreVal = achievement * (float64(targetScore)) // scoreVal = achievement * (float64(targetScore))
scoreVal = achievementAll * (float64(targetScore)) scoreVal = achievementAll * (float64(targetScore))
} }
// fmt.Printf("达成率--9-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement) fmt.Printf("达成率--9-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement)
} }
achievement = DecimalEs(achievement*100, 4) achievement = DecimalEs(achievement*100, 4)
} else { } else {
@ -4358,7 +4361,7 @@ func CalculateScore(targetScore int64, resultval, allPrizes, zeroPrizes, Capping
achievement = 0 achievement = 0
scoreVal = 0 scoreVal = 0
achievementAll = 0 achievementAll = 0
// fmt.Printf("达成率--10-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement) fmt.Printf("达成率--10-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement)
} }
} }
@ -4367,7 +4370,7 @@ func CalculateScore(targetScore int64, resultval, allPrizes, zeroPrizes, Capping
achievement = 0 achievement = 0
scoreVal = 0 scoreVal = 0
achievementAll = 0 achievementAll = 0
// fmt.Printf("达成率--1-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement) fmt.Printf("达成率--1-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement)
} else { } else {
chuShu := resultval - float64(zeroPrize) chuShu := resultval - float64(zeroPrize)
beiChuShu := float64(allPrize) - float64(zeroPrize) beiChuShu := float64(allPrize) - float64(zeroPrize)
@ -4379,40 +4382,40 @@ func CalculateScore(targetScore int64, resultval, allPrizes, zeroPrizes, Capping
achievement = 0 achievement = 0
scoreVal = 0 scoreVal = 0
achievementAll = 0 achievementAll = 0
// fmt.Printf("达成率--2-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement) fmt.Printf("达成率--2-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement)
} else { } else {
if achievement*100 >= CappingVal { if achievement*100 >= CappingVal {
//如果达成率大于等于封顶值 //如果达成率大于等于封顶值
scoreVal = CappingVal * float64(targetScore) / 100 scoreVal = CappingVal * float64(targetScore) / 100
// fmt.Printf("达成率--3-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement) fmt.Printf("达成率--3-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement)
} else { } else {
// scoreVal = achievement * (float64(targetScore)) // scoreVal = achievement * (float64(targetScore))
scoreVal = achievementAll * (float64(targetScore)) scoreVal = achievementAll * (float64(targetScore))
// fmt.Printf("达成率--4-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement) fmt.Printf("达成率--4-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement)
} }
} }
achievement = DecimalEs(achievement*100, 4) achievement = DecimalEs(achievement*100, 4)
// fmt.Printf("达成率--6-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement) fmt.Printf("达成率--6-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement)
} else { } else {
//被除数为0时 那么达成率和实际得分都是0 //被除数为0时 那么达成率和实际得分都是0
achievement = 0 achievement = 0
scoreVal = 0 scoreVal = 0
achievementAll = 0 achievementAll = 0
// fmt.Printf("达成率--5-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement) fmt.Printf("达成率--5-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement)
} }
} }
} }
} }
if typeClass == 3 { if typeClass == 3 {
scoreVal = float64(targetScore) scoreVal = float64(targetScore)
// fmt.Printf("达成率--11-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement) fmt.Printf("达成率--11-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement)
} }
scoreVal = Decimal(scoreVal) scoreVal = Decimal(scoreVal)
allPrize = Decimal(allPrize) allPrize = Decimal(allPrize)
zeroPrize = Decimal(zeroPrize) zeroPrize = Decimal(zeroPrize)
CappingVal = Decimal(CappingVal) CappingVal = Decimal(CappingVal)
achievement = DecimalEs(achievement, 4) achievement = DecimalEs(achievement, 4)
// fmt.Printf("达成率--12-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement) fmt.Printf("达成率--12-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", targetScore, resultval, scoreVal, allPrize, zeroPrize, CappingVal, achievement)
return return
} }

70
gin_server_admin/middleware/myjwt.go

@ -2,11 +2,13 @@ package middleware
import ( import (
"encoding/json" "encoding/json"
"fmt"
"strconv" "strconv"
"github.com/flipped-aurora/gin-vue-admin/server/commonus" "github.com/flipped-aurora/gin-vue-admin/server/commonus"
"github.com/flipped-aurora/gin-vue-admin/server/global" "github.com/flipped-aurora/gin-vue-admin/server/global"
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response" "github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
"github.com/flipped-aurora/gin-vue-admin/server/model/hrsystem"
"github.com/flipped-aurora/gin-vue-admin/server/service" "github.com/flipped-aurora/gin-vue-admin/server/service"
"github.com/flipped-aurora/gin-vue-admin/server/utils/redishandel" "github.com/flipped-aurora/gin-vue-admin/server/utils/redishandel"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
@ -201,9 +203,14 @@ func SystemAuthentication() gin.HandlerFunc {
} }
// 拦截器 // 拦截器
func SystemCasbinHandler() gin.HandlerFunc { func SystemInterceptor() gin.HandlerFunc {
return func(c *gin.Context) { return func(c *gin.Context) {
obj := c.Request.URL.RequestURI()
// 获取请求方法
act := c.Request.Method
fmt.Printf("obj-------------->%v <===========> act--------------------->%v\n", obj, act)
c.Next()
} }
} }
@ -308,6 +315,67 @@ func ScanCodeLogin() gin.HandlerFunc {
redisClient.SetRedisTime(10800) redisClient.SetRedisTime(10800)
redisClient.HashMsetAdd(redisFileKey, writeRedisData) redisClient.HashMsetAdd(redisFileKey, writeRedisData)
var userCont hrsystem.ManCont
userErrd := userCont.GetCont(map[string]interface{}{"`number`": myCustomIdentify.UserNumber, "`password`": myCustomIdentify.UserPwd})
if userErrd != nil {
response.Result(1000002, userErrd, "登陆失败! 该账号不存在!", c)
c.Abort()
return
}
//缓存写入个人信息
redisMyContKey := fmt.Sprintf("ScanCode:Authentication:UserCont_%v_%v", global.GVA_CONFIG.RedisPrefix.Alias, userCont.Number)
myCont := commonus.MapOut()
myCont["id"] = userCont.Id
myCont["number"] = userCont.Number //员工工号
myCont["name"] = userCont.Name //姓名
myCont["icon"] = userCont.Icon //头像
myCont["hire_class"] = userCont.HireClass //雇佣类型(1:雇佣入职;2:再入职;)
myCont["emp_type"] = userCont.EmpType //用工关系(1:临时工 , 2:编外人员 ;3:实习&实习生;4:试用员工;5:待分配;6:待岗;7:临时调入;8:正式员工;9:长期病假;10:停薪留职;11:退休;12:辞职;13:辞退;14:离职)
myCont["company"] = userCont.Company //入职公司
myCont["maindeparment"] = userCont.MainDeparment //主部门
myCont["sun_main_department"] = userCont.SunMainDeparment //二级主部门
myCont["deparment"] = userCont.Deparment //部门
myCont["admin_org"] = userCont.AdminOrg //所属行政组织
myCont["teamid"] = userCont.TeamId //班组
myCont["position"] = userCont.Position //职位
myCont["job_class"] = userCont.JobClass //职务分类
myCont["job_id"] = userCont.JobId //职务
myCont["job_leve"] = userCont.JobLeve //职务等级
myCont["wechat"] = userCont.Wechat //微信UserId
myCont["work_wechat"] = userCont.WorkWechat //企业微信UserId
myCont["state"] = userCont.State //状态(1:启用;2:禁用;3:删除)
myCont["key"] = userCont.Key //key
myCont["is_admin"] = userCont.IsAdmin //是否为管理员(1:不是;2:分公司;3:集团管理员;4:超级管
myCont["password"] = userCont.Password //密码
myCont["role"] = userCont.Role //角色
myCont["idcardno"] = userCont.Idcardno //身份证号
myCont["passportno"] = userCont.Passportno //护照号码
myCont["globalroaming"] = userCont.Globalroaming //国际区号
myCont["mobilephone"] = userCont.Mobilephone //手机号码
myCont["email"] = userCont.Email //电子邮件
myCont["gender"] = userCont.Gender //性别(1:男性;2:女性;3:中性)
myCont["birthday"] = userCont.Birthday //birthday
myCont["myfolk"] = userCont.Myfolk //民族
myCont["nativeplace"] = userCont.Nativeplace //籍贯
myCont["idcardstartdate"] = userCont.Idcardstartdate //身份证有效期开始
myCont["idcardenddate"] = userCont.Idcardenddate //身份证有效期结束
myCont["idcardaddress"] = userCont.Idcardaddress //身份证地址
myCont["idcardIssued"] = userCont.IdcardIssued //身份证签发机关
myCont["health"] = userCont.Health //健康状况(1:良好;2:一般;3:较弱,4:有生理缺陷;5:残废)
myCont["maritalstatus"] = userCont.Maritalstatus //婚姻状况(1:未婚;2:已婚;3:丧偶;4:离异)
myCont["internaltelephone"] = userCont.Internaltelephone //内线电话
myCont["currentresidence"] = userCont.Currentresidence //现居住地址
myCont["constellationing"] = userCont.Constellation //星座(1:白羊座;2:金牛座;3:双子座;4:巨蟹座;5:狮子座;6:处女座;7:天枰座;8:天蝎座;9:射手座;10:摩羯座;11:水瓶座;12:双鱼座)
myCont["isdoubleworker"] = userCont.Isdoubleworker //是否双职工(1:是;2:否)
myCont["isveterans"] = userCont.Isveterans //是否为退役军人(1:是;2:否)
myCont["veteransnumber"] = userCont.Veteransnumber //退役证编号
myCont["jobstartdate"] = userCont.Jobstartdate //参加工作日期
myCont["entrydate"] = userCont.Entrydate //入职日期
myCont["probationperiod"] = userCont.Probationperiod //试用期
myCont["planformaldate"] = userCont.Planformaldate //预计转正日期
myCont["political_outlook"] = userCont.PoliticalOutlook //政治面貌(1:群众;2:无党派;3:台盟会员;4:九三社员;5:致公党员;6:农工党员;7:民进会员;8:民建会员;9:民盟盟员;10:民革会员,11:共青团员;12:预备党员;13:中共党员)
redisClient.HashMsetAdd(redisMyContKey, myCont)
c.Next() c.Next()
} }
} }

1
gin_server_admin/model/system/request/sys_user.go

@ -16,6 +16,7 @@ type Login struct {
Password string `json:"password"` // 密码 Password string `json:"password"` // 密码
Captcha string `json:"captcha"` // 验证码 Captcha string `json:"captcha"` // 验证码
CaptchaId string `json:"captchaId"` // 验证码ID CaptchaId string `json:"captchaId"` // 验证码ID
OpenId string `json:"openid"` //企业微信ID
} }
// Modify password structure // Modify password structure

1
gin_server_admin/router/statisticsrouter/statistics.go

@ -21,5 +21,6 @@ func (s *StatisticsRouter) InitRouter(Router *gin.RouterGroup) {
QuantRouter.POST("", initQuantApiRouter.Index) // 首页 QuantRouter.POST("", initQuantApiRouter.Index) // 首页
QuantRouter.POST("getquantechartorgandyear", initQuantApiRouter.GetQuantEChartOrgAndYear) // 计算定量考核组织范围,及起止年份 QuantRouter.POST("getquantechartorgandyear", initQuantApiRouter.GetQuantEChartOrgAndYear) // 计算定量考核组织范围,及起止年份
QuantRouter.POST("quantechart", initQuantApiRouter.QuantEChart) // 计算定量考核数据 QuantRouter.POST("quantechart", initQuantApiRouter.QuantEChart) // 计算定量考核数据
QuantRouter.POST("summarydetails", initQuantApiRouter.SummaryDetails) // 汇总详情
} }
} }

Loading…
Cancel
Save