KPI绩效考核系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
2.1 KiB

package departmentpc
import (
"encoding/json"
"fmt"
"key_performance_indicators/models/modelskpi"
"key_performance_indicators/overall"
"key_performance_indicators/overall/publicmethod"
"github.com/gin-gonic/gin"
)
// 定性指标细则与部门矩阵
func (a *ApiMethod) DepartmentRulesMatrix(c *gin.Context) {
var receivedValue rulesMatrixParameter
err := c.ShouldBindJSON(&receivedValue)
if err != nil {
publicmethod.Result(100, receivedValue, c)
return
}
if receivedValue.Company == "" {
publicmethod.Result(101, receivedValue, c)
return
}
if receivedValue.Target == "" {
publicmethod.Result(101, receivedValue, c)
return
}
//获取公司下的最小主责部门
organizationList := publicmethod.GetMinMainDutyDeparment(receivedValue.Company)
//获取该指标下的所有细则
var targetList []modelskpi.DetailedTarget
overall.CONSTANT_DB_KPI.Where("`dt_state` = 1 AND `dt_parentid` = ?", receivedValue.Target).Order("dt_parentid ASC").Order("dt_parentid_sun ASC").Find(&targetList)
if len(targetList) < 1 {
publicmethod.Result(105, receivedValue, c)
return
}
for _, v := range targetList {
relationOrg := GetRulesDepartment(v.ParentId, v.ParentIdSun, v.Id, 1)
// for
}
orgJson, _ := json.Marshal(organizationList)
fmt.Printf("orgJson-------------->%v\n", string(orgJson))
}
/*
获取指标细则关联部门
@target 指标
@sonTarget 子栏目
@bylaws 细则
@level 级别(1:部门级;2:岗位级)"`
*/
func GetRulesDepartment(target, sonTarget, bylaws int64, level int) (orgId []int64) {
// var targetDepartmentList []modelskpi.TargetDetailedRelationDepartment
// var
overall.CONSTANT_DB_KPI.Model(&modelskpi.TargetDetailedRelationDepartment{}).Distinct("`tddepartment`").Where("`dt_state` = 1 AND `dt_parentid` = ? AND `dt_parentid_sun` = ? AND `dt_id` = ? AND `level` = ?", target, sonTarget, bylaws, level).Find(&orgId)
// var snedId []int64
// for _, v := range orgId {
// snedId = append(snedId, publicmethod.GetGroupOrDepartPower(v, 1))
// }
// fmt.Printf("orgId----------->%v----------->%v\n", orgId, snedId)
return
}