diff --git a/gin_server_admin/api/admin/dutyassess/assess.go b/gin_server_admin/api/admin/dutyassess/assess.go index fdb38ae..4ea35d7 100644 --- a/gin_server_admin/api/admin/dutyassess/assess.go +++ b/gin_server_admin/api/admin/dutyassess/assess.go @@ -2,6 +2,8 @@ package dutyassess import ( "strconv" + "strings" + "time" "github.com/flipped-aurora/gin-vue-admin/server/api/v1/archiveapi" "github.com/flipped-aurora/gin-vue-admin/server/api/v1/assessment" @@ -483,3 +485,172 @@ func (e *DutyAssessApi) LookQuantitativeConfig(c *gin.Context) { } response.Result(0, outList, "获取成功!", c) } + +//删除部门考核指标(New) +func (d *DutyAssessApi) DelDepartDutyTarger(c *gin.Context) { + var requestData DelDutyDepartTarget + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(101, err, "数据获取失败!", c) + return + } + if requestData.Group == "" { + response.Result(102, err, "数据获取失败!", c) + return + } + if requestData.DeaprtId == "" { + response.Result(103, err, "数据获取失败!", c) + return + } + if requestData.Dimension == "" { + response.Result(104, err, "数据获取失败!", c) + return + } + if requestData.TargetId == "" { + response.Result(105, err, "数据获取失败!", c) + return + } + + eiteCont := commonus.MapOut() + eiteCont["State"] = 3 + eiteCont["qe_eitetime"] = time.Now().Unix() + delErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_target` = ?", requestData.Group, requestData.DeaprtId, requestData.Dimension, requestData.TargetId).Updates(eiteCont).Error + if delErr != nil { + response.Result(106, delErr, "数据处理失败!", c) + return + } + response.Result(0, eiteCont, "处理成功", c) +} + +//删除部门考核方案 +func (d *DutyAssessApi) DelDepartDuty(c *gin.Context) { + var requestData DelDutyDepartTarget + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(101, err, "数据获取失败!", c) + return + } + if requestData.Group == "" { + response.Result(102, err, "数据获取失败!", c) + return + } + if requestData.DeaprtId == "" { + response.Result(103, err, "数据获取失败!", c) + return + } + + eiteCont := commonus.MapOut() + eiteCont["State"] = 3 + eiteCont["qe_eitetime"] = time.Now().Unix() + delErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_group` = ? AND `qe_accept_evaluation` = ? ", requestData.Group, requestData.DeaprtId).Updates(eiteCont).Error + if delErr != nil { + response.Result(106, delErr, "数据处理失败!", c) + return + } + response.Result(0, eiteCont, "处理成功", c) +} + +//获取定性考核相关部门 +func (d *DutyAssessApi) GetDepartForDuty(c *gin.Context) { + var requestData LookTargetContList + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(101, err, "数据获取失败!", c) + return + } + if requestData.Group == "" { + response.Result(102, err, "参数错误!无法获取数据", c) + return + } + if requestData.Dimension == "" { + response.Result(103, err, "参数错误!无法获取数据", c) + return + } + if requestData.TargetId == "" { + response.Result(104, err, "参数错误!无法获取数据", c) + return + } + var assessInfor assessmentmodel.Assesstarget + delErr := global.GVA_DB_Performanceappraisal.Where("`group` = ? AND `dimension` = ? AND `targetid` = ?", requestData.Group, requestData.Dimension, requestData.TargetId).First(&assessInfor).Error + if delErr != nil { + response.Result(106, delErr, "获取失败失败!", c) + return + } + var outInfor OutDutyListes + outInfor.DepartmentId, outInfor.DepartmentAry = commonus.GetBranchDepartAry(strings.Split(assessInfor.Departmentmap, ",")) + + // outInfor.Id = strconv.FormatInt(assessInfor.Id, 10) + outInfor.Group = strconv.FormatInt(assessInfor.Group, 10) + //指标信息 + outInfor.Target = strconv.FormatInt(assessInfor.TargetId, 10) + tarCont, _ := commonus.GetTargetInfo(assessInfor.TargetId) + outInfor.TargetName = tarCont.Title + //维度信息 + dutyClassCont, _ := commonus.GetDutyClassInfo(tarCont.Dimension) + outInfor.Dimension = strconv.FormatInt(tarCont.Dimension, 10) + outInfor.DimensionName = dutyClassCont.Title + + outInfor.Content = "" //指标说明 + outInfor.Unit = tarCont.Uniteing //单位"` + outInfor.ReferenceScore = 0 //标准分值"` + outInfor.Cycles = tarCont.Cycles //1:班;2:天;3:周;4:月;5:季度;6:年"` + outInfor.CycleAttres = tarCont.CycleAttres //辅助计数"` + outInfor.State = 1 + + outInfor.DepartmentId, outInfor.DepartmentAry = commonus.GetBranchDepartAry(strings.Split(assessInfor.Departmentmap, ",")) + + shenPiRen := strings.Split(tarCont.Report, ",") + outInfor.UserList = shenPiRen + for _, v := range shenPiRen { + usCont, usErr := commonus.GetWorkUser(v) + // GetWorkUser + if usErr == true { + var userCont QualEvalArrt + userCont.Id = v + userCont.Name = usCont.Name + userCont.Icon = usCont.Icon + _, groupInfo := commonus.GetGroupCont(usCont.Group) + userCont.GroupName = groupInfo.Name + _, bfInfo := commonus.GetBranchFactory(usCont.DepartmentId) + userCont.DepartmentName = bfInfo.Name + userCont.Number = usCont.Number + outInfor.UserListAry = append(outInfor.UserListAry, userCont) + } + } + response.Result(0, outInfor, "获取失败失败!", c) +} + +//修改已知定性考核指标关联部门 +func (d *DutyAssessApi) EiteDepartForDuty(c *gin.Context) { + var requestData EiteDutyForDepart + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(101, err, "数据获取失败!", c) + return + } + if requestData.Group == "" { + response.Result(102, err, "参数错误!无法获取数据", c) + return + } + if requestData.Dimension == "" { + response.Result(103, err, "参数错误!无法获取数据", c) + return + } + if requestData.TargetId == "" { + response.Result(104, err, "参数错误!无法获取数据", c) + return + } + if len(requestData.DepartAry) < 1 { + response.Result(105, err, "请指定所属部门!", c) + return + } + saveData := commonus.MapOut() + saveData["departmentmap"] = strings.Join(requestData.DepartAry, ",") + saveData["time"] = time.Now().Unix() + delErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Assesstarget{}).Where("`group` = ? AND `dimension` = ? AND `targetid` = ?", requestData.Group, requestData.Dimension, requestData.TargetId).Updates(saveData).Error + if delErr != nil { + response.Result(106, delErr, "编辑失败!", c) + return + } + response.Result(0, delErr, "编辑成功!", c) +} diff --git a/gin_server_admin/api/admin/dutyassess/assesstype.go b/gin_server_admin/api/admin/dutyassess/assesstype.go index 1f3d764..a8fe438 100644 --- a/gin_server_admin/api/admin/dutyassess/assesstype.go +++ b/gin_server_admin/api/admin/dutyassess/assesstype.go @@ -1,12 +1,31 @@ package dutyassess import ( + "sync" + "github.com/flipped-aurora/gin-vue-admin/server/commonus" "github.com/flipped-aurora/gin-vue-admin/server/model/assessmentmodel" ) type DutyAssessApi struct{} +//协程设置 +var syncProcess = sync.WaitGroup{} + +//数据锁统计 +type dataLockStatistics struct { + dataMap []map[string]interface{} + dataErrMap []map[string]interface{} + mutext sync.RWMutex +} + +//读取锁数据 +func (d *dataLockStatistics) readMyDayData() ([]map[string]interface{}, []map[string]interface{}) { + d.mutext.RLock() + defer d.mutext.RUnlock() + return d.dataMap, d.dataErrMap +} + //获取部门考核列表 type getDepartAssObtain struct { commonus.PageSetLimt @@ -127,17 +146,28 @@ type TargetContOutCont struct { Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年"` CycleAttres int `json:"cycleattr"` //辅助计数"` State int `json:"state"` - UserList []string `json:"userlist"` //执行人列表 - UserListAry []QualEvalArrt `json:"userlistary"` //执行人列表 + UserList []string `json:"userlist"` //执行人列表 + UserListAry []QualEvalArrt `json:"userlistary"` //执行人列表 + MinScore float64 `json:"minscore"` //最小分*100保存 + MaxScore float64 `json:"maxscore"` //最大分*100保存 + Score string `json:"score"` //分值 + DutyAssessId string `json:"dutyassessid"` //定性考核ID + MinOrMaxScore string `json:"score"` //参考分值 + DepartIdMap []string `json:"departidmap"` //子栏目部门 + DepartNameMap []string `json:"departnamemap"` //子栏目部门 + ScoreIng string `json:"scoreing"` //分值 + QualEvalId string `json:"qualevalid"` } //定性考核列表输出 type QualEvalArrt struct { - Id string `json:"id"` - Name string `json:"name"` - GroupName string `json:"groupname"` - DepartmentName string `json:"departmentname"` - Icon string `json:"icon"` + Id string `json:"id"` + Name string `json:"name"` + GroupName string `json:"groupname"` + DepartmentName string `json:"departmentname"` + Icon string `json:"icon"` + Number string `json:"number"` + DepartmentMap []string `json:"departmentmap"` } //输出定性考核列表 @@ -180,6 +210,7 @@ type OutDutyListes struct { DepartmentAry []commonus.DepartmentAryType `json:"departmentmap"` UserList []string `json:"userlist"` //执行人列表 UserListAry []QualEvalArrt `json:"userlistary"` //执行人列表 + Group string `json:"group"` } //根据指标ID获取相关信息 @@ -225,14 +256,15 @@ type GetEiteTargetCont struct { //添加 定性考核指标关系指定 type AddQualEval struct { - AcceptDepartmentId []string `json:"parentid"` //接受考核部门 - Dimension string `json:"dimension"` //考核维度 - Type int `json:"type"` //1:定性考核;2:定量考核 - Target string `json:"target"` //考核指标 - TargetSun string `json:"targetsun"` //考核指标子栏目 - TargetSunTitle string `json:"targetsuntitle"` //考核指标子栏目 - Group string `json:"group"` //归属集团 - EvaluationList []QualEvalSunList `json:"evaluationlist"` //测评详情 + AcceptDepartmentId []string `json:"parentid"` //接受考核部门 + Dimension string `json:"dimension"` //考核维度 + Type int `json:"type"` //1:定性考核;2:定量考核 + Target string `json:"target"` //考核指标 + TargetSun string `json:"targetsun"` //考核指标子栏目 + TargetSunTitle string `json:"targetsuntitle"` //考核指标子栏目 + TargetSunDepart []string `json:"targetsundepart"` //指定专属部门 + Group string `json:"group"` //归属集团 + EvaluationList []QualEvalSunList `json:"evaluationlist"` //测评详情 } //定性考核内容 @@ -241,11 +273,14 @@ type QualEvalSunList struct { Title string `json:"title"` //指标说明 Content string `json:"content"` //指标说明 Unit string `json:"unit"` //单位 - ReferenceScore int64 `json:"referencescore"` //标准分值 + ReferenceScore string `json:"referencescore"` //标准分值 Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年 CycleAttres int `json:"cycleattr"` //辅助计数 DepartmentId string `json:"parentid"` //执行考核部门ID Operator []string `json:"userlist"` //考核执行人 + MinScore int64 `json:"minscore"` //最小分*100保存 + MaxScore int64 `json:"maxscore"` //最大分*100保存 + AddOrReduce int `json:"addorreduce"` //1:减少;2:增加 } //添加 定性考核指标关系指定细则 @@ -259,4 +294,165 @@ type LookTargetContList struct { Group string `json:"group"` //归属集团 TargetId string `json:"targetid"` Dimension string `json:"dimension"` //考核维度 + DepartId string `json:"departid"` //部门 +} + +//查看定性指标细则提交参数 +type GetDeitalTarCont struct { + Id string `json:"id"` + AssId string `json:"assid"` +} + +//输出新版指标明细列表 +type NewOutPutDetailedTarget struct { + OutTargetCont + Unit string `json:"unit"` //单位 + Score string `json:"score"` //分值 + AssId string `json:"assid"` +} + +// +type NewEiteDtyDiteCont struct { + GetEiteTargetCont + AssId string `json:"assid"` + Unit string `json:"unit"` //单位 + Score string `json:"score"` //分值 + AddOrReduce int `json:"addorreduce"` //1:减少;2:增加 +} + +//定量考核列表查询 +type rationSelect struct { + Group string `json:"group"` //归属集团 + DepartmentId string `json:"parentid"` //接受考核部门 +} + +//部门考核指标组合列表输出 +type DepartTargetListTop struct { + Id string `json:"id"` + Name string `json:"name"` + Child []DepartTargetList `json:"child"` +} +type DepartTargetList struct { + Id string `json:"id"` + Name string `json:"name"` + Content string `json:"content"` //指标说明 + Unit string `json:"unit"` //单位"` + ReferenceScore int64 `json:"referencescore"` //标准分值"` + State int `json:"state"` + IsTrue int `json:"istrue"` //是否允许修改 +} + +//添加部门考核项目新 +type AddDutyNewContGroup struct { + Group string `json:"group"` //集团 + DepartmentId string `json:"parentid"` //部门 + Year string `json:"year"` //年度 + Child []AddDutyNewCont `json:"child"` //考核细则 +} +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 AddPartMentGuodu struct { + Group int64 `json:"group"` //集团 + DeaprtId int64 `json:"deaprtid"` //部门ID + Dimension int64 `json:"dimension"` //维度 + TargetId int64 `json:"targetid"` //指标ID + SunTargetId int64 `json:"suntargetid"` //子栏目 + DetailedTarget int64 `json:"detailedtarget"` //指标细则 + Operator []string `json:"operator"` //操作人 +} + +//删除部门指标考核获取参数 +type DelDutyDepartTarget struct { + Group string `json:"group"` //归属集团 + DeaprtId string `json:"deaprtid"` //部门ID + TargetId string `json:"targetid"` + Dimension string `json:"dimension"` //考核维度 +} + +//修改已知定性考核指标关联部门 +type EiteDutyForDepart struct { + LookTargetContList + DepartAry []string `json:"departary"` +} + +//考核方案版本列表查询 +type DutyPlanVersio struct { + Group string `json:"group"` //归属集团 + DeaprtId string `json:"deaprtid"` //部门ID + Year string `json:"year"` //年度 + Versio string `json:"versio"` //版本 + VersioNum string `json:"versionum"` //编号 + State int `json:"state"` //状态 +} + +//考核方案版本列表查询输出 +type DutyPlanVersioOut struct { + assessmentmodel.PlanVersio + GroupName string `json:"groupname"` //归属集团 + DeaprtName string `json:"deaprtname"` //部门ID + Time string `json:"time"` +} + +//查看考核方案详情 +type LookDutyVersio struct { + Key string `json:"key"` +} + +//更改状态 +type SetOnOffDutyVersio struct { + LookDutyVersio + IsTrue int `json:"istrue"` //强制删除 + State int `json:"state"` //状态 +} + +//并发输出 +type bingFaOut struct { + Id int64 `json:"id" gorm:"primaryKey;column:sf_id;type:bigint(20) unsigned;not null;comment:Id"` + Key int64 `json:"key" gorm:"column:sf_key;type:bigint(20) unsigned;default:0;not null;comment:识别标志"` + EvaluationPlan int64 `json:"evaluationplan" gorm:"column:sf_evaluation_plan;type:bigint(20) unsigned;default:0;not null;comment:考核方案项目ID"` + Reply int `json:"reply" gorm:"column:sf_reply;type:int(2) unsigned;default:1;not null;comment:状态(0:删除;1:起草;2:审批;3:通过)"` + OrderKey int64 `json:"orderkey" gorm:"column:ep_order_key;type:bigint(20) unsigned;default:0;not null;comment:发起表单key"` + State int `json:"state" gorm:"column:ep_state;type:int(2) unsigned;default:1;not null;comment:1:审批,2:通过;3:驳回;"` +} +type bingFaOutDingLiang struct { + Id int64 `json:"id" gorm:"primaryKey;column:fl_id;type:bigint(20) unsigned;not null;comment:Id;index"` + Key int64 `json:"key" gorm:"column:fl_key;type:bigint(20) unsigned;default:0;not null;comment:识别标志"` + EvaluationPlan string `json:"evaluationplan" gorm:"column:fl_evaluation_id;type:mediumtext unsigned;default:0;not null;comment:考核方案项目ID"` + Reply int `json:"reply" gorm:"column:fl_reply;type:int(2) unsigned;default:1;not null;comment:状态(0:删除;1:起草;2:审批;3:通过)"` + OrderKey int64 `json:"orderkey" gorm:"column:ep_order_key;type:bigint(20) unsigned;default:0;not null;comment:发起表单key"` + State int `json:"state" gorm:"column:ep_state;type:int(2) unsigned;default:1;not null;comment:1:审批,2:通过;3:驳回;"` +} + +//修改部门考核方案说明 +type EitrDepartExplan struct { + Group string `json:"group"` //集团 + DeaprtId string `json:"deaprtid"` //部门ID + Dimension string `json:"dimension"` //维度 + TargetId string `json:"targetid"` //指标ID + SunTargetId string `json:"suntargetid"` //子栏目 + DetailedTarget string `json:"detailedtarget"` //指标细则 + QualEvalId string `json:"qualevalid"` + Content string `json:"content"` //指标说明 } diff --git a/gin_server_admin/api/admin/dutyassess/dutyhandle.go b/gin_server_admin/api/admin/dutyassess/dutyhandle.go index ca1f0b3..93a4518 100644 --- a/gin_server_admin/api/admin/dutyassess/dutyhandle.go +++ b/gin_server_admin/api/admin/dutyassess/dutyhandle.go @@ -2,6 +2,7 @@ package dutyassess import ( "encoding/json" + "fmt" "strconv" "strings" "time" @@ -431,6 +432,9 @@ func (d *DutyAssessApi) EiteSunTargetName(c *gin.Context) { eiteCont := commonus.MapOut() eiteCont["q_time"] = time.Now().Unix() eiteCont["q_title"] = requestData.Name + if len(requestData.DepartmentMap) > 0 { + eiteCont["q_depart"] = strings.Join(requestData.DepartmentMap, ",") + } errEiteCont := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeTarget{}).Where("`q_id` = ?", requestData.Id).Updates(&eiteCont).Error if errEiteCont != nil { response.Result(105, err, "修改失败!", c) @@ -534,9 +538,10 @@ func (d *DutyAssessApi) AddDutyRelation(c *gin.Context) { response.Result(106, err, "请添加测评详情!", c) return } - + fmt.Printf("kjh------11------>%v\n", requestData) + sunTarDepartStr := strings.Join(requestData.AcceptDepartmentId, ",") //获取子目标情况 - sunTargetCont, sunTargetErr := commonus.JudgeColumn(requestData.Target, requestData.TargetSun, requestData.TargetSunTitle) + sunTargetCont, sunTargetErr := commonus.JudgeColumn(requestData.Target, requestData.TargetSun, requestData.TargetSunTitle, sunTarDepartStr) if sunTargetErr != true { } //将集团Id转化成整型 @@ -570,7 +575,19 @@ func (d *DutyAssessApi) AddDutyRelation(c *gin.Context) { var targetContList []DutyAssEssTarget var newAddId []int64 for _, v := range requestData.EvaluationList { - detailedTargetInfo, dtiIsTrue := commonus.JudgeDetails(requestData.Target, v.Title, v.Content, v.DetailedTarget, sunTargetCont.Id) + // detailedTargetInfo, dtiIsTrue := commonus.JudgeDetails(requestData.Target, v.Title, v.Content, v.DetailedTarget, sunTargetCont.Id) + detailedTargetInfo, dtiIsTrue := commonus.JudgeDetailsCopy(requestData.Target, v.Title, v.Content, v.DetailedTarget, v.ReferenceScore, v.Unit, sunTargetCont.Id, v.AddOrReduce) + /* + 参数说明 + @ascription 归属指标栏目 + @title 指标细则 + @explain 指标说明' + @explainId 指标明细ID + @ReferenceScore 分数 + @CompanyCont 单位 + @sunTargetId 子栏目 + */ + if dtiIsTrue == true { if detailedTargetInfo.Id != 0 { newAddId = append(newAddId, detailedTargetInfo.Id) @@ -589,41 +606,113 @@ func (d *DutyAssessApi) AddDutyRelation(c *gin.Context) { finalResultId = append(finalResultId, m_v) } } + //组合写入数据 for _, f_v := range finalResultId { - for _, t_v := range targetContList { - if f_v != t_v.Id { - var targetContInfos DutyAssEssTarget - targetContInfos.Id = f_v - targetContList = append(targetContList, targetContInfos) - } + if commonus.IsItTrue(f_v, newAddId) != true { + var targetContInfos DutyAssEssTarget + targetContInfos.Id = f_v + targetContList = append(targetContList, targetContInfos) } } + // response.Result(0, targetContList, "处理成功!", c) + // return //判断该集团指标子栏目是否存在 var arTaegetInfo assessmentmodel.Assesstarget judgeARTErr := global.GVA_DB_Performanceappraisal.Where("`group` = ? AND `dimension` = ? AND `targetid` = ? AND `suntargetid` = ?", groupInt, dimensionInt, targetInt, sunTargetCont.Id).First(&arTaegetInfo).Error + + //判断指标是否存在并且获取已存在的所有指标关联部门 + var guanLianBuMen []string + for _, vvk_vs := range requestData.AcceptDepartmentId { + if commonus.IsItTrueString(vvk_vs, guanLianBuMen) == false { + guanLianBuMen = append(guanLianBuMen, vvk_vs) + } + } + var sunTarId []int64 + judgeARkTErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Assesstarget{}).Select("`suntargetid`").Where("`group` = ? AND `dimension` = ? AND `targetid` = ? ", groupInt, dimensionInt, targetInt).Find(&sunTarId).Error + fmt.Printf("kjh------1------>%v------>%v\n", sunTarId, judgeARkTErr) + if judgeARkTErr == nil { + var sunTarDepartMap []string + judgeSunTarkTErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeTarget{}).Select("`q_depart`").Where("`q_id` IN ?", sunTarId).Find(&sunTarDepartMap).Error + fmt.Printf("kjh------2------>%v\n", sunTarDepartMap) + if judgeSunTarkTErr == nil { + // var departStrAry []string + for _, vvk := range sunTarDepartMap { + departStrAry := strings.Split(vvk, ",") + for _, vvk_v := range departStrAry { + if commonus.IsItTrueString(vvk_v, guanLianBuMen) == false { + guanLianBuMen = append(guanLianBuMen, vvk_v) + } + } + } + + } + eiteContkk := commonus.MapOut() + eiteContkk["departmentmap"] = strings.Join(guanLianBuMen, ",") + eiteContkk["time"] = time.Now().Unix() + global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Assesstarget{}).Where("`suntargetid` IN ?", sunTarId).Updates(eiteContkk) + fmt.Printf("kjh------3------>%v\n", eiteContkk) + } + if judgeARTErr == nil { - if arTaegetInfo.Content != "" { + var eiteTarList []DutyAssEssTarget + // var eiteId []int64 + if arTaegetInfo.Content != "" && arTaegetInfo.Content != "null" { var tarList []DutyAssEssTarget jsonErr := json.Unmarshal([]byte(arTaegetInfo.Content), &tarList) if jsonErr == nil { - for _, tl_v := range tarList { - for _, tcl_v := range targetContList { - if tl_v.Id != tcl_v.Id { - targetContList = append(targetContList, tl_v) + if len(tarList) > len(targetContList) { + for _, tl_v := range tarList { + + tarInfo, tarInfoErr := JudgeDeiScor(tl_v.Id, targetContList) + if tarInfoErr == false { + eiteTarList = append(eiteTarList, tarInfo) + } else { + eiteTarList = append(eiteTarList, tl_v) + } + } + } else { + for _, ttl_v := range targetContList { + tarInfo, tarInfoErr := JudgeDeiScor(ttl_v.Id, tarList) + if tarInfoErr == true { + eiteTarList = append(eiteTarList, tarInfo) + } else { + eiteTarList = append(eiteTarList, ttl_v) } + } } + } + + } else { + eiteTarList = targetContList } + + // fmt.Printf("llllllllllll----->%v\n", newAddId) + eiteCont := commonus.MapOut() - eiteCont["departmentmap"] = strings.Join(requestData.AcceptDepartmentId, ",") + + // oldDepartAry := strings.Join(",",",") + // oldDepartAry := strings.Split(arTaegetInfo.Departmentmap, ",") + // mergeDepartMap := append(oldDepartAry, requestData.AcceptDepartmentId...) + + // var finalResultDepartId []string //最终结果 + // for _, mdm_v := range mergeDepartMap { + // if commonus.IsItTrueString(mdm_v, finalResultDepartId) != true { + // finalResultDepartId = append(finalResultDepartId, mdm_v) + // } + // } + + // eiteCont["departmentmap"] = strings.Join(requestData.AcceptDepartmentId, ",") + // eiteCont["departmentmap"] = strings.Join(guanLianBuMen, ",") eiteCont["time"] = time.Now().Unix() - jsonStr, jsonMErr := json.Marshal(targetContList) + jsonStr, jsonMErr := json.Marshal(eiteTarList) if jsonMErr == nil { eiteCont["content"] = string(jsonStr) } - eiteErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Assesstarget{}).Where("`at_id` = ?", arTaegetInfo.Id).Updates(&eiteCont).Error + + eiteErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Assesstarget{}).Where("`at_id` = ?", arTaegetInfo.Id).Updates(eiteCont).Error if eiteErr == nil { response.Result(0, err, "处理成功!", c) } else { @@ -631,7 +720,8 @@ func (d *DutyAssessApi) AddDutyRelation(c *gin.Context) { } } else { arTaegetInfo.Group = groupInt - arTaegetInfo.Departmentmap = strings.Join(requestData.AcceptDepartmentId, ",") + + arTaegetInfo.Departmentmap = strings.Join(guanLianBuMen, ",") arTaegetInfo.TargetId = targetInt arTaegetInfo.SunTargetId = sunTargetCont.Id arTaegetInfo.Dimension = dimensionInt @@ -649,10 +739,29 @@ func (d *DutyAssessApi) AddDutyRelation(c *gin.Context) { } } +//判断是否存在项目 +func JudgeDeiScor(id int64, listCont []DutyAssEssTarget) (cont DutyAssEssTarget, isTrue bool) { + isTrue = false + for _, v := range listCont { + if id == v.Id { + cont = v + isTrue = true + } + } + return +} + //获取定性考核指标关系指定列表 func (d *DutyAssessApi) GetDutyRelationList(c *gin.Context) { + // var sunTargerIdAry []int64 + // errGroup := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Assesstarget{}).Select("`group`,`targetid`,`suntargetid`").Group("`group`,`targetid`,`suntargetid`").Order("`group` ASC").Order("`targetid` ASC").Order("`suntargetid` ASC").Find(&sunTargerIdAry).Error + // if errGroup != nil { + // response.Result(107, errGroup, "没有信息", c) + // return + // } + var list []assessmentmodel.Assesstarget - err := global.GVA_DB_Performanceappraisal.Find(&list).Error + err := global.GVA_DB_Performanceappraisal.Order("`group` ASC").Order("`targetid` ASC").Order("`suntargetid` ASC").Find(&list).Error if err != nil { response.Result(107, err, "没有信息", c) return @@ -662,6 +771,7 @@ func (d *DutyAssessApi) GetDutyRelationList(c *gin.Context) { var outCont OutDutyListes outCont.Id = strconv.FormatInt(v.Id, 10) + outCont.Group = strconv.FormatInt(v.Group, 10) //指标信息 outCont.Target = strconv.FormatInt(v.TargetId, 10) tarCont, _ := commonus.GetTargetInfo(v.TargetId) @@ -683,12 +793,18 @@ func (d *DutyAssessApi) GetDutyRelationList(c *gin.Context) { shenPiRen := strings.Split(tarCont.Report, ",") outCont.UserList = shenPiRen for _, v := range shenPiRen { - usCont, usErr := commonus.GetUserInfoPublic([]string{"worker_man.wm_number", "worker_man_data.wmd_name"}, map[string]interface{}{"wm_key": v}) + usCont, usErr := commonus.GetWorkUser(v) // GetWorkUser if usErr == true { var userCont QualEvalArrt userCont.Id = v userCont.Name = usCont.Name + userCont.Icon = usCont.Icon + _, groupInfo := commonus.GetGroupCont(usCont.Group) + userCont.GroupName = groupInfo.Name + _, bfInfo := commonus.GetBranchFactory(usCont.DepartmentId) + userCont.DepartmentName = bfInfo.Name + userCont.Number = usCont.Number outCont.UserListAry = append(outCont.UserListAry, userCont) } } @@ -711,22 +827,23 @@ func (d *DutyAssessApi) LookDutyTargetInfo(c *gin.Context) { return } if requestData.Dimension == "" { - response.Result(102, err, "参数错误!无法获取数据", c) + response.Result(103, err, "参数错误!无法获取数据", c) return } if requestData.TargetId == "" { - response.Result(102, err, "参数错误!无法获取数据", c) + response.Result(104, err, "参数错误!无法获取数据", c) return } var assessInfoList []assessmentmodel.Assesstarget assErr := global.GVA_DB_Performanceappraisal.Where("`group` = ? AND `dimension` = ? AND `targetid` = ?", requestData.Group, requestData.Dimension, requestData.TargetId).Find(&assessInfoList).Error if assErr != nil { - response.Result(102, assErr, "没有获取到数据!", c) + response.Result(105, assErr, "没有获取到数据!", c) return } var uotContAry []TargetContOutCont for _, v := range assessInfoList { var uotCont TargetContOutCont + uotCont.DutyAssessId = strconv.FormatInt(v.Id, 10) uotCont.Type = 1 //集团 uotCont.Group = requestData.Group @@ -740,6 +857,7 @@ func (d *DutyAssessApi) LookDutyTargetInfo(c *gin.Context) { depNameMap = append(depNameMap, sep_v.Parentname) } uotCont.DepartmentName = strings.Join(depNameMap, ",") + uotCont.DepartNameMap = depNameMap //维度 uotCont.Dimension = strconv.FormatInt(v.Dimension, 10) dutyClassCont, _ := commonus.GetDutyClassInfo(v.Dimension) @@ -751,10 +869,780 @@ func (d *DutyAssessApi) LookDutyTargetInfo(c *gin.Context) { //子栏目 uotCont.TargetSun = strconv.FormatInt(v.SunTargetId, 10) info, _ := commonus.GetQualitativeTargetInfo(v.SunTargetId) - uotCont.TargetSunName = info.Title - //拆解指标详情 - // detailedList := json.Unmarshal() + sunTarDepartMap := strings.Split(info.Depart, ",") + uotCont.DepartIdMap = sunTarDepartMap + //查询部门 + isShow := false + if requestData.DepartId != "" { + if commonus.IsItTrueString(requestData.DepartId, sunTarDepartMap) == true { + isShow = true + } + } else { + isShow = true + } + + if isShow == true { + uotCont.TargetSunName = info.Title + //拆解指标详情 + var detailedList []DutyAssEssTarget + detailedListErr := json.Unmarshal([]byte(v.Content), &detailedList) + if detailedListErr == nil { + // var detaiList []TargetContOutCont + // for _,d_v := range detailedList{} + if len(detailedList) > 0 { + for _, d_v := range detailedList { + uotCont.Id = strconv.FormatInt(d_v.Id, 10) + uotCont.DetailedTarget = strconv.FormatInt(d_v.Id, 10) + uotCont.UserList = d_v.Operator + + dtCont, _ := commonus.GetDetailedTargetInfo(d_v.Id) + uotCont.DetailedTargetName = dtCont.Title + uotCont.Content = dtCont.Content + uotCont.Unit = dtCont.Company + uotCont.State = dtCont.State + uotCont.MinScore = float64(dtCont.MinScore) / 100 + uotCont.MaxScore = float64(dtCont.MaxScore) / 100 + + uotCont.ScoreIng = "0" + if dtCont.MinScore > 0 && dtCont.MaxScore > 0 { + uotCont.ScoreIng = fmt.Sprintf("%v-%v", float64(dtCont.MinScore)/100, float64(dtCont.MaxScore)/100) + } else if dtCont.MinScore > 0 && dtCont.MaxScore <= 0 { + uotCont.ScoreIng = fmt.Sprintf("%v", float64(dtCont.MinScore)/100) + } else if dtCont.MinScore <= 0 && dtCont.MaxScore > 0 { + uotCont.ScoreIng = fmt.Sprintf("%v", float64(dtCont.MaxScore)/100) + } else { + uotCont.ScoreIng = "0" + } + for _, u_v := range d_v.Operator { + usCont, usErr := commonus.GetWorkUser(u_v) + if usErr == true { + var userCont QualEvalArrt + userCont.Id = u_v + userCont.Name = usCont.Name + userCont.Icon = usCont.Icon + _, groupInfo := commonus.GetGroupCont(usCont.Group) + userCont.GroupName = groupInfo.Name + _, bfInfo := commonus.GetBranchFactory(usCont.DepartmentId) + userCont.DepartmentName = bfInfo.Name + userCont.Number = usCont.Number + uotCont.UserListAry = append(uotCont.UserListAry, userCont) + } + } + + uotContAry = append(uotContAry, uotCont) + } + } else { + uotContAry = append(uotContAry, uotCont) + } + } else { + uotContAry = append(uotContAry, uotCont) + } + } + + } + if len(uotContAry) <= 0 { + response.Result(106, uotContAry, "没有获取到数据!", c) + } else { + response.Result(0, uotContAry, "获取成功!", c) + } +} + +//删除考核指标 +func (d *DutyAssessApi) NewDelTarGet(c *gin.Context) { + var requestData LookTargetContList + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(101, err, "数据获取失败!", c) + return + } + if requestData.Group == "" { + response.Result(102, err, "参数错误!无法获取数据", c) + return + } + if requestData.Dimension == "" { + response.Result(103, err, "参数错误!无法获取数据", c) + return + } + if requestData.TargetId == "" { + response.Result(104, err, "参数错误!无法获取数据", c) + return + } + groupId, _ := strconv.ParseInt(requestData.Group, 10, 64) + dimensionId, _ := strconv.ParseInt(requestData.Dimension, 10, 64) + targetId, _ := strconv.ParseInt(requestData.TargetId, 10, 64) + isTrue := commonus.JudegDutyIsUse(groupId, dimensionId, targetId, 0, 0) + if isTrue != true { + response.Result(105, err, "你当前要删除的项目已经使用!请不要删除!以免造成正在进行的审批统计产生数据误差!", c) + return + } + delErr := global.GVA_DB_Performanceappraisal.Where("`group` = ? AND `dimension` = ? AND `targetid` = ?", requestData.Group, requestData.Dimension, requestData.TargetId).Delete(&assessmentmodel.Assesstarget{}).Error + if delErr != nil { + response.Result(106, delErr, "删除失败!", c) + return + } + response.Result(0, delErr, "删除成功!", c) +} + +//获取被修改指标细则的详情 +func (d *DutyAssessApi) GetNewEiteDetailedTarget(c *gin.Context) { + var requestData GetDeitalTarCont + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(101, err, "数据获取失败!", c) + return + } + if requestData.Id == "" { + response.Result(102, requestData, "参数错误!请重新提交!", c) + return + } + if requestData.AssId == "" { + response.Result(103, requestData, "参数错误!请重新提交!", c) + return + } + var cont assessmentmodel.DetailedTarget + errErr := global.GVA_DB_Performanceappraisal.Where("`dt_id` = ?", requestData.Id).First(&cont).Error + if errErr != nil { + response.Result(104, errErr, "没有获取到数据!", c) + return + } + var assCont assessmentmodel.Assesstarget + errAssErr := global.GVA_DB_Performanceappraisal.Where("`at_id` = ?", requestData.AssId).First(&assCont).Error + if errAssErr != nil { + response.Result(105, errAssErr, "没有获取到数据!", c) + return + } + var outPutCont NewOutPutDetailedTarget + outPutCont.Id = strconv.FormatInt(cont.Id, 10) + //获取子栏目信息 + sunTargetCont, _ := commonus.GetQualitativeTargetInfo(cont.ParentIdSun) + outPutCont.SunTargerId = strconv.FormatInt(sunTargetCont.Id, 10) + outPutCont.SunTargetName = sunTargetCont.Title + //获取指标细则信息 + outPutCont.DetailedTargetId = strconv.FormatInt(cont.Id, 10) + outPutCont.DetailedTargetName = cont.Title + outPutCont.DetailedTargetContent = cont.Content + //单位 + outPutCont.Unit = cont.Company + if cont.MinScore > 0 && cont.MaxScore > 0 { + outPutCont.Score = fmt.Sprintf("%v-%v", float64(cont.MinScore)/100, float64(cont.MaxScore)/100) + } else if cont.MinScore > 0 && cont.MaxScore <= 0 { + outPutCont.Score = fmt.Sprintf("%v", float64(cont.MinScore)/100) + } else if cont.MinScore <= 0 && cont.MaxScore > 0 { + outPutCont.Score = fmt.Sprintf("%v", float64(cont.MaxScore)/100) + } else { + outPutCont.Score = "0" + } + //解析考核方案内的指标关联人 + //拆解指标详情 + var detailedList []DutyAssEssTarget + detailedListErr := json.Unmarshal([]byte(assCont.Content), &detailedList) + if detailedListErr == nil { + for _, v := range detailedList { + if v.Id == cont.Id { + for _, us_key := range v.Operator { + usCont, _ := commonus.GetWorkUser(us_key) + var userCont QualEvalArrt + userCont.Id = us_key + userCont.Name = usCont.Name + userCont.Icon = usCont.Icon + _, groupInfo := commonus.GetGroupCont(usCont.Group) + userCont.GroupName = groupInfo.Name + _, bfInfo := commonus.GetBranchFactory(usCont.DepartmentId) + userCont.DepartmentName = bfInfo.Name + userCont.Number = usCont.Number + outPutCont.OperatorAry = append(outPutCont.OperatorAry, userCont) + outPutCont.Operator = append(outPutCont.Operator, us_key) + } + } + } + } + + //获取所有子栏目 + var qualTar []assessmentmodel.QualitativeTarget + quaTarErr := global.GVA_DB_Performanceappraisal.Where("`q_parent_id` = ?", cont.ParentId).Find(&qualTar).Error + if quaTarErr == nil { + for _, s_v := range qualTar { + var sunTarCont QualEvalArrt + sunTarCont.Id = strconv.FormatInt(s_v.Id, 10) + sunTarCont.Name = s_v.Title + outPutCont.SunTargerList = append(outPutCont.SunTargerList, sunTarCont) + } + } + outPutCont.AssId = requestData.AssId + response.Result(0, outPutCont, "获取成功!", c) + +} + +//修改定性考核指标细则内容 +func (d *DutyAssessApi) NewEiteDetailedTarget(c *gin.Context) { + var requestData NewEiteDtyDiteCont + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(101, err, "数据获取失败!", c) + return + } + // if requestData.Id == "" { + // response.Result(102, requestData, "参数错误!请重新提交!", c) + // return + // } + if requestData.AssId == "" { + response.Result(103, requestData, "参数错误!请重新提交!", c) + return + } + var assCont assessmentmodel.Assesstarget + errAssErr := global.GVA_DB_Performanceappraisal.Where("`at_id` = ?", requestData.AssId).First(&assCont).Error + if errAssErr != nil { + response.Result(104, errAssErr, "没有获取到数据!", c) + return + } + detailedTargetInfo, dtiIsTrue := commonus.JudgeDetailsCopy(strconv.FormatInt(assCont.TargetId, 10), requestData.DetailedTargetName, requestData.DetailedTargetContent, requestData.Id, requestData.Score, requestData.Unit, assCont.SunTargetId, requestData.AddOrReduce) + if dtiIsTrue != true { + response.Result(105, errAssErr, "指标明细编辑失败!", c) + return + } + //设定定性考核指标新增键对关系 + var addOpentDetial DutyAssEssTarget + addOpentDetial.Id = detailedTargetInfo.Id + addOpentDetial.Operator = requestData.Operator + //拆解指标详情 + var detailedList []DutyAssEssTarget + detailedListErr := json.Unmarshal([]byte(assCont.Content), &detailedList) + // ssss := commonus.MapOut() + // ssss["Content"] = assCont.Content + // ssss["detailedList"] = detailedList + // ssss["detailedListErr"] = detailedListErr + // response.Result(105, ssss, "指标明细编辑失败!", c) + // return + if detailedListErr != nil { + var eiteOpentDetiallist []DutyAssEssTarget + isAdd := false + for _, dil_v := range detailedList { + var detailedEiteCont DutyAssEssTarget + if dil_v.Id == detailedTargetInfo.Id { + detailedEiteCont.Id = dil_v.Id + detailedEiteCont.Operator = requestData.Operator + isAdd = true + } else { + detailedEiteCont.Id = dil_v.Id + detailedEiteCont.Operator = dil_v.Operator + } + eiteOpentDetiallist = append(eiteOpentDetiallist, detailedEiteCont) + } + if isAdd == false { + eiteOpentDetiallist = append(eiteOpentDetiallist, addOpentDetial) + } + eiteContIng := commonus.MapOut() + eiteContIng["time"] = time.Now().Unix() + jsonStr, jsonMErr := json.Marshal(eiteOpentDetiallist) + if jsonMErr == nil { + eiteContIng["content"] = string(jsonStr) + } + eiteErring := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Assesstarget{}).Where("`at_id` = ?", assCont.Id).Updates(&eiteContIng).Error + if eiteErring == nil { + response.Result(0, err, "处理成功!2", c) + } else { + response.Result(107, err, "请添加测评详情!", c) + } + } else { + // var eiteOpentDetiallist []DutyAssEssTarget + var eiteOpentDetiallist []DutyAssEssTarget + isAdd := false + for _, dil_v := range detailedList { + var detailedEiteCont DutyAssEssTarget + if dil_v.Id == detailedTargetInfo.Id { + detailedEiteCont.Id = dil_v.Id + detailedEiteCont.Operator = requestData.Operator + isAdd = true + } else { + detailedEiteCont.Id = dil_v.Id + detailedEiteCont.Operator = dil_v.Operator + } + eiteOpentDetiallist = append(eiteOpentDetiallist, detailedEiteCont) + } + if isAdd == false { + eiteOpentDetiallist = append(eiteOpentDetiallist, addOpentDetial) + } + eiteCont := commonus.MapOut() + eiteCont["time"] = time.Now().Unix() + jsonStr, jsonMErr := json.Marshal(eiteOpentDetiallist) + if jsonMErr == nil { + eiteCont["content"] = string(jsonStr) + } + eiteErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Assesstarget{}).Where("`at_id` = ?", assCont.Id).Updates(&eiteCont).Error + if eiteErr == nil { + response.Result(0, err, "处理成功!1", c) + } else { + response.Result(107, err, "请添加测评详情!", c) + } + } +} + +//删除指标 +func (d *DutyAssessApi) NewDelDetailedTarget(c *gin.Context) { + var requestData GetDeitalTarCont + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(101, err, "数据获取失败!", c) + return + } + if requestData.Id == "" { + response.Result(102, requestData, "参数错误!请重新提交!", c) + return + } + if requestData.AssId == "" { + response.Result(103, requestData, "参数错误!请重新提交!", c) + return + } + detailId, _ := strconv.ParseInt(requestData.Id, 10, 64) + var assCont assessmentmodel.Assesstarget + errAssErr := global.GVA_DB_Performanceappraisal.Where("`at_id` = ?", requestData.AssId).First(&assCont).Error + if errAssErr != nil { + response.Result(105, errAssErr, "没有获取到数据!", c) + return + } + eiteCont := commonus.MapOut() + eiteCont["dt_time"] = time.Now().Unix() + eiteCont["dt_state"] = 3 + global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DetailedTarget{}).Where("`dt_id` = ?", requestData.Id).Updates(&eiteCont) + var detailedList []DutyAssEssTarget + detailedListErr := json.Unmarshal([]byte(assCont.Content), &detailedList) + if detailedListErr == nil { + var eiteAssContList []DutyAssEssTarget + for _, v := range detailedList { + if v.Id != detailId { + eiteAssContList = append(eiteAssContList, v) + } + } + if len(eiteAssContList) > 0 { + eiteAssCont := commonus.MapOut() + eiteAssCont["time"] = time.Now().Unix() + jsonStr, jsonMErr := json.Marshal(eiteAssContList) + if jsonMErr == nil { + eiteAssCont["content"] = string(jsonStr) + } + global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.Assesstarget{}).Where("`at_id` = ?", requestData.AssId).Updates(&eiteAssCont) + } + } + response.Result(0, requestData, "修改完成!", c) +} + +//删除子栏目 +func (d *DutyAssessApi) NewDelSunTarget(c *gin.Context) { + var requestData GetDeitalTarCont + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(101, err, "数据获取失败!", c) + return + } + if requestData.Id == "" { + response.Result(102, requestData, "参数错误!请重新提交!", c) + return + } + if requestData.AssId == "" { + response.Result(103, requestData, "参数错误!请重新提交!", c) + return + } + var assCont []assessmentmodel.Assesstarget + errAssErr := global.GVA_DB_Performanceappraisal.Where("`targetid` = ? AND `suntargetid` = ?", requestData.AssId, requestData.Id).Find(&assCont).Error + if errAssErr != nil { + response.Result(105, errAssErr, "没有获取到数据!", c) + return + } + var delDetaId []int64 + var delAssId []int64 + for _, v := range assCont { + var detailedList []DutyAssEssTarget + detailedListErr := json.Unmarshal([]byte(v.Content), &detailedList) + if detailedListErr == nil { + for _, d_v := range detailedList { + delDetaId = append(delDetaId, d_v.Id) + } + } + delAssId = append(delAssId, v.Id) + } + if len(delDetaId) > 0 { + eiteCont := commonus.MapOut() + eiteCont["dt_time"] = time.Now().Unix() + eiteCont["dt_state"] = 3 + global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DetailedTarget{}).Where("`dt_id` IN ?", delDetaId).Updates(&eiteCont) + } + if len(delAssId) > 0 { + global.GVA_DB_Performanceappraisal.Where("`at_id` IN ?", delAssId).Delete(&assessmentmodel.Assesstarget{}) + } + response.Result(0, requestData, "修改完成!", c) +} + +//新的部门考核指标获取列表 +func (d *DutyAssessApi) NewGerDerpatTarList(c *gin.Context) { + var requestData rationSelect + c.ShouldBindJSON(&requestData) + //获取维度列表 + var dutyClassAry []assessmentmodel.DutyClass + gromDb := global.GVA_DB_Performanceappraisal + gromDb = gromDb.Where("`state` = 1") + classErr := gromDb.Order("sort ASC").Find(&dutyClassAry).Error + + if classErr != nil { + response.Result(0, classErr, "未获取到数据", c) + return + } + var departAryList []DepartTargetListTop + for _, v := range dutyClassAry { + conList := GetTargetGroup(requestData.Group, strconv.FormatInt(v.Id, 10), requestData.DepartmentId) + var departcontInfo DepartTargetListTop + departcontInfo.Id = strconv.FormatInt(v.Id, 10) + departcontInfo.Name = v.Title + departcontInfo.Child = conList + if len(conList) > 0 { + departAryList = append(departAryList, departcontInfo) + } + + } + response.Result(0, departAryList, "数据获取成功!", c) +} + +//获取指标组合 +/* +@group 集团 +@dimensionId 维度 +@departID 部门 +*/ +func GetTargetGroup(group, dimensionId, departID string) (contAry []DepartTargetList) { + var rationId []int64 + gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.EvaluationTarget{}).Select("et_id").Where("`et_type` = 2 AND `et_state` = 1 AND `et_dimension` = ?", dimensionId) + if departID != "" { + sqlOrStr := fmt.Sprintf("FIND_IN_SET(%v,`et_relevant_departments`)", departID) + sqlOrStr = fmt.Sprintf("`et_share` = 1 OR (`et_share` = 2 AND (%v))", sqlOrStr) + gormDb = gormDb.Where(sqlOrStr) + } + listErr := gormDb.Find(&rationId).Error + if listErr != nil { + // return + } + + var qualit []int64 + errAssErr := global.GVA_DB_Performanceappraisal.Select("targetid").Model(&assessmentmodel.Assesstarget{}).Where("`state` = 1 AND `group` = ? AND `dimension` = ? AND FIND_IN_SET(?,`departmentmap`)", group, dimensionId, departID).Find(&qualit).Error + if errAssErr != nil { + // return + } + + mergeMap := append(rationId, qualit...) //合并两个数组 + var finalResultId []int64 //最终结果 + for _, m_v := range mergeMap { + if commonus.IsItTrue(m_v, finalResultId) != true { + finalResultId = append(finalResultId, m_v) + } + } + //获取指标列表 + var evaluatCont []assessmentmodel.EvaluationTarget + aryErr := global.GVA_DB_Performanceappraisal.Where("`et_state` = 1 AND `et_id` IN ?", finalResultId).Find(&evaluatCont).Error + if aryErr != nil { + return + } + for _, e_v := range evaluatCont { + var cont DepartTargetList + cont.Id = strconv.FormatInt(e_v.Id, 10) + cont.Name = e_v.Title + cont.Content = "" + cont.Unit = e_v.Uniteing + cont.State = e_v.State + cont.ReferenceScore = commonus.GetWeight(group, dimensionId, departID, strconv.FormatInt(e_v.Id, 10), int64(e_v.Type)) + cont.IsTrue = 2 + contAry = append(contAry, cont) + } + return +} + +//部门考核添加。NEW +func (d *DutyAssessApi) NewAddDepartDuty(c *gin.Context) { + var requestData AddDutyNewContGroup + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(101, err, "数据获取失败!", c) + return + } + if requestData.Group == "" { + response.Result(102, err, "数据获取失败!", c) + return + } + groupId, groupErr := strconv.ParseInt(requestData.Group, 10, 64) //集团ID + if groupErr != nil { + groupId = 0 + } + if requestData.DepartmentId == "" { + response.Result(103, err, "数据获取失败!", c) + return + } + departId, departErr := strconv.ParseInt(requestData.DepartmentId, 10, 64) //部门ID + if departErr != nil { + departId = 0 + } + if len(requestData.Child) < 0 { + response.Result(104, err, "没有要添加的数据", c) + return + } + var eiteIdAry []int64 //被修改的考核条目 + var saveDataAry []assessmentmodel.QualitativeEvaluation //新增条目 + for _, v := range requestData.Child { //维度 + + commonus.AddWeight(requestData.Group, v.Id, requestData.DepartmentId, "", int64(v.ZhiFraction), 1) + + for _, tar_v := range v.Child { //指标 - uotContAry = append(uotContAry, uotCont) + if tar_v.Status == 1 { + + //使用 + targetId, targetErr := strconv.ParseInt(tar_v.Id, 10, 64) //指标ID转换 + if targetErr == nil { + fmt.Printf("Targer---1---->%v\n", targetId) + evalTarCont, evalTarContErr := commonus.GetTargetInfo(targetId) //获取指标内容 + if evalTarContErr == true { + fmt.Printf("Targer---2---->%v\n", targetId) + //判断是定量还是定性 + if evalTarCont.Type == 2 { + commonus.AddWeight(requestData.Group, v.Id, requestData.DepartmentId, tar_v.Id, tar_v.ReferenceScore, 2) + //定量指标操作 + var saveData assessmentmodel.QualitativeEvaluation + var qeId []int64 //需要编辑的ID + eiteQualEvalSaveData := commonus.MapOut() //需要编辑的内容 + + gormQualEval := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("`qe_group` = ? AND `qe_dimension` = ? AND `qe_target` = ? AND `qe_type` = ? AND `qe_accept_evaluation` = ?", groupId, v.Id, targetId, evalTarCont.Type, departId) + judgeContErr := gormQualEval.Find(&qeId).Error + fmt.Printf("Targer---4---->%v---->%v\n", qeId, judgeContErr) + //维度ID + dimId, dimErr := strconv.ParseInt(v.Id, 10, 64) + if dimErr == nil { + saveData.Dimension = dimId + } + saveData.Target = targetId //指标 + saveData.Type = evalTarCont.Type //类型 + saveData.Unit = evalTarCont.Uniteing //单位 + saveData.ReferenceScore = tar_v.ReferenceScore //分值 + // saveData.ReferenceScore = v_s.ReferenceScore //分值 + saveData.State = 1 //状态 + saveData.Addtime = time.Now().Unix() + saveData.Eitetime = time.Now().Unix() + saveData.Group = groupId //集团 + saveData.Cycles = evalTarCont.Cycles //单位 + saveData.CycleAttres = evalTarCont.CycleAttres //辅助计数 + saveData.AcceptEvaluation = departId //接受考核部门 + saveData.Content = tar_v.Content //描述 + saveData.Operator = evalTarCont.Report //执行考核人 + + var departAry []string + userKeyAry := strings.Split(evalTarCont.Report, ",") + if len(userKeyAry) > 0 { + for _, u_v := range userKeyAry { + usCont, usErr := commonus.GetWorkUser(u_v) + if usErr == true { + departIdStr := strconv.FormatInt(usCont.DepartmentId, 10) + if commonus.IsItTrueString(departIdStr, departAry) == false { + departAry = append(departAry, departIdStr) + } + + } + } + } + saveData.DepartmentId = strings.Join(departAry, ",") + eiteQualEvalSaveData["qe_department_id"] = strings.Join(departAry, ",") + if judgeContErr == nil { + if len(qeId) > 0 { + eiteQualEvalSaveData["qe_dimension"] = dimId + eiteQualEvalSaveData["qe_target"] = targetId + eiteQualEvalSaveData["qe_type"] = evalTarCont.Type + eiteQualEvalSaveData["qe_unit"] = evalTarCont.Uniteing + eiteQualEvalSaveData["qe_reference_score"] = tar_v.ReferenceScore + eiteQualEvalSaveData["qe_state"] = 1 + eiteQualEvalSaveData["qe_eitetime"] = time.Now().Unix() + eiteQualEvalSaveData["qe_group"] = groupId + eiteQualEvalSaveData["qe_cycle"] = evalTarCont.Cycles + eiteQualEvalSaveData["qe_cycleattr"] = evalTarCont.CycleAttres + eiteQualEvalSaveData["qe_accept_evaluation"] = departId + eiteQualEvalSaveData["qe_operator"] = evalTarCont.Report + eiteQualEvalSaveData["qe_content"] = tar_v.Content + eiteIdAry = append(eiteIdAry, dimId) + //修改已经存在的内容 + global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_id` IN ?", qeId).Updates(eiteQualEvalSaveData) + } else { + saveDataAry = append(saveDataAry, saveData) + } + } else { + //要新增的条目 + saveDataAry = append(saveDataAry, saveData) + } + + } else { + commonus.AddWeight(requestData.Group, v.Id, requestData.DepartmentId, tar_v.Id, tar_v.ReferenceScore, 1) + //定性指标操作 + //获取部门关联考核指标项目 + var assessTarList []assessmentmodel.Assesstarget + judgeARTErr := global.GVA_DB_Performanceappraisal.Where("`group` = ? AND `dimension` = ? AND `targetid` = ? AND FIND_IN_SET(?,`departmentmap`)", groupId, v.Id, tar_v.Id, departId).Find(&assessTarList).Error + + fmt.Printf("Targer---5---->%v---->%v---->%v\n", targetId, v.Id, tar_v.Id) + + if judgeARTErr == nil { + var guoDu []AddPartMentGuodu + for _, ass_v := range assessTarList { + judgeTure := commonus.JudegSunTarToDepart(ass_v.SunTargetId, departId) + if judgeTure == true { + var guoDuCont AddPartMentGuodu + guoDuCont.Group = groupId + guoDuCont.DeaprtId = departId + guoDuCont.Dimension = ass_v.Dimension + guoDuCont.TargetId = ass_v.TargetId + guoDuCont.SunTargetId = ass_v.SunTargetId + if ass_v.Content != "" { + //拆解指标详情 + var detailedList []DutyAssEssTarget + detailedListErr := json.Unmarshal([]byte(ass_v.Content), &detailedList) + if detailedListErr == nil { + for _, det_v := range detailedList { + guoDuCont.DetailedTarget = det_v.Id + guoDuCont.Operator = det_v.Operator + guoDu = append(guoDu, guoDuCont) + fmt.Printf("Targer---6---->%v---->%v---->%v\n", ass_v.TargetId, ass_v.SunTargetId, det_v.Id) + } + } else { + guoDu = append(guoDu, guoDuCont) + } + } else { + guoDu = append(guoDu, guoDuCont) + } + } + + } + //判断关联项目 + if len(guoDu) > 0 { + guoDuJsonm, _ := json.Marshal(guoDu) + fmt.Printf("Targer---7---->%v---->%v\n", string(guoDuJsonm), guoDu) + for _, ae_v := range guoDu { + //判断该项是否已经存在 + var eiteGetId int64 + gormQualEval := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("`qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_target` = ? AND `qe_target_sun` = ? AND `qe_detailed_target` = ? AND `qe_type` = 1", ae_v.Group, ae_v.DeaprtId, ae_v.Dimension, ae_v.TargetId, ae_v.SunTargetId, ae_v.DetailedTarget) + judgeContErr := gormQualEval.First(&eiteGetId).Error + fmt.Printf("Targer---8---->%v---->%v---->%v---->%v---->%v---->%v---->%v\n", eiteGetId, ae_v.Group, ae_v.DeaprtId, ae_v.Dimension, ae_v.TargetId, ae_v.SunTargetId, ae_v.DetailedTarget) + if judgeContErr == nil { + eiteQualEvalSaveData := commonus.MapOut() //需要编辑的内容 + eiteQualEvalSaveData["qe_dimension"] = ae_v.Dimension + eiteQualEvalSaveData["qe_target"] = ae_v.TargetId + eiteQualEvalSaveData["qe_type"] = 1 + + getEvalTarCont, _ := commonus.GetDetailedTargetInfo(ae_v.DetailedTarget) //获取指标内容 + + eiteQualEvalSaveData["qe_unit"] = getEvalTarCont.Company + eiteQualEvalSaveData["qe_reference_score"] = 0 + + eiteQualEvalSaveData["qe_min_score"] = getEvalTarCont.MinScore + eiteQualEvalSaveData["qe_max_score"] = getEvalTarCont.MaxScore + + eiteQualEvalSaveData["qe_state"] = 1 + eiteQualEvalSaveData["qe_eitetime"] = time.Now().Unix() + eiteQualEvalSaveData["qe_group"] = ae_v.Group + evaDingXinglTarCont, _ := commonus.GetTargetInfo(ae_v.TargetId) //获取指标内容 + eiteQualEvalSaveData["qe_cycle"] = evaDingXinglTarCont.Cycles + eiteQualEvalSaveData["qe_cycleattr"] = evaDingXinglTarCont.CycleAttres + eiteQualEvalSaveData["qe_accept_evaluation"] = ae_v.DeaprtId + eiteQualEvalSaveData["qe_operator"] = strings.Join(ae_v.Operator, ",") + eiteQualEvalSaveData["qe_content"] = getEvalTarCont.Content + //获取执行人部门 + var departAry []string + if len(ae_v.Operator) > 0 { + for _, u_v := range ae_v.Operator { + usCont, usErr := commonus.GetWorkUser(u_v) + if usErr == true { + departIdStr := strconv.FormatInt(usCont.DepartmentId, 10) + if commonus.IsItTrueString(departIdStr, departAry) == false { + departAry = append(departAry, departIdStr) + } + + } + } + } + eiteQualEvalSaveData["qe_department_id"] = strings.Join(departAry, ",") + eiteIdAry = append(eiteIdAry, eiteGetId) + //修改已经存在的内容 + global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_id` = ?", eiteGetId).Updates(eiteQualEvalSaveData) + } else { + //写入新的定性考核细则 + var saveData assessmentmodel.QualitativeEvaluation + saveData.Dimension = ae_v.Dimension + saveData.Target = ae_v.TargetId //指标 + saveData.Type = 1 //类型 + + saveData.TargetSun = ae_v.SunTargetId + + getEvalTarCont, _ := commonus.GetDetailedTargetInfo(ae_v.DetailedTarget) //获取指标内容 + + saveData.DetailedTarget = ae_v.DetailedTarget + + saveData.Unit = getEvalTarCont.Company //单位 + saveData.ReferenceScore = 0 //分值 + + saveData.MinScore = getEvalTarCont.MinScore + saveData.MaxScore = getEvalTarCont.MaxScore + // saveData.ReferenceScore = v_s.ReferenceScore //分值 + saveData.State = 1 //状态 + saveData.Addtime = time.Now().Unix() + saveData.Eitetime = time.Now().Unix() + saveData.Group = ae_v.Group //集团 + + evaDingXinglTarCont, _ := commonus.GetTargetInfo(ae_v.TargetId) //获取指标内容 + saveData.Cycles = evaDingXinglTarCont.Cycles //1:班;2:天;3:周;4:月;5:季度;6:年 + saveData.CycleAttres = evaDingXinglTarCont.CycleAttres //辅助计数 + + saveData.AcceptEvaluation = ae_v.DeaprtId //接受考核部门 + saveData.Content = getEvalTarCont.Content //描述 + saveData.Operator = strings.Join(ae_v.Operator, ",") //执行考核人 + //获取执行人部门 + var departAry []string + if len(ae_v.Operator) > 0 { + for _, u_v := range ae_v.Operator { + usCont, usErr := commonus.GetWorkUser(u_v) + if usErr == true { + departIdStr := strconv.FormatInt(usCont.DepartmentId, 10) + if commonus.IsItTrueString(departIdStr, departAry) == false { + departAry = append(departAry, departIdStr) + } + + } + } + } + saveData.DepartmentId = strings.Join(departAry, ",") + + saveDataJsonm, _ := json.Marshal(saveData) + fmt.Printf("Targer---9---->%v---->%v\n", string(saveDataJsonm), saveData) + + //要新增的条目 + saveDataAry = append(saveDataAry, saveData) + } + } + } + + } + } + } + } else { + fmt.Printf("Targer---3---->%v\n", targetId) + } + } else { + //禁用 + qualEvalSave := commonus.MapOut() + qualEvalSave["qe_state"] = 2 + qualEvalSave["qe_eitetime"] = time.Now().Unix() + global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_target` = ?", groupId, departId, v.Id, tar_v.Id).Updates(qualEvalSave) + } + } + } + if len(saveDataAry) <= 0 && len(eiteIdAry) <= 0 { + response.Result(105, saveDataAry, "没有要添加的数据", c) + return + } + if len(saveDataAry) > 0 { + addErr := global.GVA_DB_Performanceappraisal.Create(&saveDataAry).Error + if addErr != nil { + response.Result(106, len(saveDataAry), "数据添加失败", c) + return + } } + response.Result(0, saveDataAry, "数据添加成功", c) } diff --git a/gin_server_admin/api/admin/dutyassess/planversio.go b/gin_server_admin/api/admin/dutyassess/planversio.go new file mode 100644 index 0000000..488eea2 --- /dev/null +++ b/gin_server_admin/api/admin/dutyassess/planversio.go @@ -0,0 +1,638 @@ +package dutyassess + +import ( + "encoding/json" + "fmt" + "strconv" + "strings" + "time" + + "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 (d *DutyAssessApi) DepartDutyPlanVersion(c *gin.Context) { + var requestData DutyPlanVersio + err := c.ShouldBindJSON(&requestData) + + if err != nil { + // response.Result(101, err, "数据获取失败!", c) + // return + } + gormDb := global.GVA_DB_Performanceappraisal + if requestData.Group != "" { + gormDb = gormDb.Where("`group` = ?", requestData.Group) + } + if requestData.DeaprtId != "" { + gormDb = gormDb.Where("`department` = ?", requestData.DeaprtId) + } + if requestData.Year != "" { + gormDb = gormDb.Where("`yeares` = ?", requestData.Year) + } + if requestData.Versio != "" { + gormDb = gormDb.Where("`versio` LIKE ?", "%"+requestData.Versio+"%") + } + if requestData.VersioNum != "" { + gormDb = gormDb.Where("`key` LIKE ?", "%"+requestData.VersioNum+"%") + } + if requestData.State != 0 { + gormDb = gormDb.Where("`state` = ?", requestData.State) + } else { + gormDb = gormDb.Where("`state` IN (1,2)") + } + // response.Result(104, requestData, "没有查询到数据", c) + // return + var planVersio []DutyPlanVersioOut + dataErr := gormDb.Order("`addtime` DESC").Find(&planVersio).Error + if dataErr != nil { + response.Result(104, dataErr, "没有查询到数据", c) + return + } + for i, v := range planVersio { + _, groupCont := commonus.GetGroupCont(v.Group) + planVersio[i].GroupName = groupCont.Name + _, departMent := commonus.GetBranchFactory(v.Department) + planVersio[i].DeaprtName = departMent.Name + planVersio[i].Time = commonus.TimeStampToDate(v.AddTime, 20) + } + response.Result(0, planVersio, "获取成功", c) +} + +//添加部门考核方案(待版本号的版本) +func (d *DutyAssessApi) AddDepartDutyVersio(c *gin.Context) { + var requestData AddDutyNewContGroup + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(101, err, "数据获取失败!", c) + return + } + if requestData.Group == "" { + response.Result(102, err, "数据获取失败!", c) + return + } + groupId, groupErr := strconv.ParseInt(requestData.Group, 10, 64) //集团ID + if groupErr != nil { + groupId = 0 + } + _, groupCont := commonus.GetGroupCont(groupId) + groupInitials := commonus.ChinaToPinYinFirstWord(groupCont.Name) //获取集团首字母 + if requestData.DepartmentId == "" { + response.Result(103, err, "数据获取失败!", c) + return + } + departId, departErr := strconv.ParseInt(requestData.DepartmentId, 10, 64) //部门ID + if departErr != nil { + departId = 0 + } + if requestData.Year == "" { + response.Result(104, err, "数据获取失败!", c) + return + } + yearInt, _ := strconv.ParseInt(requestData.Year, 10, 64) //部门ID + + if len(requestData.Child) < 0 { + response.Result(105, err, "没有要添加的数据", c) + return + } + judgeState := 1 + //判断是否有新生成的方案 + var versionState []int + judgeVersio := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.PlanVersio{}).Select("`state`").Where("`group` = ? AND `department` = ?", requestData.Group, requestData.DepartmentId).Find(&versionState).Error //判断是否有启用的方案 + if judgeVersio == nil { + for _, s_v := range versionState { + if s_v == 1 { + judgeState = 2 + } + } + } + var versioNum string + //判断年度是否存在版本 + var sumVerson float64 + judgeVersioNum := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.PlanVersio{}).Select("`id`").Where("`group` = ? AND `yeares` = ?", requestData.Group, requestData.Year).Pluck("COALESCE(COUNT(id), 0) as countid", &sumVerson).Error + fmt.Printf("sumVerson---->%v\n", sumVerson) + if judgeVersioNum == nil { + if sumVerson == 0 { + versioNum = "0001" + } else { + sumVerson++ + if sumVerson <= 9999 { + versioNumGuoDu := strconv.FormatFloat(sumVerson/10000, 'f', -1, 64) + versioNumAry := strings.Split(versioNumGuoDu, ".") + if len(versioNumAry) == 2 { + versioNum = versioNumAry[1] + } else { + versioNum = "0001" + } + } else { + versioNumGuoDu := strconv.FormatFloat(sumVerson/10000000, 'f', -1, 64) + versioNumAry := strings.Split(versioNumGuoDu, ".") + if len(versioNumAry) == 2 { + versioNum = versioNumAry[1] + } else { + versioNum = "0001" + } + } + + } + } else { + versioNum = "0001" + } + todyTime := time.Now().Unix() + keyStr := fmt.Sprintf("%v%v%v", groupInitials, commonus.TimeStampToDate(todyTime, 14), versioNum) + //方案版本 + var savePlanVersio assessmentmodel.PlanVersio + savePlanVersio.Group = groupId + savePlanVersio.Department = departId + savePlanVersio.Year = yearInt + savePlanVersio.Versio = versioNum + savePlanVersio.Key = keyStr + savePlanVersio.State = judgeState + savePlanVersio.AddTime = todyTime + savePlanVersio.EiteTime = todyTime + + // response.Result(0, savePlanVersio, "添加成功!", c) + // return + var saveDataAry []assessmentmodel.QualitativeEvaluation //新增条目 + for _, v := range requestData.Child { //维度 + commonus.AddWeight(requestData.Group, v.Id, requestData.DepartmentId, "", int64(v.ZhiFraction), 1) //添加维度权重 + for _, tar_v := range v.Child { //指标 + if tar_v.Status == 1 { + targetId, _ := strconv.ParseInt(tar_v.Id, 10, 64) //指标ID转换 + evalTarCont, evalTarContErr := commonus.GetTargetInfo(targetId) //获取指标内容 + if evalTarContErr == true { + //判断是定量还是定性 + if evalTarCont.Type == 2 { + //定量指标操作 + commonus.AddWeight(requestData.Group, v.Id, requestData.DepartmentId, tar_v.Id, tar_v.ReferenceScore, 2) + var saveData assessmentmodel.QualitativeEvaluation + + //维度ID + dimId, dimErr := strconv.ParseInt(v.Id, 10, 64) + if dimErr == nil { + saveData.Dimension = dimId + } + saveData.Target = targetId //指标 + saveData.Type = evalTarCont.Type //类型 + saveData.Unit = evalTarCont.Uniteing //单位 + saveData.ReferenceScore = tar_v.ReferenceScore //分值 + // saveData.ReferenceScore = v_s.ReferenceScore //分值 + saveData.State = judgeState //状态 + saveData.Addtime = time.Now().Unix() + saveData.Eitetime = time.Now().Unix() + saveData.Group = groupId //集团 + saveData.Cycles = evalTarCont.Cycles //单位 + saveData.CycleAttres = evalTarCont.CycleAttres //辅助计数 + saveData.AcceptEvaluation = departId //接受考核部门 + saveData.Content = tar_v.Content //描述 + saveData.Operator = evalTarCont.Report //执行考核人 + + var departAry []string + userKeyAry := strings.Split(evalTarCont.Report, ",") + if len(userKeyAry) > 0 { + for _, u_v := range userKeyAry { + usCont, usErr := commonus.GetWorkUser(u_v) + if usErr == true { + departIdStr := strconv.FormatInt(usCont.DepartmentId, 10) + if commonus.IsItTrueString(departIdStr, departAry) == false { + departAry = append(departAry, departIdStr) + } + + } + } + } + saveData.DepartmentId = strings.Join(departAry, ",") + + saveData.QualEvalId = keyStr + //要新增的条目 + saveDataAry = append(saveDataAry, saveData) + } else { + //定性操作 + commonus.AddWeight(requestData.Group, v.Id, requestData.DepartmentId, tar_v.Id, tar_v.ReferenceScore, 1) + //获取部门关联考核指标项目 + var assessTarList []assessmentmodel.Assesstarget + judgeARTErr := global.GVA_DB_Performanceappraisal.Where("`group` = ? AND `dimension` = ? AND `targetid` = ? AND FIND_IN_SET(?,`departmentmap`)", groupId, v.Id, tar_v.Id, departId).Find(&assessTarList).Error + if judgeARTErr == nil { + var guoDu []AddPartMentGuodu + for _, ass_v := range assessTarList { + judgeTure := commonus.JudegSunTarToDepart(ass_v.SunTargetId, departId) + if judgeTure == true { + var guoDuCont AddPartMentGuodu + guoDuCont.Group = groupId + guoDuCont.DeaprtId = departId + guoDuCont.Dimension = ass_v.Dimension + guoDuCont.TargetId = ass_v.TargetId + guoDuCont.SunTargetId = ass_v.SunTargetId + if ass_v.Content != "" { + //拆解指标详情 + var detailedList []DutyAssEssTarget + detailedListErr := json.Unmarshal([]byte(ass_v.Content), &detailedList) + if detailedListErr == nil { + for _, det_v := range detailedList { + guoDuCont.DetailedTarget = det_v.Id + guoDuCont.Operator = det_v.Operator + guoDu = append(guoDu, guoDuCont) + fmt.Printf("Targer---6---->%v---->%v---->%v\n", ass_v.TargetId, ass_v.SunTargetId, det_v.Id) + } + } else { + guoDu = append(guoDu, guoDuCont) + } + } else { + guoDu = append(guoDu, guoDuCont) + } + } + + } + + //判断关联项目 + if len(guoDu) > 0 { + // guoDuJsonm, _ := json.Marshal(guoDu) + // fmt.Printf("Targer---7---->%v---->%v\n", string(guoDuJsonm), guoDu) + for _, ae_v := range guoDu { + //写入新的定性考核细则 + var saveData assessmentmodel.QualitativeEvaluation + saveData.Dimension = ae_v.Dimension + saveData.Target = ae_v.TargetId //指标 + saveData.Type = 1 //类型 + + saveData.TargetSun = ae_v.SunTargetId + + getEvalTarCont, _ := commonus.GetDetailedTargetInfo(ae_v.DetailedTarget) //获取指标内容 + + saveData.DetailedTarget = ae_v.DetailedTarget + + saveData.Unit = getEvalTarCont.Company //单位 + saveData.ReferenceScore = 0 //分值 + + saveData.MinScore = getEvalTarCont.MinScore + saveData.MaxScore = getEvalTarCont.MaxScore + // saveData.ReferenceScore = v_s.ReferenceScore //分值 + saveData.State = judgeState //状态 + saveData.Addtime = time.Now().Unix() + saveData.Eitetime = time.Now().Unix() + saveData.Group = ae_v.Group //集团 + + evaDingXinglTarCont, _ := commonus.GetTargetInfo(ae_v.TargetId) //获取指标内容 + saveData.Cycles = evaDingXinglTarCont.Cycles //1:班;2:天;3:周;4:月;5:季度;6:年 + saveData.CycleAttres = evaDingXinglTarCont.CycleAttres //辅助计数 + + saveData.AcceptEvaluation = ae_v.DeaprtId //接受考核部门 + saveData.Content = getEvalTarCont.Content //描述 + saveData.Operator = strings.Join(ae_v.Operator, ",") //执行考核人 + //获取执行人部门 + var departAry []string + if len(ae_v.Operator) > 0 { + for _, u_v := range ae_v.Operator { + usCont, usErr := commonus.GetWorkUser(u_v) + if usErr == true { + departIdStr := strconv.FormatInt(usCont.DepartmentId, 10) + if commonus.IsItTrueString(departIdStr, departAry) == false { + departAry = append(departAry, departIdStr) + } + + } + } + } + saveData.DepartmentId = strings.Join(departAry, ",") + + saveDataJsonm, _ := json.Marshal(saveData) + fmt.Printf("Targer---9---->%v---->%v\n", string(saveDataJsonm), saveData) + saveData.QualEvalId = keyStr + //要新增的条目 + saveDataAry = append(saveDataAry, saveData) + } + } + } + } + } + } + } + } + if len(saveDataAry) > 0 { + + affairDb := global.GVA_DB_Performanceappraisal.Begin() + addSysAdminContErr := affairDb.Create(&savePlanVersio).Error + addSysAdminAttrContErr := affairDb.Create(&saveDataAry).Error + if addSysAdminContErr == nil && addSysAdminAttrContErr == nil { + affairDbErr := affairDb.Commit().Error + if affairDbErr == nil { + response.Result(0, affairDbErr, "数据写入成功!", c) + } else { + response.Result(108, affairDbErr, "数据写入失败!", c) + } + } else { + affairDbErr := affairDb.Rollback().Error + response.Result(109, affairDbErr, "数据写入失败!", c) + } + } + // response.Result(0, saveDataAry, "添加成功!", c) +} + +//查看考核方案 +func (d *DutyAssessApi) LookDepartDutyVersio(c *gin.Context) { + var requestData LookDutyVersio + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(101, err, "数据获取失败!", c) + return + } + if requestData.Key == "" { + response.Result(102, err, "数据获取失败!", c) + return + } + var qualitativeEvaluationAry []assessmentmodel.QualitativeEvaluation + listTargetErr := global.GVA_DB_Performanceappraisal.Select("qualitative_evaluation.*,dutyclass.sort").Where("`qe_qual_eval_id` = ?", requestData.Key).Joins("left join dutyclass on id = qe_dimension").Order("qe_group asc,qe_accept_evaluation asc,sort asc,qe_type asc,qe_target asc,qe_target_sun asc").Find(&qualitativeEvaluationAry).Error + + if listTargetErr != nil || len(qualitativeEvaluationAry) < 1 { + response.Result(101, listTargetErr, "没有数据!", c) + return + } + var uotContAry []TargetContOutCont + for _, v := range qualitativeEvaluationAry { + var uotCont TargetContOutCont + uotCont.Id = strconv.FormatInt(v.Id, 10) + uotCont.Type = v.Type + uotCont.Group = strconv.FormatInt(v.Group, 10) + groupErr, groupCont := commonus.GetGroupCont(v.Group) + if groupErr == true { + uotCont.GroupNAme = groupCont.Name + } + uotCont.DepartmentId = strconv.FormatInt(v.AcceptEvaluation, 10) + deparConErr, deparConCont := commonus.GetBranchFactory(v.AcceptEvaluation) + if deparConErr == true { + uotCont.DepartmentName = deparConCont.Name + } + uotCont.Dimension = strconv.FormatInt(v.Dimension, 10) + dutyClassCont, dutyClassErr := commonus.GetDutyClassInfo(v.Dimension) + if dutyClassErr == true { + uotCont.DimensionName = dutyClassCont.Title + } + uotCont.DimensionWeight = commonus.GetDimesionTargetWeight(1, v.Group, v.AcceptEvaluation, v.Dimension, 0) + + uotCont.Target = strconv.FormatInt(v.Target, 10) + targetInfo, targetErr := commonus.GetTargetInfo(v.Target) + if targetErr == true { + uotCont.TargetName = targetInfo.Title + } + uotCont.TargetWeight = commonus.GetDimesionTargetWeight(2, v.Group, v.AcceptEvaluation, v.Dimension, v.Target) + 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 + if v.Content == "" { + uotCont.Content = dtCont.Content + } else { + uotCont.Content = v.Content + } + + } else { + uotCont.Content = v.Content + } + uotCont.QualEvalId = v.QualEvalId + uotCont.Unit = v.Unit + uotCont.ReferenceScore = v.ReferenceScore + uotCont.Cycles = v.Cycles + uotCont.CycleAttres = v.CycleAttres + uotCont.State = v.State + 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}) + // if usErr == true { + // var userCont QualEvalArrt + // userCont.Id = u_v + // userCont.Name = usCont.Name + // uotCont.UserListAry = append(uotCont.UserListAry, userCont) + // } + usCont, usErr := commonus.GetWorkUser(u_v) + // GetWorkUser + if usErr == true { + var userCont QualEvalArrt + userCont.Id = u_v + userCont.Name = usCont.Name + userCont.Icon = usCont.Icon + _, groupInfo := commonus.GetGroupCont(usCont.Group) + userCont.GroupName = groupInfo.Name + _, bfInfo := commonus.GetBranchFactory(usCont.DepartmentId) + userCont.DepartmentName = bfInfo.Name + userCont.Number = usCont.Number + uotCont.UserListAry = append(uotCont.UserListAry, userCont) + } + } + + if v.MinScore > 0 && v.MaxScore > 0 { + uotCont.MinOrMaxScore = fmt.Sprintf("%v-%v", float64(v.MinScore)/100, float64(v.MaxScore)/100) + } else if v.MinScore > 0 && v.MaxScore <= 0 { + uotCont.MinOrMaxScore = fmt.Sprintf("%v", float64(v.MinScore)/100) + } else if v.MinScore <= 0 && v.MaxScore > 0 { + uotCont.MinOrMaxScore = fmt.Sprintf("%v", float64(v.MaxScore)/100) + } else { + uotCont.MinOrMaxScore = "0" + } + + uotCont.DetailedTarget = strconv.FormatInt(v.DetailedTarget, 10) + uotContAry = append(uotContAry, uotCont) + } + response.Result(0, uotContAry, "数据获取成功!", c) +} + +//启用禁用删除 +func (d *DutyAssessApi) OnOffDepartDutyVersio(c *gin.Context) { + var requestData SetOnOffDutyVersio + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(101, err, "数据获取失败!", c) + return + } + if requestData.Key == "" { + response.Result(102, err, "数据获取失败!", c) + return + } + if requestData.State == 0 { + requestData.State = 1 + } + if requestData.IsTrue == 0 { + requestData.IsTrue = 2 + } + //判断是否存在 + var ContInfo assessmentmodel.PlanVersio + getContErr := global.GVA_DB_Performanceappraisal.Where("`key` = ?", requestData.Key).First(&ContInfo).Error + if getContErr != nil { + response.Result(103, getContErr, "没有该方案!", c) + return + } + //判断是否可以执行该操作 + if judgeOnOffVersio(ContInfo, requestData.IsTrue) == true { + response.Result(103, ContInfo, "要禁用的方案还有未走完的审批流程!请不要进行此操作!", c) + return + } + //获取 + + if requestData.State != 3 { + eiteOtherData := commonus.MapOut() + eiteOtherData["state"] = 2 + eiteOtherData["eitetime"] = time.Now().Unix() + global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.PlanVersio{}).Where("`group` = ? AND `department` = ? AND `yeares` = ?", ContInfo.Group, ContInfo.Department, ContInfo.Year).Updates(eiteOtherData) + } + + eiteData := commonus.MapOut() + eiteData["state"] = requestData.State + eiteData["eitetime"] = time.Now().Unix() + errOne := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.PlanVersio{}).Where("`key` = ?", requestData.Key).Updates(eiteData).Error + + eiteQuerData := commonus.MapOut() + eiteQuerData["qe_state"] = requestData.State + eiteQuerData["qe_eitetime"] = time.Now().Unix() + global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_qual_eval_id` = ?", requestData.Key).Updates(eiteQuerData) + + if errOne != nil { + response.Result(102, errOne, "修改失败", c) + return + } + response.Result(0, errOne, "修改成功", c) +} + +//判断是否可以执行启用禁用操作 +func judgeOnOffVersio(contInfo assessmentmodel.PlanVersio, onOff int) (isTrue bool) { + isTrue = false + if onOff == 1 { + var isOpen []assessmentmodel.PlanVersio + isErr := global.GVA_DB_Performanceappraisal.Where("`group` = ? AND `department` = ? AND `yeares` = ?", contInfo.Group, contInfo.Department, contInfo.Year).Find(&isOpen).Error + if isErr != nil { + return + } + for _, v := range isOpen { + if v.State == 1 { + isTrue = selectServio(v.Key) + } + } + } else { + isTrue = selectServio(contInfo.Key) + } + return +} + +//查询 +func selectServio(key string) (isTrue bool) { + isTrue = false + fmt.Printf("HGJK--------1---------->%v", key) + var dutyList []assessmentmodel.QualitativeEvaluation + dutyErr := global.GVA_DB_Performanceappraisal.Where("`qe_state` = 1 AND `qe_qual_eval_id` = ?", key).Find(&dutyList).Error + fmt.Printf("HGJK--------2---------->%v", dutyErr) + if dutyErr != nil { + return + } + var dingXing []int64 + var dingLiang []int64 + for _, v := range dutyList { + if v.Type == 1 { + dingXing = append(dingXing, v.Id) + } else { + dingLiang = append(dingLiang, v.Id) + } + } + var dataStruct dataLockStatistics + + syncProcess.Add(1) + go dataStruct.SelectDutyVersioProcessXing(dingXing) + syncProcess.Add(1) + go dataStruct.SelectDutyVersioProcessLing(dingLiang) + syncProcess.Wait() + + readDingXingDataMap, readDingLiangDataMap := dataStruct.readMyDayData() + if len(readDingXingDataMap) > 0 || len(readDingLiangDataMap) > 0 { + isTrue = true + } + return +} + +//并发查询定性考核方案 +func (d *dataLockStatistics) SelectDutyVersioProcessXing(departId []int64) { + d.mutext.Lock() + defer d.mutext.Unlock() + if len(departId) > 0 { + var stateIsTrue []bingFaOut + err := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Select("sf_id,sf_key,sf_evaluation_plan,sf_reply,ep_order_key,ep_state").Where("`sf_evaluation_plan` IN ?", departId).Joins("left join evaluation_process on ep_order_key = sf_key").Find(&stateIsTrue).Error + if err == nil { + for _, v := range stateIsTrue { + if v.State == 1 { + isIn := commonus.MapOut() + isIn["id"] = v.Id + isIn["key"] = v.Key + isIn["state"] = v.State + d.dataMap = append(d.dataMap, isIn) + } + } + } + } + syncProcess.Done() +} + +//并发查询定量考核方案 +func (d *dataLockStatistics) SelectDutyVersioProcessLing(departId []int64) { + d.mutext.Lock() + defer d.mutext.Unlock() + if len(departId) > 0 { + var stateIsTrue []bingFaOutDingLiang + err := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.FlowLog{}).Select("fl_id,fl_key,fl_evaluation_id,fl_reply,ep_order_key,ep_state").Where("`sf_evaluation_plan` IN ?", departId).Joins("left join evaluation_process on ep_order_key = fl_key").Find(&stateIsTrue).Error + if err == nil { + for _, v := range stateIsTrue { + if v.State == 1 { + isIn := commonus.MapOut() + isIn["id"] = v.Id + isIn["key"] = v.Key + isIn["state"] = v.State + d.dataErrMap = append(d.dataErrMap, isIn) + } + } + } + } + syncProcess.Done() +} + +//修改部门考核方案内的说明 +func (d *DutyAssessApi) EiteDepartExplain(c *gin.Context) { + var requestData EitrDepartExplan + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(101, err, "数据获取失败!", c) + return + } + if requestData.Group == "" { + response.Result(102, err, "数据获取失败!", c) + return + } + if requestData.DeaprtId == "" { + response.Result(103, err, "数据获取失败!", c) + return + } + if requestData.Dimension == "" { + response.Result(104, err, "数据获取失败!", c) + return + } + if requestData.TargetId == "" { + response.Result(105, err, "数据获取失败!", c) + return + } + if requestData.QualEvalId == "" { + response.Result(106, err, "数据获取失败!", c) + return + } + eiteData := commonus.MapOut() + eiteData["qe_eitetime"] = time.Now().Unix() + eiteData["qe_content"] = requestData.Content + saveErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Where("`qe_qual_eval_id` = ? AND `qe_group` = ? AND `qe_accept_evaluation` = ? AND `qe_dimension` = ? AND `qe_target` = ?", requestData.QualEvalId, requestData.Group, requestData.DeaprtId, requestData.Dimension, requestData.TargetId).Updates(eiteData).Error + if saveErr == nil { + response.Result(0, eiteData, "数据处理成功!", c) + } else { + response.Result(102, err, "数据处理失败!", c) + } +} diff --git a/gin_server_admin/api/index/evaluation/assessment.go b/gin_server_admin/api/index/evaluation/assessment.go new file mode 100644 index 0000000..b399d48 --- /dev/null +++ b/gin_server_admin/api/index/evaluation/assessment.go @@ -0,0 +1,134 @@ +package evaluation + +import ( + "fmt" + "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/gin-gonic/gin" +) + +//新定性考核列表 +func (e *EvaluationInterface) NewQualitative(c *gin.Context) { + isTrue, userCont := commonus.ClientIdentity() + if isTrue != true { + response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) + return + } + var requestData NewQualType + err := c.ShouldBindJSON(&requestData) + if err != nil { + // response.Result(102, err, "数据获取失败!", c) + // return + } + var qualEvaList []NewQualOutList + gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("DISTINCT qe_group,qe_accept_evaluation,qe_dimension,qe_target,et_title").Joins("left join evaluationtarget on evaluationtarget.et_id = qualitative_evaluation.qe_target").Where("`qe_type` = 1 AND `qe_state` = 1 AND FIND_IN_SET(?,`qe_operator`)", userCont.Key) + if requestData.Group != "" { + gormDb = gormDb.Where("`qe_group` = ?", requestData.Group) + } + if requestData.Department != "" { + gormDb = gormDb.Where("`qe_accept_evaluation` = ?", requestData.Department) + } + if requestData.Title != "" { + gormDb = gormDb.Where("evaluationtarget.et_title LIKE ?", "%"+requestData.Title+"%") + } + errList := gormDb.Order("qe_group ASC,qe_accept_evaluation ASC,qe_dimension ASC,qe_target ASC").Find(&qualEvaList).Error + if errList != nil || len(qualEvaList) < 1 { + response.Result(102, isTrue, "您没有要参加的考核项目!", c) + return + } + var outContList []NewQualOutList + for _, v := range qualEvaList { + var outCont NewQualOutList + outCont.Group = v.Group + _, groupCont := commonus.GetGroupCont(v.Group) + outCont.GroupName = groupCont.Name + outCont.Department = v.Department + _, departCont := commonus.GetBranchFactory(v.Department) + outCont.DepartmentName = departCont.Name + outCont.Dimension = v.Dimension + dimensionCont, _ := commonus.GetDutyClassInfo(v.Dimension) + outCont.DimensionName = dimensionCont.Title + outCont.Target = v.Target + outCont.Title = v.Title + outContList = append(outContList, outCont) + } + response.Result(0, outContList, "获取成功!", c) +} + +//获取定性考核详细指标 +func (e *EvaluationInterface) NewGetQualDetailedTarget(c *gin.Context) { + isTrue, userCont := commonus.ClientIdentity() + if isTrue != true { + response.Result(101, isTrue, "您的身份令牌已经失效!请重新登录获取身份令牌!", c) + return + } + var requestData NewQualDetailTar + err := c.ShouldBindJSON(&requestData) + if err != nil { + response.Result(102, err, "数据获取失败!", c) + return + } + if requestData.Group == "" || requestData.Department == "" || requestData.Target == "" { + response.Result(103, err, "参数错误!请检查您的输入", c) + return + } + var qualEvaList []NewQualDetailOutList + gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id,qe_group,qe_accept_evaluation,qe_dimension,qe_target,et_title,qe_detailed_target,dt_title,qe_target_sun").Joins("left join evaluationtarget on evaluationtarget.et_id = qualitative_evaluation.qe_target").Joins("left join detailed_target on detailed_target.dt_id = qualitative_evaluation.qe_detailed_target").Where("`qe_type` = 1 AND `qe_state` = 1 AND FIND_IN_SET(?,`qe_operator`)", userCont.Key) + gormDb = gormDb.Where("`qe_group` = ?", requestData.Group).Where("`qe_accept_evaluation` = ?", requestData.Department).Where("`qe_target` = ?", requestData.Target) + errList := gormDb.Order("qe_group ASC,qe_accept_evaluation ASC,qe_dimension ASC,qe_target ASC,qe_detailed_target ASC").Find(&qualEvaList).Error + if errList != nil || len(qualEvaList) < 1 { + response.Result(102, isTrue, "您没有要参加的考核项目!", c) + return + } + var outContList []NewQualDetailOutList + for _, v := range qualEvaList { + detaiTargetCont, _ := commonus.GetDetailedTargetInfo(v.DetailedTargetId) + + var outCont NewQualDetailOutList + outCont.Id = v.Id + outCont.Group = v.Group + _, groupCont := commonus.GetGroupCont(v.Group) + outCont.GroupName = groupCont.Name + outCont.Department = v.Department + _, departCont := commonus.GetBranchFactory(v.Department) + outCont.DepartmentName = departCont.Name + outCont.Dimension = v.Dimension + dimensionCont, _ := commonus.GetDutyClassInfo(v.Dimension) + outCont.DimensionName = dimensionCont.Title + outCont.Target = v.Target + outCont.Title = v.Title + + //子栏目 + targetCont, _ := commonus.GetQualitativeTargetInfo(v.TargetSun) + outCont.Target = v.TargetSun + outCont.TargetSunId = strconv.FormatInt(v.TargetSun, 10) + outCont.TargetSunName = targetCont.Title + + outCont.DetailedTargetId = v.DetailedTargetId + outCont.DetailedTargetTitle = v.DetailedTargetTitle + outCont.DetailedTargetCont = detaiTargetCont.Content + outCont.AddReduce = detaiTargetCont.AddReduce + outCont.Company = detaiTargetCont.Company + outCont.State = 1 + if detaiTargetCont.MinScore > 0 && detaiTargetCont.MaxScore > 0 { + outCont.Score = fmt.Sprintf("%v-%v", float64(detaiTargetCont.MinScore)/100, float64(detaiTargetCont.MaxScore)/100) + outCont.State = 2 + } else if detaiTargetCont.MinScore > 0 && detaiTargetCont.MaxScore <= 0 { + outCont.Score = fmt.Sprintf("%v", float64(detaiTargetCont.MinScore)/100) + outCont.State = 1 + } else if detaiTargetCont.MinScore <= 0 && detaiTargetCont.MaxScore > 0 { + outCont.Score = fmt.Sprintf("%v", float64(detaiTargetCont.MaxScore)/100) + outCont.State = 1 + } else { + outCont.Score = "0" + outCont.State = 3 + } + + outContList = append(outContList, outCont) + } + response.Result(0, outContList, "获取成功!", c) +} diff --git a/gin_server_admin/api/index/evaluation/evaluation.go b/gin_server_admin/api/index/evaluation/evaluation.go index 678edc6..e4890cc 100644 --- a/gin_server_admin/api/index/evaluation/evaluation.go +++ b/gin_server_admin/api/index/evaluation/evaluation.go @@ -135,7 +135,7 @@ func (e *EvaluationInterface) AdditionAndSubtractionScore(c *gin.Context) { response.Result(106, requestData, "请问您是要进行加分还是减分?请指定,谢谢!", c) return } - if requestData.Score == 0 { + if requestData.Score == "" { response.Result(107, requestData, "请您输入要操作的分数,谢谢!", c) return } @@ -157,7 +157,7 @@ func (e *EvaluationInterface) AdditionAndSubtractionScore(c *gin.Context) { var addScore assessmentmodel.ScoreFlow addScore.EvaluationPlan = planIdInt addScore.PlusReduceScore = requestData.Type - addScore.Score = requestData.Score + // addScore.Score = requestData.Score addScore.Key = keyNumber addScore.Reason = requestData.Reason addScore.Time = operationTime @@ -298,12 +298,12 @@ func (e *EvaluationInterface) AdditionAndSubtractionScore(c *gin.Context) { mainTitleDesc = programme.Content } } - handleUrl := fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v", keyNumber) - callbakcMsg, isTrueCall, callBackCont := sendmessage.SendMsgPublic(sendUserList, mainTitle, mainTitleDesc, programme.Unit, requestData.Reason, handleUrl, requestData.Type, departmentId, userKey, requestData.Score, keyNumber, "请前往处理") + // handleUrl := fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v", keyNumber) + // callbakcMsg, isTrueCall, callBackCont := sendmessage.SendMsgPublic(sendUserList, mainTitle, mainTitleDesc, programme.Unit, requestData.Reason, handleUrl, requestData.Type, departmentId, userKey, requestData.Score, keyNumber, "请前往处理") outData := commonus.MapOut() - outData["callbakcMsg"] = string(callbakcMsg) - outData["isTrueCall"] = isTrueCall - outData["callBackCont"] = callBackCont + // outData["callbakcMsg"] = string(callbakcMsg) + // outData["isTrueCall"] = isTrueCall + // outData["callBackCont"] = callBackCont outData["addScore"] = addScore outData["mainTitle"] = mainTitle outData["mainTitleDesc"] = mainTitleDesc @@ -752,6 +752,7 @@ func (e *EvaluationInterface) QualitativeEvalRation(c *gin.Context) { } var uotContAry []TargetContOutCont for _, v := range qualEvaList { + kickOut := 1 //踢出设置 var uotCont TargetContOutCont uotCont.Id = strconv.FormatInt(v.Id, 10) uotCont.Type = v.Type @@ -802,9 +803,94 @@ func (e *EvaluationInterface) QualitativeEvalRation(c *gin.Context) { uotCont.UserListAry = append(uotCont.UserListAry, userCont) } } + //获取目标设定 + quanTitWhere := commonus.MapOut() + quanTitWhere["group"] = v.Group + quanTitWhere["departmentid"] = v.DepartmentId + quanTitWhere["dimension"] = v.Dimension + quanTitWhere["target"] = v.Target + if v.DetailedTarget != 0 { + quanTitWhere["targetconfig"] = v.DetailedTarget + } + quanTitCont := commonus.GetQuantitativeConfig(quanTitWhere) + + uotCont.ZeroPrize = strconv.FormatFloat(float64(quanTitCont.Zeroprize)/100, 'f', -1, 64) + uotCont.AllPrize = strconv.FormatFloat(float64(quanTitCont.Allprize)/100, 'f', -1, 64) + + //获取实际值 + shiJiZhi := commonus.MapOut() + shiJiZhi["fl_evaluation_user"] = userCont.Key + shiJiZhi["fl_evaluation_department"] = userCont.DepartmentId + shiJiZhi["fl_evaluation_group"] = userCont.Group + + operationTime := time.Now().Unix() + switch v.Cycles { + case 1: + shiJiZhi["fl_year"] = commonus.ComputingTime(operationTime, 1) + shiJiZhi["fl_quarter"] = commonus.ComputingTime(operationTime, 2) + shiJiZhi["fl_month"] = commonus.ComputingTime(operationTime, 3) + shiJiZhi["fl_week"] = commonus.ComputingTime(operationTime, 4) + shiJiZhi["fl_day"] = commonus.ComputingTime(operationTime, 5) + case 2: + shiJiZhi["fl_year"] = commonus.ComputingTime(operationTime, 1) + shiJiZhi["fl_quarter"] = commonus.ComputingTime(operationTime, 2) + shiJiZhi["fl_month"] = commonus.ComputingTime(operationTime, 3) + shiJiZhi["fl_week"] = commonus.ComputingTime(operationTime, 4) + shiJiZhi["fl_day"] = commonus.ComputingTime(operationTime, 5) + case 3: + shiJiZhi["fl_year"] = commonus.ComputingTime(operationTime, 1) + shiJiZhi["fl_quarter"] = commonus.ComputingTime(operationTime, 2) + shiJiZhi["fl_month"] = commonus.ComputingTime(operationTime, 3) + shiJiZhi["fl_week"] = commonus.ComputingTime(operationTime, 4) + case 4: + shiJiZhi["fl_year"] = commonus.ComputingTime(operationTime, 1) + shiJiZhi["fl_quarter"] = commonus.ComputingTime(operationTime, 2) + shiJiZhi["fl_month"] = commonus.ComputingTime(operationTime, 3) + case 5: + shiJiZhi["fl_year"] = commonus.ComputingTime(operationTime, 1) + shiJiZhi["fl_quarter"] = commonus.ComputingTime(operationTime, 2) + case 6: + shiJiZhi["fl_year"] = commonus.ComputingTime(operationTime, 1) + default: + shiJiZhi["fl_year"] = commonus.ComputingTime(operationTime, 1) + shiJiZhi["fl_quarter"] = commonus.ComputingTime(operationTime, 2) + shiJiZhi["fl_month"] = commonus.ComputingTime(operationTime, 3) + shiJiZhi["fl_week"] = commonus.ComputingTime(operationTime, 4) + shiJiZhi["fl_day"] = commonus.ComputingTime(operationTime, 5) + } + + actualValue := commonus.GetTimeIntervalDuty(shiJiZhi, v.Id) //实际值 + uotCont.Actual = strconv.FormatFloat(actualValue/100, 'f', -1, 64) + + judgeActualValue := commonus.GetTimeIntervalDutyJudge(shiJiZhi, v.Id) //判断当前条件下时候又审批中和审批通过的 + if judgeActualValue > 0 { + kickOut = 2 + } + //计算达成率 + if quanTitCont.Zeroprize == 0 && quanTitCont.Allprize == 0 { + uotCont.Reach = "未设置目标值" + } else { + 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.Reason = "" uotCont.DetailedTarget = strconv.FormatInt(v.DetailedTarget, 10) - uotContAry = append(uotContAry, uotCont) + if kickOut == 1 { + uotContAry = append(uotContAry, uotCont) + } + // uotContAry = append(uotContAry, uotCont) } response.Result(0, uotContAry, "用户端个人要执行的考核任务", c) } @@ -853,6 +939,7 @@ func (e *EvaluationInterface) AddFlowRationLog(c *gin.Context) { operationTime := time.Now().Unix() keyNumber := commonus.GetFileNumberEs() var flowLog assessmentmodel.FlowLog + flowLog.Key = keyNumber flowLog.Time = time.Now().Unix() flowLog.EiteTime = time.Now().Unix() @@ -877,14 +964,18 @@ func (e *EvaluationInterface) AddFlowRationLog(c *gin.Context) { flowLog.Reply = 1 var flowDataLogAry []assessmentmodel.FlowLogData var reason string + var evaluationPlan []string //方案ID + jsonMapStr, _ := json.Marshal(requestData.List) + fmt.Printf("OutJsonMap-----1------>%\n", string(jsonMapStr)) for i, v := range requestData.List { var flowDataLog assessmentmodel.FlowLogData + evaluationPlan = append(evaluationPlan, v.Id) evaluationPlanid, evaluationPlanidErr := strconv.ParseInt(v.Id, 10, 64) if evaluationPlanidErr == nil { flowDataLog.EvaluationPlan = evaluationPlanid } flowDataLog.Key = keyNumber - flowDataLog.Score = v.Score * 100 + flowDataLog.Score = commonus.GetDuyCycle(v.Actual, 100) flowDataLog.Content = v.Reason flowDataLog.Enclosure = strings.Join(v.Enclosure, ",") flowDataLog.Time = time.Now().Unix() @@ -892,11 +983,21 @@ func (e *EvaluationInterface) AddFlowRationLog(c *gin.Context) { tarInfo, _ := commonus.GetTargetInfo(targetInfo.Target) if i == 0 { if targetInfoErr == true { - reason = fmt.Sprintf("%v :%v%v", tarInfo.Title, v.Score, v.Unit) + if v.Reason != "" { + reason = fmt.Sprintf("%v :%v%v\n备注:%v", tarInfo.Title, v.Actual, v.Unit, v.Reason) + } else { + reason = fmt.Sprintf("%v :%v%v", tarInfo.Title, v.Actual, v.Unit) + } + } } else { if targetInfoErr == true { - reason = fmt.Sprintf("%v\n%v :%v%v", reason, tarInfo.Title, v.Score, v.Unit) + if v.Reason != "" { + reason = fmt.Sprintf("%v\n%v :%v%v\n备注:%v", reason, tarInfo.Title, v.Actual, v.Unit, v.Reason) + } else { + reason = fmt.Sprintf("%v\n%v :%v%v", reason, tarInfo.Title, v.Actual, v.Unit) + } + } } @@ -904,6 +1005,8 @@ func (e *EvaluationInterface) AddFlowRationLog(c *gin.Context) { } gromDb := global.GVA_DB_Performanceappraisal.Begin() + flowLog.EvaluationPlan = strings.Join(evaluationPlan, ",") + addFlowLogErr := gromDb.Create(&flowLog).Error addFlowLogDataErr := gromDb.Create(&flowDataLogAry).Error fmt.Printf("%v---------------------->%v\n", addFlowLogErr, addFlowLogDataErr) @@ -1033,11 +1136,19 @@ func (e *EvaluationInterface) LookDutkScoreFlow(c *gin.Context) { fmt.Printf("7-------------------->%v\n", requestData.Id) dutyCecorFlowInfo.Reason = addScore.Reason + //分数 + sendScore := addScore.Score * int64(addScore.Count) if addScore.PlusReduceScore == 1 { - dutyCecorFlowInfo.ReasonInfo = "增加:" + strconv.FormatInt(addScore.Score, 10) + qualEvalCont.Unit + dutyCecorFlowInfo.ReasonInfo = fmt.Sprintf("考核加分:%v\n", float64(sendScore)/100) } else { - dutyCecorFlowInfo.ReasonInfo = "扣除:" + strconv.FormatInt(addScore.Score, 10) + qualEvalCont.Unit + dutyCecorFlowInfo.ReasonInfo = fmt.Sprintf("考核减分:%v\n", float64(sendScore)/100) } + + // if addScore.PlusReduceScore == 1 { + // dutyCecorFlowInfo.ReasonInfo = "增加:" + strconv.FormatInt(addScore.Score, 10) + qualEvalCont.Unit + // } else { + // dutyCecorFlowInfo.ReasonInfo = "扣除:" + strconv.FormatInt(addScore.Score, 10) + qualEvalCont.Unit + // } fmt.Printf("8-------------------->%v\n", requestData.Id) if addScore.Rectification == 1 { var divisionResponsibilities []assessmentmodel.DivisionResponsibilities diff --git a/gin_server_admin/api/index/evaluation/flowsend.go b/gin_server_admin/api/index/evaluation/flowsend.go index a4df6fd..a999821 100644 --- a/gin_server_admin/api/index/evaluation/flowsend.go +++ b/gin_server_admin/api/index/evaluation/flowsend.go @@ -48,9 +48,24 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) { response.Result(106, requestData, "请问您是要进行加分还是减分?请指定,谢谢!", c) return } - if requestData.Score == 0 { - response.Result(107, requestData, "请您输入要操作的分数,谢谢!", c) - return + countFrequency := 1 + if requestData.Count != 0 { + countFrequency = requestData.Count + } + switch requestData.State { + case 2, 3: + if requestData.Score == "" { + response.Result(107, requestData, "请您输入要操作的分数,谢谢!", c) + return + } + case 1: + //获取分数 + requestData.Score = strconv.FormatInt(programme.MaxScore, 10) + default: + if requestData.Score == "" { + response.Result(107, requestData, "请您输入要操作的分数,谢谢!", c) + return + } } if requestData.Reason == "" { response.Result(108, requestData, "请输入您的原因,谢谢!", c) @@ -66,37 +81,42 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) { operationTime := time.Now().Unix() keyNumber := commonus.GetFileNumberEs() var addScore assessmentmodel.ScoreFlow - addScore.EvaluationPlan = planIdInt - addScore.PlusReduceScore = requestData.Type - addScore.Score = requestData.Score - addScore.Key = keyNumber - addScore.Reason = requestData.Reason + addScore.EvaluationPlan = planIdInt //考核方案项目ID + addScore.PlusReduceScore = requestData.Type //1:加分;2:减分 + //分值转化 + scoreStringToInt64 := commonus.GetDuyCycle(requestData.Score, 100) + + addScore.Score = scoreStringToInt64 //分值(乘100录入) + addScore.Key = keyNumber //识别标志 + addScore.Reason = requestData.Reason //操作原因 addScore.Time = operationTime addScore.EiteTime = operationTime - addScore.HappenTime = commonus.DateToTimeStamp(requestData.Addtime) + addScore.Count = countFrequency //发生次数 + addScore.HappenTime = commonus.DateToTimeStamp(requestData.Addtime) //发生时间 departmentId, departmentIdErr := strconv.ParseInt(userCont.DepartmentId, 10, 64) if departmentIdErr == nil { - addScore.EvaluationDepartment = departmentId + addScore.EvaluationDepartment = departmentId //测评部门 } userKey, userKeyErr := strconv.ParseInt(userCont.Key, 10, 64) if userKeyErr == nil { - addScore.EvaluationUser = userKey + addScore.EvaluationUser = userKey //测评人 } userGroup, userGroupErr := strconv.ParseInt(userCont.Group, 10, 64) if userGroupErr == nil { - addScore.EvaluationGroup = userGroup + addScore.EvaluationGroup = userGroup //测评集团 } + //获取拆分时间节 addScore.Year = commonus.ComputingTime(operationTime, 1) addScore.Quarter = commonus.ComputingTime(operationTime, 2) addScore.Month = commonus.ComputingTime(operationTime, 3) addScore.Week = commonus.ComputingTime(operationTime, 4) enclosure, enclosureErr := json.Marshal(requestData.Enclosure) if enclosureErr == nil { - addScore.Enclosure = string(enclosure) + addScore.Enclosure = string(enclosure) //附件 } - addScore.DutyGroup = programme.Group - addScore.DutyDepartment = programme.AcceptEvaluation - addScore.Rectification = requestData.Rectification + addScore.DutyGroup = programme.Group //职责集团 + addScore.DutyDepartment = programme.AcceptEvaluation //职责部门 + addScore.Rectification = requestData.Rectification //1、需要整改;2:无需整改 addScore.Reply = 1 addErr := global.GVA_DB_Performanceappraisal.Create(&addScore).Error //步进内容 @@ -148,10 +168,19 @@ func (e *EvaluationInterface) PlusOrMinusPoints(c *gin.Context) { reason := fmt.Sprintf("原因:%v\n", requestData.Reason) //执行操作内容 var subtitle string = "" + + //分数 + sendScore := scoreStringToInt64 * int64(countFrequency) + + 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) + if requestData.Type == 1 { - subtitle = fmt.Sprintf("加:%v%v\n", requestData.Score, programme.Unit) + subtitle = fmt.Sprintf("考核加分:%v\n", scoreFloat64ToStringsss) } else { - subtitle = fmt.Sprintf("扣除:%v%v\n", requestData.Score, programme.Unit) + subtitle = fmt.Sprintf("考核减分:%v\n", scoreFloat64ToStringsss) } twoLevelTitle := "考核上报部门:" @@ -321,7 +350,7 @@ func (e *EvaluationInterface) PersonInCharge(c *gin.Context) { //分配权限 weightFloat := float64(v.Weight) / float64(userKeyLen) weightInt := commonus.Round(weightFloat, 2) * 100 - weightInt64, _ := strconv.ParseInt(strconv.FormatFloat(weightInt, 'g', 1, 64), 10, 64) + weightInt64, _ := strconv.ParseInt(strconv.FormatFloat(weightInt, 'f', -1, 64), 10, 64) //不是班组选项 for _, ua_v := range v.UserKey { userConting, userIsTrue := commonus.GetWorkUser(ua_v) @@ -418,7 +447,7 @@ func (e *EvaluationInterface) PersonInCharge(c *gin.Context) { //分配权限 weightFloat := float64(t_v.Weight) / float64(jiShuQi) weightInt := commonus.Round(weightFloat, 2) * 100 - weightInt64, _ := strconv.ParseInt(strconv.FormatFloat(weightInt, 'g', 1, 64), 10, 64) + weightInt64, _ := strconv.ParseInt(strconv.FormatFloat(weightInt, 'f', -1, 64), 10, 64) for _, tu_v := range teamUserList { if judgeIsSet(tu_v.Key, userKeyAry) == false { @@ -462,11 +491,20 @@ func (e *EvaluationInterface) PersonInCharge(c *gin.Context) { taskId := strconv.FormatInt(commonus.GetFileNumberEs(), 10) //卡片唯一识别符 //获取执行结果 var mainTitleDesc string = "" + + //分数 + sendScore := scoreFlowInfo.Score * int64(scoreFlowInfo.Count) if scoreFlowInfo.PlusReduceScore == 1 { - mainTitleDesc = "增加:" + strconv.FormatInt(scoreFlowInfo.Score, 10) + programme.Unit + mainTitleDesc = fmt.Sprintf("考核加分:%v\n", float64(sendScore)/100) } else { - mainTitleDesc = "扣除:" + strconv.FormatInt(scoreFlowInfo.Score, 10) + programme.Unit + mainTitleDesc = fmt.Sprintf("考核减分:%v\n", float64(sendScore)/100) } + + // if scoreFlowInfo.PlusReduceScore == 1 { + // mainTitleDesc = "增加:" + strconv.FormatInt(scoreFlowInfo.Score, 10) + programme.Unit + // } else { + // mainTitleDesc = "扣除:" + strconv.FormatInt(scoreFlowInfo.Score, 10) + programme.Unit + // } //部门名称 var twoLevelKeyName string = "" departmentId, _ := strconv.ParseInt(userCont.DepartmentId, 10, 64) diff --git a/gin_server_admin/api/index/evaluation/newflowsend.go b/gin_server_admin/api/index/evaluation/newflowsend.go new file mode 100644 index 0000000..8e6bac5 --- /dev/null +++ b/gin_server_admin/api/index/evaluation/newflowsend.go @@ -0,0 +1 @@ +package evaluation diff --git a/gin_server_admin/api/index/evaluation/type.go b/gin_server_admin/api/index/evaluation/type.go index ef8a828..5d04f5d 100644 --- a/gin_server_admin/api/index/evaluation/type.go +++ b/gin_server_admin/api/index/evaluation/type.go @@ -31,6 +31,11 @@ type TargetContOutCont struct { State int `json:"state"` UserList []string `json:"userlist"` //执行人列表 UserListAry []QualEvalArrt `json:"userlistary"` //执行人列表 + Actual string `json:"actual"` //实际值 + ZeroPrize string `json:"zeroprize"` //零奖值 + AllPrize string `json:"allprize"` //全奖奖值 + Reach string `json:"reach"` //达成率 + Reason string `json:"reason"` //说明 } //定性考核列表输出 @@ -44,7 +49,9 @@ type addPlusOrMinusPoints struct { PlanId string `json:"planid"` //方案id Addtime string `json:"time"` //检查时间 Type int `json:"type"` //1:加分;2:减分 - Score int64 `json:""score` //分数 + Score string `json:"score"` //分数 + Count int `json:"count"` //次数 + State int `json:"state"` //1、定分;2、区间分;3、不定性分值 Reason string `json:"reason"` //原因 Rectification int `json:"rectification"` //1:整改;2:无需整改 Enclosure []string `json:"enclosure"` //附件 @@ -104,10 +111,12 @@ type AddRationFlowLog struct { } type RationLogList struct { - Id string `json:"id"` - Score int64 `json:"score` - Unit string `json:"unit` - Reason string `json:"content"` //原因 + Id string `json:"id"` + // Score int64 `json:"score` + Actual string `json:"actual` + Unit string `json:"unit` + // Content string `json:"content"` //原因 + Reason string `json:"reason"` //原因 Enclosure []string `json:"enclosure"` //附件 } @@ -227,3 +236,47 @@ type FlowLogListOut struct { Result string `json:"result"` //审批结果 Class int `json:"class"` //1、定性;2、定量 } + +//新定性考核列表 +type NewQualType struct { + Group string `json:"group"` //集团 + Department string `json:"department"` //部门 + Title string `json:"tittle"` //指标名称 +} + +//新型定性考核列表输出 +type NewQualOutList struct { + Group int64 `json:"group" gorm:"column:qe_group;type:bigint(20) unsigned;default:0;not null;comment:归属集团"` + GroupName string `json:"groupname"` //集团 + Department int64 `json:"department" gorm:"column:qe_accept_evaluation;type:bigint(20) unsigned;default:0;not null;comment:接受考核部门"` + DepartmentName string `json:"departmentname"` //部门 + Dimension int64 `json:"dimension" gorm:"column:qe_dimension;type:bigint(20) unsigned;default:0;not null;comment:考核维度"` + DimensionName string `json:"dimensionname"` //维度 + Target int64 `json:"target" gorm:"column:qe_target;type:bigint(20) unsigned;default:0;not null;comment:考核指标"` + Title string `json:"title" gorm:"column:et_title;type:varchar(255);comment:指标名称"` + ExtraPoints int64 `json:"extrapoints"` //加分总价 + ScoreReduction int64 `json:"scorereduction"` //减分总计 +} + +//新定性考核指标细则列表 +type NewQualDetailTar struct { + Group string `json:"group"` //集团 + Department string `json:"department"` //部门 + Target string `json:"targets"` //指标id +} + +//新型定性考核细则列表输出 +type NewQualDetailOutList struct { + NewQualOutList + Id int64 `json:"id" gorm:"primaryKey;column:qe_id;type:bigint(20) unsigned;not null;comment:Id;index"` + DetailedTargetId int64 `json:"detailedtargetid" gorm:"column:qe_detailed_target;type:bigint(20) unsigned;default:0;not null;comment:考核细则"` + DetailedTargetTitle string `json:"detailedtargenttitle" gorm:"column:dt_title;type:text;comment:指标细则"` //指标明细 + DetailedTargetCont string `json:"detailedtargentcont"` //指标明细 + AddReduce int `json:"addreduce"` //1:减少;2:增加;3:无属性,现场确认加或减"` + Company string `json:"company"` //单位 + Score string `json:"score"` + State int `json:"state"` //1、定分;2、区间分;3、不定性分值 + TargetSun int64 `json:"targetsun" gorm:"column:qe_target_sun;type:bigint(20) unsigned;default:0;not null;comment:考核指标子栏目"` + TargetSunId string `json:"targetsunid"` //子栏目ID + TargetSunName string `json:"targetsunname"` //子栏目名称 +} diff --git a/gin_server_admin/api/v1/assessment/department_target.go b/gin_server_admin/api/v1/assessment/department_target.go index 8816b18..84fbd0c 100644 --- a/gin_server_admin/api/v1/assessment/department_target.go +++ b/gin_server_admin/api/v1/assessment/department_target.go @@ -98,7 +98,7 @@ func (d *DutyHandle) DepartmentTaskList(c *gin.Context) { c.ShouldBindJSON(&requestData) var qualitativeEvaluationAry []assessmentmodel.QualitativeEvaluation - gormDb := global.GVA_DB_Performanceappraisal + gormDb := global.GVA_DB_Performanceappraisal.Select("qualitative_evaluation.*,dutyclass.sort") if requestData.Type != 0 { gormDb = gormDb.Where("`qe_type` = ?", requestData.Type) } @@ -122,7 +122,7 @@ func (d *DutyHandle) DepartmentTaskList(c *gin.Context) { gormDb = gormDb.Where("`qe_target_sun` = ?", requestData.TargetSun) } gormDb = gormDb.Where("`qe_state` = 1") - listTargetErr := gormDb.Order("qe_group asc,qe_accept_evaluation asc,qe_dimension asc,qe_type asc,qe_target asc,qe_target_sun asc").Find(&qualitativeEvaluationAry).Error + listTargetErr := gormDb.Joins("left join dutyclass on id = qe_dimension").Order("qe_group asc,qe_accept_evaluation asc,sort asc,qe_type asc,qe_target asc,qe_target_sun asc").Find(&qualitativeEvaluationAry).Error if listTargetErr != nil || len(qualitativeEvaluationAry) < 1 { response.Result(101, listTargetErr, "没有数据!", c) @@ -155,7 +155,7 @@ func (d *DutyHandle) DepartmentTaskList(c *gin.Context) { if targetErr == true { uotCont.TargetName = targetInfo.Title } - uotCont.TargetWeight = commonus.GetDimesionTargetWeight(1, v.Group, v.AcceptEvaluation, v.Dimension, v.Target) + uotCont.TargetWeight = commonus.GetDimesionTargetWeight(2, v.Group, v.AcceptEvaluation, v.Dimension, v.Target) uotCont.TargetSun = strconv.FormatInt(v.TargetSun, 10) info, infoErr := commonus.GetQualitativeTargetInfo(v.TargetSun) if infoErr == true { @@ -185,6 +185,16 @@ func (d *DutyHandle) DepartmentTaskList(c *gin.Context) { } } + if v.MinScore > 0 && v.MaxScore > 0 { + uotCont.MinOrMaxScore = fmt.Sprintf("%v-%v", float64(v.MinScore)/100, float64(v.MaxScore)/100) + } else if v.MinScore > 0 && v.MaxScore <= 0 { + uotCont.MinOrMaxScore = fmt.Sprintf("%v", float64(v.MinScore)/100) + } else if v.MinScore <= 0 && v.MaxScore > 0 { + uotCont.MinOrMaxScore = fmt.Sprintf("%v", float64(v.MaxScore)/100) + } else { + uotCont.MinOrMaxScore = "0" + } + uotCont.DetailedTarget = strconv.FormatInt(v.DetailedTarget, 10) uotContAry = append(uotContAry, uotCont) } diff --git a/gin_server_admin/api/v1/assessment/dutytype.go b/gin_server_admin/api/v1/assessment/dutytype.go index 47d39d2..8e74d30 100644 --- a/gin_server_admin/api/v1/assessment/dutytype.go +++ b/gin_server_admin/api/v1/assessment/dutytype.go @@ -684,6 +684,7 @@ type TargetContOutCont struct { State int `json:"state"` UserList []string `json:"userlist"` //执行人列表 UserListAry []QualEvalArrt `json:"userlistary"` //执行人列表 + MinOrMaxScore string `json:"score"` //参考分值 } //修改考核方案单条细则 diff --git a/gin_server_admin/api/v1/assessment/target.go b/gin_server_admin/api/v1/assessment/target.go index adf61f7..2301204 100644 --- a/gin_server_admin/api/v1/assessment/target.go +++ b/gin_server_admin/api/v1/assessment/target.go @@ -104,7 +104,7 @@ func (d *DutyHandle) GetTargetList(c *gin.Context) { outMapCont.Type = tg_val.Type outMapCont.State = tg_val.State outMapCont.AddTime = tg_val.AddTime - outMapCont.Share = tg_val.Share + outMapCont.Share = 2 outMapCont.RelevantDepartments = tg_val.RelevantDepartments if tg_val.RelevantDepartments != "" { departIdAry := strings.Split(tg_val.RelevantDepartments, ",") @@ -352,6 +352,7 @@ func (d *DutyHandle) GetTarget(c *gin.Context) { if systemEvalCont.VisibleRange != "" { systemEvalCont.VisibleRangeDepartMap = strings.Split(systemEvalCont.VisibleRange, ",") } + systemEvalCont.Share = 2 systemEvalCont.DimensionIdStr = strconv.FormatInt(systemEvalCont.Dimension, 10) response.Result(0, systemEvalCont, "数据获取成功!", c) } @@ -470,18 +471,28 @@ func (d *DutyHandle) EiteTarget(c *gin.Context) { if requestData.Type != 0 { saveData["et_type"] = requestData.Type } - if requestData.Share != 0 { - saveData["et_share"] = requestData.Share - if requestData.Share > 1 { - if len(requestData.RelevantDepartments) == 0 { - response.Result(103, err, "您选择了此指标为指定部门使用!但您未指定具体使用部门!请指定相关使用部门!", c) - return - } - saveData["et_relevant_departments"] = strings.Join(requestData.RelevantDepartments, ",") - } else { - saveData["et_relevant_departments"] = "" - } + + if len(requestData.RelevantDepartments) > 0 { + saveData["et_relevant_departments"] = strings.Join(requestData.RelevantDepartments, ",") + saveData["et_share"] = 2 + } else { + saveData["et_relevant_departments"] = "" + saveData["et_share"] = 1 } + + // if requestData.Share != 0 { + // saveData["et_share"] = requestData.Share + // if requestData.Share > 1 { + // if len(requestData.RelevantDepartments) == 0 { + // response.Result(103, err, "您选择了此指标为指定部门使用!但您未指定具体使用部门!请指定相关使用部门!", c) + // return + // } + // saveData["et_relevant_departments"] = strings.Join(requestData.RelevantDepartments, ",") + // } else { + // saveData["et_relevant_departments"] = "" + // } + // } + if requestData.Dimension != "" { saveData["et_dimension"] = requestData.Dimension } diff --git a/gin_server_admin/api/v1/shiyan/shiyan.go b/gin_server_admin/api/v1/shiyan/shiyan.go index 960039e..a1f6104 100644 --- a/gin_server_admin/api/v1/shiyan/shiyan.go +++ b/gin_server_admin/api/v1/shiyan/shiyan.go @@ -1413,3 +1413,31 @@ func (s *ShiyanApi) JiaMi(c *gin.Context) { response.Result(101, outMap, "sha1Token加密实验!", c) } + +//处理子栏目归属 +func (s *ShiyanApi) SunTar(c *gin.Context) { + var sunList []assessmentmodel.QualitativeTarget + err := global.GVA_DB_Performanceappraisal.Find(&sunList).Error + if err != nil { + return + } + for _, v := range sunList { + departStr := GetGuishuDepart(v.ParentId) + + eiteCont := commonus.MapOut() + eiteCont["q_depart"] = departStr + eiteCont["q_time"] = time.Now().Unix() + global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeTarget{}).Where("`q_id` = ?", v.Id).Updates(eiteCont) + fmt.Printf("%v\n", v.Id) + } +} + +//获取指标归属分厂 +func GetGuishuDepart(targetId int64) (departStr string) { + var targetCont assessmentmodel.EvaluationTarget + err := global.GVA_DB_Performanceappraisal.Where("et_id = ?", targetId).First(&targetCont).Error + if err == nil { + departStr = targetCont.RelevantDepartments + } + return +} diff --git a/gin_server_admin/api/wechatapp/callback/updatehandle.go b/gin_server_admin/api/wechatapp/callback/updatehandle.go index 1f1c1d5..d9760a9 100644 --- a/gin_server_admin/api/wechatapp/callback/updatehandle.go +++ b/gin_server_admin/api/wechatapp/callback/updatehandle.go @@ -136,10 +136,11 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt taskId := strconv.FormatInt(commonus.GetFileNumberEs(), 10) evaluationPlanStr := strconv.FormatInt(scoreFlowInfo.EvaluationPlan, 10) var executeReason string = "" + sendScore := scoreFlowInfo.Score * int64(scoreFlowInfo.Count) if scoreFlowInfo.PlusReduceScore == 1 { - executeReason = fmt.Sprintf("加:%v\n", scoreFlowInfo.Score) + executeReason = fmt.Sprintf("考核加分:%v\n", float64(sendScore)/100) } else { - executeReason = fmt.Sprintf("减:%v\n", scoreFlowInfo.Score) + executeReason = fmt.Sprintf("考核减分:%v\n", float64(sendScore)/100) } SendUpdateCallBackMsg(t.FromUsername, orderId, taskId, evaluationPlanStr, executeReason, "考核部门", userContInfo.DepartmentName, userContInfo.Name, t.FromUsername) flowSaveData := commonus.MapOut() @@ -206,11 +207,17 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt } } var quoteAreaTitle string = "" + sendScore := scoreFlowInfo.Score * int64(scoreFlowInfo.Count) if scoreFlowInfo.PlusReduceScore == 1 { - quoteAreaTitle = fmt.Sprintf("加:%v%v\n", scoreFlowInfo.Score, programme.Unit) + quoteAreaTitle = fmt.Sprintf("考核加分:%v\n", float64(sendScore)/100) } else { - quoteAreaTitle = fmt.Sprintf("扣除:%v%v\n", scoreFlowInfo.Score, programme.Unit) + quoteAreaTitle = fmt.Sprintf("考核减分:%v\n", float64(sendScore)/100) } + // if scoreFlowInfo.PlusReduceScore == 1 { + // quoteAreaTitle = fmt.Sprintf("加:%v%v\n", scoreFlowInfo.Score, programme.Unit) + // } else { + // quoteAreaTitle = fmt.Sprintf("扣除:%v%v\n", scoreFlowInfo.Score, programme.Unit) + // } cardJumpUrl := fmt.Sprintf("http://new.hxgk.group/#/approvalList?id=%v", orderId) jumpUrl := fmt.Sprintf("http://new.hxgk.group/#/responsible?id=%v", orderId) jumpUrlTitle := "请前往处理" @@ -257,6 +264,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt fmt.Printf("Setp-------6----------->%v----------->%v\n", sendUserList, personLiable) //获取考核项目关联项目 targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId) + fmt.Printf("%v", unit) //一级文本处理 var title, desc string if detailedRulesTitle != "" { @@ -271,11 +279,17 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt title = targettitle } var quoteAreaTitle string = "" + sendScore := flowContent.Score * int64(flowContent.Count) if flowContent.PlusReduceScore == 1 { - quoteAreaTitle = fmt.Sprintf("加:%v%v\n", flowContent.Score, unit) + quoteAreaTitle = fmt.Sprintf("考核加分:%v\n", float64(sendScore)/100) } else { - quoteAreaTitle = fmt.Sprintf("扣除:%v%v\n", flowContent.Score, unit) + quoteAreaTitle = fmt.Sprintf("考核减分:%v\n", float64(sendScore)/100) } + // if flowContent.PlusReduceScore == 1 { + // quoteAreaTitle = fmt.Sprintf("加:%v%v\n", flowContent.Score, unit) + // } else { + // quoteAreaTitle = fmt.Sprintf("扣除:%v%v\n", flowContent.Score, unit) + // } quoteAreaContent := flowContent.Reason twoLevelTitle := "部门负责人" twoLevelKeyName := userContInfo.DepartmentName @@ -303,6 +317,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt //获取考核项目关联项目 targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId) + fmt.Printf("%v", unit) //一级文本处理 var title, desc string if detailedRulesTitle != "" { @@ -317,11 +332,17 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt title = targettitle } var subtitle string = "" + sendScore := flowContent.Score * int64(flowContent.Count) if flowContent.PlusReduceScore == 1 { - subtitle = fmt.Sprintf("加:%v%v\n", flowContent.Score, unit) + subtitle = fmt.Sprintf("考核加分:%v\n", float64(sendScore)/100) } else { - subtitle = fmt.Sprintf("扣除:%v%v\n", flowContent.Score, unit) + subtitle = fmt.Sprintf("考核减分:%v\n", float64(sendScore)/100) } + // if flowContent.PlusReduceScore == 1 { + // subtitle = fmt.Sprintf("加:%v%v\n", flowContent.Score, unit) + // } else { + // subtitle = fmt.Sprintf("扣除:%v%v\n", flowContent.Score, unit) + // } //获取责任划分 var reason string teamBility, teamErr := commonus.GetDivisionOfResponsibility(orderId, 2) @@ -378,6 +399,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt } //获取考核项目关联项目 targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId) + fmt.Printf("%v\n", unit) //一级文本处理 var title, desc string if detailedRulesTitle != "" { @@ -395,11 +417,17 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt //获取执行结果 var mainTitleDesc string mainTitleDesc = fmt.Sprintf("执行原因:%v\n", flowContent.Reason) + sendScore := flowContent.Score * int64(flowContent.Count) if flowContent.PlusReduceScore == 1 { - mainTitleDesc = fmt.Sprintf("%v加:%v%v\n", mainTitleDesc, flowContent.Score, unit) + mainTitleDesc = fmt.Sprintf("%v考核加分:%v\n", mainTitleDesc, float64(sendScore)/100) } else { - mainTitleDesc = fmt.Sprintf("%v减:%v%v\n", mainTitleDesc, flowContent.Score, unit) + mainTitleDesc = fmt.Sprintf("%v考核减分:%v\n", mainTitleDesc, float64(sendScore)/100) } + // if flowContent.PlusReduceScore == 1 { + // mainTitleDesc = fmt.Sprintf("%v加:%v%v\n", mainTitleDesc, flowContent.Score, unit) + // } else { + // mainTitleDesc = fmt.Sprintf("%v减:%v%v\n", mainTitleDesc, flowContent.Score, unit) + // } var reason string buttonClickAry := strings.Split(t.EventKey, "_") if len(buttonClickAry) > 4 { @@ -468,6 +496,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt //获取考核项目关联项目 targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId) + fmt.Printf("%v\n", unit) //一级文本处理 var title, desc string if detailedRulesTitle != "" { @@ -485,11 +514,17 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt //获取执行结果 var mainTitleDesc string mainTitleDesc = fmt.Sprintf("执行原因:%v\n", flowContent.Reason) + sendScore := flowContent.Score * int64(flowContent.Count) if flowContent.PlusReduceScore == 1 { - mainTitleDesc = fmt.Sprintf("%v加:%v%v\n", mainTitleDesc, flowContent.Score, unit) + mainTitleDesc = fmt.Sprintf("%v考核加分:%v\n", mainTitleDesc, float64(sendScore)/100) } else { - mainTitleDesc = fmt.Sprintf("%v减:%v%v\n", mainTitleDesc, flowContent.Score, unit) + mainTitleDesc = fmt.Sprintf("%v考核减分:%v\n", mainTitleDesc, float64(sendScore)/100) } + // if flowContent.PlusReduceScore == 1 { + // mainTitleDesc = fmt.Sprintf("%v加:%v%v\n", mainTitleDesc, flowContent.Score, unit) + // } else { + // mainTitleDesc = fmt.Sprintf("%v减:%v%v\n", mainTitleDesc, flowContent.Score, unit) + // } var reason string commonus.GetDivisionOfResponsibility(orderId, 2) if flowContent.Rectification == 1 { @@ -539,6 +574,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt } //获取考核项目关联项目 targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId) + fmt.Printf("%v", unit) //一级文本处理 var title, desc string if detailedRulesTitle != "" { @@ -553,11 +589,17 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt title = targettitle } var quoteAreaTitle string = "" + sendScore := flowContent.Score * int64(flowContent.Count) if flowContent.PlusReduceScore == 1 { - quoteAreaTitle = fmt.Sprintf("加:%v%v\n", flowContent.Score, unit) + quoteAreaTitle = fmt.Sprintf("考核加分:%v\n", float64(sendScore)/100) } else { - quoteAreaTitle = fmt.Sprintf("扣除:%v%v\n", flowContent.Score, unit) + quoteAreaTitle = fmt.Sprintf("考核减分:%v\n", float64(sendScore)/100) } + // if flowContent.PlusReduceScore == 1 { + // quoteAreaTitle = fmt.Sprintf("加:%v%v\n", flowContent.Score, unit) + // } else { + // quoteAreaTitle = fmt.Sprintf("扣除:%v%v\n", flowContent.Score, unit) + // } quoteAreaContent := flowContent.Reason twoLevelTitle := "部门负责人" twoLevelKeyName := userContInfo.DepartmentName @@ -586,6 +628,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt _, butCallBackUser := commonus.GetSendMsgUser(16118387069540343, userContInfo.DepartmentId) //获取对应部门内勤(高科) //获取考核项目关联项目 targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId) + fmt.Printf("%v", unit) //一级文本处理 var title, desc string if detailedRulesTitle != "" { @@ -600,11 +643,17 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt title = targettitle } var subtitle string = "" + sendScore := flowContent.Score * int64(flowContent.Count) if flowContent.PlusReduceScore == 1 { - subtitle = fmt.Sprintf("加:%v%v\n", flowContent.Score, unit) + subtitle = fmt.Sprintf("考核加分:%v\n", float64(sendScore)/100) } else { - subtitle = fmt.Sprintf("扣除:%v%v\n", flowContent.Score, unit) + subtitle = fmt.Sprintf("考核减分:%v\n", float64(sendScore)/100) } + // if flowContent.PlusReduceScore == 1 { + // subtitle = fmt.Sprintf("加:%v%v\n", flowContent.Score, unit) + // } else { + // subtitle = fmt.Sprintf("扣除:%v%v\n", flowContent.Score, unit) + // } //获取责任划分 subtitle = fmt.Sprintf("%v责任划分\n", subtitle) var reason string @@ -653,6 +702,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt sendUserList := strings.Join(personLiable, "|") //获取考核项目关联项目 targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId) + fmt.Printf("%v\n", unit) //一级文本处理 var title, desc string if detailedRulesTitle != "" { @@ -670,11 +720,17 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt //获取执行结果 var mainTitleDesc string mainTitleDesc = fmt.Sprintf("执行原因:%v\n", flowContent.Reason) + sendScore := flowContent.Score * int64(flowContent.Count) if flowContent.PlusReduceScore == 1 { - mainTitleDesc = fmt.Sprintf("%v加:%v%v\n", mainTitleDesc, flowContent.Score, unit) + mainTitleDesc = fmt.Sprintf("%v考核加分:%v\n", mainTitleDesc, float64(sendScore)/100) } else { - mainTitleDesc = fmt.Sprintf("%v减:%v%v\n", mainTitleDesc, flowContent.Score, unit) + mainTitleDesc = fmt.Sprintf("%v考核减分:%v\n", mainTitleDesc, float64(sendScore)/100) } + // if flowContent.PlusReduceScore == 1 { + // mainTitleDesc = fmt.Sprintf("%v加:%v%v\n", mainTitleDesc, flowContent.Score, unit) + // } else { + // mainTitleDesc = fmt.Sprintf("%v减:%v%v\n", mainTitleDesc, flowContent.Score, unit) + // } var reason string commonus.GetDivisionOfResponsibility(orderId, 2) if flowContent.Rectification == 1 { @@ -723,6 +779,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt sendUserList := strings.Join(personLiable, "|") //获取考核项目关联项目 targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId) + fmt.Printf("%v", unit) //一级文本处理 var title, desc string if detailedRulesTitle != "" { @@ -740,11 +797,17 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt //获取执行结果 var mainTitleDesc string mainTitleDesc = fmt.Sprintf("执行原因:%v\n", flowContent.Reason) + sendScore := flowContent.Score * int64(flowContent.Count) if flowContent.PlusReduceScore == 1 { - mainTitleDesc = fmt.Sprintf("%v加:%v%v\n", mainTitleDesc, flowContent.Score, unit) + mainTitleDesc = fmt.Sprintf("%v考核加分:%v\n", mainTitleDesc, float64(sendScore)/100) } else { - mainTitleDesc = fmt.Sprintf("%v减:%v%v\n", mainTitleDesc, flowContent.Score, unit) + mainTitleDesc = fmt.Sprintf("%v考核减分:%v\n", mainTitleDesc, float64(sendScore)/100) } + // if flowContent.PlusReduceScore == 1 { + // mainTitleDesc = fmt.Sprintf("%v加:%v%v\n", mainTitleDesc, flowContent.Score, unit) + // } else { + // mainTitleDesc = fmt.Sprintf("%v减:%v%v\n", mainTitleDesc, flowContent.Score, unit) + // } var reason string commonus.GetDivisionOfResponsibility(orderId, 2) if flowContent.Rectification == 1 { @@ -775,6 +838,7 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt _, dutyOffUserList := commonus.GetSendMsgUserAry(16118387069540343, scoreFlowInfo.DutyDepartment) //获取职责部门内勤 //获取考核项目关联项目 targettitle, detailedRulesTitle, detailedRulesInfo, unit, flowContent, _ := commonus.GetDutyAssociatedItems(orderId) + fmt.Printf("%v", unit) //一级文本处理 var title, desc string if detailedRulesTitle != "" { @@ -789,11 +853,17 @@ func (t *TemplateCardPush) ButtonTemplateCallBackHandleBackups(orderId, clickEnt title = targettitle } var subtitle string = "" + sendScore := flowContent.Score * int64(flowContent.Count) if flowContent.PlusReduceScore == 1 { - subtitle = fmt.Sprintf("加:%v%v\n", flowContent.Score, unit) + subtitle = fmt.Sprintf("考核加分:%v\n", float64(sendScore)/100) } else { - subtitle = fmt.Sprintf("扣除:%v%v\n", flowContent.Score, unit) + subtitle = fmt.Sprintf("考核减分:%v\n", float64(sendScore)/100) } + // if flowContent.PlusReduceScore == 1 { + // subtitle = fmt.Sprintf("加:%v%v\n", flowContent.Score, unit) + // } else { + // subtitle = fmt.Sprintf("扣除:%v%v\n", flowContent.Score, unit) + // } //获取责任划分 subtitle = fmt.Sprintf("%v责任划分\n", subtitle) var reason string diff --git a/gin_server_admin/commonus/publichaneld.go b/gin_server_admin/commonus/publichaneld.go index b7617cc..efd3a5e 100644 --- a/gin_server_admin/commonus/publichaneld.go +++ b/gin_server_admin/commonus/publichaneld.go @@ -2,6 +2,7 @@ package commonus //公共函数类 import ( + "bytes" "encoding/json" "fmt" "math" @@ -18,6 +19,7 @@ import ( "github.com/flipped-aurora/gin-vue-admin/server/model/wechat" "github.com/flipped-aurora/gin-vue-admin/server/utils/redishandel" "github.com/mitchellh/mapstructure" + "github.com/mozillazg/go-pinyin" "gorm.io/gorm" ) @@ -1657,6 +1659,7 @@ func IntegrationFlowAll(flowID int64, class int) (flowAllMap string) { oneFlowInfo.State = 2 oneFlowInfo.Class = 1 oneFlowInfo.UserList = GetFlowNodeMan(flowID, class, 1) + flowMap = append(flowMap, oneFlowInfo) // fmt.Print("Flow_log:-->%v") @@ -1897,6 +1900,13 @@ func GetFlowNodeMan(flowID int64, class, style int) (manInfo []UserListFlowAll) _, temCont := GetTeaming(userCont.Tema) returnUser.TemaName = temCont.Name returnUser.Wechat = userCont.WechatId + + // oneFlowInfo? + var logListMap LogList + logListMap.State = 2 + logListMap.TimeVal = GetToDayAll() + returnUser.LogList = append(returnUser.LogList, logListMap) + manInfo = append(manInfo, returnUser) } @@ -2271,8 +2281,9 @@ func GetDepartmentByUserBast(userKey []string) (userDepartmentId []string) { @ascription 指标ID @columId 子指标ID @title 指标名称 +@departMap 关联部门 */ -func JudgeColumn(ascription, columId, title string) (content assessmentmodel.QualitativeTarget, isTrue bool) { +func JudgeColumn(ascription, columId, title, departMap string) (content assessmentmodel.QualitativeTarget, isTrue bool) { isTrue = false if columId != "" { judgeIdErr := global.GVA_DB_Performanceappraisal.Where("`q_id` = ?", columId).First(&content).Error @@ -2290,7 +2301,7 @@ func JudgeColumn(ascription, columId, title string) (content assessmentmodel.Qua if ascriptionErr != nil { ascriptionId = 0 } - saveColum := assessmentmodel.QualitativeTarget{Title: title, ParentId: ascriptionId, State: 1, AddTime: time.Now().Unix()} + saveColum := assessmentmodel.QualitativeTarget{Title: title, ParentId: ascriptionId, State: 1, AddTime: time.Now().Unix(), Depart: departMap} addErr := global.GVA_DB_Performanceappraisal.Create(&saveColum).Error if addErr != nil { return @@ -2393,3 +2404,339 @@ func GetBranchDepartAry(departIdAry []string) (departId []int64, departAry []Dep } return } + +//判断考核细则是否存在(新规则) +/* +参数说明 +@ascription 归属指标栏目 +@title 指标细则 +@explain 指标说明' +@explainId 指标明细ID +@ReferenceScore 分数 +@CompanyCont 单位 +@sunTargetId 子栏目 +*/ +func JudgeDetailsCopy(ascription, title, explain, explainId, ReferenceScore, CompanyCont string, sunTargetId int64, addReduce int) (content assessmentmodel.DetailedTarget, isTrue bool) { + if addReduce == 0 { + addReduce = 1 + } + var minScoreInt int64 + var maxScoreInt int64 + scoreAry := strings.Split(ReferenceScore, "-") + scoreLen := len(scoreAry) + fmt.Printf("ScoreAry:%v----------->%v------------>%v------------>%v\n", ReferenceScore, scoreLen, scoreAry[0], scoreAry) + if scoreLen > 0 { + if scoreLen == 1 { + maxScore, _ := strconv.ParseFloat(scoreAry[0], 64) + zhhh := maxScore * 100 + zhuanStr := strconv.FormatFloat(zhhh, 'f', -1, 64) + maxScoreInt, _ = strconv.ParseInt(strconv.FormatFloat(maxScore*100, 'f', -1, 64), 10, 64) + minScoreInt = 0 + + fmt.Printf("ScoreAry--1-----:%v----------->%v------------>%v------------>%v\n", maxScore, maxScoreInt, zhuanStr, zhhh) + } else { + minScore, _ := strconv.ParseFloat(scoreAry[0], 64) + maxScore, _ := strconv.ParseFloat(scoreAry[scoreLen-1], 64) + minScoreInt, _ = strconv.ParseInt(strconv.FormatFloat(minScore*100, 'f', -1, 64), 10, 64) + maxScoreInt, _ = strconv.ParseInt(strconv.FormatFloat(maxScore*100, 'f', -1, 64), 10, 64) + } + } else { + minScoreInt = 0 + maxScoreInt = 0 + } + isTrue = false + if explainId != "" { + judgeIdErr := global.GVA_DB_Performanceappraisal.Where("`dt_id` = ?", explainId).First(&content).Error + if judgeIdErr == nil { + eiteCont := MapOut() + if minScoreInt > maxScoreInt { + eiteCont["dt_min_score"] = maxScoreInt + eiteCont["dt_max_score"] = minScoreInt + } else { + eiteCont["dt_min_score"] = minScoreInt + eiteCont["dt_max_score"] = maxScoreInt + } + eiteCont["dt_title"] = title + eiteCont["dt_content"] = explain + eiteCont["dt_company"] = CompanyCont + eiteCont["dt_add_reduce"] = addReduce + eiteCont["dt_time"] = time.Now().Unix() + global.GVA_DB_Performanceappraisal.Model(&content).Where("`dt_id` = ?", explainId).Updates(&eiteCont) + // fmt.Printf("echo --------------1---------->%v\n", content) + isTrue = true + return + } + } + judgeErr := global.GVA_DB_Performanceappraisal.Where("`dt_parentid` = ? AND `dt_title` = ?", ascription, title).First(&content).Error + if judgeErr == nil { + isTrue = true + eiteCont := MapOut() + if minScoreInt > maxScoreInt { + eiteCont["dt_min_score"] = maxScoreInt + eiteCont["dt_max_score"] = minScoreInt + } else { + eiteCont["dt_min_score"] = minScoreInt + eiteCont["dt_max_score"] = maxScoreInt + } + eiteCont["dt_content"] = explain + eiteCont["dt_company"] = CompanyCont + eiteCont["dt_add_reduce"] = addReduce + eiteCont["dt_time"] = time.Now().Unix() + global.GVA_DB_Performanceappraisal.Model(&content).Where("`dt_id` = ?", content.Id).Updates(&eiteCont) + // fmt.Printf("echo --------------2---------->%v\n", content) + return + } + ascriptionId, ascriptionErr := strconv.ParseInt(ascription, 10, 64) + if ascriptionErr != nil { + ascriptionId = 0 + } + + var minScoreIsTrue int64 = 0 + var maxScoreIsTrue int64 = 0 + if minScoreInt > maxScoreInt { + minScoreIsTrue = maxScoreInt + maxScoreIsTrue = minScoreInt + } else { + minScoreIsTrue = minScoreInt + maxScoreIsTrue = maxScoreInt + } + + fmt.Printf("ScoreAry---KKKK:%v----------->%v------------>%v------------>%v", minScoreIsTrue, maxScoreIsTrue, minScoreIsTrue, maxScoreIsTrue) + + saveColum := assessmentmodel.DetailedTarget{Title: title, Content: explain, ParentId: ascriptionId, ParentIdSun: sunTargetId, State: 1, AddTime: time.Now().Unix(), Company: CompanyCont, MinScore: minScoreIsTrue, MaxScore: maxScoreIsTrue, AddReduce: addReduce} + addErr := global.GVA_DB_Performanceappraisal.Create(&saveColum).Error + if addErr != nil { + // fmt.Printf("echo --------------3---------->%v\n", saveColum.Id) + return + } + // fmt.Printf("echo --------------4---------->%v\n", saveColum.Id) + isTrue = true + content = saveColum + return +} + +//判断定性考核项目是否存在使用状态 +/* +@group 集团 +@dimension 维度 +@target 指标 +@target_sun 子栏目 +@detailed 维度 +*/ +func JudegDutyIsUse(group, dimension, target, target_sun, detailed int64) (isTrue bool) { + isTrue = false + // var qeInfo []assessmentmodel.QualitativeEvaluation + var qeID []int64 + gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeEvaluation{}).Select("qe_id").Where("`State` = 1") + if group != 0 { + gormDb = gormDb.Where("`qe_group` = ?", group) + } + if dimension != 0 { + gormDb = gormDb.Where("`qe_dimension` = ?", dimension) + } + if target != 0 { + gormDb = gormDb.Where("`qe_target` = ?", target) + } + if target_sun != 0 { + gormDb = gormDb.Where("`qe_target_sun` = ?", target_sun) + } + if detailed != 0 { + gormDb = gormDb.Where("`qe_detailed_target` = ?", detailed) + } + err := gormDb.Find(&qeID).Error + if err != nil { + isTrue = true + return + } + var sfID []int64 + sfErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.ScoreFlow{}).Select("sf_id").Where("`sf_reply` > 0 AND `sf_evaluation_plan` IN ?", qeID).Find(&sfID).Error + if sfErr != nil { + isTrue = true + return + } + if len(sfID) < 1 { + isTrue = true + return + } + return +} + +//获取权重 +/* +@group 集团 +@dimension 维度 +@derpatment 部门 +@target 指标 +@class 1:定性考核;2:定量考核 +*/ +func GetWeight(group, dimension, derpatment, target string, class int64) (weightSum int64) { + gormDb := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimensionWeight{}).Where("`ddw_group` = ? AND `ddw_derpatment` = ? AND `ddw_dimension` = ?", group, derpatment, dimension) + if target != "" { + gormDb = gormDb.Where("`ddw_target` = ? AND `ddw_hierarchy` = 2", target) + + } else { + gormDb = gormDb.Where("`ddw_hierarchy` = 1") + } + if class != 0 { + gormDb = gormDb.Where("`ddw_type` = ?", class) + } + err := gormDb.Pluck("COALESCE(SUM(ddw_weight), 0) as weight", &weightSum).Error + if err != nil { + weightSum = 0 + } + return +} + +//写入权重 +/* +@group 集团 +@dimension 维度 +@derpatment 部门 +@target 指标 +@class 1:定性考核;2:定量考核 +*/ +func AddWeight(group, dimension, derpatment, target string, score, class int64) (isTrue bool) { + isTrue = false + if target != "" { + var id int64 + judegErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimensionWeight{}).Select("ddw_id").Where("`ddw_hierarchy` = 2 AND `ddw_group` = ? AND `ddw_derpatment` = ? AND `ddw_dimension` = ? AND `ddw_target` = ? AND `ddw_type` = ?", group, derpatment, dimension, target, class).First(&id).Error + if judegErr == nil { + eiteCont := MapOut() + eiteCont["ddw_time"] = time.Now().Unix() + eiteCont["ddw_weight"] = score + eiteErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimensionWeight{}).Where("ddw_id = ?", id).Updates(&eiteCont).Error + if eiteErr == nil { + isTrue = true + } + } else { + var addCont assessmentmodel.DepartmentDimensionWeight + groupId, _ := strconv.ParseInt(group, 10, 64) + addCont.Group = groupId + derpatmentId, _ := strconv.ParseInt(derpatment, 10, 64) + addCont.DepartmentId = derpatmentId + dimensionId, _ := strconv.ParseInt(dimension, 10, 64) + addCont.Dimension = dimensionId + targetId, _ := strconv.ParseInt(target, 10, 64) + addCont.Target = targetId + addCont.Weight = score + addCont.Addtime = time.Now().Unix() + addCont.Type = class + addCont.Hierarchy = 2 + addErr := global.GVA_DB_Performanceappraisal.Create(&addCont).Error + if addErr == nil { + isTrue = true + } + } + } else { + //写入维度权重 + var id int64 + judegErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimensionWeight{}).Select("ddw_id").Where("`ddw_hierarchy` = 1 AND `ddw_group` = ? AND `ddw_derpatment` = ? AND `ddw_dimension` = ?", group, derpatment, dimension).First(&id).Error + if judegErr == nil { + eiteCont := MapOut() + eiteCont["ddw_time"] = time.Now().Unix() + eiteCont["ddw_weight"] = score + eiteErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.DepartmentDimensionWeight{}).Where("ddw_id = ?", id).Updates(&eiteCont).Error + if eiteErr == nil { + isTrue = true + } + } else { + var addCont assessmentmodel.DepartmentDimensionWeight + groupId, _ := strconv.ParseInt(group, 10, 64) + addCont.Group = groupId + derpatmentId, _ := strconv.ParseInt(derpatment, 10, 64) + addCont.DepartmentId = derpatmentId + dimensionId, _ := strconv.ParseInt(dimension, 10, 64) + addCont.Dimension = dimensionId + addCont.Target = 0 + addCont.Weight = score + addCont.Addtime = time.Now().Unix() + addCont.Type = 1 + addCont.Hierarchy = 1 + addErr := global.GVA_DB_Performanceappraisal.Create(&addCont).Error + if addErr == nil { + isTrue = true + } + } + } + return +} + +//获取定量考核目标设定 +func GetQuantitativeConfig(whereData interface{}) (cont assessmentmodel.QuantitativeConfig) { + global.GVA_DB_Performanceappraisal.Where(whereData).First(&cont) + return +} + +//获取定量考核时间内审批通过的考核数据 +func GetTimeIntervalDuty(whereData interface{}, schemeID int64) (actual float64) { + jsonStr, _ := json.Marshal(whereData) + fmt.Printf("jsonStr------1------>%v\n", string(jsonStr)) + actual = 0 + //相关审批流 + var flowLogList []assessmentmodel.FlowLog + err := global.GVA_DB_Performanceappraisal.Where("`fl_reply` = 3 AND FIND_IN_SET(?,`fl_evaluation_id`)", schemeID).Where(whereData).Find(&flowLogList).Error + if err != nil { + return + } + for _, v := range flowLogList { + actual = actual + GetSchemeFlowData(v.Key, schemeID) + } + return +} + +//获取指定审批流方案数据 +func GetSchemeFlowData(flowKwy, schemeID int64) (weightSum float64) { + weightSum = 0 + global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.FlowLogData{}).Where("`fld_evaluation_id` = ? AND `fld_flow_log` = ?", schemeID, flowKwy).Pluck("COALESCE(SUM(fld_score), 0) as qe_reference_score", &weightSum) + return +} + +//获取float字符串转化成Int64 +func GetDuyCycle(scoreStr string, multiple int64) (scoreInt64 int64) { + coreFloat64, _ := strconv.ParseFloat(scoreStr, 64) //将字符串转换成float64 + scoreFloat64ToStr := strconv.FormatFloat(coreFloat64*float64(multiple), 'f', -1, 64) //将乘以系数后的数值转换成字符串 + scoreInt64, _ = strconv.ParseInt(scoreFloat64ToStr, 10, 64) //将字符串转换成int64 + return +} + +//获取判断定量考核时间内审批中和通过的考核数据 +func GetTimeIntervalDutyJudge(whereData interface{}, schemeID int64) (actual float64) { + jsonStr, _ := json.Marshal(whereData) + fmt.Printf("jsonStr------1------>%v\n", string(jsonStr)) + actual = 0 + //相关审批流 + var flowLogList []assessmentmodel.FlowLog + err := global.GVA_DB_Performanceappraisal.Where("`fl_reply` IN (2,3) AND FIND_IN_SET(?,`fl_evaluation_id`)", schemeID).Where(whereData).Find(&flowLogList).Error + if err != nil { + return + } + for _, v := range flowLogList { + actual = actual + GetSchemeFlowData(v.Key, schemeID) + } + return +} + +//判断子栏目是否归属此部门 +func JudegSunTarToDepart(sunId, departId int64) (isTrue bool) { + isTrue = false + var title string + judgeARTErr := global.GVA_DB_Performanceappraisal.Model(&assessmentmodel.QualitativeTarget{}).Select("q_title").Where("`q_id` = ? AND FIND_IN_SET(?,`q_depart`)", sunId, departId).First(&title).Error + if judgeARTErr == nil { + isTrue = true + } + return +} + +//中文首字母大写 +func ChinaToPinYinFirstWord(wordStr string) (firstWord string) { + pinYinSub := pinyin.NewArgs() + rows := pinyin.Pinyin(wordStr, pinYinSub) + for i := 0; i < len(rows); i++ { + if len(rows[i]) != 0 { + str := rows[i][0] + pi := str[0:1] + firstWord += string(bytes.ToUpper([]byte(pi))) + } + } + return +} diff --git a/gin_server_admin/commonus/timeSub.go b/gin_server_admin/commonus/timeSub.go index 890ec0f..24ba010 100644 --- a/gin_server_admin/commonus/timeSub.go +++ b/gin_server_admin/commonus/timeSub.go @@ -166,9 +166,11 @@ func TimeStampToDate(timeStamp int64, timeType int) (dateStr string) { dayMonth := time.Unix(timeStamp, 0).Format("01") datMonthFloat, datMonthFloatErr := strconv.ParseFloat(dayMonth, 10) if datMonthFloatErr == nil { - dateStr = strconv.FormatFloat(math.Ceil(datMonthFloat/3), 'g', 1, 64) + dateStr = strconv.FormatFloat(math.Ceil(datMonthFloat/3), 'f', -1, 64) } dateStr = "1" + case 14: + timeTemplate = "20060102" default: timeTemplate = "2006-01-02 15:04:05" //常规类型 } @@ -186,7 +188,7 @@ func ComputingTime(timeStamp int64, timeType int) (timeDataInt int64) { dayMonth := time.Unix(timeStamp, 0).Format("01") //季度 datMonthFloat, datMonthFloatErr := strconv.ParseFloat(dayMonth, 10) if datMonthFloatErr == nil { - timeData = strconv.FormatFloat(math.Ceil(datMonthFloat/3), 'g', 1, 64) + timeData = strconv.FormatFloat(math.Ceil(datMonthFloat/3), 'f', -1, 64) } else { timeData = "1" } @@ -211,7 +213,7 @@ func ComputingTime(timeStamp int64, timeType int) (timeDataInt int64) { daysAndWeeksDiffFlot, daysAndWeeksDiffFloatErr := strconv.ParseFloat(strconv.FormatInt(daysAndWeeksDiff, 10), 10) if daysAndWeeksDiffFloatErr == nil { daysWeeksDiffVal := math.Ceil(daysAndWeeksDiffFlot/7) + 1 - timeData = strconv.FormatFloat(daysWeeksDiffVal, 'g', 1, 64) + timeData = strconv.FormatFloat(daysWeeksDiffVal, 'f', -1, 64) } else { timeData = "1" } diff --git a/gin_server_admin/go.mod b/gin_server_admin/go.mod index a182ced..2622c57 100644 --- a/gin_server_admin/go.mod +++ b/gin_server_admin/go.mod @@ -1,6 +1,6 @@ module github.com/flipped-aurora/gin-vue-admin/server -go 1.16 +go 1.18 require ( github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 @@ -14,32 +14,108 @@ require ( github.com/fvbock/endless v0.0.0-20170109170031-447134032cb6 github.com/gin-gonic/gin v1.6.3 github.com/go-redis/redis/v8 v8.11.0 - github.com/go-sql-driver/mysql v1.5.0 + github.com/go-sql-driver/mysql v1.6.0 github.com/gookit/color v1.3.1 github.com/jordan-wright/email v0.0.0-20200824153738-3f5bafa1cd84 github.com/mitchellh/mapstructure v1.2.2 github.com/mojocn/base64Captcha v1.3.1 + github.com/mozillazg/go-pinyin v0.19.0 github.com/natefinch/lumberjack v2.0.0+incompatible github.com/qiniu/api.v7/v7 v7.4.1 github.com/robfig/cron/v3 v3.0.1 github.com/satori/go.uuid v1.2.0 github.com/shirou/gopsutil v3.21.9+incompatible - github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc + github.com/shopspring/decimal v1.2.0 github.com/songzhibin97/gkit v1.1.1 github.com/spf13/viper v1.7.0 github.com/stretchr/testify v1.7.0 github.com/swaggo/gin-swagger v1.3.0 github.com/swaggo/swag v1.7.0 github.com/tencentyun/cos-go-sdk-v5 v0.7.19 - github.com/tklauser/go-sysconf v0.3.9 // indirect github.com/unrolled/render v1.4.0 github.com/unrolled/secure v1.0.7 github.com/xuri/excelize/v2 v2.4.1 github.com/yanyiwu/gojieba v1.1.2 go.uber.org/zap v1.16.0 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c - gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect - gorm.io/driver/mysql v1.0.1 - gorm.io/gorm v1.20.11 + gorm.io/driver/mysql v1.3.3 + gorm.io/gorm v1.23.4 nhooyr.io/websocket v1.8.6 ) + +require ( + github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible // indirect + github.com/KyleBanks/depth v1.2.1 // indirect + github.com/PuerkitoBio/purell v1.1.1 // indirect + github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect + github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d // indirect + github.com/cespare/xxhash/v2 v2.1.1 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/denisenkom/go-mssqldb v0.12.0 // indirect + github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect + github.com/gin-contrib/sse v0.1.0 // indirect + github.com/go-ole/go-ole v1.2.4 // indirect + github.com/go-openapi/jsonpointer v0.19.5 // indirect + github.com/go-openapi/jsonreference v0.19.6 // indirect + github.com/go-openapi/spec v0.20.3 // indirect + github.com/go-openapi/swag v0.19.15 // indirect + github.com/go-playground/locales v0.13.0 // indirect + github.com/go-playground/universal-translator v0.17.0 // indirect + github.com/go-playground/validator/v10 v10.3.0 // indirect + github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect + github.com/golang-sql/sqlexp v0.0.0-20170517235910-f1bb20e5a188 // indirect + github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/google/go-querystring v1.0.0 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/jackc/chunkreader/v2 v2.0.1 // indirect + github.com/jackc/pgconn v1.11.0 // indirect + github.com/jackc/pgio v1.0.0 // indirect + github.com/jackc/pgpassfile v1.0.0 // indirect + github.com/jackc/pgproto3/v2 v2.2.0 // indirect + github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b // indirect + github.com/jackc/pgtype v1.10.0 // indirect + github.com/jackc/pgx/v4 v4.15.0 // indirect + github.com/jinzhu/inflection v1.0.0 // indirect + github.com/jinzhu/now v1.1.5 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/json-iterator/go v1.1.10 // indirect + github.com/klauspost/compress v1.10.3 // indirect + github.com/leodido/go-urn v1.2.0 // indirect + github.com/magiconair/properties v1.8.1 // indirect + github.com/mailru/easyjson v0.7.7 // indirect + github.com/mattn/go-isatty v0.0.12 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.1 // indirect + github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect + github.com/mozillazg/go-httpheader v0.2.1 // indirect + github.com/pelletier/go-toml v1.6.0 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/richardlehane/mscfb v1.0.3 // indirect + github.com/richardlehane/msoleps v1.0.1 // indirect + github.com/spf13/afero v1.2.2 // indirect + github.com/spf13/cast v1.3.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/subosito/gotenv v1.2.0 // indirect + github.com/tklauser/go-sysconf v0.3.9 // indirect + github.com/tklauser/numcpus v0.3.0 // indirect + github.com/ugorji/go/codec v1.1.13 // indirect + github.com/xuri/efp v0.0.0-20210322160811-ab561f5b45e3 // indirect + go.uber.org/atomic v1.6.0 // indirect + go.uber.org/multierr v1.5.0 // indirect + golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29 // indirect + golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb // indirect + golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 // indirect + golang.org/x/sys v0.0.0-20210816074244-15123e1e1f71 // indirect + golang.org/x/text v0.3.7 // indirect + golang.org/x/time v0.0.0-20201208040808-7e3f01d25324 // indirect + golang.org/x/tools v0.1.5 // indirect + google.golang.org/protobuf v1.26.0 // indirect + gopkg.in/ini.v1 v1.55.0 // indirect + gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + gorm.io/driver/postgres v1.3.3 // indirect + gorm.io/driver/sqlserver v1.3.2 // indirect +) diff --git a/gin_server_admin/go.sum b/gin_server_admin/go.sum index 110934f..2948552 100644 --- a/gin_server_admin/go.sum +++ b/gin_server_admin/go.sum @@ -11,6 +11,9 @@ cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqCl cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/Azure/azure-sdk-for-go/sdk/azcore v0.19.0/go.mod h1:h6H6c8enJmmocHUbLiiGY6sx7f9i+X3m1CHdd5c6Rdw= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.11.0/go.mod h1:HcM1YX14R7CJcghJGOYCgdezslRSVzqwLf/q+4Y2r/0= +github.com/Azure/azure-sdk-for-go/sdk/internal v0.7.0/go.mod h1:yqy467j36fJxcRV2TzfVZ1pCb5vxm4BtZPUdYWe/Xo8= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= @@ -18,6 +21,8 @@ github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1 github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc= github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= +github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= +github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= @@ -49,7 +54,6 @@ github.com/casbin/casbin/v2 v2.11.0/go.mod h1:XXtYGrs/0zlOsJMeRteEdVi/FsB0ph7KgN github.com/casbin/gorm-adapter/v3 v3.0.2 h1:4F2VFElwPyFzvHfgwizD2JQxk2OFLwvRFZct1np0yBg= github.com/casbin/gorm-adapter/v3 v3.0.2/go.mod h1:mQI09sqvXfy5p6kZB5HBzZrgKWwxaJ4xMWpd5OGfHRY= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -71,13 +75,15 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/denisenkom/go-mssqldb v0.0.0-20200428022330-06a60b6afbbc h1:VRRKCwnzqk8QCaRC4os14xoKDdbHqqlJtJA0oc1ZAjg= github.com/denisenkom/go-mssqldb v0.0.0-20200428022330-06a60b6afbbc/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= +github.com/denisenkom/go-mssqldb v0.12.0 h1:VtrkII767ttSPNRfFekePK3sctr+joXgO58stqQbtUA= +github.com/denisenkom/go-mssqldb v0.12.0/go.mod h1:iiK0YP1ZeepvmBQk/QpLEhhTNJgfzrpArPY/aFvc9yU= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/emicklei/proto v1.9.0/go.mod h1:rn1FgRS/FANiZdD2djyH7TMA9jdRDcYQ9IEN9yvjX0A= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -108,8 +114,10 @@ github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-ole/go-ole v1.2.4 h1:nNBDSCOigTSiarFpYE9J/KtEA1IOW4CNeqT9TQDqCxI= github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM= github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= @@ -143,8 +151,9 @@ github.com/go-playground/validator/v10 v10.3.0 h1:nZU+7q+yJoFmwvNgv/LnPUkwPal62+ github.com/go-playground/validator/v10 v10.3.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-redis/redis/v8 v8.11.0 h1:O1Td0mQ8UFChQ3N9zFQqo6kTU2cJ+/it88gDB+zg0wo= github.com/go-redis/redis/v8 v8.11.0/go.mod h1:DLomh7y2e3ggQXQLd1YgmvIfecPJoFl7WU5SOQ/r06M= -github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= +github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= @@ -152,12 +161,16 @@ github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= +github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= +github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= +github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= +github.com/golang-sql/sqlexp v0.0.0-20170517235910-f1bb20e5a188 h1:+eHOFJl1BaXrQxKX+T06f78590z4qA2ZzBTqahsKSE4= +github.com/golang-sql/sqlexp v0.0.0-20170517235910-f1bb20e5a188/go.mod h1:vXjM/+wXQnTPR4KqTKDgJukSZ6amVRtWMPEjE6sQoK8= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -234,7 +247,6 @@ github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0m github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/jackc/chunkreader v1.0.0 h1:4s39bBR8ByfqH+DKm8rQA3E1LHZWB9XWcrz8fqaZbe0= github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= @@ -245,50 +257,67 @@ github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsU github.com/jackc/pgconn v1.4.0/go.mod h1:Y2O3ZDF0q4mMacyWV3AstPJpeHXWGEetiFttmq5lahk= github.com/jackc/pgconn v1.5.0/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= github.com/jackc/pgconn v1.5.1-0.20200601181101-fa742c524853/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= -github.com/jackc/pgconn v1.6.1 h1:lwofaXKPbIx6qEaK8mNm7uZuOwxHw+PnAFGDsDFpkRI= github.com/jackc/pgconn v1.6.1/go.mod h1:g8mKMqmSUO6AzAvha7vy07g1rbGOlc7iF0nU0ei83hc= +github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= +github.com/jackc/pgconn v1.9.0/go.mod h1:YctiPyvzfU11JFxoXokUOOKQXQmDMoJL9vJzHH8/2JY= +github.com/jackc/pgconn v1.9.1-0.20210724152538-d89c8390a530/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= +github.com/jackc/pgconn v1.11.0 h1:HiHArx4yFbwl91X3qqIHtUFoiIfLNJXCQRsnzkiwwaQ= +github.com/jackc/pgconn v1.11.0/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= -github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2 h1:JVX6jT/XfzNqIjye4717ITLaNwV9mWbJx0dLCpcRzdA= github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= +github.com/jackc/pgmock v0.0.0-20201204152224-4fe30f7445fd/go.mod h1:hrBW0Enj2AZTNpt/7Y5rr2xe/9Mn757Wtb2xeBzPv2c= +github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65 h1:DadwsjnMwFjfWc9y5Wi/+Zz7xoE5ALHsRQlOctkOiHc= +github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65/go.mod h1:5R2h2EEX+qri8jOWMbJCtaPWkrrNc7OHwsp2TCqp7ak= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= -github.com/jackc/pgproto3 v1.1.0 h1:FYYE4yRw+AgI8wXIinMlNjBbp/UitDJwfj5LqqewP1A= github.com/jackc/pgproto3 v1.1.0/go.mod h1:eR5FA3leWg7p9aeAqi37XOTgTIbkABlvcPB3E5rlc78= github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod h1:bhq50y+xrl9n5mRYyCBFKkpRVTLYJVWeCc+mEAI3yXA= github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg= github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= github.com/jackc/pgproto3/v2 v2.0.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgproto3/v2 v2.0.2 h1:q1Hsy66zh4vuNsajBUF2PNqfAMMfxU5mk594lPE9vjY= github.com/jackc/pgproto3/v2 v2.0.2/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= -github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8 h1:Q3tB+ExeflWUW7AFcAhXqk40s9mnNYLk1nOkKNZ5GnU= +github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgproto3/v2 v2.1.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgproto3/v2 v2.2.0 h1:r7JypeP2D3onoQTCxWdTpCtJ4D+qpKr0TxvoyMhZ5ns= +github.com/jackc/pgproto3/v2 v2.2.0/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= +github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b h1:C8S2+VttkHFdOOCXJe+YGfa4vHYwlt4Zx+IVXQ97jYg= +github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg= github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= github.com/jackc/pgtype v1.2.0/go.mod h1:5m2OfMh1wTK7x+Fk952IDmI4nw3nPrvtQdM0ZT4WpC0= github.com/jackc/pgtype v1.3.1-0.20200510190516-8cd94a14c75a/go.mod h1:vaogEUkALtxZMCH411K+tKzNpwzCKU+AnPzBKZ+I+Po= github.com/jackc/pgtype v1.3.1-0.20200606141011-f6355165a91c/go.mod h1:cvk9Bgu/VzJ9/lxTO5R5sf80p0DiucVtN7ZxvaC4GmQ= -github.com/jackc/pgtype v1.4.0 h1:pHQfb4jh9iKqHyxPthq1fr+0HwSNIl3btYPbw2m2lbM= github.com/jackc/pgtype v1.4.0/go.mod h1:JCULISAZBFGrHaOXIIFiyfzW5VY0GRitRr8NeJsrdig= +github.com/jackc/pgtype v1.8.1-0.20210724151600-32e20a603178/go.mod h1:C516IlIV9NKqfsMCXTdChteoXmwgUceqaLfjg2e3NlM= +github.com/jackc/pgtype v1.10.0 h1:ILnBWrRMSXGczYvmkYD6PsYyVFUNLTnIUJHHDLmqk38= +github.com/jackc/pgtype v1.10.0/go.mod h1:LUMuVrfsFfdKGLw+AFFVv6KtHOFMwRgDDzBt76IqCA4= github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= github.com/jackc/pgx/v4 v4.5.0/go.mod h1:EpAKPLdnTorwmPUUsqrPxy5fphV18j9q3wrfRXgo+kA= github.com/jackc/pgx/v4 v4.6.1-0.20200510190926-94ba730bb1e9/go.mod h1:t3/cdRQl6fOLDxqtlyhe9UWgfIi9R8+8v8GKV5TRA/o= github.com/jackc/pgx/v4 v4.6.1-0.20200606145419-4e5062306904/go.mod h1:ZDaNWkt9sW1JMiNn0kdYBaLelIhw7Pg4qd+Vk6tw7Hg= -github.com/jackc/pgx/v4 v4.7.1 h1:aqUSOcStk6fik+lSE+tqfFhvt/EwT8q/oMtJbP9CjXI= github.com/jackc/pgx/v4 v4.7.1/go.mod h1:nu42q3aPjuC1M0Nak4bnoprKlXPINqopEKqbq5AZSC4= +github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= +github.com/jackc/pgx/v4 v4.15.0 h1:B7dTkXsdILD3MF987WGGCcg+tvLW6bZJdEcqVFeU//w= +github.com/jackc/pgx/v4 v4.15.0/go.mod h1:D/zyOyXiaM1TmVWnOM18p0xdDtdakRBa0RsVGI3U3bw= github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v1.2.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jehiah/go-strftime v0.0.0-20171201141054-1d33003b3869/go.mod h1:cJ6Cj7dQo+O6GJNiMx+Pa94qKj+TG8ONdKHgMNIyyag= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= -github.com/jinzhu/now v1.1.1 h1:g39TucaRWyV3dwDO++eEc6qf8TVIQ/Da48WmqjZ3i7E= github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= +github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jordan-wright/email v0.0.0-20200824153738-3f5bafa1cd84 h1:pS0A6cr4aHYZnYwC7Uw+rwgb39+nzkm2QhwZ+S6Gn5I= github.com/jordan-wright/email v0.0.0-20200824153738-3f5bafa1cd84/go.mod h1:1c7szIrayyPPB/987hsnvNzLushdWf4o/79s3P08L8A= @@ -325,8 +354,9 @@ github.com/lestrrat-go/strftime v1.0.3/go.mod h1:E1nN3pCbtMSu1yjSVeyuRFVm/U0xoR7 github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.3.0 h1:/qkRGz8zljWiDcFvgpwUpwIAPu3r07TDvs3Rws+o/pU= github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.10.2 h1:AqzbZs4ZoCBp+GtejcpCpcxM3zlSMx29dXbUSeVtJb8= +github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -364,12 +394,15 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/mojocn/base64Captcha v1.3.1 h1:2Wbkt8Oc8qjmNJ5GyOfSo4tgVQPsbKMftqASnq8GlT0= github.com/mojocn/base64Captcha v1.3.1/go.mod h1:wAQCKEc5bDujxKRmbT6/vTnTt5CjStQ8bRfPWUuz/iY= github.com/mozillazg/go-httpheader v0.2.1 h1:geV7TrjbL8KXSyvghnFm+NyTux/hxwueTSrwhe88TQQ= github.com/mozillazg/go-httpheader v0.2.1/go.mod h1:jJ8xECTlalr6ValeXYdOF8fFUISeBAdw6E61aqQma60= +github.com/mozillazg/go-pinyin v0.19.0 h1:p+J8/kjJ558KPvVGYLvqBhxf8jbZA2exSLCs2uUVN8c= +github.com/mozillazg/go-pinyin v0.19.0/go.mod h1:iR4EnMMRXkfpFVV5FMi4FNB6wGq9NV6uDWbUuPhP4Yc= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/natefinch/lumberjack v2.0.0+incompatible h1:4QJd3OLAMgj7ph+yZTuX13Ld4UpgHp07nNdFX7mqFfM= github.com/natefinch/lumberjack v2.0.0+incompatible/go.mod h1:Wi9p2TTF5DG5oU+6YfsmYQpsTIOm0B1VNzQg9Mw6nPk= @@ -390,6 +423,7 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.6.0 h1:aetoXYr0Tv7xRU/V4B4IZJ2QcbtMUFoNb3ORp7TzIK4= github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= +github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -430,8 +464,9 @@ github.com/shirou/gopsutil v3.21.1+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu github.com/shirou/gopsutil v3.21.9+incompatible h1:LTLpUnfX81MkHeCtSrwNKZwuW5Id6kCa7/P43NdcNn4= github.com/shirou/gopsutil v3.21.9+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= -github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc h1:jUIKcSPO9MoMJBbEoyE/RJoE8vz7Mb8AjvifMMwSyvY= github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= +github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= @@ -486,7 +521,6 @@ github.com/tklauser/numcpus v0.3.0/go.mod h1:yFGUr7TUHQRAhyqBcEg0Ge34zDBAsIvJJcy github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= -github.com/ugorji/go v1.1.13 h1:nB3O5kBSQGjEQAcfe1aLUYuxmXdFKmYgBZhY32rQb6Q= github.com/ugorji/go v1.1.13/go.mod h1:jxau1n+/wyTGLQoCkjok9r5zFa/FxT6eI5HiHKQszjc= github.com/ugorji/go/codec v0.0.0-20181022190402-e5e69e061d4f/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= @@ -516,15 +550,18 @@ go.opentelemetry.io/otel/sdk v1.0.0-RC2/go.mod h1:fgwHyiDn4e5k40TD9VX243rOxXR+jz go.opentelemetry.io/otel/trace v1.0.0-RC2/go.mod h1:JPQ+z6nNw9mqEGT8o3eoPTdnNI+Aj5JcxEsVGREIAy4= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.16.0 h1:uFRZXykJGK9lLY4HtgSw44DnIcAM+kRBP7x5m+NpAOM= go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -539,8 +576,13 @@ golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 h1:/UOmuWzQfxxo9UtlXMwuQU8CMgg1eZXqTRwkSQJWKOI= +golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29 h1:tkVvjkPTB7pnW3jnid7kNyAMPVWllTNOf/qKDze4p9o= +golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -563,6 +605,7 @@ golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -593,8 +636,10 @@ golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= -golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985 h1:4CSI6oo7cOjJKajidEljs9h+uP0rRZBPPPhcCbj5mw8= +golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 h1:CIJ76btIcR3eFI5EgSo6k1qKw9KJexJuRLI9G7Hp5wE= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -630,6 +675,7 @@ golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -647,6 +693,7 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210816074244-15123e1e1f71 h1:ikCpsnYR+Ew0vu99XlDp55lGgDJdIMx3f4a18jfse/s= golang.org/x/sys v0.0.0-20210816074244-15123e1e1f71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -654,8 +701,9 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -686,6 +734,7 @@ golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20201120155355-20be4ac4bd6e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA= @@ -764,21 +813,26 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/mysql v0.3.0/go.mod h1:A7H1JD9dKdcjeUTpTuWKEC+E1a74qzW7/zaXqKaTbfM= -gorm.io/driver/mysql v1.0.1 h1:omJoilUzyrAp0xNoio88lGJCroGdIOen9hq2A/+3ifw= gorm.io/driver/mysql v1.0.1/go.mod h1:KtqSthtg55lFp3S5kUXqlGaelnWpKitn4k1xZTnoiPw= -gorm.io/driver/postgres v0.2.6 h1:hoE6SzA5wKOo6AYxz2V7ooxnzD6S6ToLAHHDDawt+b0= +gorm.io/driver/mysql v1.3.3 h1:jXG9ANrwBc4+bMvBcSl8zCfPBaVoPyBEBshA8dA93X8= +gorm.io/driver/mysql v1.3.3/go.mod h1:ChK6AHbHgDCFZyJp0F+BmVGb06PSIoh9uVYKAlRbb2U= gorm.io/driver/postgres v0.2.6/go.mod h1:AsPyuhKFOplSmQwOPsycVKbe0dRxF8v18KZ7p9i8dIs= -gorm.io/driver/sqlserver v0.2.4 h1:AGofGL/TfzTZotzIHlaLISfxEKJpzj0ATbtXJW+ga1A= +gorm.io/driver/postgres v1.3.3 h1:y6DU2kJgDNisxfAlmxRaQZOIy4ytnuYrpzpSFYnSfCY= +gorm.io/driver/postgres v1.3.3/go.mod h1:y0vEuInFKJtijuSGu9e5bs5hzzSzPK+LancpKpvbRBw= gorm.io/driver/sqlserver v0.2.4/go.mod h1:TcPfkdce5b8qlCMgyUeUdm7HQa1ZzWUuxzI+odcueLA= +gorm.io/driver/sqlserver v1.3.2 h1:yYt8f/xdAKLY7lCCyXxIUEgZ/WsURos3dHrx8MKFGAk= +gorm.io/driver/sqlserver v1.3.2/go.mod h1:w25Vrx2BG+CJNUu/xKbFhaKlGxT/nzRkhWCCoptX8tQ= gorm.io/gorm v0.2.19/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v0.2.23/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v1.9.19/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= gorm.io/gorm v1.20.7/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= -gorm.io/gorm v1.20.11 h1:jYHQ0LLUViV85V8dM1TP9VBBkfzKTnuTXDjYObkI6yc= -gorm.io/gorm v1.20.11/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= +gorm.io/gorm v1.23.1/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= +gorm.io/gorm v1.23.4 h1:1BKWM67O6CflSLcwGQR7ccfmC4ebOxQrTfOQGRE9wjg= +gorm.io/gorm v1.23.4/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/gin_server_admin/model/assessmentmodel/dutyclass.go b/gin_server_admin/model/assessmentmodel/dutyclass.go index 35eff3f..8768fea 100644 --- a/gin_server_admin/model/assessmentmodel/dutyclass.go +++ b/gin_server_admin/model/assessmentmodel/dutyclass.go @@ -200,6 +200,7 @@ type QualitativeTarget struct { ParentId int64 `json:"parentid" gorm:"column:q_parent_id;type:bigint(20) unsigned;default:0;not null;comment:归属指标"` State int `json:"state" gorm:"column:q_state;type:int(1) unsigned;default:1;not null;comment:状态(1:启用;2:禁用;3:删除)"` AddTime int64 `json:"addTime" gorm:"column:q_time;type:bigint(20) unsigned;default:0;not null;comment:制定时间"` + Depart string `json:"depart" gorm:"column:q_depart;type:mediumtext;comment:关联部门"` } func (QualitativeTarget *QualitativeTarget) TableName() string { @@ -215,6 +216,10 @@ type DetailedTarget struct { ParentIdSun int64 `json:"parentidsun" gorm:"column:dt_parentid_sun;type:bigint(20) unsigned;default:0;not null;comment:归属指标子栏目"` State int `json:"state" gorm:"column:dt_state;type:int(1) unsigned;default:1;not null;comment:状态(1:启用;2:禁用;3:删除)"` AddTime int64 `json:"addtime" gorm:"column:dt_time;type:bigint(20) unsigned;default:0;not null;comment:制定时间"` + MinScore int64 `json:"minscore" gorm:"column:dt_min_score;type:bigint(20) unsigned;default:0;not null;comment:最小分*100保存"` + MaxScore int64 `json:"maxscore" gorm:"column:dt_max_score;type:bigint(20) unsigned;default:0;not null;comment:最大分*100保存"` + Company string `json:"company" gorm:"column:dt_company;type:varchar(20) unsigned;default:0;not null;comment:单位"` + AddReduce int `json:"addreduce" gorm:"column:dt_add_reduce;type:int(1) unsigned;default:1;not null;comment:1:减少;2:增加;3:无属性,现场确认加或减"` } func (DetailedTarget *DetailedTarget) TableName() string { @@ -253,12 +258,14 @@ type QualitativeEvaluation struct { Addtime int64 `json:"addtime" gorm:"column:qe_addtime;type:bigint(20) unsigned;default:0;not null;comment:添加时间"` Eitetime int64 `json:"eitetime" gorm:"column:qe_eitetime;type:bigint(20) unsigned;default:0;not null;comment:编辑时间"` Group int64 `json:"group" gorm:"column:qe_group;type:bigint(20) unsigned;default:0;not null;comment:归属集团"` - QualEvalId int64 `json:"qualevalid" gorm:"column:qe_qual_eval_id;type:bigint(20) unsigned;default:0;not null;comment:性质考核方案"` + QualEvalId string `json:"qualevalid" gorm:"column:qe_qual_eval_id;type:varchar(200) unsigned;default:0;not null;comment:性质考核方案"` Cycles int `json:"cycle" gorm:"column:qe_cycle;type:tinyint(1) unsigned;default:1;not null;comment:1:班;2:天;3:周;4:月;5:季度;6:年"` CycleAttres int `json:"cycleattr" gorm:"column:qe_cycleattr;type:int(9) unsigned;default:1;not null;comment:辅助计数"` AcceptEvaluation int64 `json:"acceptevaluation" gorm:"column:qe_accept_evaluation;type:bigint(20) unsigned;default:0;not null;comment:接受考核部门"` Operator string `json:"operator" gorm:"column:qe_operator;type:text;comment:执行人"` Content string `json:"content" gorm:"column:qe_content;type:text;comment:补充说明"` + MinScore int64 `json:"minscore" gorm:"column:qe_min_score;type:bigint(20) unsigned;default:0;not null;comment:最小分*100保存"` + MaxScore int64 `json:"maxscore" gorm:"column:qe_max_score;type:bigint(20) unsigned;default:0;not null;comment:最大分*100保存"` } func (QualitativeEvaluation *QualitativeEvaluation) TableName() string { @@ -376,3 +383,20 @@ type Assesstarget struct { func (Assesstarget *Assesstarget) TableName() string { return "assesstarget" } + +//考核方案版本管理 +type PlanVersio struct { + Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;comment:Id;index"` + Group int64 `json:"group" gorm:"column:group;type:bigint(20) unsigned;default:0;not null;comment:集团ID"` + Department int64 `json:"department" gorm:"column:department;type:bigint(20) unsigned;default:0;comment:部门ID"` + Year int64 `json:"year" gorm:"column:yeares;type:int(5) unsigned;default:0;not null;comment:年度"` + Versio string `json:"versio" gorm:"column:versio;type:varchar(20) unsigned;default:0;not null;comment:版本号"` + Key string `json:"key" gorm:"column:key;type:varchar(200) unsigned;default:0;not null;comment:编码"` + State int `json:"state" gorm:"column:state;type:int(1) unsigned;default:1;not null;comment:状态(1:启用;2:禁用;3:删除)"` + AddTime int64 `json:"addtime" gorm:"column:addtime;type:bigint(20) unsigned;default:0;not null;comment:创建时间"` + EiteTime int64 `json:"eitetime" gorm:"column:eitetime;type:bigint(20) unsigned;default:0;not null;comment:修改时间"` +} + +func (PlanVersio *PlanVersio) TableName() string { + return "plan_versio" +} diff --git a/gin_server_admin/model/assessmentmodel/performance_appraisal.go b/gin_server_admin/model/assessmentmodel/performance_appraisal.go index 2b78d72..839a9ce 100644 --- a/gin_server_admin/model/assessmentmodel/performance_appraisal.go +++ b/gin_server_admin/model/assessmentmodel/performance_appraisal.go @@ -24,6 +24,7 @@ type ScoreFlow struct { Reply int `json:"reply" gorm:"column:sf_reply;type:int(2) unsigned;default:1;not null;comment:状态(0:删除;1:起草;2:审批;3:通过)"` Rectification int `json:"rectification" gorm:"column:sf_rectification;type:tinyint(1) unsigned;default:1;not null;comment:1、需要整改;2:无需整改"` HappenTime int64 `json:"happentime" gorm:"column:sf_happen_time;type:bigint(20) unsigned;default:0;not null;comment:发生时间"` + Count int `json:"count" gorm:"column:sf_count;type:int(5) unsigned;default:1;not null;comment:发生次数"` } func (ScoreFlow *ScoreFlow) TableName() string { diff --git a/gin_server_admin/router/assessment/assessmentrouter.go b/gin_server_admin/router/assessment/assessmentrouter.go index 87dc90a..0c97646 100644 --- a/gin_server_admin/router/assessment/assessmentrouter.go +++ b/gin_server_admin/router/assessment/assessmentrouter.go @@ -202,5 +202,9 @@ func (s *AssessmentRouter) InitEvaluationRouter(Router *gin.RouterGroup) { dutyIndexCodeRouter.POST("lookquantitativeconfig", authorityIndexApi.LookQuantitativeConfig) // 查看定量考核目标设定 dutyIndexCodeRouter.POST("seeflowlog", authorityIndexApi.SeeFlowLog) // 流程列表 + + //考核新接口 + dutyIndexCodeRouter.POST("newqualitative", authorityIndexApi.NewQualitative) // 新定性考核列表 + dutyIndexCodeRouter.POST("newgetqualdetailedtarget", authorityIndexApi.NewGetQualDetailedTarget) //获取新定性考核详细指标 } } diff --git a/gin_server_admin/router/shiyan/sys_shiyan.go b/gin_server_admin/router/shiyan/sys_shiyan.go index a14e81b..154d4c8 100644 --- a/gin_server_admin/router/shiyan/sys_shiyan.go +++ b/gin_server_admin/router/shiyan/sys_shiyan.go @@ -34,5 +34,7 @@ func (s *ShiyanRouter) InitShiyanRouter(Router *gin.RouterGroup) { shiyanCodeRouter.POST("textshiyan", authorityApi.TextShiyan) //比对文本 shiyanCodeRouter.POST("jiami", authorityApi.JiaMi) //比对文本 + shiyanCodeRouter.POST("suntar", authorityApi.SunTar) + } } diff --git a/gin_server_admin/router/systemadmin/dutyassess.go b/gin_server_admin/router/systemadmin/dutyassess.go index 9146e12..c208291 100644 --- a/gin_server_admin/router/systemadmin/dutyassess.go +++ b/gin_server_admin/router/systemadmin/dutyassess.go @@ -30,6 +30,24 @@ func (a *AdminRouter) InitStaffRouter(Router *gin.RouterGroup) { adminRouter.POST("delsuntardimeat", authorityApi.DelSunTarDimeat) //删除定性考核指标子栏目 adminRouter.POST("adddutyrelation", authorityApi.AddDutyRelation) //添加 定性考核指标关系指定 adminRouter.POST("getdutyrelationlist", authorityApi.GetDutyRelationList) //获取定性考核指标关系指定列表 + adminRouter.POST("lookdutytargetinfo", authorityApi.LookDutyTargetInfo) //查看定性考核项目详情 + adminRouter.POST("newdeltarget", authorityApi.NewDelTarGet) //删除定性考核指标(NEW) + adminRouter.POST("getneweitedetailedtarget", authorityApi.GetNewEiteDetailedTarget) //获取被修改指标细则的详情(NEW) + adminRouter.POST("neweitedetailedtarget", authorityApi.NewEiteDetailedTarget) //修改或添加定性考核指标细则内容(NEW) + adminRouter.POST("newdeldetailedtarget", authorityApi.NewDelDetailedTarget) //删除指标细则内容(NEW) + adminRouter.POST("newdelsuntarget", authorityApi.NewDelSunTarget) //删除子栏目(NEW) + adminRouter.POST("newgerderpattarlist", authorityApi.NewGerDerpatTarList) //新的部门考核指标获取列表 + adminRouter.POST("newadddepartduty", authorityApi.NewAddDepartDuty) //部门考核添加。NEW + adminRouter.POST("deldepartdutytarger", authorityApi.DelDepartDutyTarger) //删除部门考核指标(New) + adminRouter.POST("deldepartduty", authorityApi.DelDepartDuty) //删除部门考核(New) + adminRouter.POST("getdepartforduty", authorityApi.GetDepartForDuty) //获取定性考核相关部门 + adminRouter.POST("eitedepartforduty", authorityApi.EiteDepartForDuty) //修改已知定性考核指标关联部门 + adminRouter.POST("departdutyplanversion", authorityApi.DepartDutyPlanVersion) //部门考核方案版本列表 + adminRouter.POST("adddepartdutyversio", authorityApi.AddDepartDutyVersio) //添加部门考核方案(待版本号的版本) + adminRouter.POST("lookdepartdutyversio", authorityApi.LookDepartDutyVersio) //查看考核方案(待版本号的版本) + adminRouter.POST("onoffdepartdutyversio", authorityApi.OnOffDepartDutyVersio) //启用禁用删除(待版本号的版本) + adminRouter.POST("eitedepartexplain", authorityApi.EiteDepartExplain) //修改部门考核方案内的说明(待版本号的版本) + } } diff --git a/gin_server_admin/scheduledtask/time_task.go b/gin_server_admin/scheduledtask/time_task.go index 7237f67..6793dd1 100644 --- a/gin_server_admin/scheduledtask/time_task.go +++ b/gin_server_admin/scheduledtask/time_task.go @@ -20,7 +20,7 @@ func TimeTask() { 加载任务场景 AddFunc("任务时间格式","执行的任务") */ - c.AddFunc("0 */10 * * * *", func() { + c.AddFunc("0 0 8 * * *", func() { fmt.Printf("执行定时任务------>%v\n", time.Now().UTC()) }) //每3秒执行一个任务 //启动