package postweb import ( "encoding/json" "fmt" "key_performance_indicators/models/modelshr" "key_performance_indicators/models/modelskpi" "key_performance_indicators/overall" "key_performance_indicators/overall/publicmethod" "strconv" "strings" "time" "github.com/gin-gonic/gin" ) //岗位指标相关操作 // 获取指定人要考核的项目列表 func (a *ApiMethod) GetPostTarget(c *gin.Context) { var receivedValue getPostManTargetList err := c.ShouldBindJSON(&receivedValue) if err != nil { publicmethod.Result(100, err, c) return } if receivedValue.Id == "" { publicmethod.Result(101, receivedValue, c) return } if receivedValue.Class == 0 { receivedValue.Class = 1 } //获取被考核人基本西悉尼 var userCont modelshr.PersonArchives err = userCont.GetCont(map[string]interface{}{"`key`": receivedValue.Id}, "`company`", "`maindeparment`", "`admin_org`", "`position`") if err != nil { publicmethod.Result(107, err, c) return } //获取登录人信息 context, _ := publicmethod.LoginMyCont(c) var qualitSchemeList []modelskpi.QualitativeEvaluationScheme err = overall.CONSTANT_DB_KPI.Raw("SELECT q.* FROM qualitative_evaluation_scheme q Where q.state = 1 AND `attribute` = ? AND q.target_id = some (SELECT target_id FROM target_report tr WHERE tr.type = 2 AND tr.department_id = ? AND tr.post_id = ? AND tr.man_key = ?)", receivedValue.Class, userCont.MainDeparment, userCont.Position, context.Key).Scan(&qualitSchemeList).Error if err != nil || len(qualitSchemeList) < 1 { publicmethod.Result(107, err, c) return } var outDataAry []outPostManTargetList for _, v := range qualitSchemeList { // jsonStr, _ := json.Marshal(v) // fmt.Printf("v----------->%v\n", string(jsonStr)) var outCont outPostManTargetList outCont.Id = strconv.FormatInt(v.Id, 10) outCont.Class = v.Attribute outCont.Title = v.Title if v.Attribute == 1 { if v.Source == 1 { //岗位 var postTarDeta modelskpi.PostTargetDetails postTarDeta.GetCont(map[string]interface{}{"`id`": v.DetailsId}, "`punishmode`") outCont.AddReduce = postTarDeta.Punishmode } else { //部门 var departTarDeta modelskpi.DetailedTarget departTarDeta.GetCont(map[string]interface{}{"`dt_id`": v.DetailsId}, "`dt_add_reduce`") outCont.AddReduce = departTarDeta.AddReduce } } outDataAry = append(outDataAry, outCont) } publicmethod.Result(0, outDataAry, c) } // 定性指标列表 func (a *ApiMethod) GetPostNature(c *gin.Context) { var receivedValue publicmethod.PublicId err := c.ShouldBindJSON(&receivedValue) if err != nil { publicmethod.Result(100, err, c) return } if receivedValue.Id == "" { publicmethod.Result(101, receivedValue, c) return } //获取被考核人基本信息 var userCont modelshr.PersonArchives err = userCont.GetCont(map[string]interface{}{"`key`": receivedValue.Id}, "`company`", "`maindeparment`", "`admin_org`", "`position`") if err != nil { publicmethod.Result(107, err, c) return } //获取登录人信息 context, _ := publicmethod.LoginMyCont(c) //获取被考核人本岗位的考核项目 var itemList []modelskpi.ShemePeople err = overall.CONSTANT_DB_KPI.Where("`state` = 1 AND `tr_type` = 2 AND `attribute` = 1 AND `run_state` <> 2 AND `org_id` = ? AND `post_id` = ? AND `man_key` = ?", userCont.AdminOrg, userCont.Position, context.Key).Find(&itemList).Error if err != nil || len(itemList) < 1 { publicmethod.Result(107, err, c) return } var targetId []int64 //获取指标内容 var outDataAry []outPostManTargetList for _, v := range itemList { if publicmethod.IsInTrue[int64](v.TargetId, targetId) == false { var tarCont modelskpi.PostTarget tarCont.GetCont(map[string]interface{}{"`id`": v.TargetId}, "`title`") var outCont outPostManTargetList outCont.Id = strconv.FormatInt(v.TargetId, 10) outCont.Title = tarCont.Title outCont.Class = v.Attribute if v.Source == 1 { //岗位 var postTarDeta modelskpi.PostTargetDetails postTarDeta.GetCont(map[string]interface{}{"`id`": v.DetailsId}, "`punishmode`") outCont.AddReduce = postTarDeta.Punishmode } else { //部门 var departTarDeta modelskpi.DetailedTarget departTarDeta.GetCont(map[string]interface{}{"`dt_id`": v.DetailsId}, "`dt_add_reduce`") outCont.AddReduce = departTarDeta.AddReduce } outCont.UserKey = receivedValue.Id outCont.DimensionId = strconv.FormatInt(v.DimensionId, 10) outDataAry = append(outDataAry, outCont) targetId = append(targetId, v.TargetId) } } publicmethod.Result(0, outDataAry, c) } // 获取定性指标子栏目列表 func (a *ApiMethod) GetPostNatureSonTarget(c *gin.Context) { var receivedValue getSonTarList err := c.ShouldBindJSON(&receivedValue) if err != nil { publicmethod.Result(100, err, c) return } if receivedValue.Id == "" { publicmethod.Result(101, receivedValue, c) return } var sonTargetList []modelskpi.PostSonTarget gormDb := overall.CONSTANT_DB_KPI.Model(&modelskpi.PostSonTarget{}).Where("`parent_id` = ?", receivedValue.Id) if receivedValue.OrgId != "" { gormDb = gormDb.Where("`depart` = ?", receivedValue.OrgId) } if receivedValue.PostId != "" { gormDb = gormDb.Where("`depart_post` = ?", receivedValue.PostId) } err = gormDb.Find(&sonTargetList).Error if err != nil || len(sonTargetList) < 1 { publicmethod.Result(104, err, c) return } publicmethod.Result(0, sonTargetList, c) } // 获取定量指标列表 func (a *ApiMethod) GetPostRation(c *gin.Context) { var receivedValue publicmethod.PublicId err := c.ShouldBindJSON(&receivedValue) if err != nil { publicmethod.Result(100, err, c) return } if receivedValue.Id == "" { publicmethod.Result(101, receivedValue, c) return } //获取被考核人基本信息 var userCont modelshr.PersonArchives err = userCont.GetCont(map[string]interface{}{"`key`": receivedValue.Id}, "`company`", "`maindeparment`", "`admin_org`", "`position`") if err != nil { publicmethod.Result(107, err, c) return } //获取登录人信息 context, _ := publicmethod.LoginMyCont(c) //获取被考核人本岗位的考核项目 var itemList []modelskpi.ShemePeople err = overall.CONSTANT_DB_KPI.Where("`state` = 1 AND `tr_type` = 2 AND `attribute` = 2 AND `run_state` <> 2 AND `org_id` = ? AND `post_id` = ? AND `man_key` = ?", userCont.AdminOrg, userCont.Position, context.Key).Find(&itemList).Error if err != nil || len(itemList) < 1 { publicmethod.Result(107, err, c) return } var targetId []int64 //获取指标内容 var outDataAry []outPostRation for _, v := range itemList { if publicmethod.IsInTrue[int64](v.TargetId, targetId) == false { var outCont outPostRation outCont.Id = strconv.FormatInt(v.TargetId, 10) outCont.Name = v.Title outCont.UserKey = receivedValue.Id outCont.DimensionId = strconv.FormatInt(v.DimensionId, 10) outDataAry = append(outDataAry, outCont) } } publicmethod.Result(0, outDataAry, c) } // 获取岗位定性考核指标细则列表 func (a *ApiMethod) GetPostDeimensoInfo(c *gin.Context) { var receivedValue getNatureDimeList err := c.ShouldBindJSON(&receivedValue) if err != nil { publicmethod.Result(100, err, c) return } if receivedValue.UserKey == "" { publicmethod.Result(101, receivedValue, c) return } if receivedValue.DimensionId == "" { publicmethod.Result(101, receivedValue, c) return } if receivedValue.TargetId == "" { publicmethod.Result(101, receivedValue, c) return } //获取被考核人基本信息 var userCont modelshr.PersonArchives err = userCont.GetCont(map[string]interface{}{"`key`": receivedValue.UserKey}, "`company`", "`maindeparment`", "`admin_org`", "`position`") if err != nil { publicmethod.Result(107, err, c) return } //获取登录人信息 context, _ := publicmethod.LoginMyCont(c) //获取被考核人本岗位的考核项目 var itemList []modelskpi.ShemePeople gormDb := overall.CONSTANT_DB_KPI.Where("`state` = 1 AND `tr_type` = 2 AND `attribute` = 1 AND `run_state` <> 2 AND `dimension_id` = ? AND `target_id` = ? AND `org_id` = ? AND `post_id` = ? AND `man_key` = ?", receivedValue.DimensionId, receivedValue.TargetId, userCont.AdminOrg, userCont.Position, context.Key) if receivedValue.Sontargetid != "" { gormDb = gormDb.Where("`son_target_id` = ?", receivedValue.Sontargetid) } gormDb = publicmethod.PageTurningSettings(gormDb, receivedValue.Page, receivedValue.PageSize) errGorm := gormDb.Order("`son_target_id` DESC").Find(&itemList).Error var total int64 totalErr := gormDb.Count(&total).Error if totalErr != nil { total = 0 } if errGorm != nil || len(itemList) < 1 { publicmethod.Result(107, err, c) return } var outList []outNatureDimeCont for _, v := range itemList { var outCont outNatureDimeCont outCont.Id = v.Id outCont.VersionNumber = v.VersionNumber // 版本编号"` outCont.CompanyId = v.CompanyId // 归属公司"` outCont.DepartmentId = v.DepartmentId // 归属部门"` outCont.OrgId = v.OrgId // 归属行政组织"` outCont.PostId = v.PostId // 归属岗位"` outCont.Title = v.Title //考核项名称"` outCont.DimensionId = v.DimensionId //维度"` outCont.TargetId = v.TargetId // 指标"` outCont.SonTargetId = v.SonTargetId //子栏目"` outCont.DetailsId = v.DetailsId //细则"` outCont.Attribute = v.Attribute // 属性 1:定性考核;2:定量考核"` outCont.MinScore = v.MinScore // 最小分*100保存"` outCont.MaxScore = v.MaxScore //最大分*100保存"` outCont.ScoringMethod = v.ScoringMethod //计分方式(1:自动;2:手动)"` outCont.State = v.State //状态(1:启用;2:禁用;3:删除)"` outCont.Addtime = v.Addtime //添加时间"` outCont.Eitetime = v.Eitetime // 编辑时间"` outCont.CensorType = v.CensorType //检查方式(1:现场检查;2:资料检查;3:事件触发)"` outCont.Source = v.Source //来源(1:岗位;2:部门引用)"` outCont.RunState = v.RunState //运行状态(1:启用;2:禁用;3:观察)"` outCont.Type = v.Type //类型(1:公司级;2:部门级)"` outCont.ReportPerson = v.ReportPerson //上报人"` outCont.ManDepartment = v.ManDepartment //提报人所在部门"` outCont.Class = v.Class //1:定性考核;2:定量考核"` outCont.Level = v.Level //类型(1:指标;2:子目标;3:细则)"` outCont.Punishmode = v.Punishmode //处罚方式 1:扣分;2:现金处罚;3:扣分加现金 outCont.Maxmoney = v.Maxmoney //最高罚款 outCont.Minmoney = v.Minmoney //最低罚款 if v.CensorType != "" { outCont.CensorTypeAry = strings.Split(v.CensorType, ",") } if v.DetailsId != 0 { //获取指标信息 if v.Source == 1 { //岗位 var targetCont modelskpi.PostTargetDetails targetCont.GetCont(map[string]interface{}{"`id`": v.DetailsId}, "`content`", "`add_reduce`", "`censor_cont`", "`company`") outCont.Context = targetCont.Content //指标说明"` outCont.AddReduce = targetCont.AddReduce //1:减少;2:增加;3:无属性,现场确认加或减"` outCont.CensorCont = targetCont.CensorCont //检查依据"` outCont.Unity = targetCont.Company } else { //部门 var departTarDeta modelskpi.DetailedTarget departTarDeta.GetCont(map[string]interface{}{"`dt_id`": v.DetailsId}, "`dt_add_reduce`", "`dt_company`") outCont.Context = departTarDeta.Content //指标说明"` outCont.AddReduce = departTarDeta.AddReduce //1:减少;2:增加;3:无属性,现场确认加或减"` outCont.CensorCont = departTarDeta.CensorCont //检查依据"` outCont.Unity = departTarDeta.Company } } if v.MinScore != 0 { outCont.ScoreStr = fmt.Sprintf("%v-%v", v.MinScore, v.MaxScore) } else { outCont.ScoreStr = fmt.Sprintf("%v", v.MaxScore) } if v.Minmoney != 0 { outCont.MoneyStr = fmt.Sprintf("%v-%v", v.Minmoney, v.Maxmoney) } else { outCont.MoneyStr = fmt.Sprintf("%v", v.Maxmoney) } outCont.UserKey = receivedValue.UserKey outList = append(outList, outCont) } publicmethod.ResultList(0, receivedValue.Page, receivedValue.PageSize, total, int64(len(outList)), outList, c) } // 获取被考核人定性指标细则详细内容 func (a *ApiMethod) GetNaturePostDimerons(c *gin.Context) { var receivedValue postNaturcInfo err := c.ShouldBindJSON(&receivedValue) if err != nil { publicmethod.Result(100, err, c) return } if receivedValue.UserKey == "" { publicmethod.Result(101, receivedValue, c) return } if receivedValue.Id == "" { publicmethod.Result(101, receivedValue, c) return } var shemeCont modelskpi.QualitativeEvaluationScheme errSheme := shemeCont.GetCont(map[string]interface{}{"`id`": receivedValue.Id}) if errSheme != nil { publicmethod.Result(107, receivedValue, c) return } var outCont outNatureDimePostCont outCont.Id = shemeCont.Id outCont.VersionNumber = shemeCont.VersionNumber // 版本编号"` outCont.CompanyId = shemeCont.CompanyId // 归属公司"` outCont.DepartmentId = shemeCont.DepartmentId // 归属部门"` outCont.OrgId = shemeCont.OrgId // 归属行政组织"` outCont.PostId = shemeCont.PostId // 归属岗位"` outCont.Title = shemeCont.Title //考核项名称"` outCont.DimensionId = shemeCont.DimensionId //维度"` outCont.TargetId = shemeCont.TargetId // 指标"` outCont.SonTargetId = shemeCont.SonTargetId //子栏目"` outCont.DetailsId = shemeCont.DetailsId //细则"` outCont.Attribute = shemeCont.Attribute // 属性 1:定性考核;2:定量考核"` outCont.MinScore = shemeCont.MinScore // 最小分*100保存"` outCont.MaxScore = shemeCont.MaxScore //最大分*100保存"` outCont.ScoringMethod = shemeCont.ScoringMethod //计分方式(1:自动;2:手动)"` outCont.State = shemeCont.State //状态(1:启用;2:禁用;3:删除)"` outCont.Addtime = shemeCont.Addtime //添加时间"` outCont.Eitetime = shemeCont.Eitetime // 编辑时间"` outCont.CensorType = shemeCont.CensorType //检查方式(1:现场检查;2:资料检查;3:事件触发)"` outCont.Source = shemeCont.Source //来源(1:岗位;2:部门引用)"` outCont.RunState = shemeCont.RunState //运行状态(1:启用;2:禁用;3:观察)"` outCont.Punishmode = shemeCont.Punishmode //处罚方式 1:扣分;2:现金处罚;3:扣分加现金 outCont.Maxmoney = shemeCont.Maxmoney //最高罚款 outCont.Minmoney = shemeCont.Minmoney //最低罚款 if shemeCont.CensorType != "" { outCont.CensorTypeAry = strings.Split(shemeCont.CensorType, ",") } if shemeCont.DetailsId != 0 { //获取指标信息 if shemeCont.Source == 1 { //岗位 var targetCont modelskpi.PostTargetDetails targetCont.GetCont(map[string]interface{}{"`id`": shemeCont.DetailsId}, "content", "add_reduce", "censor_cont") outCont.Context = targetCont.Content //指标说明"` outCont.AddReduce = targetCont.AddReduce //1:减少;2:增加;3:无属性,现场确认加或减"` outCont.CensorCont = targetCont.CensorCont //检查依据"` } else { //部门 var departTarDeta modelskpi.DetailedTarget departTarDeta.GetCont(map[string]interface{}{"`dt_id`": shemeCont.DetailsId}, "`dt_add_reduce`") outCont.Context = departTarDeta.Content //指标说明"` outCont.AddReduce = departTarDeta.AddReduce //1:减少;2:增加;3:无属性,现场确认加或减"` outCont.CensorCont = departTarDeta.CensorCont //检查依据"` } } if shemeCont.MinScore != 0 { outCont.ScoreStr = fmt.Sprintf("%v-%v", shemeCont.MinScore, shemeCont.MaxScore) outCont.ScoreState = 2 } else if shemeCont.MinScore > 0 && shemeCont.MaxScore <= 0 { outCont.ScoreStr = fmt.Sprintf("%v", float64(shemeCont.MinScore)/100) outCont.ScoreState = 1 } else if shemeCont.MinScore <= 0 && shemeCont.MaxScore > 0 { outCont.ScoreStr = fmt.Sprintf("%v", float64(shemeCont.MaxScore)/100) outCont.ScoreState = 1 } else { outCont.ScoreStr = "0" outCont.ScoreState = 3 } if shemeCont.Minmoney != 0 { outCont.MoneyStr = fmt.Sprintf("%v-%v", shemeCont.Minmoney, shemeCont.Maxmoney) outCont.MoneyState = 2 } else if shemeCont.Minmoney > 0 && shemeCont.Maxmoney <= 0 { outCont.MoneyStr = fmt.Sprintf("%v", float64(shemeCont.Minmoney)/100) outCont.MoneyState = 1 } else if shemeCont.Minmoney <= 0 && shemeCont.Maxmoney > 0 { outCont.MoneyStr = fmt.Sprintf("%v", float64(shemeCont.Maxmoney)/100) outCont.MoneyState = 1 } else { outCont.MoneyStr = "0" outCont.MoneyState = 3 } // if shemeCont.Minmoney != 0 { // outCont.MoneyStr = fmt.Sprintf("%v-%v", shemeCont.Minmoney, shemeCont.Maxmoney) // } else { // outCont.MoneyStr = fmt.Sprintf("%v", shemeCont.Maxmoney) // } outCont.UserKey = receivedValue.UserKey publicmethod.Result(0, outCont, c) } // 提交个人岗位定性考核数据 func (a *ApiMethod) SendUsNatureEvaluation(c *gin.Context) { var receivedValue sendMyEvaluationData err := c.ShouldBindJSON(&receivedValue) if err != nil { publicmethod.Result(100, err, c) return } if receivedValue.Id == "" { publicmethod.Result(101, receivedValue, c) return } var postShemeCont modelskpi.QualitativeEvaluationScheme err = postShemeCont.GetCont(map[string]interface{}{"`id`": receivedValue.Id}) if err != nil { publicmethod.Result(107, err, c) return } if receivedValue.UserKey == "" { publicmethod.Result(101, receivedValue, c) return } //获取被考核人基本信息 var userCont modelshr.PersonArchives err = userCont.GetCont(map[string]interface{}{"`key`": receivedValue.UserKey}, "`company`", "`maindeparment`", "`admin_org`", "`position`") if err != nil { publicmethod.Result(107, err, c) return } if receivedValue.AddOrDecrease == 0 { receivedValue.AddOrDecrease = 2 } if receivedValue.Punishmode == 0 { receivedValue.Punishmode = 1 } var scoreVal int64 = 0 var moneyVal int64 = 0 isTrue := false var msg string switch receivedValue.Punishmode { case 1: scoreVal, isTrue, msg = judgeScoreOrMoneyIsTrue(receivedValue.ScoreState, receivedValue.Score, postShemeCont.MaxScore, postShemeCont.MinScore) if isTrue != true { publicmethod.Result(1, isTrue, c, msg) return } case 2: moneyVal, isTrue, msg = judgeScoreOrMoneyIsTrue(receivedValue.MoneyState, receivedValue.Money, postShemeCont.Maxmoney, postShemeCont.Minmoney) if isTrue != true { publicmethod.Result(1, isTrue, c, msg) return } case 3: scoreVal, isTrue, msg = judgeScoreOrMoneyIsTrue(receivedValue.ScoreState, receivedValue.Score, postShemeCont.MaxScore, postShemeCont.MinScore) if isTrue != true { publicmethod.Result(1, isTrue, c, msg) return } moneyVal, isTrue, msg = judgeScoreOrMoneyIsTrue(receivedValue.MoneyState, receivedValue.Money, postShemeCont.Maxmoney, postShemeCont.Minmoney) if isTrue != true { publicmethod.Result(1, isTrue, c, msg) return } } if receivedValue.Count == 0 { receivedValue.Count = 1 } currentTime := time.Now().Unix() if receivedValue.HappenTime != "" { happTime, timeErr := publicmethod.DateToTimeStamp(receivedValue.HappenTime) if timeErr == true { currentTime = happTime } } if receivedValue.Rectification == 0 { receivedValue.Rectification = 2 } var correctionTime int64 = 0 if receivedValue.Rectification == 1 { if receivedValue.CorrectionPeriod == "" { publicmethod.Result(1, isTrue, c, "请选择什么时间前整改完成!") return } var corrTimeErr bool = false correctionTime, corrTimeErr = publicmethod.DateToTimeStamp(receivedValue.CorrectionPeriod) if corrTimeErr == false { publicmethod.Result(1, corrTimeErr, c, "请输入整改期限时间格式不对,谢谢!") return } } //获取登录人信息 context, _ := publicmethod.LoginMyCont(c) uuId := publicmethod.GetUUid(1) //流程列表 var flowCont modelskpi.PostWorkflowOrders flowCont.OrderId = uuId //审批单ID"` flowCont.Step = 1 //当前执行到第几步"` flowCont.NextStep = 2 //下一步执行哪个步骤"` flowCont.WorkFlow = "" //工作流(审批json字符串)"` flowCont.CompanyId = userCont.Company //公司"` flowCont.DepartmentId = userCont.MainDeparment //部门"` flowCont.OrgId = userCont.AdminOrg //行政组织"` flowCont.PostId = userCont.Position //岗位"` flowCont.Class = postShemeCont.Attribute //属性1、定性;2、定量"` flowCont.Dimension = postShemeCont.DimensionId //维度"` flowCont.Target = postShemeCont.TargetId //指标"` flowCont.SonTarget = postShemeCont.SonTargetId //指标子栏目"` flowCont.Detailed = postShemeCont.DetailsId //指标细则"` flowCont.Executor = context.Key //执行人"` flowCont.ExecutorDepartment = context.MainDeparment //执行人部门"` flowCont.State = 3 //流程状态 1:草稿;2:驳回;3:审批中;4:归档;5:废弃;6:删除"` flowCont.StartTime = time.Now().Unix() //流程开始时间"` flowCont.Time = time.Now().Unix() //时间"` if len(receivedValue.Enclosure) > 0 { jsonFileList, _ := json.Marshal(receivedValue.Enclosure) flowCont.EnclosureFormat = string(jsonFileList) //附件"` } //定性考核流水 var postNatureFlowCont modelskpi.PostNatureFlow postNatureFlowCont.OrderId = uuId //审批单ID"` postNatureFlowCont.AddOrDecrease = receivedValue.AddOrDecrease //增加或减少(1:增加;2:减少)"` postNatureFlowCont.Score = scoreVal //分值(*100保存)"` postNatureFlowCont.Money = moneyVal //钱(扣款或奖励)*100保存"` postNatureFlowCont.Reason = receivedValue.Reason //这样操作的原因"` postNatureFlowCont.ShemeId = postShemeCont.Id //方案ID"` postNatureFlowCont.ShemeVersion = postShemeCont.VersionNumber //方案版本编号"` postNatureFlowCont.Dimension = postShemeCont.DimensionId //维度"` postNatureFlowCont.Target = postShemeCont.TargetId //指标"` postNatureFlowCont.SonTarget = postShemeCont.SonTargetId //指标子栏目"` postNatureFlowCont.Detailed = postShemeCont.DetailsId //指标细则"` postNatureFlowCont.Year = publicmethod.ComputingTime(currentTime, 1) //年"` postNatureFlowCont.Quarter = publicmethod.ComputingTime(currentTime, 2) //季度"` postNatureFlowCont.Month = publicmethod.ComputingTime(currentTime, 3) //月"` postNatureFlowCont.Week = publicmethod.ComputingTime(currentTime, 4) //周"` postNatureFlowCont.PersonLiable = userCont.Key //责任人"` postNatureFlowCont.CompanyId = userCont.Company //公司"` postNatureFlowCont.DepartmentId = userCont.MainDeparment //部门"` postNatureFlowCont.OrgId = userCont.AdminOrg //行政组织"` postNatureFlowCont.PostId = userCont.Position //岗位"` postNatureFlowCont.Executor = context.Key //执行人"` postNatureFlowCont.ExecutorDepartment = context.MainDeparment //执行人部门"` postNatureFlowCont.Rectification = receivedValue.Rectification //是否需要整改 1、需要整改;2:无需整改"` postNatureFlowCont.CorrectionTime = correctionTime //整改期限"` postNatureFlowCont.HappenTime = currentTime //发生时间"` postNatureFlowCont.HappenCount = receivedValue.Count //发生次数"` postNatureFlowCont.Time = time.Now().Unix() //时间"` //开启事务提交 gormDbAffair := overall.CONSTANT_DB_KPI passorErr := gormDbAffair.Create(&flowCont).Error flowErr := gormDbAffair.Create(&postNatureFlowCont).Error if passorErr == nil && flowErr == nil { addErr := gormDbAffair.Commit().Error publicmethod.Result(0, addErr, c) } else { addErr := gormDbAffair.Rollback().Error publicmethod.Result(104, addErr, c) } // fmt.Printf("%v---%v---%v---%v---%v\n", currentTime, uuId, flowCont, scoreVal, moneyVal) } /* 判断分数是否符合要求 @scoreState 1、定分;2、区间分;3、不定性分值 @score 要操作的数值 @MaxScore 最大值 @minScore 最小值 */ func judgeScoreOrMoneyIsTrue(scoreState int, score string, maxScore, minScore int64) (scoreInt64 int64, isTrue bool, msg string) { isTrue = false switch scoreState { case 2, 3: if score == "" { return } scoreInt64, _ = strconv.ParseInt(score, 10, 64) scoreInt64 = scoreInt64 * 100 if scoreInt64 > maxScore { msg = fmt.Sprintf("您提交的数值超过允许提交的最大值(最大值:%v)!", float64(maxScore)/100) return } if scoreInt64 < minScore { msg = fmt.Sprintf("您提交的数值低于允许提交的最小值(最小值:%v)!", float64(minScore)/100) return } isTrue = true case 1: scoreInt64, _ = strconv.ParseInt(score, 10, 64) scoreInt64 = scoreInt64 * 100 isTrue = true default: msg = "请您输入要操作的数据,谢谢!" return } return }