diff --git a/api/version1/departmentseting/departmentpc/qualitativekpi.go b/api/version1/departmentseting/departmentpc/qualitativekpi.go index ae8e0c5..42e76a3 100644 --- a/api/version1/departmentseting/departmentpc/qualitativekpi.go +++ b/api/version1/departmentseting/departmentpc/qualitativekpi.go @@ -3,6 +3,7 @@ package departmentpc import ( "encoding/json" "fmt" + "key_performance_indicators/middleware/snowflake" "key_performance_indicators/models/modelshr" "key_performance_indicators/models/modelskpi" "key_performance_indicators/overall" @@ -662,6 +663,13 @@ func handleDetarildTargetRepart(targetId, targetSunId, bylawsId int64, repart [] tarReportCont.EiteCont(map[string]interface{}{"`id`": tarReportCont.Id}, map[string]interface{}{"`state`": 1, "`man_department`": manCont.MainDeparment, "`time`": time.Now().Unix()}) } } else { + xiZe := 3 + if targetId != 0 && targetSunId != 0 && bylawsId == 0 { + xiZe = 2 + } else if targetId != 0 && targetSunId == 0 && bylawsId == 0 { + xiZe = 1 + } + tarReportCont.TargetId = targetId //指标ID"` tarReportCont.TargetSunId = targetSunId //子目标"` tarReportCont.TargetBylaws = bylawsId //指标细则"` @@ -674,6 +682,7 @@ func handleDetarildTargetRepart(targetId, targetSunId, bylawsId int64, repart [] tarReportCont.ManDepartment = manCont.MainDeparment //提报人所在部门"` tarReportCont.Time = time.Now().Unix() //写入时间"` tarReportCont.Class = 1 //1:定性考核;2:定量考核"` + tarReportCont.Level = xiZe //1:指标;2:子目标;3:细则 overall.CONSTANT_DB_KPI.Create(&tarReportCont) } } @@ -1143,10 +1152,10 @@ func (a *ApiMethod) DelSonTarget(c *gin.Context) { go softDetaildeCont(sonTargetCont.ParentId, sonTargetCont.Id, delTime) //软删除所有此子栏目相关的联部门 syncSeting.Add(1) - go softDelTargetDepartment(sonTargetCont.ParentId, sonTargetCont.Id, delTime) + go softDelTargetDepartment(map[string]interface{}{"target_id": sonTargetCont.ParentId, "target_sun_id": sonTargetCont.Id, "`state`": 1}, delTime) //软删除所有此子栏目相关联的提报人 syncSeting.Add(1) - go softDelTargetReport(sonTargetCont.ParentId, sonTargetCont.Id, delTime) + go softDelTargetReport(map[string]interface{}{"`target_id`": sonTargetCont.ParentId, "`target_sun_id`": sonTargetCont.Id, "`state`": 1}, delTime) //软删除此栏目 var delTargetSon modelskpi.QualitativeTarget err = delTargetSon.EiteCont(map[string]interface{}{"`q_id`": sonTargetCont.Id}, map[string]interface{}{"`q_state`": 3, "`q_time`": delTime}) @@ -1166,17 +1175,17 @@ func softDetaildeCont(targetId, sonTargetId, delTime int64) { } // 软删除所有此子栏目相关联的提报人 -func softDelTargetReport(targetId, sonTargetId, delTime int64) { +func softDelTargetReport(where interface{}, delTime int64) { defer syncSeting.Done() var delTargetReport modelskpi.TargetReport - delTargetReport.EiteCont(map[string]interface{}{"`target_id`": targetId, "`target_sun_id`": sonTargetId, "`state`": 1}, map[string]interface{}{"`state`": 3, "`time`": delTime}) + delTargetReport.EiteCont(where, map[string]interface{}{"`state`": 3, "`time`": delTime}) } // 软删除所有此子栏目相关的联部门 -func softDelTargetDepartment(targetId, sonTargetId, delTime int64) { +func softDelTargetDepartment(where interface{}, delTime int64) { defer syncSeting.Done() var delTargetDepartment modelskpi.TargetDepartment - delTargetDepartment.EiteCont(map[string]interface{}{"target_id": targetId, "target_sun_id": sonTargetId, "`state`": 1}, map[string]interface{}{"`state`": 3, "`time`": delTime}) + delTargetDepartment.EiteCont(where, map[string]interface{}{"`state`": 3, "`time`": delTime}) } // 获取单一指标细则内容 @@ -1199,4 +1208,379 @@ func (a *ApiMethod) GetOneDetailedTarget(c *gin.Context) { publicmethod.Result(107, err, c) return } + var outDataCont NewOutPutDetailedTarget + outDataCont.Id = strconv.FormatInt(detailedTargetCont.Id, 10) + outDataCont.Title = detailedTargetCont.Title //考核内容 + outDataCont.Content = detailedTargetCont.Content //备注说明 + outDataCont.Unit = detailedTargetCont.Company //单位 + biaoZhun := "" + if detailedTargetCont.MinScore != 0 { + biaoZhun = fmt.Sprintf("%v-%v", detailedTargetCont.MinScore, detailedTargetCont.MaxScore) + } else { + biaoZhun = fmt.Sprintf("%v", detailedTargetCont.MaxScore) + } + outDataCont.ReferenceScore = biaoZhun //考核标准 + outDataCont.Cycles = detailedTargetCont.Cycles //1:班;2:天;3:周;4:月;5:季度;6:年 + outDataCont.CycleAttres = detailedTargetCont.CycleAttres //辅助计数 + outDataCont.Operator, outDataCont.ReportManList, _ = getDetailedReport(detailedTargetCont.ParentId, detailedTargetCont.ParentIdSun, detailedTargetCont.Id, 1) //考核执行人 + outDataCont.AddOrReduce = detailedTargetCont.AddReduce //操作类型 1:减少;2:增加;3:用户自定义 + outDataCont.CensorType = strings.Split(detailedTargetCont.CensorType, ",") //检查方式(1:现场检查;2:资料检查;3:事件触发) + outDataCont.CensorCont = detailedTargetCont.CensorCont //客观证据 + outDataCont.CensorRate = detailedTargetCont.CensorRate //检查频次 + outDataCont.DepartmentList, _, _ = getDetailedDepartment(detailedTargetCont.ParentId, detailedTargetCont.ParentIdSun, detailedTargetCont.Id, 1) //接受考核的部门 + publicmethod.Result(0, outDataCont, c) +} + +// 获取指标细则接受考核部门 +func getDetailedDepartment(targetId, targetSunId, bylawsId int64, class int) (departmentStr []string, departmentInfo []departOutcome, err error) { + if class == 0 { + class = 1 + } + var departmentId []int64 + err = overall.CONSTANT_DB_KPI.Model(&modelskpi.TargetDepartment{}).Distinct("`department_id`").Where("`state` = 1 AND `level` = ? AND `target_id` = ? AND `target_sun_id` = ? AND `target_bylaws` = ?", class, targetId, targetSunId, bylawsId).Find(&departmentId).Error + if err != nil || len(departmentId) < 1 { + return + } + var orgList []modelshr.AdministrativeOrganization + gormDb := overall.CONSTANT_DB_HR.Model(&modelshr.AdministrativeOrganization{}).Select("`id`,`name`,`superior`,`ispower`") + if len(departmentId) > 1 { + gormDb = gormDb.Where("`id` IN ?", departmentId) + } else { + gormDb = gormDb.Where("`id` = ?", departmentId) + } + + err = gormDb.Find(&orgList).Error + if err != nil || len(orgList) < 1 { + return + } + for _, v := range orgList { + departIdStr := strconv.FormatInt(v.Id, 10) + if publicmethod.IsInTrue[string](departIdStr, departmentStr) == false { + var departCont departOutcome + departCont.Id = departIdStr + departCont.Name = v.Name + departCont.Superior = strconv.FormatInt(v.Superior, 10) //上级 + departCont.Ispower = v.IsPower //是否为主部门 + departmentStr = append(departmentStr, departIdStr) + departmentInfo = append(departmentInfo, departCont) + } + } + return +} + +// 获取指标细则执行人 +func getDetailedReport(targetId, targetSunId, bylawsId int64, class int) (userKey []string, userCont []printReportCont, err error) { + if class == 0 { + class = 1 + } + var userKeyInt []int64 + err = overall.CONSTANT_DB_KPI.Model(&modelskpi.TargetReport{}).Distinct("`man_key`").Where("`state` = 1 AND `type` = ? AND `target_id` = ? AND `target_sun_id` = ? AND `target_bylaws` = ?", class, targetId, targetSunId, bylawsId).Find(&userKeyInt).Error + if err != nil || len(userKeyInt) < 1 { + return + } + var userContList []modelshr.PersonArchives + gormDb := overall.CONSTANT_DB_HR.Model(&modelshr.PersonArchives{}).Select("`id`,`number`,`name`,`icon`,`company`,`maindeparment`") + if len(userKeyInt) > 1 { + gormDb = gormDb.Where("`key` IN ?", userKeyInt) + } else { + gormDb = gormDb.Where("`key` = ?", userKeyInt) + } + err = gormDb.Find(&userContList).Error + if err != nil || len(userContList) < 1 { + return + } + for _, v := range userContList { + userKeyStr := strconv.FormatInt(v.Id, 10) + if publicmethod.IsInTrue[string](userKeyStr, userKey) == false { + var userInfo printReportCont + userInfo.Id = userKeyStr + userInfo.Name = v.Name + var groupCont modelshr.AdministrativeOrganization + groupCont.GetCont(map[string]interface{}{"`id`": v.Company}, "`name`") + userInfo.GroupName = groupCont.Name + var deparHrCont modelshr.AdministrativeOrganization + deparHrCont.GetCont(map[string]interface{}{"`id`": v.Company}, "`name`") + userInfo.DepartmentName = deparHrCont.Name + userInfo.Icon = v.Icon + userInfo.Number = v.Number + userKey = append(userKey, userKeyStr) + userCont = append(userCont, userInfo) + } + + } + return +} + +// 编辑单一指标细则内容 +func (a *ApiMethod) EditOneDetailedTarget(c *gin.Context) { + var receivedValue editOneDetailedTargetInfo + c.ShouldBindJSON(&receivedValue) + + var judgeDetaCont modelskpi.DetailedTarget + judgeDetaErr := judgeDetaCont.GetCont(map[string]interface{}{"`dt_id`": receivedValue.Id}) + if judgeDetaErr != nil { + publicmethod.Result(107, receivedValue, c) + return + } + if receivedValue.Title == "" { + publicmethod.Result(1, receivedValue, c, "请输入考核细则名称!") + return + } + //判断指标细则是否符合规则 + if receivedValue.ReferenceScore == "" { + publicmethod.Result(1, receivedValue, c, "请输入考核细则相关考核标准!") + return + } else { + scoreAry := strings.Split(receivedValue.ReferenceScore, "-") + scoreLen := len(scoreAry) + if scoreLen < 1 { + publicmethod.Result(1, receivedValue, c, "考核标准不符合要求!请仔细填写!") + return + } + if scoreLen == 1 { + maxScore, maxErr := strconv.ParseFloat(scoreAry[0], 64) + if maxErr != nil { + publicmethod.Result(1, maxErr, c, "考核标准不符合要求!请仔细填写!") + return + } + var maxIntErr error + _, maxIntErr = strconv.ParseInt(strconv.FormatFloat(maxScore*100, 'f', -1, 64), 10, 64) + if maxIntErr != nil { + publicmethod.Result(1, maxIntErr, c, "考核标准不符合要求!请仔细填写!") + return + } + } else { + minScore, minErr := strconv.ParseFloat(scoreAry[0], 64) + if minErr != nil { + publicmethod.Result(1, minErr, c, "考核标准不符合要求!请仔细填写!") + return + } + maxScore, maxErr := strconv.ParseFloat(scoreAry[scoreLen-1], 64) + if maxErr != nil { + publicmethod.Result(1, maxErr, c, "考核标准不符合要求!请仔细填写!") + return + } + var minIntErr error + _, minIntErr = strconv.ParseInt(strconv.FormatFloat(minScore*100, 'f', -1, 64), 10, 64) + if minIntErr != nil { + publicmethod.Result(1, minIntErr, c, "考核标准不符合要求!请仔细填写!") + return + } + var maxIntErr error + _, maxIntErr = strconv.ParseInt(strconv.FormatFloat(maxScore*100, 'f', -1, 64), 10, 64) + if maxIntErr != nil { + publicmethod.Result(1, maxIntErr, c, "考核标准不符合要求!请仔细填写!") + return + } + } + } + if len(receivedValue.DepartmentList) < 1 { + //获取子栏目接受考核部门 + var aboutTarDepList []int64 + aboutTDErr := overall.CONSTANT_DB_KPI.Model(&modelskpi.TargetDepartment{}).Distinct("`department_id`").Where("`state` = 1 AND `level` = 1 AND `target_id` = ? AND `target_sun_id` = ?", judgeDetaCont.ParentId, judgeDetaCont.ParentIdSun).Find(&aboutTarDepList).Error + if aboutTDErr == nil { + for _, atdv := range aboutTarDepList { + receivedValue.DepartmentList = append(receivedValue.DepartmentList, strconv.FormatInt(atdv, 10)) + } + } + } + if len(receivedValue.QualEvalSunList.Operator) < 1 { + var aboutTarDepRepList []int64 + aboutReTDErr := overall.CONSTANT_DB_KPI.Model(&modelskpi.TargetReport{}).Distinct("`man_key`").Where("`state` = 1 AND `type` = 1 AND `target_id` = ? AND `target_sun_id` = ?", judgeDetaCont.ParentId, judgeDetaCont.ParentIdSun).Find(&aboutTarDepRepList).Error + if aboutReTDErr == nil { + for _, atdv := range aboutTarDepRepList { + receivedValue.QualEvalSunList.Operator = append(receivedValue.QualEvalSunList.Operator, strconv.FormatInt(atdv, 10)) + } + } + } + err := editDetaAdd(judgeDetaCont.ParentId, judgeDetaCont.ParentIdSun, receivedValue.QualEvalSunList, judgeDetaCont, receivedValue.DepartmentList) + if err != nil { + publicmethod.Result(106, receivedValue, c) + return + } + publicmethod.Result(0, err, c) +} + +// 删除单一指标细则 +func (a *ApiMethod) DelOneDetailedTarget(c *gin.Context) { + var receivedValue publicmethod.PublicId + err := c.ShouldBindJSON(&receivedValue) + if err != nil { + publicmethod.Result(100, receivedValue, c) + return + } + if receivedValue.Id == "" { + publicmethod.Result(101, receivedValue, c) + return + } + where := publicmethod.MapOut[string]() + where["dt_id"] = receivedValue.Id + var detailedTargetCont modelskpi.DetailedTarget + err = detailedTargetCont.GetCont(where) + if err != nil { + publicmethod.Result(107, err, c) + return + } + delTime := time.Now().Unix() + err = detailedTargetCont.EiteCont(where, map[string]interface{}{"dt_state": 3, "dt_time": delTime}) + if err != nil { + publicmethod.Result(106, err, c) + return + } + + //软删除所有此子栏目相关的联部门 + syncSeting.Add(1) + go softDelTargetDepartment(map[string]interface{}{"target_id": detailedTargetCont.ParentId, "`target_sun_id`": detailedTargetCont.ParentIdSun, "target_bylaws": detailedTargetCont.Id, "`state`": 1}, delTime) + //软删除所有此子栏目相关联的提报人 + syncSeting.Add(1) + go softDelTargetReport(map[string]interface{}{"`target_id`": detailedTargetCont.ParentId, "`target_sun_id`": detailedTargetCont.ParentIdSun, "target_bylaws": detailedTargetCont.Id, "`state`": 1}, delTime) + syncSeting.Wait() + publicmethod.Result(0, err, c) +} + +// 添加部门指标 +func (a *ApiMethod) AddDepartmentTarget(c *gin.Context) { + var receivedValue addTargetContDepart + err := c.ShouldBindJSON(&receivedValue) + if err != nil { + publicmethod.Result(100, err, c) + return + } + if receivedValue.Name == "" { + publicmethod.Result(101, err, c, "请输入指标名称!!") + return + } + if receivedValue.Nature == 0 { + receivedValue.Nature = 1 + } + if receivedValue.Share == 0 { + receivedValue.Share = 1 + } else { + if receivedValue.Share > 1 { + if len(receivedValue.AcceptDepartmentId) < 1 { + publicmethod.Result(101, err, c, "您选择了此指标为指定部门使用!但您未指定具体使用部门!请指定相关使用部门!") + return + } + } + } + if receivedValue.Unit == "" { + publicmethod.Result(101, err, c, "请输入计量单位!") + return + } + if receivedValue.Cycles == 0 { + receivedValue.Cycles = 4 + } + if receivedValue.CycleAttres == 0 { + receivedValue.CycleAttres = 1 + } + if receivedValue.ScoringMethod == 0 { + receivedValue.ScoringMethod = 1 + } + JudgeIsTrue := publicmethod.MapOut[string]() + err = overall.CONSTANT_DB_KPI.Model(&modelskpi.EvaluationTarget{}).Select("et_title").Where("`et_title` = ? AND `et_type` = ? AND `et_dimension` = ?", receivedValue.Name, receivedValue.Nature, receivedValue.Dimension).First(&JudgeIsTrue).Error + if err == nil { + publicmethod.Result(101, err, c, "此考核指标已经存在!请不要重复添加!") + return + } + var uuId int64 = 0 + snowflakeId, snowflakeErr := snowflake.NewWorker(1) + if snowflakeErr != nil { + uuId = publicmethod.TableNumber() + } else { + uuId = snowflakeId.GetId() + } + + var saveData modelskpi.EvaluationTarget + saveData.Title = receivedValue.Name //指标名称"` + saveData.Type = receivedValue.Nature //1:定性考核;2:定量考核"` + saveData.State = 1 //状态(1:启用;2:禁用;3:删除)"` + saveData.AddTime = time.Now().Unix() //制定时间"` + saveData.Share = 1 //1:共用;2:私用"` + saveData.RelevantDepartments = strings.Join(receivedValue.AcceptDepartmentId, ",") //相关部门"` + dimensionId, _ := strconv.ParseInt(receivedValue.Dimension, 10, 64) + saveData.Dimension = dimensionId //维度"` + saveData.Key = uuId //UUID"` + saveData.Report = strings.Join(receivedValue.Operator, ",") //上报人"` + saveData.Uniteing = receivedValue.Unit //计量单位"` + saveData.Cycles = receivedValue.Cycles //1:班;2:天;3:周;4:月;5:季度;6:年"` + saveData.CycleAttres = receivedValue.CycleAttres //辅助计数"` + saveData.VisibleRange = strings.Join(receivedValue.VisibleRangeDepart, ",") //可见范围"` + saveData.VisibleRangeGroup = strings.Join(receivedValue.VisibleRangeGroup, ",") //可见范围(集团)"` + saveData.ScoringMethod = receivedValue.ScoringMethod //计分方式(1:自动;2:手动)"` + err = overall.CONSTANT_DB_KPI.Create(&saveData).Error + if err != nil { + publicmethod.Result(104, err, c) + return + } + + if len(receivedValue.AcceptDepartmentId) > 0 { + syncSeting.Add(1) + go handleDetarildTargetDepart(saveData.Id, 0, 0, receivedValue.AcceptDepartmentId, 1) + } + if len(receivedValue.Operator) > 0 { + syncSeting.Add(1) + go handleDetarildTargetRepart(saveData.Id, 0, 0, receivedValue.Operator, 1) + } + syncSeting.Wait() + + publicmethod.Result(0, err, c) +} + +// 获取关联部门 +func GetAboutDepartment(where interface{}, level int) (departmentId []int64, departmentIdStr []string, err error) { + err = overall.CONSTANT_DB_KPI.Model(&modelskpi.TargetDepartment{}).Distinct("`department_id`").Where(where).Find(&departmentId).Error + if err == nil { + for _, v := range departmentId { + departmentIdStr = append(departmentIdStr, strconv.FormatInt(v, 10)) + } + } + return +} + +// 获取关联提报人 +func GetAboutReport(where interface{}, level int) (userKey []int64, userKeyStr []string, err error) { + err = overall.CONSTANT_DB_KPI.Model(&modelskpi.TargetReport{}).Distinct("`man_key`").Where(where).Find(&userKey).Error + if err == nil { + for _, v := range userKey { + userKeyStr = append(userKeyStr, strconv.FormatInt(v, 10)) + } + } + return +} + +// 获取单一指标详细内容 +func (a *ApiMethod) GetOneTergetInfo(c *gin.Context) { + var receivedValue publicmethod.PublicId + err := c.ShouldBindJSON(&receivedValue) + if err != nil { + publicmethod.Result(100, receivedValue, c) + return + } + if receivedValue.Id == "" { + publicmethod.Result(101, receivedValue, c) + return + } + where := publicmethod.MapOut[string]() + where["et_id"] = receivedValue.Id + var targetCont modelskpi.EvaluationTarget + err = targetCont.GetCont(where) + if err != nil { + publicmethod.Result(107, err, c) + return + } + var outCont printOneTargetCont + outCont.Id = strconv.FormatInt(targetCont.Id, 10) + outCont.Name = targetCont.Title + outCont.Share = targetCont.Share //1:共用;2:私用 + outCont.AcceptDepartmentId = strings.Split(targetCont.RelevantDepartments, ",") //接受考核部门 + outCont.Operator = strings.Split(targetCont.Report, ",") //考核执行人 + outCont.Dimension = strconv.FormatInt(targetCont.Dimension, 10) //维度 + outCont.Nature = targetCont.Type //性质 1:定性考核;2:定量考核 + outCont.Unit = targetCont.Uniteing //单位 + outCont.Cycles = targetCont.Cycles //1:班;2:天;3:周;4:月;5:季度;6:年 + outCont.CycleAttres = targetCont.CycleAttres //辅助计数 + outCont.ScoringMethod = targetCont.ScoringMethod //计分方式(1:自动;2:手动)' + outCont.VisibleRangeGroup = strings.Split(targetCont.VisibleRangeGroup, ",") //可见范围(集团) + outCont.VisibleRangeDepart = strings.Split(targetCont.VisibleRange, ",") //可见范围(分厂) + publicmethod.Result(0, outCont, c) } diff --git a/api/version1/departmentseting/departmentpc/type.go b/api/version1/departmentseting/departmentpc/type.go index 413f9f5..0530f7f 100644 --- a/api/version1/departmentseting/departmentpc/type.go +++ b/api/version1/departmentseting/departmentpc/type.go @@ -148,3 +148,39 @@ type outCont struct { publicmethod.PublicId publicmethod.PublicName } + +// 输出新版指标细则详细内容 +type NewOutPutDetailedTarget struct { + publicmethod.PublicId + QualEvalSunList + ReportManList []printReportCont `json:"reportmanlist"` //上报人 + DepartmentList []string `json:"departmentlist"` //接受考核的部门 +} + +// 修改单一指标细则内容提交参数 +type editOneDetailedTargetInfo struct { + basisSonTargetAddDet + DepartmentList []string `json:"departmentlist"` //接受考核的部门 +} + +// 添加部门指标参数 +type addTargetContDepart struct { + publicmethod.PublicName + Share int `json:"share"` //1:共用;2:私用 + AcceptDepartmentId []string `json:"acceptdepartmentid"` //接受考核部门 + Operator []string `json:"userlist"` //考核执行人 + Dimension string `json:"dimension"` //维度 + Nature int `json:"nature"` //性质 1:定性考核;2:定量考核 + Unit string `json:"unit"` //单位 + Cycles int `json:"cycle"` //1:班;2:天;3:周;4:月;5:季度;6:年 + CycleAttres int `json:"cycleattr"` //辅助计数 + ScoringMethod int `json:"scoringmethod"` //计分方式(1:自动;2:手动)' + VisibleRangeGroup []string `json:"visiblerangegroup"` //可见范围(集团) + VisibleRangeDepart []string `json:"visiblerangedepart"` //可见范围(分厂) +} + +// 输出单一指标详细内容 +type printOneTargetCont struct { + publicmethod.PublicId + addTargetContDepart +} diff --git a/apirouter/v1/departmentseting/pc.go b/apirouter/v1/departmentseting/pc.go index 77fda69..35eaa9b 100644 --- a/apirouter/v1/departmentseting/pc.go +++ b/apirouter/v1/departmentseting/pc.go @@ -15,17 +15,26 @@ func (a *ApiRouter) RouterGroupPc(router *gin.RouterGroup) { apiRouter.GET("", methodBinding.Index) //入口 apiRouter.POST("", methodBinding.Index) //入口 - apiRouter.POST("departmenttargetlist", methodBinding.DepartmentTargetList) //部门指标列表 - apiRouter.POST("shiyan", methodBinding.Shiyan) //实验 - apiRouter.POST("getdepartabouttarget", methodBinding.GetDepartAboutTarget) //获取部门定性考核部门关联列表 - apiRouter.POST("gettargetreport", methodBinding.GetTargetReport) //获取部门指标相关执行人 + apiRouter.POST("departmenttargetlist", methodBinding.DepartmentTargetList) //部门指标列表 + apiRouter.POST("shiyan", methodBinding.Shiyan) //实验 + apiRouter.POST("getdepartabouttarget", methodBinding.GetDepartAboutTarget) //获取部门定性考核部门关联列表 + apiRouter.POST("gettargetreport", methodBinding.GetTargetReport) //获取部门指标相关执行人 + apiRouter.POST("addsuntargetdetailed", methodBinding.AddSunTargetDetailed) //添加定性考核子栏目及细则 apiRouter.POST("getdepartmenttragetcontlist", methodBinding.GetDepartmentTragetContList) //获取定性考核指标列表内容 apiRouter.POST("basissontargetadddetailed", methodBinding.BasisSonTargetAddDetailed) //根据指标栏目新增指标细则 apiRouter.POST("basistargetdearpetmentgetpost", methodBinding.BasisTargetDearpetmentGetPost) //根据指标和部门获取相关岗位 apiRouter.POST("basistaegetdeparmentreport", methodBinding.BasisTaegetDeparmentReport) //获取部门指标岗位提交人 + apiRouter.POST("editsontargetdepartmentreport", methodBinding.EditSonTargetDepartmentReport) //修改子栏目标题名称级考核关联部门及提报人 apiRouter.POST("getsontargetcont", methodBinding.GetSonTargetCont) //获取子栏目基础信息 apiRouter.POST("delsontarget", methodBinding.DelSonTarget) //删除子栏目 + + apiRouter.POST("getonedetailedtarget", methodBinding.GetOneDetailedTarget) //获取单一指标细则内容 + apiRouter.POST("edit_one_detailed_target", methodBinding.EditOneDetailedTarget) //编辑单一指标细则内容 + apiRouter.POST("del_one_detailed_target", methodBinding.DelOneDetailedTarget) //删除单一指标细则 + + apiRouter.POST("add_department_target", methodBinding.AddDepartmentTarget) //添加部门指标 + apiRouter.POST("get_one_terget_info", methodBinding.GetOneTergetInfo) //获取单一指标详细内容 } } diff --git a/models/modelskpi/detailed_target.go b/models/modelskpi/detailed_target.go index 356f298..7189daa 100644 --- a/models/modelskpi/detailed_target.go +++ b/models/modelskpi/detailed_target.go @@ -33,7 +33,7 @@ func (DetailedTarget *DetailedTarget) TableName() string { // 编辑内容 func (cont *DetailedTarget) EiteCont(whereMap interface{}, saveData interface{}) (err error) { - err = overall.CONSTANT_DB_KPI.Model(&cont).Where(whereMap).Updates(saveData).Error + err = overall.CONSTANT_DB_KPI.Model(&cont).Where(whereMap).Updates(&saveData).Error return } diff --git a/models/modelskpi/target_report.go b/models/modelskpi/target_report.go index 64d4560..9492892 100644 --- a/models/modelskpi/target_report.go +++ b/models/modelskpi/target_report.go @@ -19,6 +19,7 @@ type TargetReport struct { ManDepartment int64 `json:"mandepartment" gorm:"column:man_department;type:bigint(20) unsigned;default:0;not null;comment:提报人所在部门"` Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:写入时间"` Class int `json:"class" gorm:"column:type;class:tinyint(1) unsigned;default:1;not null;comment:1:定性考核;2:定量考核"` + Level int `json:"level" gorm:"column:type_level;type:tinyint(1) unsigned;default:1;not null;comment:类型(1:指标;2:子目标;3:细则)"` } func (TargetReport *TargetReport) TableName() string {