5 changed files with 185 additions and 0 deletions
@ -0,0 +1,66 @@ |
|||
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 |
|||
} |
|||
@ -0,0 +1,84 @@ |
|||
package modelskpi |
|||
|
|||
import ( |
|||
"key_performance_indicators/overall" |
|||
"strings" |
|||
) |
|||
|
|||
//部门考核细则关联部门视图
|
|||
//target_detailed_relation_department
|
|||
|
|||
// 指标、栏目、细则关联部门
|
|||
type TargetDetailedRelationDepartment struct { |
|||
Id int64 `json:"id" gorm:"primaryKey;column:dt_id;type:bigint(20) unsigned;not null;comment:Id;index"` |
|||
Title string `json:"title" gorm:"column:dt_title;type:text;comment:指标细则"` |
|||
Content string `json:"content" gorm:"column:dt_content;type:text;comment:指标说明"` |
|||
ParentId int64 `json:"parentid" gorm:"column:dt_parentid;type:bigint(20) unsigned;default:0;not null;comment:归属指标栏目"` |
|||
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:无属性,现场确认加或减"` |
|||
CensorType string `json:"censortype" gorm:"column:dt_censor_type;type:text;comment:检查方式"` |
|||
CensorCont string `json:"censorcont" gorm:"column:dt_censor_cont;type:longtext;comment:检查依据"` |
|||
CensorRate int `json:"censorrate" gorm:"column:dt_censor_rate;type:int(5) unsigned;default:1;not null;comment:检查频次"` |
|||
Cycles int `json:"cycle" gorm:"column:dt_cycle;type:tinyint(1) unsigned;default:1;not null;comment:1:班;2:天;3:周;4:月;5:季度;6:年"` |
|||
CycleAttres int `json:"cycleattr" gorm:"column:dt_cycleattr;type:int(9) unsigned;default:1;not null;comment:辅助计数"` |
|||
Paretment string `json:"paretment" gorm:"column:dt_paretment;type:longtext;comment:接受考核的部门"` |
|||
Reportary string `json:"reportary" gorm:"column:reportary;type:longtext;comment:提报人"` |
|||
//关联表
|
|||
Dimension int64 `json:"dimension" gorm:"column:dimensionid;type:bigint(20) unsigned;default:0;not null;comment:维度"` |
|||
Type int `json:"type" gorm:"column:type;tdtype:tinyint(1) unsigned;default:1;not null;comment:类型(1:指标;2:子目标;3:细则)"` |
|||
DepartmentId int64 `json:"departmentid" gorm:"column:tddepartment;type:bigint(20) unsigned;default:0;not null;comment:部门ID"` |
|||
PostId int64 `json:"postid" gorm:"column:postid;type:bigint(20) unsigned;default:0;not null;comment:岗位ID"` |
|||
TdState int `json:"tastate" gorm:"column:tastate;type:tinyint(1) unsigned;default:1;not null;comment:状态(1:启用;2:禁用;3:删除)"` |
|||
Class int `json:"class" gorm:"column:tdclass;type:tinyint(1) unsigned;default:1;not null;comment:1:定性考核;2:定量考核"` |
|||
Level int `json:"level" gorm:"column:level;type:tinyint(1) unsigned;default:1;not null;comment:级别(1:部门级;2:岗位级)"` |
|||
} |
|||
|
|||
func (TargetDetailedRelationDepartment *TargetDetailedRelationDepartment) TableName() string { |
|||
return "target_detailed_relation_department" |
|||
} |
|||
|
|||
// 编辑内容
|
|||
func (cont *TargetDetailedRelationDepartment) EiteCont(whereMap interface{}, saveData interface{}) (err error) { |
|||
err = overall.CONSTANT_DB_KPI.Model(&cont).Where(whereMap).Updates(saveData).Error |
|||
return |
|||
} |
|||
|
|||
// 获取内容
|
|||
func (cont *TargetDetailedRelationDepartment) GetCont(whereMap interface{}, field ...string) (err error) { |
|||
gormDb := overall.CONSTANT_DB_KPI.Model(&cont) |
|||
if len(field) > 0 { |
|||
fieldStr := strings.Join(field, ",") |
|||
gormDb = gormDb.Select(fieldStr) |
|||
} |
|||
gormDb = gormDb.Where(whereMap) |
|||
err = gormDb.First(&cont).Error |
|||
return |
|||
} |
|||
|
|||
// 根据条件获取总数
|
|||
func (cont *TargetDetailedRelationDepartment) CountCont(whereMap interface{}) (countId int64) { |
|||
overall.CONSTANT_DB_KPI.Model(&cont).Where(whereMap).Count(&countId) |
|||
return |
|||
} |
|||
|
|||
// 读取全部信息
|
|||
func (cont *TargetDetailedRelationDepartment) ContMap(whereMap interface{}, field ...string) (countAry []TargetDetailedRelationDepartment, err error) { |
|||
gormDb := overall.CONSTANT_DB_KPI.Model(&cont) |
|||
if len(field) > 0 { |
|||
fieldStr := strings.Join(field, ",") |
|||
gormDb = gormDb.Select(fieldStr) |
|||
} |
|||
err = gormDb.Where(whereMap).Order("sort ASC").Find(&countAry).Error |
|||
return |
|||
} |
|||
|
|||
// 删除内容
|
|||
func (cont *TargetDetailedRelationDepartment) DelCont(whereMap interface{}) (err error) { |
|||
err = overall.CONSTANT_DB_KPI.Where(whereMap).Delete(&cont).Error |
|||
return |
|||
} |
|||
Loading…
Reference in new issue