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 departmentList [ ] int64
for _ , dv := range organizationList {
if publicmethod . IsInTrue [ int64 ] ( dv . Id , departmentList ) == false {
departmentList = append ( departmentList , dv . Id )
}
}
//获取该指标下的所有细则
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 i := 0 ; i < len ( departmentList ) ; i ++ {
if publicmethod . IsInTrue [ int64 ] ( departmentList [ i ] , relationOrg ) == true {
fmt . Printf ( "relationOrg--------True------>%v------>%v\n" , v . Id , departmentList [ i ] )
} else {
fmt . Printf ( "relationOrg--------False------>%v------>%v\n" , v . Id , departmentList [ i ] )
}
}
}
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
}