11 changed files with 604 additions and 0 deletions
@ -0,0 +1,88 @@ |
|||
package postpc |
|||
|
|||
import ( |
|||
"key_performance_indicators/models/modelskpi" |
|||
"key_performance_indicators/overall" |
|||
"key_performance_indicators/overall/publicmethod" |
|||
"strconv" |
|||
|
|||
"github.com/gin-gonic/gin" |
|||
) |
|||
|
|||
//岗位指标相关操作
|
|||
|
|||
// 获取岗位指标详情
|
|||
func (a *ApiMethod) GetPostTarget(c *gin.Context) { |
|||
var receivedValue publicmethod.PublicId |
|||
err := c.ShouldBindJSON(&receivedValue) |
|||
if err != nil { |
|||
publicmethod.Result(100, err, c) |
|||
return |
|||
} |
|||
if receivedValue.Id == "" { |
|||
publicmethod.Result(101, receivedValue, c) |
|||
return |
|||
} |
|||
var postTargetCont modelskpi.PostTarget |
|||
err = postTargetCont.GetCont(map[string]interface{}{"`id`": receivedValue.Id}) |
|||
if err != nil { |
|||
publicmethod.Result(107, err, c) |
|||
return |
|||
} |
|||
var sendData getPostOneTarget |
|||
sendData.Id = postTargetCont.Id |
|||
sendData.Title = postTargetCont.Title //标题"`
|
|||
sendData.Type = postTargetCont.Type //1:定性考核;2:定量考核"`
|
|||
sendData.State = postTargetCont.State //:状态(1:启用;2:禁用;3:删除)"`
|
|||
sendData.Time = postTargetCont.Time //创建时间"`
|
|||
sendData.Share = postTargetCont.Share //1:共用;2:私用"`
|
|||
sendData.ReleDepart = postTargetCont.ReleDepart //相关部门"`
|
|||
sendData.DepartmentsPost = postTargetCont.DepartmentsPost //相关岗位"`
|
|||
sendData.Dimension = postTargetCont.Dimension //维度"`
|
|||
sendData.Key = postTargetCont.Key //UUID"`
|
|||
sendData.Report = postTargetCont.Report //上报人"`
|
|||
sendData.Unit = postTargetCont.Unit //单位"`
|
|||
sendData.Cycle = postTargetCont.Cycle //1:班;2:天;3:周;4:月;5:季度;6:年"`
|
|||
sendData.Cycleattr = postTargetCont.Cycleattr //辅助计数"`
|
|||
sendData.ScoringMethod = postTargetCont.ScoringMethod //计分方式(1:自动;2:手动)"`
|
|||
sendData.VisibleRange = postTargetCont.VisibleRange //可见范围"`
|
|||
sendData.VisibleGroup = postTargetCont.VisibleGroup //可见范围(集团)"`
|
|||
_, sendData.RelevantPostsMan, _ = getTargetAboutPost(postTargetCont.ReleDepart, postTargetCont.Dimension, postTargetCont.Id) |
|||
publicmethod.Result(0, sendData, c) |
|||
} |
|||
|
|||
/* |
|||
获取岗位指标相关岗位 |
|||
@departmentId 部门Id |
|||
@dimensionId 维度 |
|||
@targetId 指标 |
|||
*/ |
|||
func getTargetAboutPost(departmentId, dimensionId, targetId int64) (postId []int64, postPeopleList []postPeople, err error) { |
|||
err = overall.CONSTANT_DB_KPI.Model(&modelskpi.TargetDepartment{}).Distinct("`post_id`").Where("`state` = 1 AND `level` = 2 AND `department_id` = ? AND `dimension_id` = ? AND `target_id` = ?").Find(&postId).Error |
|||
if len(postId) > 0 { |
|||
for i := 0; i < len(postId); i++ { |
|||
var postmanCont postPeople |
|||
postmanCont.Id = strconv.FormatInt(postId[i], 10) |
|||
_, postmanCont.Operator, _ = getTargetAboutPostMan(departmentId, postId[i], dimensionId, targetId) |
|||
postPeopleList = append(postPeopleList, postmanCont) |
|||
} |
|||
} |
|||
return |
|||
} |
|||
|
|||
/* |
|||
获取岗位指标相关岗位提报人 |
|||
@departmentId 部门Id |
|||
@postid 岗位 |
|||
@dimensionId 维度 |
|||
@targetId 指标 |
|||
*/ |
|||
func getTargetAboutPostMan(departmentId, postid, dimensionId, targetId int64) (peopleId []int64, postPeople []string, err error) { |
|||
err = overall.CONSTANT_DB_KPI.Model(&modelskpi.TargetReport{}).Distinct("`man_key`").Where("`state` = 1 AND `type` = 2 AND `department_id` = ? AND `post_id` = ? AND `dimension_id` = ? AND `target_id` = ?").Find(&peopleId).Error |
|||
if len(peopleId) > 0 { |
|||
for i := 0; i < len(peopleId); i++ { |
|||
postPeople = append(postPeople, strconv.FormatInt(peopleId[i], 10)) |
|||
} |
|||
} |
|||
return |
|||
} |
|||
@ -0,0 +1,77 @@ |
|||
package modelskpi |
|||
|
|||
import ( |
|||
"key_performance_indicators/overall" |
|||
"strings" |
|||
) |
|||
|
|||
// 定性考核流水
|
|||
type PostMeteringFlow struct { |
|||
Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;autoIncrement;comment:ID"` |
|||
OrderId int64 `json:"orderid" gorm:"column:order_id;type:bigint(20) unsigned;default:0;not null;comment:审批单ID"` |
|||
ShemeId int64 `json:"shemeid" gorm:"column:sheme_id;type:bigint(20) unsigned;default:0;not null;comment:方案ID"` |
|||
ShemeVersion string `json:"shemeversion" gorm:"column:sheme_version;type:varchar(255) ;not null;comment:方案版本编号"` |
|||
Dimension int64 `json:"dimension" gorm:"column:dimension;type:bigint(20) unsigned;default:0;not null;comment:维度"` |
|||
Target int64 `json:"target" gorm:"column:target;type:bigint(20) unsigned;default:0;not null;comment:指标"` |
|||
Score int64 `json:"score" gorm:"column:score;type:bigint(20) unsigned;default:0;not null;comment:分值(*100保存)"` |
|||
Reason string `json:"reason" gorm:"column:reason;type:text;comment:这样操作的原因"` |
|||
Year int `json:"year" gorm:"column:year;type:int(7) unsigned;default:0;not null;comment:年"` |
|||
Quarter int `json:"quarter" gorm:"column:quarter;type:int(3) unsigned;default:0;not null;comment:季度"` |
|||
Month int `json:"month" gorm:"column:month;type:int(3) unsigned;default:0;not null;comment:月"` |
|||
Week int `json:"week" gorm:"column:week;type:int(3) unsigned;default:0;not null;comment:周"` |
|||
PersonLiable int64 `json:"personliable" gorm:"column:person_liable;type:bigint(20) unsigned;default:0;not null;comment:责任人"` |
|||
CompanyId int64 `json:"companyid" gorm:"column:company_id;type:bigint(20) unsigned;default:0;not null;comment:公司"` |
|||
DepartmentId int64 `json:"departmentid" gorm:"column:department_id;type:bigint(20) unsigned;default:0;not null;comment:部门"` |
|||
OrgId int64 `json:"orgid" gorm:"column:org_id;type:bigint(20) unsigned;default:0;not null;comment:行政组织"` |
|||
PostId int64 `json:"postid" gorm:"column:post_id;type:bigint(20) unsigned;default:0;not null;comment:岗位"` |
|||
Executor int64 `json:"executor" gorm:"column:executor;type:bigint(20) unsigned;default:0;not null;comment:执行人"` |
|||
ExecutorDepartment int64 `json:"executordepartment" gorm:"column:executor_department;type:bigint(20) unsigned;default:0;not null;comment:执行人部门"` |
|||
HappenTime int64 `json:"happentime" gorm:"column:happen_time;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:时间"` |
|||
Baseline string `json:"baseline" gorm:"column:baseline;type:text;comment:基准线"` |
|||
} |
|||
|
|||
func (PostMeteringFlow *PostMeteringFlow) TableName() string { |
|||
return "post_metering_flow" |
|||
} |
|||
|
|||
// 编辑内容
|
|||
func (cont *PostMeteringFlow) EiteCont(whereMap interface{}, saveData interface{}) (err error) { |
|||
err = overall.CONSTANT_DB_KPI.Model(&cont).Where(whereMap).Updates(saveData).Error |
|||
return |
|||
} |
|||
|
|||
// 获取内容
|
|||
func (cont *PostMeteringFlow) 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 *PostMeteringFlow) CountCont(whereMap interface{}) (countId int64) { |
|||
overall.CONSTANT_DB_KPI.Model(&cont).Where(whereMap).Count(&countId) |
|||
return |
|||
} |
|||
|
|||
// 读取全部信息
|
|||
func (cont *PostMeteringFlow) ContMap(whereMap interface{}, field ...string) (countAry []PostMeteringFlow, 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).Find(&countAry).Error |
|||
return |
|||
} |
|||
|
|||
// 删除内容
|
|||
func (cont *PostMeteringFlow) DelCont(whereMap interface{}) (err error) { |
|||
err = overall.CONSTANT_DB_KPI.Where(whereMap).Delete(&cont).Error |
|||
return |
|||
} |
|||
@ -0,0 +1,83 @@ |
|||
package modelskpi |
|||
|
|||
import ( |
|||
"key_performance_indicators/overall" |
|||
"strings" |
|||
) |
|||
|
|||
// 定性考核流水
|
|||
type PostNatureFlow struct { |
|||
Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;autoIncrement;comment:ID"` |
|||
OrderId int64 `json:"orderid" gorm:"column:order_id;type:bigint(20) unsigned;default:0;not null;comment:审批单ID"` |
|||
AddOrDecrease int `json:"addordecrease" gorm:"column:add_or_decrease;type:tinyint(1) unsigned;default:1;not null;comment:增加或减少(1:增加;2:减少)"` |
|||
Score int64 `json:"score" gorm:"column:score;type:bigint(20) unsigned;default:0;not null;comment:分值(*100保存)"` |
|||
Money int64 `json:"money" gorm:"column:money;type:bigint(20) unsigned;default:0;not null;comment:钱(扣款或奖励)*100保存"` |
|||
Reason string `json:"reason" gorm:"column:reason;type:text;comment:这样操作的原因"` |
|||
ShemeId int64 `json:"shemeid" gorm:"column:sheme_id;type:bigint(20) unsigned;default:0;not null;comment:方案ID"` |
|||
ShemeVersion string `json:"shemeversion" gorm:"column:sheme_version;type:varchar(255) ;not null;comment:方案版本编号"` |
|||
Dimension int64 `json:"dimension" gorm:"column:dimension;type:bigint(20) unsigned;default:0;not null;comment:维度"` |
|||
Target int64 `json:"target" gorm:"column:target;type:bigint(20) unsigned;default:0;not null;comment:指标"` |
|||
SonTarget int64 `json:"sontarget" gorm:"column:son_target;type:bigint(20) unsigned;default:0;not null;comment:指标子栏目"` |
|||
Detailed int64 `json:"detailed" gorm:"column:detailed;type:bigint(20) unsigned;default:0;not null;comment:指标细则"` |
|||
Year int `json:"year" gorm:"column:year;type:int(7) unsigned;default:0;not null;comment:年"` |
|||
Quarter int `json:"quarter" gorm:"column:quarter;type:int(3) unsigned;default:0;not null;comment:季度"` |
|||
Month int `json:"month" gorm:"column:month;type:int(3) unsigned;default:0;not null;comment:月"` |
|||
Week int `json:"week" gorm:"column:week;type:int(3) unsigned;default:0;not null;comment:周"` |
|||
PersonLiable int64 `json:"personliable" gorm:"column:person_liable;type:bigint(20) unsigned;default:0;not null;comment:责任人"` |
|||
CompanyId int64 `json:"companyid" gorm:"column:company_id;type:bigint(20) unsigned;default:0;not null;comment:公司"` |
|||
DepartmentId int64 `json:"departmentid" gorm:"column:department_id;type:bigint(20) unsigned;default:0;not null;comment:部门"` |
|||
OrgId int64 `json:"orgid" gorm:"column:org_id;type:bigint(20) unsigned;default:0;not null;comment:行政组织"` |
|||
PostId int64 `json:"postid" gorm:"column:post_id;type:bigint(20) unsigned;default:0;not null;comment:岗位"` |
|||
Executor int64 `json:"executor" gorm:"column:executor;type:bigint(20) unsigned;default:0;not null;comment:执行人"` |
|||
ExecutorDepartment int64 `json:"executordepartment" gorm:"column:executor_department;type:bigint(20) unsigned;default:0;not null;comment:执行人部门"` |
|||
Rectification int `json:"rectification" gorm:"column:rectification;type:tinyint(1) unsigned;default:2;not null;comment:是否需要整改 1、需要整改;2:无需整改"` |
|||
CorrectionTime int64 `json:"correctiontime" gorm:"column:correction_time;type:bigint(20) unsigned;default:0;not null;comment:整改期限"` |
|||
HappenTime int64 `json:"happentime" gorm:"column:happen_time;type:bigint(20) unsigned;default:0;not null;comment:发生时间"` |
|||
HappenCount int `json:"happencount" gorm:"column:happen_count;type:int(7) unsigned;default:0;not null;comment:发生次数"` |
|||
Time int64 `json:"time" gorm:"column:time;type:bigint(20) unsigned;default:0;not null;comment:时间"` |
|||
} |
|||
|
|||
func (PostNatureFlow *PostNatureFlow) TableName() string { |
|||
return "post_nature_flow" |
|||
} |
|||
|
|||
// 编辑内容
|
|||
func (cont *PostNatureFlow) EiteCont(whereMap interface{}, saveData interface{}) (err error) { |
|||
err = overall.CONSTANT_DB_KPI.Model(&cont).Where(whereMap).Updates(saveData).Error |
|||
return |
|||
} |
|||
|
|||
// 获取内容
|
|||
func (cont *PostNatureFlow) 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 *PostNatureFlow) CountCont(whereMap interface{}) (countId int64) { |
|||
overall.CONSTANT_DB_KPI.Model(&cont).Where(whereMap).Count(&countId) |
|||
return |
|||
} |
|||
|
|||
// 读取全部信息
|
|||
func (cont *PostNatureFlow) ContMap(whereMap interface{}, field ...string) (countAry []PostNatureFlow, 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).Find(&countAry).Error |
|||
return |
|||
} |
|||
|
|||
// 删除内容
|
|||
func (cont *PostNatureFlow) DelCont(whereMap interface{}) (err error) { |
|||
err = overall.CONSTANT_DB_KPI.Where(whereMap).Delete(&cont).Error |
|||
return |
|||
} |
|||
@ -0,0 +1,75 @@ |
|||
package modelskpi |
|||
|
|||
import ( |
|||
"key_performance_indicators/overall" |
|||
"strings" |
|||
) |
|||
|
|||
// 岗位审批工作流
|
|||
type PostWorkflowOrders struct { |
|||
Id int64 `json:"id" gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null;autoIncrement;comment:ID"` |
|||
OrderId int64 `json:"orderid" gorm:"column:order_id;type:bigint(20) unsigned;default:0;not null;comment:审批单ID"` |
|||
Step int `json:"step" gorm:"column:step;type:int(5) unsigned;default:0;not null;comment:当前执行到第几步"` |
|||
NextStep int `json:"nextstep" gorm:"column:next_step;type:int(5) unsigned;default:0;not null;comment:下一步执行哪个步骤"` |
|||
WorkFlow string `json:"workflow" gorm:"column:work_flow;type:longtext;comment:工作流(审批json字符串)"` |
|||
CompanyId int64 `json:"companyid" gorm:"column:company_id;type:bigint(20) unsigned;default:0;not null;comment:公司"` |
|||
DepartmentId int64 `json:"departmentid" gorm:"column:department_id;type:bigint(20) unsigned;default:0;not null;comment:部门"` |
|||
OrgId int64 `json:"orgid" gorm:"column:org_id;type:bigint(20) unsigned;default:0;not null;comment:行政组织"` |
|||
PostId int64 `json:"postid" gorm:"column:post_id;type:bigint(20) unsigned;default:0;not null;comment:岗位"` |
|||
Class int `json:"class" gorm:"column:class;type:tinyint(1) unsigned;default:1;not null;comment:属性1、定性;2、定量"` |
|||
Dimension int64 `json:"dimension" gorm:"column:dimension;type:bigint(20) unsigned;default:0;not null;comment:维度"` |
|||
Target int64 `json:"target" gorm:"column:target;type:bigint(20) unsigned;default:0;not null;comment:指标"` |
|||
SonTarget int64 `json:"sontarget" gorm:"column:son_target;type:bigint(20) unsigned;default:0;not null;comment:指标子栏目"` |
|||
Detailed int64 `json:"detailed" gorm:"column:detailed;type:bigint(20) unsigned;default:0;not null;comment:指标细则"` |
|||
Executor int64 `json:"executor" gorm:"column:executor;type:bigint(20) unsigned;default:0;not null;comment:执行人"` |
|||
ExecutorDepartment int64 `json:"executordepartment" gorm:"column:executor_department;type:bigint(20) unsigned;default:0;not null;comment:执行人部门"` |
|||
State int `json:"state" gorm:"column:state;type:tinyint(1) unsigned;default:1;not null;comment:流程状态 1:草稿;2:驳回;3:审批中;4:归档;5:废弃;6:删除"` |
|||
StartTime int64 `json:"starttime" gorm:"column:start_time;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:时间"` |
|||
EnclosureFormat string `json:"enclosureformat" gorm:"column:enclosure_format;type:longtext;comment:附件"` |
|||
} |
|||
|
|||
func (PostWorkflowOrders *PostWorkflowOrders) TableName() string { |
|||
return "post_workflow_orders" |
|||
} |
|||
|
|||
// 编辑内容
|
|||
func (cont *PostWorkflowOrders) EiteCont(whereMap interface{}, saveData interface{}) (err error) { |
|||
err = overall.CONSTANT_DB_KPI.Model(&cont).Where(whereMap).Updates(saveData).Error |
|||
return |
|||
} |
|||
|
|||
// 获取内容
|
|||
func (cont *PostWorkflowOrders) 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 *PostWorkflowOrders) CountCont(whereMap interface{}) (countId int64) { |
|||
overall.CONSTANT_DB_KPI.Model(&cont).Where(whereMap).Count(&countId) |
|||
return |
|||
} |
|||
|
|||
// 读取全部信息
|
|||
func (cont *PostWorkflowOrders) ContMap(whereMap interface{}, field ...string) (countAry []PostWorkflowOrders, 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).Find(&countAry).Error |
|||
return |
|||
} |
|||
|
|||
// 删除内容
|
|||
func (cont *PostWorkflowOrders) DelCont(whereMap interface{}) (err error) { |
|||
err = overall.CONSTANT_DB_KPI.Where(whereMap).Delete(&cont).Error |
|||
return |
|||
} |
|||
Loading…
Reference in new issue