Browse Source

2022.05.10BUG修复

qin_1
超级管理员 4 years ago
parent
commit
494b5519df
  1. 70
      gin_server_admin/api/admin/dutyassess/assess.go
  2. 13
      gin_server_admin/api/admin/dutyassess/assesstype.go
  3. 2
      gin_server_admin/api/admin/dutyassess/planversio.go
  4. 10
      gin_server_admin/api/admin/systemuser/systemmenu.go
  5. 10
      gin_server_admin/api/index/assessment/assesshandle.go
  6. 22
      gin_server_admin/api/index/evaluation/assessment.go
  7. 106
      gin_server_admin/api/index/evaluation/evaluation.go
  8. 218
      gin_server_admin/api/index/evaluation/examineflow.go
  9. 22
      gin_server_admin/api/index/evaluation/flowsend.go
  10. 116
      gin_server_admin/api/index/evaluation/lookquantita.go
  11. 2
      gin_server_admin/api/index/evaluation/sendwechatmsg.go
  12. 91
      gin_server_admin/api/index/evaluation/type.go
  13. 449
      gin_server_admin/api/index/statistics/dataform.go
  14. 104
      gin_server_admin/api/index/statistics/enter.go
  15. 62
      gin_server_admin/api/index/statistics/programme.go
  16. 611
      gin_server_admin/api/index/statistics/tablestatistics.go
  17. 4
      gin_server_admin/api/statistics/nature/statistics.go
  18. 93
      gin_server_admin/api/statistics/quantification/quant.go
  19. 6
      gin_server_admin/api/v1/assessment/set_evaluation_objectives.go
  20. 17
      gin_server_admin/api/v1/custom/customhandle.go
  21. 38
      gin_server_admin/api/v1/shiyan/shiyan.go
  22. 4
      gin_server_admin/api/web/jixiaokaohe/myduty.go
  23. 2
      gin_server_admin/api/web/jixiaokaohe/people.go
  24. 38
      gin_server_admin/api/wechatapp/callback/updatehandle.go
  25. 30
      gin_server_admin/commonus/publichaneld.go
  26. 34
      gin_server_admin/commonus/timeSub.go
  27. 10
      gin_server_admin/middleware/myjwt.go
  28. 1
      gin_server_admin/model/assessmentmodel/performance_appraisal.go
  29. 2
      gin_server_admin/router/assessment/assessmentrouter.go
  30. 3
      gin_server_admin/router/system/sys_base.go
  31. 2
      gin_server_admin/router/systemadmin/dutyassess.go
  32. 9
      gin_server_admin/utils/redishandel/myredis.go

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

@ -493,6 +493,8 @@ func (e *DutyAssessApi) LookQuantitativeConfig(c *gin.Context) {
if dtErr == true {
outCont.DetailedTargetTitle = dtargetInfo.Title
}
outCont.Capping = v.Capping
outCont.CappingVal = v.CappingVal / 100
outList = append(outList, outCont)
}
response.Result(0, outList, "获取成功!", c)
@ -765,7 +767,7 @@ func (d *DutyAssessApi) LookDepartDutyVersio(c *gin.Context) {
uotCont.TargetWeight = pvChild.ReferenceScore
uotCont.Unit = pvChild.Unit
uotCont.Content = pvChild.Content
uotCont.State = pvChild.State
uotCont.State = pvChild.Status
//获取指标内容
var evalTargerCont assessmentmodel.EvaluationTarget
evalErr := global.GVA_DB_Performanceappraisal.Where("`et_id` = ?", pvChild.Id).First(&evalTargerCont).Error
@ -1041,13 +1043,25 @@ func (d *DutyAssessApi) CopyDepartDutyVersio(c *gin.Context) {
copyInfoXonr.ZhiFraction = v.ZhiFraction
for _, cv := range v.Child {
var copyEvalCont CopyEvaluPross
copyEvalCont.Id = cv.Id //`json:"id"` //维度ID
copyEvalCont.Name = cv.Name //`json:"name"`
copyEvalCont.Id = cv.Id //`json:"id"` //维度ID
var tarGetContent assessmentmodel.EvaluationTarget
tarGetContentErr := tarGetContent.GetCont(map[string]interface{}{"et_id": cv.Id}, "et_title")
if tarGetContentErr == nil {
copyEvalCont.Name = tarGetContent.Title
} else {
copyEvalCont.Name = cv.Name //`json:"name"`
}
copyEvalCont.Content = cv.Content //`json:"content"` //指标说明
copyEvalCont.Unit = cv.Unit //`json:"unit"` //单位"`
copyEvalCont.ReferenceScore = cv.ReferenceScore //`json:"referencescore"` //标准分值"`
copyEvalCont.State = cv.State //`json:"state"`
copyEvalCont.Istrue = 2 //`json:"istrue"` //是否允许修改
if cv.Status == 0 {
copyEvalCont.State = 2
} else {
copyEvalCont.State = cv.Status //`json:"state"`
}
copyEvalCont.Istrue = 2 //`json:"istrue"` //是否允许修改
copyInfoXonr.Child = append(copyInfoXonr.Child, copyEvalCont)
}
@ -1058,3 +1072,49 @@ func (d *DutyAssessApi) CopyDepartDutyVersio(c *gin.Context) {
}
response.Result(0, copyCont, "查询完成!", c)
}
//修改考核目标设置
func (e *DutyAssessApi) EiteQuantitativeConfig(c *gin.Context) {
var requestData []EiteQuantConfig
err := c.ShouldBindJSON(&requestData)
if err != nil {
response.Result(101, err, "数据获取失败!", c)
return
}
if len(requestData) < 1 {
response.Result(101, err, "数据获取失败!", c)
return
}
for _, v := range requestData {
eiteCont := commonus.MapOut()
eiteCont["allprize"] = v.Allprize * 100
eiteCont["zeroprize"] = v.Zeroprize * 100
eiteCont["capping_val"] = v.Capping * 100
err = global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QuantitativeConfig{}).Where("`id` = ?", v.Id).Updates(eiteCont).Error
}
if err != nil {
response.Result(101, err, "数据编辑失败!", c)
} else {
response.Result(0, err, "数据编辑成功!", c)
}
}
//修改考核目标设置
func (e *DutyAssessApi) DelQuantitativeConfig(c *gin.Context) {
var requestData []string
err := c.ShouldBindJSON(&requestData)
if err != nil {
response.Result(101, err, "数据获取失败!", c)
return
}
if len(requestData) < 1 {
response.Result(101, err, "数据获取失败!", c)
return
}
err = global.GVA_DB_Performanceappraisal.Where("`id` IN ?", requestData).Delete(&assessmentmodel.QuantitativeConfig{}).Error
if err != nil {
response.Result(101, err, "删除失败!", c)
} else {
response.Result(0, err, "删除成功!", c)
}
}

13
gin_server_admin/api/admin/dutyassess/assesstype.go

@ -623,3 +623,16 @@ type CopyEvaluPross struct {
State int `json:"status"`
Istrue int `json:"istrue"` //是否允许修改
}
//修改考核目标设定
type EiteQuantConfig struct {
Id string `json:"id"`
Zeroprize float64 `json:"zeroprize"` //零奖值"`
Allprize float64 `json:"allprize"` //全奖值"`
Capping float64 `json:"capping"` //封顶值"`
}
//删除考核目标设定
type DelQuantConfig struct {
Id string `json:"id"`
}

2
gin_server_admin/api/admin/dutyassess/planversio.go

@ -551,7 +551,7 @@ func (d *DutyAssessApi) OnOffDepartDutyVersio(c *gin.Context) {
}
//判断是否存在
var ContInfo assessmentmodel.PlanVersio
getContErr := global.GVA_DB_Performanceappraisal.Where("`key` = ?", requestData.Key).First(&ContInfo).Error
getContErr := global.GVA_DB_Performanceappraisal.Where("`key` = ? AND `state` <> 3", requestData.Key).First(&ContInfo).Error
if getContErr != nil {
response.Result(103, getContErr, "没有该方案!", c)
return

10
gin_server_admin/api/admin/systemuser/systemmenu.go

@ -104,7 +104,7 @@ func (s *SysTemMenuApi) AddMenu(c *gin.Context) {
// isTrue, userCont := commonus.AdminClientIdentity()
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData addMenuData
@ -165,7 +165,7 @@ func (s *SysTemMenuApi) EiteMenu(c *gin.Context) {
// isTrue, _ := commonus.AdminClientIdentity()
isTrue, _ := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData eiteMenuData
@ -234,7 +234,7 @@ func (s *SysTemMenuApi) DelMenu(c *gin.Context) {
// isTrue, _ := commonus.AdminClientIdentity()
isTrue, _ := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData commonus.DelParameter
@ -291,7 +291,7 @@ func (s *SysTemMenuApi) AddMenuOperation(c *gin.Context) {
// isTrue, _ := commonus.AdminClientIdentity()
isTrue, _ := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData addMenuOper
@ -338,7 +338,7 @@ func (s *SysTemMenuApi) DelMenuOperation(c *gin.Context) {
// isTrue, _ := commonus.AdminClientIdentity()
isTrue, _ := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData commonus.DelParameter

10
gin_server_admin/api/index/assessment/assesshandle.go

@ -148,7 +148,7 @@ func (a *Assessment) MyAssEssMentList(c *gin.Context) {
}
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, err, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, err, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
offSetPage := commonus.CalculatePages(requestData.Page, requestData.PageSize)
@ -336,7 +336,7 @@ func (a *Assessment) AddAssessmentScore(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(106, err, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, err, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
userKey, userKeyErr := strconv.ParseInt(userCont.Key, 10, 64)
@ -419,7 +419,7 @@ func (a *Assessment) MyEvaluateList(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, err, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, err, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
// gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Departscores{}).Select("s_depart_id", "s_file_time", "s_comment_user").Where("`s_comment_user` = ?", userCont.Key)
@ -705,7 +705,7 @@ func (a *Assessment) DepartmentAssess(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(103, err, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, err, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
@ -1091,7 +1091,7 @@ func (a *Assessment) LookPersonalOrDepartment(c *gin.Context) {
offSetPage := commonus.CalculatePages(requestData.Page, requestData.PageSize)
isTrue, userInfo := commonus.ClientIdentity()
if isTrue != true {
response.Result(103, err, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, err, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
departmentID, departmentIDErr := strconv.ParseInt(userInfo.Deparment, 10, 64)

22
gin_server_admin/api/index/evaluation/assessment.go

@ -4,6 +4,7 @@ import (
"encoding/json"
"fmt"
"strconv"
"time"
"github.com/flipped-aurora/gin-vue-admin/server/commonus"
"github.com/flipped-aurora/gin-vue-admin/server/global"
@ -16,7 +17,7 @@ import (
func (e *EvaluationInterface) NewQualitative(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
@ -76,7 +77,7 @@ func (e *EvaluationInterface) NewQualitative(c *gin.Context) {
func (e *EvaluationInterface) NewGetQualDetailedTarget(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData NewQualDetailTar
@ -159,3 +160,20 @@ func (e *EvaluationInterface) NewGetQualDetailedTarget(c *gin.Context) {
}
response.Result(0, outContList, "获取成功!", c)
}
//判断全奖与零奖参数
func AllZreoConfig(cycles int) (monthInt int64) {
switch cycles {
case 4:
monthInt = commonus.ComputingTime(time.Now().Unix(), 1)
// monthInt, _ = strconv.ParseInt(monthstr, 10, 64)
case 5:
// var dfds error
monthInt = commonus.ComputingTime(time.Now().Unix(), 2)
// monthInt, dfds = strconv.ParseInt(monthstrsss, 10, 64)
// fmt.Printf("monthstr--------monthInt-------->%v----->%v----->%v\n", monthstrsss, monthInt, dfds)
default:
}
return
}

106
gin_server_admin/api/index/evaluation/evaluation.go

@ -26,7 +26,7 @@ func (e *EvaluationInterface) Index(c *gin.Context) {
func (e *EvaluationInterface) QualitativeEvaluation(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
// var qualEvaList []assessmentmodel.QualitativeEvaluation
@ -117,7 +117,7 @@ func (e *EvaluationInterface) QualitativeEvaluation(c *gin.Context) {
func (e *EvaluationInterface) AdditionAndSubtractionScore(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData addPlusOrMinusPoints
@ -326,7 +326,7 @@ func (e *EvaluationInterface) AdditionAndSubtractionScore(c *gin.Context) {
func (e *EvaluationInterface) AddDivisionResponsibility(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData DivisionResponsibilityType
@ -593,7 +593,7 @@ func (e *EvaluationInterface) AddDivisionResponsibility(c *gin.Context) {
func (e *EvaluationInterface) AddCorrectiveMeasures(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
userKey, userKeyErr := strconv.ParseInt(userCont.Key, 10, 64)
@ -729,7 +729,7 @@ func SendRectifyReceipt(sendUserList, mainTitle, mainTitleDesc, subtitle, reason
func (e *EvaluationInterface) QualitativeEvalRation(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData GetRationFlowLog
@ -799,17 +799,22 @@ func (e *EvaluationInterface) QualitativeEvalRation(c *gin.Context) {
uotCont.TargetName = targetInfo.Title
uotCont.ScoringMethod = int64(targetInfo.ScoringMethod)
}
uotCont.TargetSun = strconv.FormatInt(v.TargetSun, 10)
info, infoErr := commonus.GetQualitativeTargetInfo(v.TargetSun)
if infoErr == true {
uotCont.TargetSunName = info.Title
if v.TargetSun != 0 {
uotCont.TargetSun = strconv.FormatInt(v.TargetSun, 10)
info, infoErr := commonus.GetQualitativeTargetInfo(v.TargetSun)
if infoErr == true {
uotCont.TargetSunName = info.Title
}
}
uotCont.DetailedTarget = strconv.FormatInt(v.DetailedTarget, 10)
dtCont, dtIsTrue := commonus.GetDetailedTargetInfo(v.DetailedTarget)
if dtIsTrue == true {
uotCont.DetailedTargetName = dtCont.Title
uotCont.Content = dtCont.Content
if v.DetailedTarget != 0 {
uotCont.DetailedTarget = strconv.FormatInt(v.DetailedTarget, 10)
dtCont, dtIsTrue := commonus.GetDetailedTargetInfo(v.DetailedTarget)
if dtIsTrue == true {
uotCont.DetailedTargetName = dtCont.Title
uotCont.Content = dtCont.Content
}
}
uotCont.Unit = v.Unit
uotCont.ReferenceScore = v.ReferenceScore
uotCont.Cycles = v.Cycles
@ -818,7 +823,8 @@ func (e *EvaluationInterface) QualitativeEvalRation(c *gin.Context) {
userAry := strings.Split(v.Operator, ",")
uotCont.UserList = userAry
for _, u_v := range userAry {
usCont, usErr := archiveapi.GetUserInfo([]string{"worker_man.wm_number", "worker_man_data.wmd_name"}, map[string]interface{}{"wm_key": u_v})
// usCont, usErr := archiveapi.GetUserInfo([]string{"worker_man.wm_number", "worker_man_data.wmd_name"}, map[string]interface{}{"wm_key": u_v})
usCont, usErr := commonus.GetNewHrPeopleInfo(map[string]interface{}{"`key`": u_v}, "number", "name")
if usErr == true {
var userCont QualEvalArrt
userCont.Id = u_v
@ -826,16 +832,20 @@ func (e *EvaluationInterface) QualitativeEvalRation(c *gin.Context) {
uotCont.UserListAry = append(uotCont.UserListAry, userCont)
}
}
uotCont.DimensionWeight, uotCont.TargetWeight = getPlanVersionWeghit(v.QualEvalId, strconv.FormatInt(v.Dimension, 10), strconv.FormatInt(v.Target, 10))
//获取目标设定
quanTitWhere := commonus.MapOut()
quanTitWhere["group"] = v.Group
quanTitWhere["departmentid"] = v.DepartmentId
quanTitWhere["departmentid"] = v.AcceptEvaluation
quanTitWhere["dimension"] = v.Dimension
quanTitWhere["target"] = v.Target
if v.DetailedTarget != 0 {
quanTitWhere["targetconfig"] = v.DetailedTarget
}
quanTitWhere["year"] = commonus.TimeStampToDate(time.Now().Unix(), 11)
quanTitWhere["timecopy"] = AllZreoConfig(v.Cycles)
quanTitCont := commonus.GetQuantitativeConfig(quanTitWhere)
fmt.Printf("quanTitWhere----------->%v-------->%v\n", quanTitWhere, quanTitCont)
uotCont.ZeroPrize = strconv.FormatFloat(float64(quanTitCont.Zeroprize)/100, 'f', -1, 64)
uotCont.AllPrize = strconv.FormatFloat(float64(quanTitCont.Allprize)/100, 'f', -1, 64)
@ -885,6 +895,14 @@ func (e *EvaluationInterface) QualitativeEvalRation(c *gin.Context) {
actualValue := commonus.GetTimeIntervalDuty(shiJiZhi, v.Id) //实际值
uotCont.Actual = strconv.FormatFloat(actualValue/100, 'f', -1, 64)
chuShuVal := actualValue - quanTitCont.Zeroprize
beiChuShuVal := quanTitCont.Allprize - quanTitCont.Zeroprize
if beiChuShuVal > 0 {
uotCont.ReachScore = chuShuVal / beiChuShuVal
} else {
uotCont.ReachScore = 0
}
judgeActualValue := commonus.GetTimeIntervalDutyJudge(shiJiZhi, v.Id) //判断当前条件下时候又审批中和审批通过的
if judgeActualValue > 0 {
kickOut = 2
@ -893,18 +911,19 @@ func (e *EvaluationInterface) QualitativeEvalRation(c *gin.Context) {
if quanTitCont.Zeroprize == 0 && quanTitCont.Allprize == 0 {
uotCont.Reach = "未设置目标值"
} else {
divisor := actualValue - float64(quanTitCont.Zeroprize) //除数
// divisor := actualValue - float64(quanTitCont.Zeroprize) //除数
dividend := quanTitCont.Allprize - quanTitCont.Zeroprize //被除数
if dividend == 0 {
uotCont.Reach = "未设置目标值"
} else {
reachValue := ((divisor / 100) / (float64(dividend) / 100)) * 100
if reachValue < 0 {
uotCont.Reach = "0%"
} else {
reachValueStr := strconv.FormatFloat(reachValue, 'f', -1, 64)
uotCont.Reach = fmt.Sprintf("%v%", reachValueStr)
}
uotCont.Reach = fmt.Sprintf("((实际值-零奖值)/(全奖值-零奖值))*指标权重\n((S-Z)/(A-Z))*W")
// reachValue := ((divisor / 100) / (float64(dividend) / 100)) * 100
// if reachValue < 0 {
// uotCont.Reach = "0%"
// } else {
// reachValueStr := strconv.FormatFloat(reachValue, 'f', -1, 64)
// uotCont.Reach = fmt.Sprintf("%v%", reachValueStr)
// }
}
}
@ -922,7 +941,7 @@ func (e *EvaluationInterface) QualitativeEvalRation(c *gin.Context) {
func (e *EvaluationInterface) AddFlowRationLog(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
userKey, userKeyErr := strconv.ParseInt(userCont.Key, 10, 64)
@ -975,6 +994,12 @@ func (e *EvaluationInterface) AddFlowRationLog(c *gin.Context) {
flowLog.Week = commonus.ComputingTime(timeOccurrence, 4)
flowLog.ToDay = commonus.ComputingTime(timeOccurrence, 5)
} else {
lastMonth, _, _ := commonus.GetLastMonth()
lastMonthInt, lastMonthErr := commonus.DateToTimeStampEs(fmt.Sprintf("%v-10 12:00:00", lastMonth))
if lastMonthErr == true {
operationTime = lastMonthInt
}
flowLog.Year = commonus.ComputingTime(operationTime, 1)
flowLog.Quarter = commonus.ComputingTime(operationTime, 2)
flowLog.Month = commonus.ComputingTime(operationTime, 3)
@ -1051,7 +1076,7 @@ func (e *EvaluationInterface) AddFlowRationLog(c *gin.Context) {
addFlowLogErr := gromDb.Create(&flowLog).Error
addFlowLogDataErr := gromDb.Create(&flowDataLogAry).Error
commonus.StepAddData(keyNumber, 16182159043990656, 2, 7, 2, 2, 1, userCont.Key)
commonus.StepAddData(keyNumber, 16182159043990656, 2, 7, 2, 1, 1, userCont.Key)
// response.Result(0, flowLog, "数据写入成功", c)
// return
//暂停审核方便录入测试数据
@ -1401,6 +1426,9 @@ func (d *EvaluationInterface) LookRationkScoreFlow(c *gin.Context) {
if targetContErr == true {
outContt.Title = targetCont.Title
outContt.Unit = targetCont.Unit
outContt.Cycles = targetCont.Cycles
outContt.CycleAttres = targetCont.CycleAttres
}
outContt.Score = float64(v.Score) / 100
outContt.Content = v.Content
@ -1516,5 +1544,27 @@ func (d *EvaluationInterface) LookRationkScoreFlow(c *gin.Context) {
response.Result(0, outListMap, "查询成功", c)
}
//获取点击人信息
// userContInfoIstrue, userContInfo := commonus.GetUesrContForWechatID(t.FromUsername)
//获取权重
func getPlanVersionWeghit(planKey, dimensionId, targetId string) (dimensionIdWeghit, targetIdWeghit int64) {
var planVersionCont assessmentmodel.PlanVersio
err := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.PlanVersio{}).Select("`content`").Where("`key` = ?", planKey).First(&planVersionCont).Error
if err != nil {
return
}
var planVersioInfo []AddDutyNewCont
jsonErr := json.Unmarshal([]byte(planVersionCont.Content), &planVersioInfo)
if jsonErr != nil {
return
}
for _, v := range planVersioInfo {
if v.Id == dimensionId {
dimensionIdWeghit = int64(v.ZhiFraction)
for _, cv := range v.Child {
if cv.Id == targetId {
targetIdWeghit = cv.ReferenceScore
}
}
}
}
return
}

218
gin_server_admin/api/index/evaluation/examineflow.go

@ -0,0 +1,218 @@
package evaluation
import (
"strconv"
"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/model/assessmentmodel"
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
"github.com/flipped-aurora/gin-vue-admin/server/model/hrsystem"
"github.com/gin-gonic/gin"
)
func (e *EvaluationInterface) ExamineFlow(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData getExamineFlow
c.ShouldBindJSON(&requestData)
if requestData.Id == "" {
response.Result(101, requestData, "数据获取失败!", c)
return
}
if requestData.IsCorrection == 0 {
requestData.IsCorrection = 2
}
var qualEvalInfo assessmentmodel.QualitativeEvaluation
qualWhere := commonus.MapOut()
qualWhere["`qe_id`"] = requestData.Id
qualEvalInfoErr := qualEvalInfo.GetCont(qualWhere)
if qualEvalInfoErr != nil {
response.Result(102, qualEvalInfoErr, "未查询到数据!", c)
return
}
var flowMap []commonus.FlowAllMap
// wxkStr := userCont.Wechat
//1、创建
var oneFlowInfo commonus.FlowAllMap
oneFlowInfo.Step = 1
oneFlowInfo.NodeName = commonus.GetSetpName(1)
oneFlowInfo.State = 2
oneFlowInfo.Class = 1
oneFlowInfo.UserList = append(oneFlowInfo.UserList, GetApproveUser(userCont.Wechat))
flowMap = append(flowMap, oneFlowInfo)
if qualEvalInfo.Type == 1 {
//定性
//2、创建人部门负责人审核
var twoFlowInfo commonus.FlowAllMap
twoFlowInfo.Step = 2
twoFlowInfo.NodeName = commonus.GetSetpName(2)
twoFlowInfo.State = 1
twoFlowInfo.Class = 1
// orgCont, _ := commonus.GetNewOrgCont(map[string]interface{}{"`id`": userCont.Deparment}, "id", "wechat_organization_id")
// sendUserIsTrue, sendUserList := commonus.GetSendMsgUserAry(16182159043990656, orgCont.WechatOrganizationId)
twoDepartId, _ := strconv.ParseInt(userCont.Deparment, 10, 64)
sendUserIsTrue, sendUserList := commonus.GetSendMsgUserAry(16182159043990656, twoDepartId)
if sendUserIsTrue == true {
for _, v := range sendUserList {
twoFlowInfo.UserList = append(twoFlowInfo.UserList, GetApproveUser(v))
}
}
flowMap = append(flowMap, twoFlowInfo)
//3、被考核部门内勤进行责任划分
var threeFlowInfo commonus.FlowAllMap
threeFlowInfo.Step = 3
threeFlowInfo.NodeName = commonus.GetSetpName(3)
threeFlowInfo.State = 1
threeFlowInfo.Class = 1
// threeorgCont, _ := commonus.GetNewOrgCont(map[string]interface{}{"`id`": qualEvalInfo.AcceptEvaluation}, "id", "wechat_organization_id")
// sendUserIsTrueThree, sendUserListThree := commonus.GetSendMsgUserAry(16118387069540343, threeorgCont.WechatOrganizationId)
sendUserIsTrueThree, sendUserListThree := commonus.GetSendMsgUserAry(16118387069540343, qualEvalInfo.AcceptEvaluation)
if sendUserIsTrueThree == true {
for _, v := range sendUserListThree {
threeFlowInfo.UserList = append(threeFlowInfo.UserList, GetApproveUser(v))
}
}
flowMap = append(flowMap, threeFlowInfo)
//4、被考核部门负责人对责任划分确认
var fourFlowInfo commonus.FlowAllMap
fourFlowInfo.Step = 4
fourFlowInfo.NodeName = commonus.GetSetpName(7)
fourFlowInfo.State = 1
fourFlowInfo.Class = 1
// fourorgCont, _ := commonus.GetNewOrgCont(map[string]interface{}{"`id`": qualEvalInfo.AcceptEvaluation}, "id", "wechat_organization_id")
// sendUserIsTrueFour, sendUserListFour := commonus.GetSendMsgUserAry(16182159043990656, fourorgCont.WechatOrganizationId)
sendUserIsTrueFour, sendUserListFour := commonus.GetSendMsgUserAry(16182159043990656, qualEvalInfo.AcceptEvaluation)
if sendUserIsTrueFour == true {
for _, v := range sendUserListFour {
fourFlowInfo.UserList = append(fourFlowInfo.UserList, GetApproveUser(v))
}
}
flowMap = append(flowMap, fourFlowInfo)
if requestData.IsCorrection == 1 {
//5、整改人节点。由内勤指定
var fiveFlowInfo commonus.FlowAllMap
fiveFlowInfo.Step = 5
fiveFlowInfo.NodeName = commonus.GetSetpName(4)
fiveFlowInfo.State = 1
fiveFlowInfo.Class = 2
// fiveFlowInfo.UserList = GetFlowNodeManEs(flowID, class, 5,encFile)
flowMap = append(flowMap, fiveFlowInfo)
//6、被考核部门负责人对整改措施确认
var sixFlowInfo commonus.FlowAllMap
sixFlowInfo.Step = 6
sixFlowInfo.NodeName = commonus.GetSetpName(7)
sixFlowInfo.State = 1
sixFlowInfo.Class = 1
// sixorgCont, _ := commonus.GetNewOrgCont(map[string]interface{}{"`id`": qualEvalInfo.AcceptEvaluation}, "id", "wechat_organization_id")
// sendUserIsTrueSix, sendUserListSix := commonus.GetSendMsgUserAry(16182159043990656, sixorgCont.WechatOrganizationId)
sendUserIsTrueSix, sendUserListSix := commonus.GetSendMsgUserAry(16182159043990656, qualEvalInfo.AcceptEvaluation)
if sendUserIsTrueSix == true {
for _, v := range sendUserListSix {
sixFlowInfo.UserList = append(sixFlowInfo.UserList, GetApproveUser(v))
}
}
flowMap = append(flowMap, sixFlowInfo)
//7、发起人验收
var serverFlowInfo commonus.FlowAllMap
serverFlowInfo.Step = 7
serverFlowInfo.NodeName = commonus.GetSetpName(5)
serverFlowInfo.State = 1
serverFlowInfo.Class = 1
serverFlowInfo.UserList = append(serverFlowInfo.UserList, GetApproveUser(userCont.Wechat))
flowMap = append(flowMap, serverFlowInfo)
} else {
//5、发起人验收
var serverEsFlowInfo commonus.FlowAllMap
serverEsFlowInfo.Step = 5
serverEsFlowInfo.NodeName = commonus.GetSetpName(5)
serverEsFlowInfo.State = 1
serverEsFlowInfo.Class = 1
serverEsFlowInfo.UserList = append(serverEsFlowInfo.UserList, GetApproveUser(userCont.Wechat))
flowMap = append(flowMap, serverEsFlowInfo)
}
} else {
//定量
//审批结束
var twoFlowInfo commonus.FlowAllMap
twoFlowInfo.Step = 2
twoFlowInfo.NodeName = commonus.GetSetpName(7)
twoFlowInfo.State = 1
twoFlowInfo.Class = 1
// where := commonus.MapOut()
// where["id"] = userCont.Deparment
// orgCont, _ := commonus.GetNewOrgCont(where, "id", "wechat_organization_id")
departId, _ := strconv.ParseInt(userCont.Deparment, 10, 64)
sendUserIsTrue, sendUserList := commonus.GetSendMsgUserAry(16182159043990656, departId)
if sendUserIsTrue == true {
for _, v := range sendUserList {
twoFlowInfo.UserList = append(twoFlowInfo.UserList, GetApproveUser(v))
}
}
flowMap = append(flowMap, twoFlowInfo)
}
// flowMap = append(flowMap, oneFlowInfo)
response.Result(0, flowMap, "查询成功!", c)
}
//获取人员信息
func GetApproveUser(key string) (returnUser commonus.UserListFlowAll) {
var userCont hrsystem.Personnel
// qualWhere := commonus.MapOut()
// qualWhere["`key`"] = key
userErr := global.GVA_DB_HrDataBase.Where("`wechat` = ? OR `work_wechat` = ?", key, key).First(&userCont).Error
if userErr == nil {
returnUser.Id = strconv.FormatInt(userCont.Key, 10)
returnUser.Name = userCont.Name
returnUser.Icon = userCont.Icon
returnUser.Group = userCont.Company
where := commonus.MapOut()
where["id"] = userCont.Company
orgCont, _ := commonus.GetNewOrgCont(where, "id", "name")
returnUser.GroupName = orgCont.Name
returnUser.DepartmentId, _ = strconv.ParseInt(userCont.Deparment, 10, 64)
whereDepart := commonus.MapOut()
whereDepart["id"] = userCont.Deparment
orgContDepart, _ := commonus.GetNewOrgCont(whereDepart, "id", "name")
returnUser.DepartmentName = orgContDepart.Name
// returnUser.DepartmentName = userCont.DepartmentName
returnUser.WorkshopId = userCont.Position
var positionCont hrsystem.Position
positionContErr := positionCont.GetCont(map[string]interface{}{"`id`": userCont.Position}, "`name`")
if positionContErr == nil {
returnUser.WorkshopName = positionCont.Name
}
returnUser.PostId = userCont.AdminOrg
var postCont hrsystem.AdministrativeOrganization
postContErr := postCont.GetCont(map[string]interface{}{"`id`": userCont.AdminOrg}, "`name`")
if postContErr == nil {
returnUser.PostName = postCont.Name
}
// returnUser.Tema = userCont.Tema
// returnUser.TemaName = userCont.TemaName
if userCont.Wechat != "" {
returnUser.Wechat = userCont.Wechat
}
if userCont.WorkWechat != "" {
returnUser.Wechat = userCont.WorkWechat
}
}
return
}

22
gin_server_admin/api/index/evaluation/flowsend.go

@ -19,7 +19,7 @@ import (
func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData addPlusOrMinusPoints
@ -85,7 +85,7 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) {
return
}
if requestData.Rectification == 0 {
requestData.Rectification = 1
requestData.Rectification = 2
}
var correctionTime int64 = 0
if requestData.Rectification == 1 {
@ -208,7 +208,7 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) {
sendScVal := float64(sendScore) / 100
scoreFloat64ToStringsss := strconv.FormatFloat(sendScVal, 'f', -1, 64)
fmt.Printf("ScoreSetp---2----s->%v----f->%v----fs->%v----si->%v\n", sendScore, float64(sendScore)/100, sendScVal, scoreFloat64ToStringsss)
// fmt.Printf("ScoreSetp---2----s->%v----f->%v----fs->%v----si->%v\n", sendScore, float64(sendScore)/100, sendScVal, scoreFloat64ToStringsss)
if requestData.Type == 1 {
subtitle = fmt.Sprintf("考核加分:%v\n", scoreFloat64ToStringsss)
@ -234,7 +234,7 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) {
}
}
commonus.StepAddDataEs(keyNumber, 0, 3, 1, 1, 2, 1, userCont.Key, requestData.Enclosure)
// commonus.StepAddDataEs(keyNumber, 0, 3, 1, 1, 2, 1, userCont.Key, requestData.Enclosure)
// response.Result(0, addScore, "数据写入成功", c)
// return
//暂停审核方便录入测试数据
@ -242,7 +242,7 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) {
if myIsTrue != 1 {
//写入当前流程步骤
// commonus.StepAddData(keyNumber, 0, 3, 1, 1, 2, 1, userCont.Key) //原
commonus.StepAddDataEs(keyNumber, 0, 3, 1, 1, 2, 1, userCont.Key, requestData.Enclosure)
commonus.StepAddDataEs(keyNumber, 0, 3, 1, 1, 1, 1, userCont.Key, requestData.Enclosure)
//申请人也是部门负责人
//给相关部门内勤发送消息。确定相关责任人
sendUserIsTrue, sendUserList := commonus.GetSendMsgUser(16118387069540343, programme.AcceptEvaluation) //获取对应部门内勤
@ -259,7 +259,7 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) {
} else {
//写入当前流程步骤
// commonus.StepAddData(keyNumber, 16182159043990656, 2, 1, 1, 2, 1, userCont.Key) //原
commonus.StepAddDataEs(keyNumber, 16182159043990656, 2, 1, 1, 2, 1, userCont.Key, requestData.Enclosure)
commonus.StepAddDataEs(keyNumber, 16182159043990656, 2, 1, 1, 1, 1, userCont.Key, requestData.Enclosure)
//申请人不是是部门负责人 给本部门负责人发送审批
//获取发起人部门负责人
departmentIdInts, _ := strconv.ParseInt(userCont.Deparment, 10, 64)
@ -292,7 +292,7 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) {
func (e *EvaluationInterface) PersonInCharge(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData DivisionResponsibilityTypes
@ -345,7 +345,7 @@ func (e *EvaluationInterface) PersonInCharge(c *gin.Context) {
}
}
//写入审批流程
commonus.StepAddData(orderId, 0, 4, 3, 1, 2, 3, userCont.Key)
commonus.StepAddData(orderId, 0, 4, 3, 1, 1, 3, userCont.Key)
var scoreFlowInfo assessmentmodel.ScoreFlow
judegFlowErr := global.GVA_DB_Performanceappraisal.Where("`sf_key` = ?", orderId).First(&scoreFlowInfo).Error
@ -607,7 +607,7 @@ func judgeIsSet(id int64, idAry []int64) (isTrue bool) {
func (e *EvaluationInterface) RectificationMeasures(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
userKey, userKeyErr := strconv.ParseInt(userCont.Key, 10, 64)
@ -693,7 +693,7 @@ func (e *EvaluationInterface) RectificationMeasures(c *gin.Context) {
registerCont.EiteCont(regWhere, saveRegData)
//写入流程步骤
// commonus.StepAddData(orderidval, 0, 6, 4, 1, 2, 5, userCont.Key) //原
commonus.StepAddDataEs(orderidval, 0, 6, 4, 1, 2, 5, userCont.Key, requestData.Enclosure)
commonus.StepAddDataEs(orderidval, 0, 6, 4, 1, 1, 5, userCont.Key, requestData.Enclosure)
/*
向本部门负责人发送审批
*/
@ -708,7 +708,7 @@ func (e *EvaluationInterface) RectificationMeasures(c *gin.Context) {
}
//获取考核项目关联项目
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(requestData.OrderId)
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _, _ := commonus.GetDutyAssociatedItems(requestData.OrderId)
//一级文本处理
var title, desc string
if detailedRulesTitle != "" {

116
gin_server_admin/api/index/evaluation/lookquantita.go

@ -117,7 +117,7 @@ func (e *EvaluationInterface) LookQuantitativeConfig(c *gin.Context) {
func (e *EvaluationInterface) SeeFlowLog(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, userCont, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData FlowLogType
@ -131,10 +131,36 @@ func (e *EvaluationInterface) SeeFlowLog(c *gin.Context) {
}
offSetPage := commonus.CalculatePages(requestData.Page, requestData.PageSize)
var evalProContList []assessmentmodel.EvaluationProcess
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationProcess{}).Where("FIND_IN_SET(?,`ep_participants`)", userCont.Key)
// var evalProContList []assessmentmodel.EvaluationProcess
var evalProContList []accPerFlowLog
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationProcess{})
gormDb = gormDb.Select("evaluation_process.*,sf.sf_duty_department,sf.sf_evaluation_plan,fl.fl_evaluation_id,fl.fl_evaluation_department,qe.qe_dimension,qe.qe_target,qe.qe_detailed_target,dc.title,et.et_title,dt.dt_title")
gormDb = gormDb.Joins(("left join score_flow as sf on sf.sf_key = evaluation_process.ep_order_key"))
gormDb = gormDb.Joins(("left join flow_log as fl on fl.fl_key = evaluation_process.ep_order_key"))
gormDb = gormDb.Joins(("left join qualitative_evaluation as qe on qe.qe_id = sf.sf_evaluation_plan OR qe.qe_id = fl.fl_evaluation_id"))
gormDb = gormDb.Joins(("left join dutyclass as dc on dc.id = qe.qe_dimension"))
gormDb = gormDb.Joins(("left join evaluationtarget as et on et.et_id = qe.qe_target"))
gormDb = gormDb.Joins(("left join detailed_target as dt on dt.dt_id = qe.qe_detailed_target"))
if requestData.Title != "" || requestData.Department != "" {
if requestData.Title != "" {
gormDb = gormDb.Where("dc.title LIKE ? OR et.et_title LIKE ? OR dt.dt_title LIKE ?", "%"+requestData.Title+"%", "%"+requestData.Title+"%", "%"+requestData.Title+"%")
}
if requestData.Department != "" {
gormDb = gormDb.Where("sf.sf_duty_department = ? OR fl.fl_evaluation_department = ?", requestData.Department, requestData.Department)
}
}
gormDb = gormDb.Where("FIND_IN_SET(?,`ep_participants`)", userCont.Key)
if requestData.State != 0 {
gormDb = gormDb.Where("ep_state = ?", requestData.State)
gormDb = gormDb.Where("evaluation_process.ep_state = ?", requestData.State)
} else {
gormDb = gormDb.Where("evaluation_process.ep_state IN ?", []int{1, 2, 3})
}
if requestData.Time != "" {
startTime, endTime := commonus.GetAppointMonthStarAndEndTime(requestData.Time)
gormDb = gormDb.Where("evaluation_process.ep_start_time BETWEEN ? AND ?", startTime, endTime)
}
/*
获取总共有多少记录
@ -150,30 +176,98 @@ func (e *EvaluationInterface) SeeFlowLog(c *gin.Context) {
response.Result(104, evaErr, "数据获取失败!", c)
return
}
// response.Result(104, evalProContList, "数据获取失败!", c)
// return
var flowLogListOut []FlowLogListOut
for _, v := range evalProContList {
var flowLogListCont FlowLogListOut
orderId := strconv.FormatInt(v.OrderKey, 10)
flowLogListCont.OutId = orderId
flowLogListCont.Class = v.TypeClass
flowLogListCont.MonthDays = commonus.TimeStampToDate(v.StartTime, 15)
if v.TypeClass == 1 {
//获取考核项目关联项目
targettitle, detailedRulesTitle, _, _, scoreFlowCont, dutyTarDetErr := commonus.GetDutyAssociatedItems(orderId)
targettitle, detailedRulesTitle, _, _, scoreFlowCont, qualEvalInfo, dutyTarDetErr := commonus.GetDutyAssociatedItems(orderId)
if dutyTarDetErr == true {
if detailedRulesTitle != "" {
flowLogListCont.Title = fmt.Sprintf("%v", detailedRulesTitle)
} else {
flowLogListCont.Title = fmt.Sprintf("%v", targettitle)
}
addUser, addUserErr := commonus.GetWorkUser(strconv.FormatInt(scoreFlowCont.EvaluationUser, 10))
if addUserErr == true {
flowLogListCont.FounDer = addUser.Name
}
var departTitleName string
flowLogListCont.Cycles = qualEvalInfo.Cycles
flowLogListCont.CycleAttres = qualEvalInfo.CycleAttres
if qualEvalInfo.AcceptEvaluation != 0 {
whereDepart := commonus.MapOut()
whereDepart["id"] = qualEvalInfo.AcceptEvaluation
orgContDer, orgContDerErr := commonus.GetNewOrgCont(whereDepart, "name")
if orgContDerErr == nil {
if departTitleName == "" {
departTitleName = orgContDer.Name
} else {
departTitleName = fmt.Sprintf("%v、%v", departTitleName, orgContDer.Name)
}
flowLogListCont.ExecutiveDepartment = append(flowLogListCont.ExecutiveDepartment, orgContDer.Name)
}
}
if detailedRulesTitle != "" {
flowLogListCont.Title = fmt.Sprintf("%v %v", departTitleName, detailedRulesTitle)
} else {
flowLogListCont.Title = fmt.Sprintf("%v %v", departTitleName, targettitle)
}
flowLogListCont.Year = scoreFlowCont.Year //`json:"year"` //年分"`
flowLogListCont.Quarter = scoreFlowCont.Quarter //`json:"quarter"` //季度"`
flowLogListCont.Month = scoreFlowCont.Month //`json:"month"` //月"`
flowLogListCont.Week = scoreFlowCont.Week //`json:"week"` //周"`
flowLogListCont.Days = commonus.ComputingTime(scoreFlowCont.HappenTime, 5) //`json:"days"` //天
}
} else {
flowLogInfo, flowLogErr := commonus.GetFlowLog(orderId)
if flowLogErr == true {
flowLogListCont.Title = fmt.Sprintf("%v-%v-%v数据上报", flowLogInfo.Year, flowLogInfo.Month, flowLogInfo.ToDay)
flowLogListCont.Year = flowLogInfo.Year //`json:"year"` //年分"`
flowLogListCont.Quarter = flowLogInfo.Quarter //`json:"quarter"` //季度"`
flowLogListCont.Month = flowLogInfo.Month //`json:"month"` //月"`
flowLogListCont.Week = flowLogInfo.Week //`json:"week"` //周"`
flowLogListCont.Days = flowLogInfo.ToDay //`json:"days"` //天
// fmt.Printf("Title---1-->%v\n", flowLogErr)
var qualEvalInfo assessmentmodel.QualitativeEvaluation
qualEvaTargetErr := qualEvalInfo.GetCont(map[string]interface{}{"qe_id": flowLogInfo.EvaluationPlan}, "qe_target", "qe_cycle", "qe_cycleattr", "qe_accept_evaluation")
// fmt.Printf("Title---2-->%v\n", qualEvaTargetErr)
if qualEvaTargetErr == nil {
flowLogListCont.Cycles = qualEvalInfo.Cycles
flowLogListCont.CycleAttres = qualEvalInfo.CycleAttres
var departTitleName string
if qualEvalInfo.AcceptEvaluation != 0 {
whereDepart := commonus.MapOut()
whereDepart["id"] = qualEvalInfo.AcceptEvaluation
orgContDer, orgContDerErr := commonus.GetNewOrgCont(whereDepart, "name")
if orgContDerErr == nil {
if departTitleName == "" {
departTitleName = orgContDer.Name
} else {
departTitleName = fmt.Sprintf("%v、%v", departTitleName, orgContDer.Name)
}
flowLogListCont.ExecutiveDepartment = append(flowLogListCont.ExecutiveDepartment, orgContDer.Name)
}
}
var targetInfo assessmentmodel.EvaluationTarget
targetInfoErr := targetInfo.GetCont(map[string]interface{}{"et_id": qualEvalInfo.Target}, "et_title")
// fmt.Printf("Title---3-->%v\n", targetInfoErr)
if targetInfoErr == nil {
flowLogListCont.Title = fmt.Sprintf("%v %v", departTitleName, targetInfo.Title)
// flowLogListCont.Title = fmt.Sprintf("%v %v-%v-%v数据上报", targetInfo.Title, flowLogInfo.Year, flowLogInfo.Month, flowLogInfo.ToDay)
} else {
// flowLogListCont.Title = fmt.Sprintf("%v-%v-%v数据上报", flowLogInfo.Year, flowLogInfo.Month, flowLogInfo.ToDay)
flowLogListCont.Title = fmt.Sprintf("%v", departTitleName)
}
} else {
flowLogListCont.Title = fmt.Sprintf("%v-%v-%v数据上报", flowLogInfo.Year, flowLogInfo.Month, flowLogInfo.ToDay)
}
addUser, addUserErr := commonus.GetWorkUser(strconv.FormatInt(flowLogInfo.EvaluationUser, 10))
if addUserErr == true {
flowLogListCont.FounDer = addUser.Name

2
gin_server_admin/api/index/evaluation/sendwechatmsg.go

@ -70,6 +70,7 @@ func UpEvaluationProcessReject(orderKey, roleGroup, keyNumber int64, nextStep in
evalProc.State = 1
evalProc.RoleGroup = roleGroup
evalProc.Time = time.Now().Unix()
evalProc.StartTime = time.Now().Unix()
flowStepJson, flowStepErr := json.Marshal(flowLog)
if flowStepErr == nil {
evalProc.Content = string(flowStepJson)
@ -151,6 +152,7 @@ func UpEvaluationProcessApproval(orderKey, roleGroup, keyNumber int64, nextStep
evalProc.State = 1
evalProc.RoleGroup = roleGroup
evalProc.Time = time.Now().Unix()
evalProc.StartTime = time.Now().Unix()
flowStepJson, flowStepErr := json.Marshal(flowLog)
if flowStepErr == nil {
evalProc.Content = string(flowStepJson)

91
gin_server_admin/api/index/evaluation/type.go

@ -35,8 +35,11 @@ type TargetContOutCont struct {
ZeroPrize string `json:"zeroprize"` //零奖值
AllPrize string `json:"allprize"` //全奖奖值
Reach string `json:"reach"` //达成率
ReachScore float64 `json:"reachscore"` //达成率
Reason string `json:"reason"` //说明
ScoringMethod int64 `json:"scoringmethod"`
DimensionWeight int64 `json:"dimensionweight"` //权重
TargetWeight int64 `json:"targetweight"` //权重
}
//定性考核列表输出
@ -201,12 +204,14 @@ type RectifMeasures struct {
//定量考核审批输出
type RationOutStruct struct {
Id string `json:"id"`
FlowId string `flowid`
Title string `json:"title"`
Unit string `json:"unit"` //单位"`
Score float64 `json:score` //分数\
Content string `json:"content"`
Id string `json:"id"`
FlowId string `flowid`
Title string `json:"title"`
Unit string `json:"unit"` //单位"`
Score float64 `json:score` //分数\
Content string `json:"content"`
Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年"`
CycleAttres int `json:"cycleattr"` //辅助计数"`
}
//定量考核目标设定查询
@ -243,19 +248,32 @@ type MainResponsiblePersonType struct {
//流程记录
type FlowLogType struct {
commonus.PageSetLimt
State int `json:"state"` //状态
State int `json:"state"` //状态
Title string `json:"title"` //指标
Department string `json:"department"` //部门
Time string `json:"time"` //时间
}
//流程记录输出
type FlowLogListOut struct {
OutId string `json:"outid"` //id
Title string `json:"tittle"` //流程名
Node string `json:"node"` //当前节点
CurrentPeo string `json:"currentpeo"` //当前负责人
FounDer string `json:"founder"` //创建人
Condition string `json:"condition"` //审批状态
Result string `json:"result"` //审批结果
Class int `json:"class"` //1、定性;2、定量
OutId string `json:"outid"` //id
Title string `json:"tittle"` //流程名
Node string `json:"node"` //当前节点
CurrentPeo string `json:"currentpeo"` //当前负责人
FounDer string `json:"founder"` //创建人
Condition string `json:"condition"` //审批状态
Result string `json:"result"` //审批结果
Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年"`
CycleAttres int `json:"cycleattr"` //辅助计数"`
ExecutiveDepartment []string `json:"executivedepartment"` //被考核部门
Class int `json:"class"` //1、定性;2、定量
Year int64 `json:"year"` //年分"`
Quarter int64 `json:"quarter"` //季度"`
Month int64 `json:"month"` //月"`
Week int64 `json:"week"` //周"`
Days int64 `json:"days"` //天
MonthDays string `json:"monthdays"` //提报日期
}
//新定性考核列表
@ -302,3 +320,46 @@ type NewQualDetailOutList struct {
TargetSunId string `json:"targetsunid"` //子栏目ID
TargetSunName string `json:"targetsunname"` //子栏目名称
}
//定量或者定性考核审批流程全图
type getExamineFlow struct {
Id string `json:"id"` //考核项目ID
IsCorrection int `json:"iscorrection"` //是否整改
}
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 accPerFlowLog struct {
assessmentmodel.EvaluationProcess
DutyDepartment int64 `json:"dutydepartment" gorm:"column:sf_duty_department;type:bigint(20) unsigned;default:0;not null;comment:职责部门"`
EvaluationPlanScore int64 `json:"evaluationplanscore" gorm:"column:sf_evaluation_plan;type:bigint(20) unsigned;default:0;not null;comment:考核方案项目ID"`
EvaluationPlanFlow string `json:"evaluationplanflow" gorm:"column:fl_evaluation_id;type:mediumtext unsigned;default:0;not null;comment:考核方案项目ID"`
EvaluationDepartment int64 `json:"evaluationdepartment" gorm:"column:fl_evaluation_department;type:bigint(20) unsigned;default:0;not null;comment:测评部门"`
Dimension int64 `json:"dimension" gorm:"column:qe_dimension;type:bigint(20) unsigned;default:0;not null;comment:考核维度"`
Target int64 `json:"target" gorm:"column:qe_target;type:bigint(20) unsigned;default:0;not null;comment:考核指标"`
DetailedTarget int64 `json:"detailedtarget" gorm:"column:qe_detailed_target;type:bigint(20) unsigned;default:0;not null;comment:考核细则"`
DetailedTitle string `json:"title" gorm:"column:dt_title;type:text;comment:指标细则"`
TargetTitle string `json:"title" gorm:"column:et_title;type:varchar(255);comment:指标名称"`
}

449
gin_server_admin/api/index/statistics/dataform.go

@ -15,10 +15,10 @@ import (
)
//获取有效版本考核
func (a *ApiGroup) GetPlanVersionValid(c *gin.Context) {
func (a *ApiGroup) GetPlanVersionValides(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData DutyPlanVersio
@ -115,6 +115,7 @@ func (a *ApiGroup) GetPlanVersionValid(c *gin.Context) {
@cycleattr 辅助计数
@isDuty 1定性考核2定量考核
*/
taskId, _, departName, cycle, cycleattr, isDuty, isDutyErr := getDepartTarget(v.Key, pv.Id, pcv.Id, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10))
if isDutyErr == nil {
outCont.ExecutiveDepartment = departName
@ -127,6 +128,9 @@ func (a *ApiGroup) GetPlanVersionValid(c *gin.Context) {
isDuty = 2
}
var stccStatistics ScoreListAry
stccStatistics.Class = isDuty
// panic(departName)
if isDuty == 1 {
//定性考核
switch cycle {
@ -140,13 +144,50 @@ func (a *ApiGroup) GetPlanVersionValid(c *gin.Context) {
if pcv.Status != 3 {
wherStr := fmt.Sprintf("`sf_evaluation_plan` = %v AND `sf_duty_group` = %v AND `sf_duty_department` = %v AND `sf_year` = %v AND `sf_week` = %v", taskId, v.Group, v.Department, yserInt, i)
resultData := commonus.Decimal(SubjectiveAuxiliaryCalculationSumMethod(wherStr) / 100)
resultDatayuan, _, departnameAry := SubjectiveAuxiliaryCalculationSumMethod(wherStr)
resultData := commonus.Decimal(resultDatayuan / 100)
if resultData > float64(pcv.ReferenceScore) {
resultData = float64(pcv.ReferenceScore)
}
outCont.Score = append(outCont.Score, resultData)
if len(departnameAry) > 0 {
for _, dav := range departnameAry {
if commonus.IsItTrueString(dav, outCont.ExecutiveDepartment) == false {
outCont.ExecutiveDepartment = append(outCont.ExecutiveDepartment, dav)
}
}
// outCont.ExecutiveDepartment = departnameAry
}
var jiSuanZhi ScoreList
jiSuanZhi.Class = 1
jiSuanZhi.AllPrize = 0
jiSuanZhi.ZeroPrize = 0
jiSuanZhi.CappingVal = 0
jiSuanZhi.ScoreVal = 0
jiSuanZhi.Achievement = 0
jiSuanZhi.ActualScore = resultData
outCont.Score = append(outCont.Score, jiSuanZhi)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, 0)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, 0)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, 0)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, 0)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, resultData)
stccStatistics.Achievement = append(stccStatistics.Achievement, 0)
} else {
outCont.Score = append(outCont.Score, float64(pcv.ReferenceScore))
var jiSuanZhi ScoreList
jiSuanZhi.Class = 1
jiSuanZhi.AllPrize = 0
jiSuanZhi.ZeroPrize = 0
jiSuanZhi.CappingVal = 0
jiSuanZhi.ScoreVal = 0
jiSuanZhi.Achievement = 0
jiSuanZhi.ActualScore = float64(pcv.ReferenceScore)
outCont.Score = append(outCont.Score, jiSuanZhi)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, 0)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, 0)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, 0)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, 0)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, float64(pcv.ReferenceScore))
stccStatistics.Achievement = append(stccStatistics.Achievement, 0)
}
}
case 3:
@ -154,27 +195,99 @@ func (a *ApiGroup) GetPlanVersionValid(c *gin.Context) {
for i := 1; i <= 4; i++ {
if pcv.Status != 3 {
wherStr := fmt.Sprintf("`sf_evaluation_plan` = %v AND `sf_duty_group` = %v AND `sf_duty_department` = %v AND `sf_year` = %v AND `sf_quarter` = %v", taskId, v.Group, v.Department, yserInt, i)
resultData := commonus.Decimal(SubjectiveAuxiliaryCalculationSumMethod(wherStr) / 100)
resultDatayuan, _, departnameAry := SubjectiveAuxiliaryCalculationSumMethod(wherStr)
if len(departnameAry) > 0 {
for _, dav := range departnameAry {
if commonus.IsItTrueString(dav, outCont.ExecutiveDepartment) == false {
outCont.ExecutiveDepartment = append(outCont.ExecutiveDepartment, dav)
}
}
}
resultData := commonus.Decimal(resultDatayuan / 100)
if resultData > float64(pcv.ReferenceScore) {
resultData = float64(pcv.ReferenceScore)
}
outCont.Score = append(outCont.Score, resultData)
var jiSuanZhi ScoreList
jiSuanZhi.Class = 1
jiSuanZhi.AllPrize = 0
jiSuanZhi.ZeroPrize = 0
jiSuanZhi.CappingVal = 0
jiSuanZhi.ScoreVal = 0
jiSuanZhi.Achievement = 0
jiSuanZhi.ActualScore = resultData
outCont.Score = append(outCont.Score, jiSuanZhi)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, 0)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, 0)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, 0)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, 0)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, resultData)
stccStatistics.Achievement = append(stccStatistics.Achievement, 0)
} else {
outCont.Score = append(outCont.Score, float64(pcv.ReferenceScore))
var jiSuanZhi ScoreList
jiSuanZhi.Class = 1
jiSuanZhi.AllPrize = 0
jiSuanZhi.ZeroPrize = 0
jiSuanZhi.CappingVal = 0
jiSuanZhi.ScoreVal = 0
jiSuanZhi.Achievement = 0
jiSuanZhi.ActualScore = float64(pcv.ReferenceScore)
outCont.Score = append(outCont.Score, jiSuanZhi)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, 0)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, 0)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, 0)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, 0)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, float64(pcv.ReferenceScore))
stccStatistics.Achievement = append(stccStatistics.Achievement, 0)
}
}
case 6: //年
if pcv.Status != 3 {
wherStr := fmt.Sprintf("`sf_evaluation_plan` = %v AND `sf_duty_group` = %v AND `sf_duty_department` = %v AND `sf_year` = %v", taskId, v.Group, v.Department, yserInt)
resultData := commonus.Decimal(SubjectiveAuxiliaryCalculationSumMethod(wherStr) / 100)
resultDatayuan, _, departnameAry := SubjectiveAuxiliaryCalculationSumMethod(wherStr)
if len(departnameAry) > 0 {
for _, dav := range departnameAry {
if commonus.IsItTrueString(dav, outCont.ExecutiveDepartment) == false {
outCont.ExecutiveDepartment = append(outCont.ExecutiveDepartment, dav)
}
}
}
resultData := commonus.Decimal(resultDatayuan / 100)
if resultData > float64(pcv.ReferenceScore) {
resultData = float64(pcv.ReferenceScore)
}
outCont.Score = append(outCont.Score, resultData)
var jiSuanZhi ScoreList
jiSuanZhi.Class = 1
jiSuanZhi.AllPrize = 0
jiSuanZhi.ZeroPrize = 0
jiSuanZhi.CappingVal = 0
jiSuanZhi.ScoreVal = 0
jiSuanZhi.ActualScore = resultData
jiSuanZhi.Achievement = 0
outCont.Score = append(outCont.Score, jiSuanZhi)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, 0)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, 0)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, 0)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, 0)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, resultData)
stccStatistics.Achievement = append(stccStatistics.Achievement, 0)
} else {
outCont.Score = append(outCont.Score, float64(pcv.ReferenceScore))
var jiSuanZhi ScoreList
jiSuanZhi.Class = 1
jiSuanZhi.AllPrize = 0
jiSuanZhi.ZeroPrize = 0
jiSuanZhi.CappingVal = 0
jiSuanZhi.ScoreVal = 0
jiSuanZhi.Achievement = 0
jiSuanZhi.ActualScore = float64(pcv.ReferenceScore)
outCont.Score = append(outCont.Score, jiSuanZhi)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, 0)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, 0)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, 0)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, 0)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, float64(pcv.ReferenceScore))
stccStatistics.Achievement = append(stccStatistics.Achievement, 0)
}
default: //月
monthValue := commonus.TimeStampToDate(time.Now().Unix(), 12)
@ -185,14 +298,50 @@ func (a *ApiGroup) GetPlanVersionValid(c *gin.Context) {
for i := 1; i <= monthValueInt; i++ {
if pcv.Status != 3 {
wherStr := fmt.Sprintf("`sf_evaluation_plan` = %v AND `sf_duty_group` = %v AND `sf_duty_department` = %v AND `sf_year` = %v AND `sf_month` = %v", taskId, v.Group, v.Department, yserInt, i)
resultData := commonus.Decimal(SubjectiveAuxiliaryCalculationSumMethod(wherStr) / 100)
resultDatayuan, _, departnameAry := SubjectiveAuxiliaryCalculationSumMethod(wherStr)
if len(departnameAry) > 0 {
for _, dav := range departnameAry {
if commonus.IsItTrueString(dav, outCont.ExecutiveDepartment) == false {
outCont.ExecutiveDepartment = append(outCont.ExecutiveDepartment, dav)
}
}
}
resultData := commonus.Decimal(resultDatayuan / 100)
if resultData > float64(pcv.ReferenceScore) {
resultData = float64(pcv.ReferenceScore)
}
outCont.Score = append(outCont.Score, resultData)
var jiSuanZhi ScoreList
jiSuanZhi.Class = 1
jiSuanZhi.AllPrize = 0
jiSuanZhi.ZeroPrize = 0
jiSuanZhi.CappingVal = 0
jiSuanZhi.ScoreVal = 0
jiSuanZhi.ActualScore = resultData
jiSuanZhi.Achievement = 0
outCont.Score = append(outCont.Score, jiSuanZhi)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, 0)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, 0)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, 0)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, 0)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, resultData)
stccStatistics.Achievement = append(stccStatistics.Achievement, 0)
} else {
outCont.Score = append(outCont.Score, float64(pcv.ReferenceScore))
var jiSuanZhi ScoreList
jiSuanZhi.Class = 1
jiSuanZhi.AllPrize = 0
jiSuanZhi.ZeroPrize = 0
jiSuanZhi.CappingVal = 0
jiSuanZhi.ScoreVal = 0
jiSuanZhi.Achievement = 0
jiSuanZhi.ActualScore = float64(pcv.ReferenceScore)
outCont.Score = append(outCont.Score, jiSuanZhi)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, 0)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, 0)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, 0)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, 0)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, float64(pcv.ReferenceScore))
stccStatistics.Achievement = append(stccStatistics.Achievement, 0)
}
}
}
@ -206,44 +355,168 @@ func (a *ApiGroup) GetPlanVersionValid(c *gin.Context) {
allYearDays = 366
}
for i := 1; i <= allYearDays; i++ {
if pcv.Status != 3 {
wherStr := fmt.Sprintf("fld_evaluation_id = %v AND `fl_year` = %v AND `fl_duty_group` = %v AND `fl_duty_department` = %v AND `fl_day` = %v", taskId, yserInt, v.Group, v.Department, i)
resultData := commonus.Decimal(AuxiliaryCalculationSumMethod(wherStr, scoringMethod) / 100)
if scoringMethod != 2 {
outCont.Score = append(outCont.Score, quantification.GetQuantitativeConfig(resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, 0))
} else {
outCont.Score = append(outCont.Score, resultData)
wherStr := fmt.Sprintf("fld_evaluation_id = %v AND `fl_year` = %v AND `fl_duty_group` = %v AND `fl_duty_department` = %v AND `fl_day` = %v", taskId, yserInt, v.Group, v.Department, i)
resultDatayuan, _, departnameAry := AuxiliaryCalculationSumMethod(wherStr, scoringMethod)
if len(departnameAry) > 0 {
for _, dav := range departnameAry {
if commonus.IsItTrueString(dav, outCont.ExecutiveDepartment) == false {
outCont.ExecutiveDepartment = append(outCont.ExecutiveDepartment, dav)
}
}
}
// resultData := commonus.Decimal(AuxiliaryCalculationSumMethod(wherStr, scoringMethod) / 100)
resultData := commonus.Decimal(resultDatayuan / 100)
if pcv.Status != 3 {
var jiSuanZhi ScoreList
jiSuanZhi.Class = 2
jiSuanZhi.ScoreVal = resultData
jiSuanZhi.ActualScore, jiSuanZhi.AllPrize, jiSuanZhi.ZeroPrize, jiSuanZhi.CappingVal, jiSuanZhi.Achievement = quantification.GetQuantitativeConfig(pcv.ReferenceScore, resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, i)
outCont.Score = append(outCont.Score, jiSuanZhi)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, resultData)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, jiSuanZhi.AllPrize)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, jiSuanZhi.ZeroPrize)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, jiSuanZhi.CappingVal)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, jiSuanZhi.ActualScore)
stccStatistics.Achievement = append(stccStatistics.Achievement, jiSuanZhi.Achievement)
// if scoringMethod != 2 {
// var jiSuanZhi ScoreList
// jiSuanZhi.ScoreVal = resultData
// jiSuanZhi.ActualScore, jiSuanZhi.AllPrize, jiSuanZhi.ZeroPrize, jiSuanZhi.CappingVal = quantification.GetQuantitativeConfig(pcv.ReferenceScore, resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, i)
// outCont.Score = append(outCont.Score, jiSuanZhi)
// } else {
// var jiSuanZhi ScoreList
// jiSuanZhi.ScoreVal = resultData
// jiSuanZhi.ActualScore = float64(pcv.ReferenceScore)
// jiSuanZhi.AllPrize, jiSuanZhi.ZeroPrize, jiSuanZhi.CappingVal = quantification.GetQuantitativeConfigEs(strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, i)
// outCont.Score = append(outCont.Score, jiSuanZhi)
// }
} else {
outCont.Score = append(outCont.Score, float64(pcv.ReferenceScore))
var jiSuanZhi ScoreList
jiSuanZhi.Class = 2
jiSuanZhi.ScoreVal = resultData
jiSuanZhi.ActualScore = float64(pcv.ReferenceScore)
jiSuanZhi.AllPrize, jiSuanZhi.ZeroPrize, jiSuanZhi.CappingVal, jiSuanZhi.Achievement = quantification.GetQuantitativeConfigEs(resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, i)
outCont.Score = append(outCont.Score, jiSuanZhi)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, resultData)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, jiSuanZhi.AllPrize)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, jiSuanZhi.ZeroPrize)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, jiSuanZhi.CappingVal)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, jiSuanZhi.ActualScore)
stccStatistics.Achievement = append(stccStatistics.Achievement, jiSuanZhi.Achievement)
}
}
case 3:
case 5: //季度
for i := 1; i <= 4; i++ {
wherStr := fmt.Sprintf("fld_evaluation_id = %v AND `fl_year` = %v AND `fl_duty_group` = %v AND `fl_duty_department` = %v AND `fl_quarter` = %v", taskId, yserInt, v.Group, v.Department, i)
if pcv.Status != 3 {
resultData := commonus.Decimal(AuxiliaryCalculationSumMethod(wherStr, scoringMethod) / 100)
if scoringMethod != 2 {
outCont.Score = append(outCont.Score, quantification.GetQuantitativeConfig(resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, 0))
} else {
outCont.Score = append(outCont.Score, resultData)
resultDatayuan, _, departnameAry := AuxiliaryCalculationSumMethod(wherStr, scoringMethod)
if len(departnameAry) > 0 {
for _, dav := range departnameAry {
if commonus.IsItTrueString(dav, outCont.ExecutiveDepartment) == false {
outCont.ExecutiveDepartment = append(outCont.ExecutiveDepartment, dav)
}
}
}
resultData := commonus.Decimal(resultDatayuan / 100)
if pcv.Status != 3 {
var jiSuanZhi ScoreList
jiSuanZhi.Class = 2
jiSuanZhi.ScoreVal = resultData
jiSuanZhi.ActualScore, jiSuanZhi.AllPrize, jiSuanZhi.ZeroPrize, jiSuanZhi.CappingVal, jiSuanZhi.Achievement = quantification.GetQuantitativeConfig(pcv.ReferenceScore, resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, i)
outCont.Score = append(outCont.Score, jiSuanZhi)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, resultData)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, jiSuanZhi.AllPrize)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, jiSuanZhi.ZeroPrize)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, jiSuanZhi.CappingVal)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, jiSuanZhi.ActualScore)
stccStatistics.Achievement = append(stccStatistics.Achievement, jiSuanZhi.Achievement)
// if scoringMethod != 2 {
// var jiSuanZhi ScoreList
// jiSuanZhi.ScoreVal = resultData
// jiSuanZhi.ActualScore, jiSuanZhi.AllPrize, jiSuanZhi.ZeroPrize, jiSuanZhi.CappingVal = quantification.GetQuantitativeConfig(pcv.ReferenceScore, resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, i)
// outCont.Score = append(outCont.Score, jiSuanZhi)
// } else {
// var jiSuanZhi ScoreList
// jiSuanZhi.ScoreVal = resultData
// jiSuanZhi.ActualScore = float64(pcv.ReferenceScore)
// jiSuanZhi.AllPrize, jiSuanZhi.ZeroPrize, jiSuanZhi.CappingVal = quantification.GetQuantitativeConfigEs(strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, i)
// outCont.Score = append(outCont.Score, jiSuanZhi)
// }
} else {
outCont.Score = append(outCont.Score, float64(pcv.ReferenceScore))
var jiSuanZhi ScoreList
jiSuanZhi.Class = 2
jiSuanZhi.ScoreVal = resultData
jiSuanZhi.ActualScore = float64(pcv.ReferenceScore)
jiSuanZhi.AllPrize, jiSuanZhi.ZeroPrize, jiSuanZhi.CappingVal, jiSuanZhi.Achievement = quantification.GetQuantitativeConfigEs(resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, i)
outCont.Score = append(outCont.Score, jiSuanZhi)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, resultData)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, jiSuanZhi.AllPrize)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, jiSuanZhi.ZeroPrize)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, jiSuanZhi.CappingVal)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, jiSuanZhi.ActualScore)
stccStatistics.Achievement = append(stccStatistics.Achievement, jiSuanZhi.Achievement)
}
}
case 6: //年
if pcv.Status != 3 {
wherStr := fmt.Sprintf("fld_evaluation_id = %v AND `fl_year` = %v AND `fl_duty_group` = %v AND `fl_duty_department` = %v ", taskId, yserInt, v.Group, v.Department)
resultData := commonus.Decimal(AuxiliaryCalculationSumMethod(wherStr, scoringMethod) / 100)
if scoringMethod != 2 {
outCont.Score = append(outCont.Score, quantification.GetQuantitativeConfig(resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, 0))
} else {
outCont.Score = append(outCont.Score, resultData)
wherStr := fmt.Sprintf("fld_evaluation_id = %v AND `fl_year` = %v AND `fl_duty_group` = %v AND `fl_duty_department` = %v ", taskId, yserInt, v.Group, v.Department)
resultDatayuan, _, departnameAry := AuxiliaryCalculationSumMethod(wherStr, scoringMethod)
if len(departnameAry) > 0 {
for _, dav := range departnameAry {
if commonus.IsItTrueString(dav, outCont.ExecutiveDepartment) == false {
outCont.ExecutiveDepartment = append(outCont.ExecutiveDepartment, dav)
}
}
}
resultData := commonus.Decimal(resultDatayuan / 100)
if pcv.Status != 3 {
var jiSuanZhi ScoreList
jiSuanZhi.Class = 2
jiSuanZhi.ScoreVal = resultData
jiSuanZhi.ActualScore, jiSuanZhi.AllPrize, jiSuanZhi.ZeroPrize, jiSuanZhi.CappingVal, jiSuanZhi.Achievement = quantification.GetQuantitativeConfig(pcv.ReferenceScore, resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, 0)
outCont.Score = append(outCont.Score, jiSuanZhi)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, resultData)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, jiSuanZhi.AllPrize)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, jiSuanZhi.ZeroPrize)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, jiSuanZhi.CappingVal)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, jiSuanZhi.ActualScore)
stccStatistics.Achievement = append(stccStatistics.Achievement, jiSuanZhi.Achievement)
// if scoringMethod != 2 {
// // outCont.Score = append(outCont.Score, quantification.GetQuantitativeConfig(resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, 0))
// var jiSuanZhi ScoreList
// jiSuanZhi.ScoreVal = resultData
// jiSuanZhi.ActualScore, jiSuanZhi.AllPrize, jiSuanZhi.ZeroPrize, jiSuanZhi.CappingVal = quantification.GetQuantitativeConfig(pcv.ReferenceScore, resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, 0)
// outCont.Score = append(outCont.Score, jiSuanZhi)
// } else {
// // outCont.Score = append(outCont.Score, resultData)
// var jiSuanZhi ScoreList
// jiSuanZhi.ScoreVal = resultData
// jiSuanZhi.ActualScore = float64(pcv.ReferenceScore)
// jiSuanZhi.AllPrize, jiSuanZhi.ZeroPrize, jiSuanZhi.CappingVal = quantification.GetQuantitativeConfigEs(strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, 0)
// outCont.Score = append(outCont.Score, jiSuanZhi)
// }
} else {
outCont.Score = append(outCont.Score, float64(pcv.ReferenceScore))
var jiSuanZhi ScoreList
jiSuanZhi.Class = 2
jiSuanZhi.ScoreVal = resultData
jiSuanZhi.ActualScore = float64(pcv.ReferenceScore)
jiSuanZhi.AllPrize, jiSuanZhi.ZeroPrize, jiSuanZhi.CappingVal, jiSuanZhi.Achievement = quantification.GetQuantitativeConfigEs(resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, 0)
outCont.Score = append(outCont.Score, jiSuanZhi)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, resultData)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, jiSuanZhi.AllPrize)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, jiSuanZhi.ZeroPrize)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, jiSuanZhi.CappingVal)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, jiSuanZhi.ActualScore)
stccStatistics.Achievement = append(stccStatistics.Achievement, jiSuanZhi.Achievement)
}
default: //月
monthValue := commonus.TimeStampToDate(time.Now().Unix(), 12)
@ -252,22 +525,64 @@ func (a *ApiGroup) GetPlanVersionValid(c *gin.Context) {
}
monthValueInt, _ := strconv.Atoi(monthValue)
for i := 1; i <= monthValueInt; i++ {
if pcv.Status != 3 {
wherStr := fmt.Sprintf("fld_evaluation_id = %v AND `fl_year` = %v AND `fl_duty_group` = %v AND `fl_duty_department` = %v AND `fl_month` = %v", taskId, yserInt, v.Group, v.Department, i)
resultData := commonus.Decimal(AuxiliaryCalculationSumMethod(wherStr, scoringMethod) / 100)
if scoringMethod != 2 {
outCont.Score = append(outCont.Score, quantification.GetQuantitativeConfig(resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, i))
} else {
outCont.Score = append(outCont.Score, resultData)
wherStr := fmt.Sprintf("fld_evaluation_id = %v AND `fl_year` = %v AND `fl_duty_group` = %v AND `fl_duty_department` = %v AND `fl_month` = %v", taskId, yserInt, v.Group, v.Department, i)
resultDatayuan, _, departnameAry := AuxiliaryCalculationSumMethod(wherStr, scoringMethod)
if len(departnameAry) > 0 {
for _, dav := range departnameAry {
if commonus.IsItTrueString(dav, outCont.ExecutiveDepartment) == false {
outCont.ExecutiveDepartment = append(outCont.ExecutiveDepartment, dav)
}
}
}
// fmt.Printf("wherStr:%v------------>%v\n", wherStr, departnameAry)
// panic(departnameAry)
resultData := commonus.Decimal(resultDatayuan / 100)
if pcv.Status != 3 {
var jiSuanZhi ScoreList
jiSuanZhi.Class = 2
jiSuanZhi.ScoreVal = resultData
jiSuanZhi.ActualScore, jiSuanZhi.AllPrize, jiSuanZhi.ZeroPrize, jiSuanZhi.CappingVal, jiSuanZhi.Achievement = quantification.GetQuantitativeConfig(pcv.ReferenceScore, resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, i)
outCont.Score = append(outCont.Score, jiSuanZhi)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, resultData)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, jiSuanZhi.AllPrize)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, jiSuanZhi.ZeroPrize)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, jiSuanZhi.CappingVal)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, jiSuanZhi.ActualScore)
stccStatistics.Achievement = append(stccStatistics.Achievement, jiSuanZhi.Achievement)
// if scoringMethod != 2 {
// var jiSuanZhi ScoreList
// jiSuanZhi.ScoreVal = resultData
// jiSuanZhi.ActualScore, jiSuanZhi.AllPrize, jiSuanZhi.ZeroPrize, jiSuanZhi.CappingVal = quantification.GetQuantitativeConfig(pcv.ReferenceScore, resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, i)
// outCont.Score = append(outCont.Score, jiSuanZhi)
// } else {
// var jiSuanZhi ScoreList
// jiSuanZhi.ScoreVal = resultData
// jiSuanZhi.ActualScore = float64(pcv.ReferenceScore)
// jiSuanZhi.AllPrize, jiSuanZhi.ZeroPrize, jiSuanZhi.CappingVal = quantification.GetQuantitativeConfigEs(strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, i)
// outCont.Score = append(outCont.Score, jiSuanZhi)
// }
} else {
outCont.Score = append(outCont.Score, float64(pcv.ReferenceScore))
var jiSuanZhi ScoreList
jiSuanZhi.Class = 2
jiSuanZhi.ScoreVal = resultData
jiSuanZhi.ActualScore = float64(pcv.ReferenceScore)
jiSuanZhi.AllPrize, jiSuanZhi.ZeroPrize, jiSuanZhi.CappingVal, jiSuanZhi.Achievement = quantification.GetQuantitativeConfigEs(resultData, strconv.FormatInt(v.Group, 10), strconv.FormatInt(v.Department, 10), pv.Id, pcv.Id, "0", yserInt, i)
outCont.Score = append(outCont.Score, jiSuanZhi)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, resultData)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, jiSuanZhi.AllPrize)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, jiSuanZhi.ZeroPrize)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, jiSuanZhi.CappingVal)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, jiSuanZhi.ActualScore)
stccStatistics.Achievement = append(stccStatistics.Achievement, jiSuanZhi.Achievement)
}
}
}
}
outCont.ScoreAllList = append(outCont.ScoreAllList, stccStatistics)
outData = append(outData, outCont)
}
}
@ -283,7 +598,7 @@ func (a *ApiGroup) GetPlanVersionValid(c *gin.Context) {
}
//获取总值 定量
func AuxiliaryCalculationSumMethod(where interface{}, scoringMethod int) (sumScore float64) {
func AuxiliaryCalculationSumMethod(where interface{}, scoringMethod int) (sumScore float64, departmentAry []int64, departNameAry []string) {
if scoringMethod == 2 {
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.FlowLogData{}).Joins("left join flow_log as fl on fl.fl_key = flow_log_data.fld_flow_log").Where(where)
gormDb.Pluck("COALESCE(SUM(fld_scoring_score), 0) as rescore", &sumScore)
@ -291,18 +606,29 @@ func AuxiliaryCalculationSumMethod(where interface{}, scoringMethod int) (sumSco
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.FlowLogData{}).Joins("left join flow_log as fl on fl.fl_key = flow_log_data.fld_flow_log").Where(where)
gormDb.Pluck("COALESCE(SUM(fld_score), 0) as rescore", &sumScore)
}
//获取测评部门
// var departmentAry []int64
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.FlowLogData{}).Select("fl_evaluation_department").Joins("left join flow_log as fl on fl.fl_key = flow_log_data.fld_flow_log").Where(where).Find(&departmentAry)
// var departNameAry []string
if len(departmentAry) > 0 {
for _, v := range departmentAry {
whereDepart := commonus.MapOut()
whereDepart["id"] = v
orgContDer, _ := commonus.GetNewOrgCont(whereDepart, "name")
departNameAry = append(departNameAry, orgContDer.Name)
}
}
return
}
//定性
func SubjectiveAuxiliaryCalculationSumMethod(where interface{}) (sumScore float64) {
func SubjectiveAuxiliaryCalculationSumMethod(where interface{}) (sumScore float64, departmentAry []int64, departNameAry []string) {
//加分
var addSumScore float64 = 0
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.FlowLogData{}).Select("sf_score").Where(where).Where("sf_plus_reduce_score = 1").Pluck("COALESCE(SUM(sf_score), 0) as addrescore", &addSumScore)
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Select("sf_score").Where(where).Where("sf_plus_reduce_score = 1").Pluck("COALESCE(SUM(sf_score), 0) as addrescore", &addSumScore)
//加分
var scoreReduction float64 = 0
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.FlowLogData{}).Select("sf_score").Where(where).Where("sf_plus_reduce_score = 2").Pluck("COALESCE(SUM(sf_score), 0) as redurescore", &scoreReduction)
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Select("sf_score").Where(where).Where("sf_plus_reduce_score = 2").Pluck("COALESCE(SUM(sf_score), 0) as redurescore", &scoreReduction)
if addSumScore != 0 && scoreReduction != 0 {
if addSumScore > scoreReduction {
sumScore = addSumScore - scoreReduction
@ -314,5 +640,20 @@ func SubjectiveAuxiliaryCalculationSumMethod(where interface{}) (sumScore float6
} else {
sumScore = scoreReduction
}
//获取测评部门
// var departmentAry []int64
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Select("sf_evaluation_department").Where(where).Find(&departmentAry)
// var departNameAry []string
if len(departmentAry) > 0 {
for _, v := range departmentAry {
whereDepart := commonus.MapOut()
whereDepart["id"] = v
orgContDer, _ := commonus.GetNewOrgCont(whereDepart, "name")
departNameAry = append(departNameAry, orgContDer.Name)
}
}
return
}
//获取指标相应的全奖,零奖;封顶值

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

@ -1,10 +1,45 @@
package statistics
import "github.com/flipped-aurora/gin-vue-admin/server/model/assessmentmodel"
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 dataLockStatistics struct {
outData []TargetContOutCont
mutext sync.RWMutex
}
//读取锁数据
func (d *dataLockStatistics) readMyDayData() []TargetContOutCont {
d.mutext.RLock()
defer d.mutext.RUnlock()
return d.outData
}
//考核方案版本列表查询
type DutyPlanVersio struct {
Group string `json:"group"` //归属集团
@ -105,23 +140,52 @@ type EvaluProssCall struct {
//考核方案细则列表输出
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 []float64 `json:"score"` //得分
ExecutiveDepartment []string `json:"executivedepartment"` //执行部门
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"` //执行部门
}
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"` //执行部门
}

62
gin_server_admin/api/index/statistics/programme.go

@ -12,6 +12,7 @@ import (
"github.com/flipped-aurora/gin-vue-admin/server/global"
"github.com/flipped-aurora/gin-vue-admin/server/model/assessmentmodel"
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
"github.com/flipped-aurora/gin-vue-admin/server/model/hrsystem"
"github.com/gin-gonic/gin"
)
@ -61,7 +62,7 @@ func (a *ApiGroup) PlanVersioStatistics(c *gin.Context) {
func (a *ApiGroup) DepartPerAppDataStatistics(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData DutyPlanVersio
@ -224,9 +225,12 @@ func StaticDataOperation(key, group, depart, staticFrame, year string) (staticDa
resultData := commonus.Decimal(quantification.AuxiliaryCalculationSum(wherStr) / 100)
tarCont.TimeData = append(tarCont.TimeData, quantification.GetQuantitativeConfig(resultData, group, depart, v.Id, cv.Id, "0", yserInt, 0))
ActualScore, _, _, _, _ := quantification.GetQuantitativeConfig(cv.ReferenceScore, resultData, group, depart, v.Id, cv.Id, "0", yserInt, i)
tarCont.TimeData = append(tarCont.TimeData, ActualScore)
// tarCont.TimeData = append(tarCont.TimeData, quantification.GetQuantitativeConfig(resultData, group, depart, v.Id, cv.Id, "0", yserInt, 0))
// tarCont.TimeData = append(tarCont.TimeData, commonus.Decimal(quantification.AuxiliaryCalculationSum(wherStr)/100))
}
case 2:
@ -242,7 +246,9 @@ func StaticDataOperation(key, group, depart, staticFrame, year string) (staticDa
resultData := commonus.Decimal(quantification.AuxiliaryCalculationSum(wherStr) / 100)
tarCont.TimeData = append(tarCont.TimeData, quantification.GetQuantitativeConfig(resultData, group, depart, v.Id, cv.Id, "0", yserInt, 0))
ActualScore, _, _, _, _ := quantification.GetQuantitativeConfig(cv.ReferenceScore, resultData, group, depart, v.Id, cv.Id, "0", yserInt, i)
tarCont.TimeData = append(tarCont.TimeData, ActualScore)
// tarCont.TimeData = append(tarCont.TimeData, quantification.GetQuantitativeConfig(resultData, group, depart, v.Id, cv.Id, "0", yserInt, 0))
// tarCont.TimeData = append(tarCont.TimeData, commonus.Decimal(quantification.AuxiliaryCalculationSum(wherStr)/100))
}
@ -258,7 +264,9 @@ func StaticDataOperation(key, group, depart, staticFrame, year string) (staticDa
resultData := commonus.Decimal(quantification.AuxiliaryCalculationSum(wherStr) / 100)
tarCont.TimeData = append(tarCont.TimeData, quantification.GetQuantitativeConfig(resultData, group, depart, v.Id, cv.Id, "0", yserInt, i))
ActualScore, _, _, _, _ := quantification.GetQuantitativeConfig(cv.ReferenceScore, resultData, group, depart, v.Id, cv.Id, "0", yserInt, i)
tarCont.TimeData = append(tarCont.TimeData, ActualScore)
// tarCont.TimeData = append(tarCont.TimeData, quantification.GetQuantitativeConfig(resultData, group, depart, v.Id, cv.Id, "0", yserInt, i))
// tarCont.TimeData = append(tarCont.TimeData, commonus.Decimal(quantification.AuxiliaryCalculationSum(wherStr)/100))
}
@ -268,14 +276,18 @@ func StaticDataOperation(key, group, depart, staticFrame, year string) (staticDa
resultData := commonus.Decimal(quantification.AuxiliaryCalculationSum(wherStr) / 100)
tarCont.TimeData = append(tarCont.TimeData, quantification.GetQuantitativeConfig(resultData, group, depart, v.Id, cv.Id, "0", yserInt, i))
ActualScore, _, _, _, _ := quantification.GetQuantitativeConfig(cv.ReferenceScore, resultData, group, depart, v.Id, cv.Id, "0", yserInt, i)
tarCont.TimeData = append(tarCont.TimeData, ActualScore)
// tarCont.TimeData = append(tarCont.TimeData, quantification.GetQuantitativeConfig(resultData, group, depart, v.Id, cv.Id, "0", yserInt, i))
// tarCont.TimeData = append(tarCont.TimeData, commonus.Decimal(quantification.AuxiliaryCalculationSum(wherStr)/100))
}
default:
wherStr := fmt.Sprintf("fld_evaluation_id = %v AND `fl_year` = %v AND `fl_duty_group` = %v AND `fl_duty_department` = %v ", taskId, year, group, depart)
resultData := commonus.Decimal(quantification.AuxiliaryCalculationSum(wherStr) / 100)
tarCont.TimeData = append(tarCont.TimeData, quantification.GetQuantitativeConfig(resultData, group, depart, v.Id, cv.Id, "0", yserInt, 0))
ActualScore, _, _, _, _ := quantification.GetQuantitativeConfig(cv.ReferenceScore, resultData, group, depart, v.Id, cv.Id, "0", yserInt, 0)
tarCont.TimeData = append(tarCont.TimeData, ActualScore)
// tarCont.TimeData = append(tarCont.TimeData, quantification.GetQuantitativeConfig(resultData, group, depart, v.Id, cv.Id, "0", yserInt, 0))
}
}
}
@ -308,17 +320,39 @@ outPut
*/
func getDepartTarget(key, dimeId, targetId, group, accDepartId string) (qualId int64, departId, departName []string, cycle, cycleattr, isDuty int, err error) {
var qualEvalCont assessmentmodel.QualitativeEvaluation
err = global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id,qe_department_id,qe_type,qe_cycle,qe_cycleattr").Where("qe_qual_eval_id = ? AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation = ? AND qe_group = ? AND qe_state = 1", key, dimeId, targetId, accDepartId, group).First(&qualEvalCont).Error
err = global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id,qe_department_id,qe_type,qe_cycle,qe_cycleattr,qe_operator").Where("qe_qual_eval_id = ? AND qe_dimension = ? AND qe_target = ? AND qe_accept_evaluation = ? AND qe_group = ? AND qe_state = 1", key, dimeId, targetId, accDepartId, group).First(&qualEvalCont).Error
departId = strings.Split(qualEvalCont.DepartmentId, ",")
if len(departId) > 0 {
for _, v := range departId {
fmt.Printf("部门Id =====>%v\n", v)
where := commonus.MapOut()
where["id"] = v
orgCont, _ := commonus.GetNewOrgCont(where, "id", "name")
departName = append(departName, orgCont.Name)
// if len(departId) > 0 {
// for _, v := range departId {
// fmt.Printf("部门Id =====>%v\n", v)
// // where := commonus.MapOut()
// // where["id"] = v
// // orgCont, _ := commonus.GetNewOrgCont(where, "id", "name")
// // departName = append(departName, orgCont.Name)
// }
// }
if qualEvalCont.Operator != "" {
zxrId := strings.Split(qualEvalCont.Operator, ",")
var zxbm []string
global.GVA_DB_HrDataBase.Model(&hrsystem.Personnel{}).Select("`deparment`").Where("`key` IN ?", zxrId).Find(&zxbm)
if len(zxbm) > 0 {
var buMenIdAry []string
for _, dv := range zxbm {
zxmbid := strings.Split(dv, ",")
if len(zxmbid) > 0 {
for _, zv := range zxmbid {
if commonus.IsItTrueString(zv, buMenIdAry) == false {
buMenIdAry = append(buMenIdAry, zv)
}
}
}
}
if len(buMenIdAry) > 0 {
global.GVA_DB_HrDataBase.Model(&hrsystem.AdministrativeOrganization{}).Select("`name`").Where("`id` IN ?", buMenIdAry).Find(&departName)
}
}
}
isDuty = qualEvalCont.Type
cycle = qualEvalCont.Cycles
cycleattr = qualEvalCont.CycleAttres

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

@ -0,0 +1,611 @@
package statistics
import (
"encoding/json"
"fmt"
"sort"
"strconv"
"time"
"github.com/flipped-aurora/gin-vue-admin/server/api/statistics/quantification"
"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/model/assessmentmodel"
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
"github.com/gin-gonic/gin"
)
//获取有效版本考核
func (a *ApiGroup) GetPlanVersionValid(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData DutyPlanVersio
c.ShouldBindJSON(&requestData)
if requestData.Year == "" {
requestData.Year = commonus.TimeStampToDate(time.Now().Unix(), 11)
}
// fmt.Printf("年---->%v\n", requestData.Year)
var planVersioCont []assessmentmodel.PlanVersio
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.PlanVersio{}).Where("`state` = 1")
switch userCont.IsAdmin {
case "2":
if requestData.DeaprtId != "" {
gormDb = gormDb.Where("`department` = ? ", userCont.Deparment)
}
gormDb = gormDb.Where("`group` = ? ", userCont.Company)
case "3":
if requestData.Group != "" {
gormDb = gormDb.Where("`group` = ? ", requestData.Group)
}
if requestData.DeaprtId != "" {
gormDb = gormDb.Where("`department` = ? ", requestData.DeaprtId)
}
case "4":
if requestData.Group != "" {
gormDb = gormDb.Where("`group` = ? ", requestData.Group)
}
if requestData.DeaprtId != "" {
gormDb = gormDb.Where("`department` = ? ", requestData.DeaprtId)
}
default:
// gormDb = gormDb.Where("`group` = ? AND `department` = ?", userCont.Company, userCont.Deparment)
}
if requestData.Group != "" {
gormDb = gormDb.Where("`group` = ? ", requestData.Group)
}
if requestData.DeaprtId != "" {
gormDb = gormDb.Where("`department` = ? ", requestData.DeaprtId)
}
err := gormDb.Find(&planVersioCont).Error
if err != nil {
response.Result(102, err, "没有查询到数据", c)
return
}
// yserInt, _ := strconv.ParseInt(requestData.Year, 10, 64)
// var outData []TargetContOutCont
var xieCheng dataLockStatistics
for _, v := range planVersioCont { //版本列表
syncProcess.Add(1)
go xieCheng.planVersiconProcess(v, requestData)
// return
}
syncProcess.Wait()
readDingXingDataMap := xieCheng.readMyDayData()
// var outList []TargetContOutCont
// mapstructure.Decode(readDingXingDataMap, &outList)
response.Result(0, readDingXingDataMap, "获取成功", c)
}
func (d *dataLockStatistics) planVersiconProcess(pvInfo assessmentmodel.PlanVersio, giveData DutyPlanVersio) {
d.mutext.Lock()
defer d.mutext.Unlock()
yserInt, _ := strconv.ParseInt(giveData.Year, 10, 64)
// fmt.Printf("年--2-->%v--->%v\n", giveData.Year, yserInt)
if pvInfo.Content != "" {
//当版本内容不为空时
var planInfo []AddDutyNewCont
jsonErr := json.Unmarshal([]byte(pvInfo.Content), &planInfo)
if jsonErr == nil {
//进行维度操作
for _, pv := range planInfo {
for _, pcv := range pv.Child { //指标列表
if pcv.Status != 2 { //忽略掉禁用的指标
var outCont TargetContOutCont
outCont.Id = strconv.FormatInt(pvInfo.Id, 10)
//集团信息
outCont.Group = strconv.FormatInt(pvInfo.Group, 10)
where := commonus.MapOut()
where["id"] = pvInfo.Group
orgCont, _ := commonus.GetNewOrgCont(where, "id", "name")
outCont.GroupName = orgCont.Name
//接受考核部门
outCont.DepartmentId = strconv.FormatInt(pvInfo.Department, 10)
whereDepart := commonus.MapOut()
whereDepart["id"] = pvInfo.Department
orgContDer, _ := commonus.GetNewOrgCont(whereDepart, "id", "name")
outCont.DepartmentName = orgContDer.Name
//维度信息
outCont.Dimension = pv.Id
outCont.DimensionName = pv.Name
outCont.DimensionWeight = int64(pv.ZhiFraction)
//指标信息
outCont.Target = pcv.Id
outCont.TargetName = pcv.Name
outCont.TargetCont = pcv.Content
outCont.TargetWeight = pcv.ReferenceScore
outCont.Unit = pcv.Unit
//获取指标内容
var evalTargerCont assessmentmodel.EvaluationTarget
evalErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationTarget{}).Select("et_type,et_scoring_method").Where("`et_id` = ?", pcv.Id).First(&evalTargerCont).Error
scoringMethod := 1
if evalErr == nil {
outCont.Type = evalTargerCont.Type
scoringMethod = evalTargerCont.ScoringMethod
}
//获取执行部门及指标性质
taskId, _, departName, cycle, cycleattr, isDuty, isDutyErr := getDepartTarget(pvInfo.Key, pv.Id, pcv.Id, strconv.FormatInt(pvInfo.Group, 10), strconv.FormatInt(pvInfo.Department, 10))
if isDutyErr == nil {
outCont.ExecutiveDepartment = departName
outCont.Cycles = cycle
outCont.CycleAttres = cycleattr
if isDuty != 0 {
outCont.Type = isDuty
}
} else {
isDuty = 2
}
var stccStatistics ScoreListAry
stccStatistics.Class = isDuty
if isDuty == 1 {
//定性考核
switch cycle {
case 1:
case 2: //天
case 3:
case 5: //季度
// monthValue := commonus.TimeStampToDate(time.Now().Unix(), 12)
// if commonus.TimeStampToDate(time.Now().Unix(), 11) != giveData.Year {
// monthValue = "12"
// }
// monthValueInt, _ := strconv.Atoi(monthValue)
var tpsProcess tablePlanVersionStic
for i := 1; i <= 4; i++ {
wherStr := fmt.Sprintf("`sf_evaluation_plan` = %v AND `sf_duty_group` = %v AND `sf_duty_department` = %v AND `sf_year` = %v AND `sf_quarter` = %v", taskId, pvInfo.Group, pvInfo.Department, yserInt, i)
// wherStr := fmt.Sprintf("`sf_evaluation_plan` = %v AND `sf_duty_group` = %v AND `sf_duty_department` = %v AND `sf_year` = %v AND `sf_month` = %v", taskId, pvInfo.Group, pvInfo.Department, yserInt, i)
syncProcessDepartTarget.Add(1)
go tpsProcess.SubjectiveAuxiliaryCalculationSumMethod(wherStr, i, pcv.Status, 1, pcv.ReferenceScore)
}
syncProcessDepartTarget.Wait()
readStatisticsData := tpsProcess.readMyDayData()
//按照最大值排序
sort.Slice(readStatisticsData, func(i int, j int) bool {
return readStatisticsData[i].Counter < readStatisticsData[j].Counter
})
for _, rsdv := range readStatisticsData {
for ik := 0; ik <= 1; ik++ {
var jiSuanZhiBuLing ScoreList
outCont.Score = append(outCont.Score, jiSuanZhiBuLing)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, 0)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, 0)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, 0)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, 0)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, 0)
stccStatistics.Achievement = append(stccStatistics.Achievement, 0)
}
var jiSuanZhi ScoreList
jiSuanZhi.Class = rsdv.Class
jiSuanZhi.ScoreVal = rsdv.ScoreVal
jiSuanZhi.ActualScore = rsdv.ActualScore
jiSuanZhi.AllPrize = rsdv.AllPrize
jiSuanZhi.ZeroPrize = rsdv.ZeroPrize
jiSuanZhi.CappingVal = rsdv.CappingVal
jiSuanZhi.Achievement = rsdv.Achievement
outCont.Score = append(outCont.Score, jiSuanZhi)
if len(rsdv.ExecutiveDepartment) > 0 { //写入执行考核的部门
for _, edv := range rsdv.ExecutiveDepartment {
if commonus.IsItTrueString(edv, outCont.ExecutiveDepartment) == false {
outCont.ExecutiveDepartment = append(outCont.ExecutiveDepartment, edv)
}
}
}
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, rsdv.ScoreVal)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, rsdv.AllPrize)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, rsdv.ZeroPrize)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, rsdv.CappingVal)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, rsdv.ActualScore)
stccStatistics.Achievement = append(stccStatistics.Achievement, rsdv.Achievement)
}
case 6: //年
monthValue := commonus.TimeStampToDate(time.Now().Unix(), 12)
if commonus.TimeStampToDate(time.Now().Unix(), 11) != giveData.Year {
monthValue = "12"
}
monthValueInt, _ := strconv.Atoi(monthValue)
var tpsProcess tablePlanVersionStic
for i := 1; i <= monthValueInt; i++ {
wherStr := fmt.Sprintf("`sf_evaluation_plan` = %v AND `sf_duty_group` = %v AND `sf_duty_department` = %v AND `sf_year` = %v AND `sf_month` = %v", taskId, pvInfo.Group, pvInfo.Department, yserInt, i)
syncProcessDepartTarget.Add(1)
go tpsProcess.SubjectiveAuxiliaryCalculationSumMethod(wherStr, i, pcv.Status, 1, pcv.ReferenceScore)
}
syncProcessDepartTarget.Wait()
readStatisticsData := tpsProcess.readMyDayData()
//按照最大值排序
sort.Slice(readStatisticsData, func(i int, j int) bool {
return readStatisticsData[i].Counter < readStatisticsData[j].Counter
})
for _, rsdv := range readStatisticsData {
var jiSuanZhi ScoreList
jiSuanZhi.Class = rsdv.Class
jiSuanZhi.ScoreVal = rsdv.ScoreVal
jiSuanZhi.ActualScore = rsdv.ActualScore
jiSuanZhi.AllPrize = rsdv.AllPrize
jiSuanZhi.ZeroPrize = rsdv.ZeroPrize
jiSuanZhi.CappingVal = rsdv.CappingVal
jiSuanZhi.Achievement = rsdv.Achievement
outCont.Score = append(outCont.Score, jiSuanZhi)
if len(rsdv.ExecutiveDepartment) > 0 { //写入执行考核的部门
for _, edv := range rsdv.ExecutiveDepartment {
if commonus.IsItTrueString(edv, outCont.ExecutiveDepartment) == false {
outCont.ExecutiveDepartment = append(outCont.ExecutiveDepartment, edv)
}
}
}
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, rsdv.ScoreVal)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, rsdv.AllPrize)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, rsdv.ZeroPrize)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, rsdv.CappingVal)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, rsdv.ActualScore)
stccStatistics.Achievement = append(stccStatistics.Achievement, rsdv.Achievement)
}
default: //月
monthValue := commonus.TimeStampToDate(time.Now().Unix(), 12)
if commonus.TimeStampToDate(time.Now().Unix(), 11) != giveData.Year {
monthValue = "12"
}
monthValueInt, _ := strconv.Atoi(monthValue)
var tpsProcess tablePlanVersionStic
for i := 1; i <= monthValueInt; i++ {
wherStr := fmt.Sprintf("`sf_evaluation_plan` = %v AND `sf_duty_group` = %v AND `sf_duty_department` = %v AND `sf_year` = %v AND `sf_month` = %v", taskId, pvInfo.Group, pvInfo.Department, yserInt, i)
syncProcessDepartTarget.Add(1)
go tpsProcess.SubjectiveAuxiliaryCalculationSumMethod(wherStr, i, pcv.Status, 1, pcv.ReferenceScore)
}
syncProcessDepartTarget.Wait()
readStatisticsData := tpsProcess.readMyDayData()
//按照最大值排序
sort.Slice(readStatisticsData, func(i int, j int) bool {
return readStatisticsData[i].Counter < readStatisticsData[j].Counter
})
for _, rsdv := range readStatisticsData {
var jiSuanZhi ScoreList
jiSuanZhi.Class = rsdv.Class
jiSuanZhi.ScoreVal = rsdv.ScoreVal
jiSuanZhi.ActualScore = rsdv.ActualScore
jiSuanZhi.AllPrize = rsdv.AllPrize
jiSuanZhi.ZeroPrize = rsdv.ZeroPrize
jiSuanZhi.CappingVal = rsdv.CappingVal
jiSuanZhi.Achievement = rsdv.Achievement
outCont.Score = append(outCont.Score, jiSuanZhi)
if len(rsdv.ExecutiveDepartment) > 0 { //写入执行考核的部门
for _, edv := range rsdv.ExecutiveDepartment {
if commonus.IsItTrueString(edv, outCont.ExecutiveDepartment) == false {
outCont.ExecutiveDepartment = append(outCont.ExecutiveDepartment, edv)
}
}
}
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, rsdv.ScoreVal)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, rsdv.AllPrize)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, rsdv.ZeroPrize)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, rsdv.CappingVal)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, rsdv.ActualScore)
stccStatistics.Achievement = append(stccStatistics.Achievement, rsdv.Achievement)
}
}
} else {
//定量考核
switch cycle {
case 1:
case 2: //天
case 3:
case 5: //季度
// monthValue := commonus.TimeStampToDate(time.Now().Unix(), 12)
// if commonus.TimeStampToDate(time.Now().Unix(), 11) != giveData.Year {
// monthValue = "12"
// }
// monthValueInt, _ := strconv.Atoi(monthValue)
var tpsProcess tablePlanVersionStic
for i := 1; i <= 4; i++ {
// fmt.Printf("年--4-->%v--->%v-->%v\n", i, giveData.Year, yserInt)
wherStr := fmt.Sprintf("fld_evaluation_id = %v AND `fl_year` = %v AND `fl_duty_group` = %v AND `fl_duty_department` = %v AND `fl_quarter` = %v", taskId, yserInt, pvInfo.Group, pvInfo.Department, i)
// wherStr := fmt.Sprintf("fld_evaluation_id = %v AND `fl_year` = %v AND `fl_duty_group` = %v AND `fl_duty_department` = %v AND `fl_month` = %v", taskId, yserInt, pvInfo.Group, pvInfo.Department, i)
syncProcessDepartTarget.Add(1)
go tpsProcess.conditionStatistics(wherStr, strconv.FormatInt(pvInfo.Group, 10), strconv.FormatInt(pvInfo.Department, 10), pv.Id, pcv.Id, i, pcv.Status, scoringMethod, 2, yserInt, pcv.ReferenceScore)
}
/*
统计分数
@wherStr 统计条件
@group 集团
@department 部门
@dimensionId 维度
@targetId 指标
@i 步进器
@status 是否为观察数据
@scoringMethod 手动计分还是自动计分
@class 指标类型 1定性2定量
@referenceScore 指标权重
@yserInt 年度
*/
syncProcessDepartTarget.Wait()
readStatisticsData := tpsProcess.readMyDayData()
//按照最大值排序
sort.Slice(readStatisticsData, func(i int, j int) bool {
return readStatisticsData[i].Counter < readStatisticsData[j].Counter
})
// jsonVal, jsonErr := json.Marshal(readStatisticsData)
// fmt.Printf("排序------%v--------》%v--------》%v\n", pvInfo.Id, string(jsonVal), jsonErr)
for _, rsdv := range readStatisticsData {
for ik := 0; ik <= 1; ik++ {
var jiSuanZhiBuLing ScoreList
outCont.Score = append(outCont.Score, jiSuanZhiBuLing)
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, 0)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, 0)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, 0)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, 0)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, 0)
stccStatistics.Achievement = append(stccStatistics.Achievement, 0)
}
var jiSuanZhi ScoreList
jiSuanZhi.Class = rsdv.Class
jiSuanZhi.ScoreVal = rsdv.ScoreVal
jiSuanZhi.ActualScore = rsdv.ActualScore
jiSuanZhi.AllPrize = rsdv.AllPrize
jiSuanZhi.ZeroPrize = rsdv.ZeroPrize
jiSuanZhi.CappingVal = rsdv.CappingVal
jiSuanZhi.Achievement = rsdv.Achievement
outCont.Score = append(outCont.Score, jiSuanZhi)
if len(rsdv.ExecutiveDepartment) > 0 { //写入执行考核的部门
for _, edv := range rsdv.ExecutiveDepartment {
if commonus.IsItTrueString(edv, outCont.ExecutiveDepartment) == false {
outCont.ExecutiveDepartment = append(outCont.ExecutiveDepartment, edv)
}
}
}
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, rsdv.ScoreVal)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, rsdv.AllPrize)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, rsdv.ZeroPrize)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, rsdv.CappingVal)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, rsdv.ActualScore)
stccStatistics.Achievement = append(stccStatistics.Achievement, rsdv.Achievement)
}
case 6: //年
monthValue := commonus.TimeStampToDate(time.Now().Unix(), 12)
if commonus.TimeStampToDate(time.Now().Unix(), 11) != giveData.Year {
monthValue = "12"
}
monthValueInt, _ := strconv.Atoi(monthValue)
var tpsProcess tablePlanVersionStic
for i := 1; i <= monthValueInt; i++ {
// fmt.Printf("年--5-->%v--->%v-->%v\n", i, giveData.Year, yserInt)
wherStr := fmt.Sprintf("fld_evaluation_id = %v AND `fl_year` = %v AND `fl_duty_group` = %v AND `fl_duty_department` = %v AND `fl_month` = %v", taskId, yserInt, pvInfo.Group, pvInfo.Department, i)
syncProcessDepartTarget.Add(1)
go tpsProcess.conditionStatistics(wherStr, strconv.FormatInt(pvInfo.Group, 10), strconv.FormatInt(pvInfo.Department, 10), pv.Id, pcv.Id, i, pcv.Status, scoringMethod, 2, yserInt, pcv.ReferenceScore)
}
syncProcessDepartTarget.Wait()
readStatisticsData := tpsProcess.readMyDayData()
//按照最大值排序
sort.Slice(readStatisticsData, func(i int, j int) bool {
return readStatisticsData[i].Counter < readStatisticsData[j].Counter
})
// jsonVal, jsonErr := json.Marshal(readStatisticsData)
// fmt.Printf("排序------%v--------》%v--------》%v\n", pvInfo.Id, string(jsonVal), jsonErr)
for _, rsdv := range readStatisticsData {
var jiSuanZhi ScoreList
jiSuanZhi.Class = rsdv.Class
jiSuanZhi.ScoreVal = rsdv.ScoreVal
jiSuanZhi.ActualScore = rsdv.ActualScore
jiSuanZhi.AllPrize = rsdv.AllPrize
jiSuanZhi.ZeroPrize = rsdv.ZeroPrize
jiSuanZhi.CappingVal = rsdv.CappingVal
jiSuanZhi.Achievement = rsdv.Achievement
outCont.Score = append(outCont.Score, jiSuanZhi)
if len(rsdv.ExecutiveDepartment) > 0 { //写入执行考核的部门
for _, edv := range rsdv.ExecutiveDepartment {
if commonus.IsItTrueString(edv, outCont.ExecutiveDepartment) == false {
outCont.ExecutiveDepartment = append(outCont.ExecutiveDepartment, edv)
}
}
}
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, rsdv.ScoreVal)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, rsdv.AllPrize)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, rsdv.ZeroPrize)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, rsdv.CappingVal)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, rsdv.ActualScore)
stccStatistics.Achievement = append(stccStatistics.Achievement, rsdv.Achievement)
}
default: //月
monthValue := commonus.TimeStampToDate(time.Now().Unix(), 12)
if commonus.TimeStampToDate(time.Now().Unix(), 11) != giveData.Year {
monthValue = "12"
}
monthValueInt, _ := strconv.Atoi(monthValue)
var tpsProcess tablePlanVersionStic
for i := 1; i <= monthValueInt; i++ {
// fmt.Printf("年--6-->%v--->%v-->%v\n", i, giveData.Year, yserInt)
wherStr := fmt.Sprintf("fld_evaluation_id = %v AND `fl_year` = %v AND `fl_duty_group` = %v AND `fl_duty_department` = %v AND `fl_month` = %v", taskId, yserInt, pvInfo.Group, pvInfo.Department, i)
syncProcessDepartTarget.Add(1)
go tpsProcess.conditionStatistics(wherStr, strconv.FormatInt(pvInfo.Group, 10), strconv.FormatInt(pvInfo.Department, 10), pv.Id, pcv.Id, i, pcv.Status, scoringMethod, 2, yserInt, pcv.ReferenceScore)
}
syncProcessDepartTarget.Wait()
readStatisticsData := tpsProcess.readMyDayData()
//按照最大值排序
sort.Slice(readStatisticsData, func(i int, j int) bool {
return readStatisticsData[i].Counter < readStatisticsData[j].Counter
})
// jsonVal, jsonErr := json.Marshal(readStatisticsData)
// fmt.Printf("排序------%v--------》%v--------》%v\n", pvInfo.Id, string(jsonVal), jsonErr)
for _, rsdv := range readStatisticsData {
var jiSuanZhi ScoreList
jiSuanZhi.Class = rsdv.Class
jiSuanZhi.ScoreVal = rsdv.ScoreVal
jiSuanZhi.ActualScore = rsdv.ActualScore
jiSuanZhi.AllPrize = rsdv.AllPrize
jiSuanZhi.ZeroPrize = rsdv.ZeroPrize
jiSuanZhi.CappingVal = rsdv.CappingVal
jiSuanZhi.Achievement = rsdv.Achievement
outCont.Score = append(outCont.Score, jiSuanZhi)
if len(rsdv.ExecutiveDepartment) > 0 { //写入执行考核的部门
for _, edv := range rsdv.ExecutiveDepartment {
if commonus.IsItTrueString(edv, outCont.ExecutiveDepartment) == false {
outCont.ExecutiveDepartment = append(outCont.ExecutiveDepartment, edv)
}
}
}
stccStatistics.ScoreVal = append(stccStatistics.ScoreVal, rsdv.ScoreVal)
stccStatistics.AllPrize = append(stccStatistics.AllPrize, rsdv.AllPrize)
stccStatistics.ZeroPrize = append(stccStatistics.ZeroPrize, rsdv.ZeroPrize)
stccStatistics.CappingVal = append(stccStatistics.CappingVal, rsdv.CappingVal)
stccStatistics.ActualScore = append(stccStatistics.ActualScore, rsdv.ActualScore)
stccStatistics.Achievement = append(stccStatistics.Achievement, rsdv.Achievement)
}
}
}
outCont.ScoreAllList = append(outCont.ScoreAllList, stccStatistics)
outCont.StatisticsName = []string{"全奖值", "零奖值", "实际值", "达成率", "得分"}
d.outData = append(d.outData, outCont)
}
}
}
}
} else {
//当版本内容为空时
}
syncProcess.Done()
}
/*
统计分数
@wherStr 统计条件
@group 集团
@department 部门
@dimensionId 维度
@targetId 指标
@i 步进器
@status 是否为观察数据
@scoringMethod 手动计分还是自动计分
@class 指标类型 1定性2定量
@referenceScore 指标权重
@yserInt 年度
*/
func (t *tablePlanVersionStic) conditionStatistics(wherStr, group, department, dimensionId, targetId string, i, status, scoringMethod, class int, yserInt, referenceScore int64) {
t.mutext.Lock()
defer t.mutext.Unlock()
// fmt.Printf("年--3-4->%v--->%v--->%v--->%v--->%v--->%v--->%v--->%v--->%v--->%v--->%v\n", wherStr, group, department, dimensionId, targetId, i, status, scoringMethod, class, yserInt, referenceScore)
var tableScoreCont TableScoreList
tableScoreCont.Counter = i
var sumScore float64
var departmentAry []int64 //部门ID
if scoringMethod == 2 {
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.FlowLogData{}).Joins("left join flow_log as fl on fl.fl_key = flow_log_data.fld_flow_log").Where(wherStr)
gormDb.Pluck("COALESCE(SUM(fld_scoring_score), 0) as rescore", &sumScore)
} else {
gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.FlowLogData{}).Joins("left join flow_log as fl on fl.fl_key = flow_log_data.fld_flow_log").Where(wherStr)
gormDb.Pluck("COALESCE(SUM(fld_score), 0) as rescore", &sumScore)
}
// fmt.Printf("计算得分--3-->%v--->%v-->%v--->%v\n", scoringMethod, wherStr, i, sumScore)
//获取测评部门
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.FlowLogData{}).Select("fl_evaluation_department").Joins("left join flow_log as fl on fl.fl_key = flow_log_data.fld_flow_log").Where(wherStr).Find(&departmentAry)
if len(departmentAry) > 0 {
for _, v := range departmentAry {
whereDepart := commonus.MapOut()
whereDepart["id"] = v
orgContDer, _ := commonus.GetNewOrgCont(whereDepart, "name")
tableScoreCont.ExecutiveDepartment = append(tableScoreCont.ExecutiveDepartment, orgContDer.Name)
}
}
// fmt.Printf("年--3-->%v--->%v\n", wherStr, yserInt)
//组装数据
resultData := commonus.Decimal(sumScore / 100)
tableScoreCont.Class = class
tableScoreCont.ScoreVal = resultData
if status != 3 {
tableScoreCont.ActualScore, tableScoreCont.AllPrize, tableScoreCont.ZeroPrize, tableScoreCont.CappingVal, tableScoreCont.Achievement = quantification.GetQuantitativeConfig(referenceScore, resultData, group, department, dimensionId, targetId, "0", yserInt, i)
t.TableScore = append(t.TableScore, tableScoreCont)
} else {
tableScoreCont.ActualScore = float64(referenceScore)
tableScoreCont.AllPrize, tableScoreCont.ZeroPrize, tableScoreCont.CappingVal, tableScoreCont.Achievement = quantification.GetQuantitativeConfigEs(resultData, group, department, dimensionId, targetId, "0", yserInt, i)
t.TableScore = append(t.TableScore, tableScoreCont)
}
syncProcessDepartTarget.Done()
}
//定性
/*
统计分数
@wherStr 统计条件
@i 步进器
@status 是否为观察数据
@class 指标类型 1定性2定量
@referenceScore 指标权重
*/
func (t *tablePlanVersionStic) SubjectiveAuxiliaryCalculationSumMethod(wherStr string, i, status, class int, referenceScore int64) {
t.mutext.Lock()
defer t.mutext.Unlock()
var tableScoreCont TableScoreList
tableScoreCont.Counter = i
var sumScore float64
var departmentAry []int64 //部门ID
//加分
var addSumScore float64 = 0
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Select("sf_score").Where(wherStr).Where("sf_plus_reduce_score = 1").Pluck("COALESCE(SUM(sf_score), 0) as addrescore", &addSumScore)
//加分
var scoreReduction float64 = 0
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Select("sf_score").Where(wherStr).Where("sf_plus_reduce_score = 2").Pluck("COALESCE(SUM(sf_score), 0) as redurescore", &scoreReduction)
if addSumScore != 0 && scoreReduction != 0 {
if addSumScore > scoreReduction {
sumScore = addSumScore - scoreReduction
} else {
sumScore = scoreReduction - addSumScore
}
} else if addSumScore != 0 {
sumScore = addSumScore
} else {
sumScore = scoreReduction
}
//获取测评部门
global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Select("sf_evaluation_department").Where(wherStr).Find(&departmentAry)
if len(departmentAry) > 0 {
for _, v := range departmentAry {
whereDepart := commonus.MapOut()
whereDepart["id"] = v
orgContDer, _ := commonus.GetNewOrgCont(whereDepart, "name")
tableScoreCont.ExecutiveDepartment = append(tableScoreCont.ExecutiveDepartment, orgContDer.Name)
}
}
resultData := commonus.Decimal(sumScore / 100)
if resultData > float64(referenceScore) {
resultData = float64(referenceScore)
}
//组装数据
// var jiSuanZhi ScoreList
tableScoreCont.Class = class
tableScoreCont.AllPrize = 0
tableScoreCont.ZeroPrize = 0
tableScoreCont.CappingVal = 0
tableScoreCont.ScoreVal = 0
tableScoreCont.Achievement = 0
if status != 3 {
tableScoreCont.ActualScore = resultData
} else {
tableScoreCont.ActualScore = float64(referenceScore)
}
t.TableScore = append(t.TableScore, tableScoreCont)
syncProcessDepartTarget.Done()
}

4
gin_server_admin/api/statistics/nature/statistics.go

@ -22,7 +22,7 @@ func (a *ApiGroup) Index(c *gin.Context) {
func (a *ApiGroup) GetTargetOrgAndYear(c *gin.Context) {
isTrue, _ := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData getTargetId[string]
@ -204,7 +204,7 @@ func getExistOrg(targetId string) []orgModelsAry {
func (a *ApiGroup) NatureStatistics(c *gin.Context) {
isTrue, _ := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData natureParameter

93
gin_server_admin/api/statistics/quantification/quant.go

@ -16,7 +16,7 @@ import (
func (a *ApiGroup) GetQuantEChartOrgAndYear(c *gin.Context) {
isTrue, _ := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData getTargetId[string]
@ -159,7 +159,7 @@ func (a *ApiGroup) GetQuantEChartOrgAndYear(c *gin.Context) {
func (a *ApiGroup) QuantEChart(c *gin.Context) {
isTrue, _ := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData natureParameter
@ -411,6 +411,7 @@ func getGroupOrg(orgAry []string) (orgMap []orgModelsAry, orgWherList []orgModel
//获取定量考核目标
/*
@targetScore 指标分值
@resultval 结算值
@group 集团
@depart 部门
@ -419,8 +420,83 @@ func getGroupOrg(orgAry []string) (orgMap []orgModelsAry, orgWherList []orgModel
@deaTarget 细则
@year 年份
@timecopy 辅助计数
返回说明
@scoreVal 计算得分
@allPrize 全奖值
@zeroPrize 零奖值
@CappingVal 封顶值
@achievement 达成率
*/
func GetQuantitativeConfig(targetScore int64, resultval float64, group, depart, dimen, target, deaTarget string, year int64, timecopy int) (scoreVal, allPrize, zeroPrize, CappingVal, achievement float64) {
scoreVal = 0
allPrize = 0
zeroPrize = 0
CappingVal = 0
achievement = 0
var qualConfig assessmentmodel.QuantitativeConfig
gormDb := global.GVA_DB_Performanceappraisal.Where("`group` = ? AND `departmentid` = ? AND `dimension` = ? AND `target` = ? AND `year` = ?", group, depart, dimen, target, year)
if deaTarget != "0" {
gormDb = gormDb.Where("targetconfig = ?", deaTarget)
}
// if timecopy != 0 {
// gormDb = gormDb.Where("timecopy = ?", timecopy)
// }
gormDb = gormDb.Where("timecopy = ?", timecopy)
err := gormDb.First(&qualConfig).Error
// fmt.Printf("达成率--0-->%v-->%v-->%v-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", group, depart, dimen, target, year, allPrize, zeroPrize, CappingVal, achievement, err)
if err != nil {
return
}
allPrize = qualConfig.Allprize / 100
zeroPrize = qualConfig.Zeroprize / 100
CappingVal = qualConfig.CappingVal / 100
if qualConfig.CappingVal != 0 && resultval >= qualConfig.CappingVal {
scoreVal = float64(targetScore)
achievement = 100
// fmt.Printf("达成率--1-->%v-->%v-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", group, depart, dimen, target, year, allPrize, zeroPrize, CappingVal, achievement)
} else {
chuShu := resultval - float64(qualConfig.Zeroprize)
beiChuShu := float64(qualConfig.Allprize) - float64(qualConfig.Zeroprize)
if beiChuShu > 0 {
achievement = commonus.Decimal(chuShu / beiChuShu)
scoreVal = achievement * (resultval / 100)
fmt.Printf("达成率--2-->%v-->%v-->%v-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", group, depart, dimen, target, year, allPrize, zeroPrize, CappingVal, achievement, resultval)
} else {
scoreVal = float64(targetScore)
// fmt.Printf("达成率--3-->%v-->%v-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", group, depart, dimen, target, year, allPrize, zeroPrize, CappingVal, achievement)
}
}
// fmt.Printf("达成率--4-->%v-->%v-->%v-->%v-->%v-->%v-->%v-->%v-->%v\n", group, depart, dimen, target, year, allPrize, zeroPrize, CappingVal, achievement)
return
}
//获取指标计算配置参数
/*
@targetScore 指标分值
@resultval 结算值
@group 集团
@depart 部门
@dimen 维度
@target 指标
@deaTarget 细则
@year 年份
@timecopy 辅助计数
返回说明
@scoreVal 计算得分
@allPrize 全奖值
@zeroPrize 零奖值
@CappingVal 封顶值
@achievement 达成率
*/
func GetQuantitativeConfig(resultval float64, group, depart, dimen, target, deaTarget string, year int64, timecopy int) float64 {
func GetQuantitativeConfigEs(resultval float64, group, depart, dimen, target, deaTarget string, year int64, timecopy int) (allPrize, zeroPrize, CappingVal, achievement float64) {
allPrize = 0
zeroPrize = 0
CappingVal = 0
achievement = 0
var qualConfig assessmentmodel.QuantitativeConfig
gormDb := global.GVA_DB_Performanceappraisal.Where("`group` = ? AND `departmentid` = ? AND `dimension` = ? AND `target` = ? AND `year` = ?", group, depart, dimen, target, year)
if deaTarget != "0" {
@ -431,12 +507,17 @@ func GetQuantitativeConfig(resultval float64, group, depart, dimen, target, deaT
}
err := gormDb.First(&qualConfig).Error
if err != nil {
return 0
return
}
chuShu := resultval - float64(qualConfig.Zeroprize)
beiChuShu := float64(qualConfig.Allprize) - float64(qualConfig.Zeroprize)
if beiChuShu > 0 {
return commonus.Decimal(chuShu / beiChuShu)
achievement = commonus.Decimal(chuShu / beiChuShu)
}
return 0
allPrize = qualConfig.Allprize / 100
zeroPrize = qualConfig.Zeroprize / 100
CappingVal = qualConfig.CappingVal / 100
return
}

6
gin_server_admin/api/v1/assessment/set_evaluation_objectives.go

@ -75,8 +75,10 @@ func (d *DutyHandle) SetEvaluationObjectives(c *gin.Context) {
judgeErr := gromDb.Find(&timecopy).Error
if judgeErr == nil {
response.Result(121, judgeErr, "已经存在!不要重复添加!", c)
return
if len(timecopy) > 0 {
response.Result(121, judgeErr, "已经存在!不要重复添加!", c)
return
}
}
var saveData []assessmentmodel.QuantitativeConfig

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

@ -522,3 +522,20 @@ func getRole(roleId int64) (roleCont roleModel.SystemRole) {
global.GVA_DB_HrDataBase.Where("`id` = ?", roleId).Find(&roleCont)
return
}
func (cu *CustomHandle) SignOut(c *gin.Context) {
_, userCont := commonus.ClientIdentity()
var md5JiaMiNumber commonus.Md5Encryption
md5JiaMiNumber.Md5EncryptionInit(userCont.Number)
userKeyCode := md5JiaMiNumber.Md5EncryptionAlgorithm()
redisFileKey := "ScanCode:Authentication:LoginApi_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + userKeyCode
redisClient := redishandel.RunRedis()
redisClient.SetRedisDb(5)
one := redisClient.DelKey(redisFileKey)
redisFileKeyInfo := fmt.Sprintf("ScanCode:UserInfo:LoginUser_%v_%v", global.GVA_CONFIG.RedisPrefix.Alias, userCont.Number)
two := redisClient.DelKey(redisFileKeyInfo)
saveData := commonus.MapOut()
saveData["one"] = one
saveData["two"] = two
response.Result(0, saveData, "退出成功!", c)
}

38
gin_server_admin/api/v1/shiyan/shiyan.go

@ -18,7 +18,6 @@ import (
"github.com/flipped-aurora/gin-vue-admin/server/model/assessmentmodel"
"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/model/testpage"
"github.com/flipped-aurora/gin-vue-admin/server/model/wechat"
"github.com/flipped-aurora/gin-vue-admin/server/utils/redishandel"
"github.com/gin-gonic/gin"
@ -29,12 +28,13 @@ type ShiyanApi struct {
}
func (a *ShiyanApi) AddBaseMenu(c *gin.Context) {
var answerMap testpage.Answer
err := global.GVA_DB_Master.First(&answerMap)
if err != nil {
// var answerMap testpage.Answer
// err := global.GVA_DB_Master.First(&answerMap)
// if err != nil {
}
fmt.Printf("%v\n", answerMap)
// }
// fmt.Printf("%v\n", answerMap)
commonus.GetLastMonth()
response.Ok(c)
}
@ -1289,18 +1289,20 @@ type timeDataType struct {
//时间日期实现
func (s *ShiyanApi) DateTime(c *gin.Context) {
var requestData timeDataType
err := c.ShouldBindJSON(&requestData)
if err != nil {
}
if requestData.Time == 0 {
requestData.Time = time.Now().Unix()
}
if requestData.Type == 0 {
requestData.Type = 1
}
quer := commonus.ComputingTime(requestData.Time, requestData.Type)
response.Result(0, quer, "查询成功", c)
// var requestData timeDataType
// err := c.ShouldBindJSON(&requestData)
// if err != nil {
// }
// if requestData.Time == 0 {
// requestData.Time = time.Now().Unix()
// }
// if requestData.Type == 0 {
// requestData.Type = 1
// }
// quer := commonus.ComputingTime(requestData.Time, requestData.Type)
commonus.GetLastMonth()
response.Result(0, 0, "查询成功", c)
}
//校正权重

4
gin_server_admin/api/web/jixiaokaohe/myduty.go

@ -20,7 +20,7 @@ func (a *ApiGroup) Index(c *gin.Context) {
func (a *ApiGroup) AboutMyTask(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData taskParameterTitle
@ -64,7 +64,7 @@ func (a *ApiGroup) AboutMyTask(c *gin.Context) {
func (a *ApiGroup) TaskParameterTitleList(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
var requestData taskParameterTitleList

2
gin_server_admin/api/web/jixiaokaohe/people.go

@ -14,7 +14,7 @@ import (
func (a *ApiGroup) MyContent(c *gin.Context) {
isTrue, userCont := commonus.ClientIdentity()
if isTrue != true {
response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
response.Result(1001, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c)
return
}
fmt.Printf("userment----------->%v\n", userCont.Key)

38
gin_server_admin/api/wechatapp/callback/updatehandle.go

@ -131,7 +131,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt
switch flowLog[currentSetp].NextStep {
case 1:
orderIdInt, _ := strconv.ParseInt(orderId, 10, 64)
commonus.StepAddData(orderIdInt, 0, 1, 1, 1, 2, 1, strconv.FormatInt(userContInfo.Key, 10))
commonus.StepAddData(orderIdInt, 0, 1, 1, 1, 1, 1, strconv.FormatInt(userContInfo.Key, 10))
//发起人
taskId := strconv.FormatInt(commonus.GetFileNumberEs(), 10)
evaluationPlanStr := strconv.FormatInt(scoreFlowInfo.EvaluationPlan, 10)
@ -150,7 +150,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt
case 2:
//发起人部门负责人
orderIdInt, _ := strconv.ParseInt(orderId, 10, 64)
commonus.StepAddData(orderIdInt, 16182159043990656, 3, 2, 1, 2, 2, strconv.FormatInt(userContInfo.Key, 10))
commonus.StepAddData(orderIdInt, 16182159043990656, 3, 2, 1, 1, 2, strconv.FormatInt(userContInfo.Key, 10))
//获取发起人部门负责人
sendUserIsTrue, sendUserList := commonus.GetSendMsgUserAry(16182159043990656, userContInfo.DepartmentId) //获取发起人部门负责人
if sendUserIsTrue == true {
@ -271,7 +271,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt
fmt.Printf("Setp-------6----------->%v----------->%v\n", sendUserList, personLiable)
//获取考核项目关联项目
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId)
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _, _ := commonus.GetDutyAssociatedItems(orderId)
fmt.Printf("%v", unit)
//一级文本处理
var title, desc string
@ -317,7 +317,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt
sourceDesc := "整改通知"
var sendTextMsg sendmessage.TextNoticeTemplateMedium
sendTextMsg.SendMsgTextShare(sendUserList, taskId, title, desc, quoteAreaTitle, quoteAreaContent, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, cardJumpUrl, jumpUrl, jumpUrlTitle, sourceDesc)
commonus.StepAddData(orderIdInt, 16182159043990656, 5, 7, 1, 2, 4, strconv.FormatInt(userContInfo.Key, 10))
commonus.StepAddData(orderIdInt, 16182159043990656, 5, 7, 1, 1, 4, strconv.FormatInt(userContInfo.Key, 10))
} else {
//不需要整改
@ -332,7 +332,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt
}
//获取考核项目关联项目
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId)
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _, _ := commonus.GetDutyAssociatedItems(orderId)
fmt.Printf("%v", unit)
//一级文本处理
var title, desc string
@ -391,14 +391,14 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt
buttonMap = append(buttonMap, buttonCont)
var sendTextMsg sendmessage.ButtonNoticeTemplateMedium
sendTextMsg.SendButtonShare(sendUser, taskId, "验收", title, desc, subtitle, reason, twoLevelTitle, twoLevelKeyName, twoLevelKeyValue, twoLevelUserId, cardJumpUrl, buttonMap)
commonus.StepAddData(orderIdInt, 16182159043990656, 7, 7, 1, 2, 4, strconv.FormatInt(userContInfo.Key, 10))
commonus.StepAddData(orderIdInt, 16182159043990656, 7, 7, 1, 1, 4, strconv.FormatInt(userContInfo.Key, 10))
}
case 5:
//主要责任人整改
case 6:
//责任部门审批(部门负责人)
orderIdInt, _ := strconv.ParseInt(orderId, 10, 64) //流程Key
commonus.StepAddData(orderIdInt, 16182159043990656, 7, 7, 1, 2, 6, strconv.FormatInt(userContInfo.Key, 10))
commonus.StepAddData(orderIdInt, 16182159043990656, 7, 7, 1, 1, 6, strconv.FormatInt(userContInfo.Key, 10))
sendButtonIsTrue, sendButtonList := commonus.GetSendMsgUserAry(16182159043990656, userContInfo.DepartmentId) //获取发起人部门负责人
if sendButtonIsTrue == true {
@ -415,7 +415,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt
sendUser = faQiRen.WorkWechatId
}
//获取考核项目关联项目
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId)
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _, _ := commonus.GetDutyAssociatedItems(orderId)
fmt.Printf("%v\n", unit)
//一级文本处理
var title, desc string
@ -517,7 +517,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt
taskId := strconv.FormatInt(commonus.GetFileNumberEs(), 10)
//获取考核项目关联项目
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId)
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _, _ := commonus.GetDutyAssociatedItems(orderId)
fmt.Printf("%v\n", unit)
//一级文本处理
var title, desc string
@ -596,7 +596,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt
sendUser = faQiRen.WorkWechatId
}
//获取考核项目关联项目
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId)
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _, _ := commonus.GetDutyAssociatedItems(orderId)
fmt.Printf("%v", unit)
//一级文本处理
var title, desc string
@ -658,7 +658,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt
//1、获取本部门内勤
_, butCallBackUser := commonus.GetSendMsgUser(16118387069540343, userContInfo.DepartmentId) //获取对应部门内勤(高科)
//获取考核项目关联项目
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId)
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _, _ := commonus.GetDutyAssociatedItems(orderId)
fmt.Printf("%v", unit)
//一级文本处理
var title, desc string
@ -741,7 +741,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt
}
sendUserList := strings.Join(personLiable, "|")
//获取考核项目关联项目
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId)
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _, _ := commonus.GetDutyAssociatedItems(orderId)
fmt.Printf("%v\n", unit)
//一级文本处理
var title, desc string
@ -826,7 +826,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt
}
sendUserList := strings.Join(personLiable, "|")
//获取考核项目关联项目
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId)
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _, _ := commonus.GetDutyAssociatedItems(orderId)
fmt.Printf("%v", unit)
//一级文本处理
var title, desc string
@ -893,7 +893,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt
//2.3、获取职责部门内勤
_, dutyOffUserList := commonus.GetSendMsgUserAry(16118387069540343, scoreFlowInfo.DutyDepartment) //获取职责部门内勤
//获取考核项目关联项目
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId)
targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _, _ := commonus.GetDutyAssociatedItems(orderId)
fmt.Printf("%v", unit)
//一级文本处理
var title, desc string
@ -1253,7 +1253,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
// return
}
taskId := commonus.GetFileNumberEs()
targettitle, detailedRulesTitle, detailedRulesInfo, unitStr, flowContent, _ := commonus.GetDutyAssociatedItems(scoreFlowKey)
targettitle, detailedRulesTitle, detailedRulesInfo, unitStr, flowContent, _, _ := commonus.GetDutyAssociatedItems(scoreFlowKey)
title := flowContent.Reason
if title == "" {
if detailedRulesInfo != "" {
@ -1358,7 +1358,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
}
}
}
targettitle, detailedRulesTitle, detailedRulesInfo, unitStr, flowContent, _ := commonus.GetDutyAssociatedItems(scoreFlowKey)
targettitle, detailedRulesTitle, detailedRulesInfo, unitStr, flowContent, _, _ := commonus.GetDutyAssociatedItems(scoreFlowKey)
title := flowContent.Reason
if title == "" {
if detailedRulesInfo != "" {
@ -1416,7 +1416,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
// response.Result(0, sendUserList, "未指定相关部门处理人!未能向相关人员发送考核项目!请手动发起!", c)
// return
}
targettitle, detailedRulesTitle, detailedRulesInfo, unitStr, flowContent, _ := commonus.GetDutyAssociatedItems(scoreFlowKey)
targettitle, detailedRulesTitle, detailedRulesInfo, unitStr, flowContent, _, _ := commonus.GetDutyAssociatedItems(scoreFlowKey)
title := flowContent.Reason
if title == "" {
if detailedRulesInfo != "" {
@ -1487,7 +1487,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
// response.Result(0, sendUserList, "未指定相关部门处理人!未能向相关人员发送考核项目!请手动发起!", c)
// return
}
targettitle, detailedRulesTitle, detailedRulesInfo, unitStr, flowContent, _ := commonus.GetDutyAssociatedItems(scoreFlowKey)
targettitle, detailedRulesTitle, detailedRulesInfo, unitStr, flowContent, _, _ := commonus.GetDutyAssociatedItems(scoreFlowKey)
title := flowContent.Reason
if title == "" {
if detailedRulesInfo != "" {
@ -1580,7 +1580,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandle(scoreFlowKey, clickEnter
}
}
}
targettitle, detailedRulesTitle, detailedRulesInfo, unitStr, flowContent, _ := commonus.GetDutyAssociatedItems(scoreFlowKey)
targettitle, detailedRulesTitle, detailedRulesInfo, unitStr, flowContent, _, _ := commonus.GetDutyAssociatedItems(scoreFlowKey)
title := flowContent.Reason
if title == "" {
if detailedRulesInfo != "" {

30
gin_server_admin/commonus/publichaneld.go

@ -657,7 +657,7 @@ func ClientIdentity() (isTrue bool, redisUserInfo testpage.RedisUserInfo) {
redisUserInfo, isTrue = getPeopleInfo()
return
}
isTrue = true
isTrue = false
return
}
@ -1410,11 +1410,20 @@ func GetSendMsgUser(id, departmentId int64) (isTrue bool, userStr string) {
//获取企业微信信息接收人数组形态
func GetSendMsgUserAry(id, departmentId int64) (isTrue bool, userStr []string) {
isTrue = false
err, departmentCont := GetBranchFactory(departmentId)
if err != true {
// err, departmentCont := GetBranchFactory(departmentId)
// if err != true {
// return
// }
// err, roleGroup, _ := GetOfficeWork(id, int64(departmentCont.WechatId))
departWhere := MapOut()
departWhere["id"] = departmentId
departmentCont, errDepart := GetNewOrgCont(departWhere, "wechat_organization_id")
if errDepart != nil {
return
}
err, roleGroup, _ := GetOfficeWork(id, int64(departmentCont.WechatId))
err, roleGroup, _ := GetOfficeWork(id, int64(departmentCont.WechatOrganizationId))
if err != true {
return
}
@ -1468,7 +1477,7 @@ returnData
#detailedRulesTitle 明细
#detailedRulesInfo 明细说明
*/
func GetDutyAssociatedItems(orderId string) (targettitle, detailedRulesTitle, detailedRulesInfo, unit string, flowContent assessmentmodel.ScoreFlow, isTrue bool) {
func GetDutyAssociatedItems(orderId string) (targettitle, detailedRulesTitle, detailedRulesInfo, unit string, flowContent assessmentmodel.ScoreFlow, qualEvalInfo assessmentmodel.QualitativeEvaluation, isTrue bool) {
flowContent, isTrue = GetScoreFlow(orderId)
if isTrue != true {
return
@ -1577,8 +1586,10 @@ func GetWorkUser(key string) (userCont testpage.PersonalDetails, isTrue bool) {
}
type sendMsg struct {
Title string `json:"title"`
Unit string `json:"unit"` //单位"`
Title string `json:"title"`
Unit string `json:"unit"` //单位"`
Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年"`
CycleAttres int `json:"cycleattr"` //辅助计数"`
}
//查看定量考核数据
@ -1588,6 +1599,8 @@ func LookRationInfo(id int64) (cont sendMsg, isTrue bool) {
if isTrue == false {
return
}
cont.Cycles = qeInfo.Cycles
cont.CycleAttres = qeInfo.CycleAttres
targetCong, isTrues := GetTargetInfo(qeInfo.Target)
if isTrues == false {
return
@ -1651,6 +1664,7 @@ func StepAddData(flowID, roleGroupId int64, nextStep, stepName, typeclass, state
evalProCont.State = state
evalProCont.TypeClass = typeclass
evalProCont.Time = time.Now().Unix()
evalProCont.StartTime = time.Now().Unix()
evalProCont.RoleGroup = roleGroupId
flowStepJson, flowStepErr := json.Marshal(flowStepAryMap)
if flowStepErr == nil {
@ -1734,6 +1748,7 @@ func StepAddDataEs(flowID, roleGroupId int64, nextStep, stepName, typeclass, sta
evalProCont.State = state
evalProCont.TypeClass = typeclass
evalProCont.Time = time.Now().Unix()
evalProCont.StartTime = time.Now().Unix()
evalProCont.RoleGroup = roleGroupId
flowStepJson, flowStepErr := json.Marshal(flowStepAryMap)
if flowStepErr == nil {
@ -3472,6 +3487,7 @@ func AddWeight(group, dimension, derpatment, target string, score, class int64)
//获取定量考核目标设定
func GetQuantitativeConfig(whereData interface{}) (cont assessmentmodel.QuantitativeConfig) {
global.GVA_DB_Performanceappraisal.Where(whereData).First(&cont)
fmt.Printf("TargrtCont------1------>%v\n", cont)
return
}

34
gin_server_admin/commonus/timeSub.go

@ -167,10 +167,16 @@ func TimeStampToDate(timeStamp int64, timeType int) (dateStr string) {
datMonthFloat, datMonthFloatErr := strconv.ParseFloat(dayMonth, 10)
if datMonthFloatErr == nil {
dateStr = strconv.FormatFloat(math.Ceil(datMonthFloat/3), 'f', -1, 64)
} else {
dateStr = "1"
}
dateStr = "1"
// fmt.Printf("dayMonth ---------->%v-----dateStr-->%v---datMonthFloat--->%v---datMonthFloatErr-->%v\n", dayMonth, dateStr, datMonthFloat, datMonthFloatErr)
return
case 14:
timeTemplate = "20060102"
case 15:
timeTemplate = "01-02"
default:
timeTemplate = "2006-01-02 15:04:05" //常规类型
}
@ -477,3 +483,29 @@ func AppointTimeFrontMonth(timeVal time.Time, diff int) (startTime, endTime int6
endTime = time.Date(lastMonthEndDay.Year(), lastMonthEndDay.Month(), lastMonthEndDay.Day(), 23, 59, 59, 0, timeVal.Location()).Unix()
return
}
//获取上月月份,起止时间
func GetLastMonth() (yearMonth, startMonth, endMonth string) {
dataTypeAll := "2006-01-02"
dataType := "2006-01"
year, month, _ := time.Now().Date()
thisMonth := time.Date(year, month, 1, 0, 0, 0, 0, time.Local)
startMonth = thisMonth.AddDate(0, -1, 0).Format(dataTypeAll)
endMonth = thisMonth.AddDate(0, 0, -1).Format(dataTypeAll)
yearMonth = thisMonth.AddDate(0, -1, 0).Format(dataType)
// fmt.Printf("year------>%v------year------->%v---thisMonth---->%v---start---->%v---end---->%v---yearMonth---->%v\n", year, month, thisMonth, startMonth, endMonth, yearMonth)
return
}
//获取指定月的起止时间
func GetAppointMonthStarAndEndTime(dayTime string) (startTime, endTime int64) {
dataTypeAll := "2006-01-02"
dayTime = fmt.Sprintf("%v-%v", dayTime, "01")
firstToTime := StringToTimeIng("d", dayTime)
startTimeStr := fmt.Sprintf("%v 00:00:00", firstToTime.AddDate(0, 0, 0).Format(dataTypeAll))
endTimeStr := fmt.Sprintf("%v 23:59:59", firstToTime.AddDate(0, 1, -1).Format(dataTypeAll))
// startTime = dayTime
startTime, _ = DateToTimeStampEs(startTimeStr)
endTime, _ = DateToTimeStampEs(endTimeStr)
return
}

10
gin_server_admin/middleware/myjwt.go

@ -214,14 +214,14 @@ func ScanCodeLogin() gin.HandlerFunc {
userToken := c.Request.Header.Get("user-token")
userAgent := c.Request.Header.Get("User-Agent")
redisFileKey := "ScanCode:Authentication:LoginApi_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + userKey
if userKey == "" || userToken == "" || userAgent == "" {
response.FailWithDetailed(gin.H{"reload": true, "code": 101}, "未登录或非法访问", c)
response.FailWithDetailed(gin.H{"reload": true, "code": 1001}, "未登录或非法访问", c)
c.Abort()
return
}
redisFileKey := "ScanCode:Authentication:LoginApi_" + global.GVA_CONFIG.RedisPrefix.Alias + "_" + userKey
// userKeyInt, userKeyIntErr := strconv.ParseInt(userKey, 10, 64)
// if userKeyIntErr != nil {
// response.FailWithDetailed(gin.H{"reload": true, "code": 2, "userKey": userKey}, "未登录或非法访问", c)
@ -237,13 +237,13 @@ func ScanCodeLogin() gin.HandlerFunc {
var myCustomIdentify commonus.ScanCodeLogin
if isTrues != true {
response.FailWithDetailed(gin.H{"reload": true, "code": 102, "key": redisFileKey, "tokenInfo": tokenInfo, "redisClient": redisClient}, "您的帐户异地登陆或令牌失效", c)
response.FailWithDetailed(gin.H{"reload": true, "code": 1002, "key": redisFileKey, "tokenInfo": tokenInfo, "redisClient": redisClient}, "您的帐户异地登陆或令牌失效", c)
c.Abort()
return
} else {
tokenErr := mapstructure.Decode(tokenInfo, &myCustomIdentify)
if tokenErr != nil {
response.FailWithDetailed(gin.H{"reload": true, "code": 103, "tokenErr": tokenErr}, "您的令牌失效", c)
response.FailWithDetailed(gin.H{"reload": true, "code": 1003, "tokenErr": tokenErr}, "您的令牌失效", c)
c.Abort()
return
}

1
gin_server_admin/model/assessmentmodel/performance_appraisal.go

@ -73,6 +73,7 @@ type EvaluationProcess struct {
RoleGroup int64 `json:"rolegroup" gorm:"column:ep_role_group;type:bigint(20) unsigned;default:0;not null;comment:角色组"`
TypeClass int `json:"type" gorm:"column:ep_type;type:tinyint(1) unsigned;default:1;not null;comment:1、定性;2、定量"`
Participants string `json:"participants" gorm:"column:ep_participants;type:mediumtext;comment:参与人"`
StartTime int64 `json:"starttime" gorm:"column:ep_start_time;type:bigint(20) unsigned;default:0;not null;comment:流程开始时间"`
}
func (EvaluationProcess *EvaluationProcess) TableName() string {

2
gin_server_admin/router/assessment/assessmentrouter.go

@ -208,5 +208,7 @@ func (s *AssessmentRouter) InitEvaluationRouter(Router *gin.RouterGroup) {
//考核新接口
dutyIndexCodeRouter.POST("newqualitative", authorityIndexApi.NewQualitative) // 新定性考核列表
dutyIndexCodeRouter.POST("newgetqualdetailedtarget", authorityIndexApi.NewGetQualDetailedTarget) //获取新定性考核详细指标
dutyIndexCodeRouter.POST("examineflow", authorityIndexApi.ExamineFlow) // 流程图
}
}

3
gin_server_admin/router/system/sys_base.go

@ -22,6 +22,9 @@ func (s *BaseRouter) InitBaseRouter(Router *gin.RouterGroup) (R gin.IRoutes) {
//Oauth2.0
baseRouter.POST("oauth2", customApi.OauthTwo)
baseRouter.POST("singlesignon", customApi.SingleSignOn) //单点登录
//退出
baseRouter.POST("signout", customApi.SignOut) //单点登录
}
return baseRouter
}

2
gin_server_admin/router/systemadmin/dutyassess.go

@ -19,6 +19,8 @@ func (a *AdminRouter) InitStaffRouter(Router *gin.RouterGroup) {
adminRouter.POST("getdepartevaluate", authorityApi.GetDepartEvaluate) //获取部门考核列表
adminRouter.POST("getdepartmentassesslist", authorityApi.GetDepartmentAssessList) //获取考核列表
adminRouter.POST("lookquantitativeconfig", authorityApi.LookQuantitativeConfig) // 查看定量考核目标设定
adminRouter.POST("eitequantitativeconfig", authorityApi.EiteQuantitativeConfig) // 编辑定量考核目标设定
adminRouter.POST("delquantitativeconfig", authorityApi.DelQuantitativeConfig) // 删除定量考核目标设定
adminRouter.POST("selectdutylist", authorityApi.SelectDutyList) //获取定性考核列表用于下拉列表
adminRouter.POST("dutydepartmentlist", authorityApi.DutyDepartmentList) //获取定性考核列表用于列表展示

9
gin_server_admin/utils/redishandel/myredis.go

@ -76,6 +76,15 @@ func (r *RedisStoreType) Get(key string) (bool, string) {
return true, err.Val()
}
//删除键
func (r *RedisStoreType) DelKey(key string) bool {
err := r.RedisDb.Del(r.Context, r.PreKey+key).Err()
if err != nil {
return false
}
return true
}
//哈希操作
/*
获取单个哈希键值

Loading…
Cancel
Save