Browse Source

添加获取单一岗位指标详细内容接口

master
超级管理员 3 years ago
parent
commit
634bffae39
  1. 109
      README.md
  2. 88
      api/version1/postseting/postpc/targetpost.go
  3. 13
      api/version1/postseting/postpc/type.go
  4. 122
      api/version1/postseting/postweb/posttarget.go
  5. 17
      api/version1/postseting/postweb/type.go
  6. 1
      apirouter/v1/postseting/pc.go
  7. 77
      models/modelskpi/post_metering_flow.go
  8. 83
      models/modelskpi/post_nature_flow.go
  9. 75
      models/modelskpi/post_workflow_orders.go
  10. 12
      overall/publicmethod/technique.go
  11. 7
      overall/publicmethod/type.go

109
README.md

@ -163,4 +163,113 @@ Time:2022-08-24 <br>
```
select `qes`.`id` AS `id`,`qes`.`version_number` AS `version_number`,`qes`.`company_id` AS `company_id`,`qes`.`department_id` AS `department_id`,`qes`.`org_id` AS `org_id`,`qes`.`post_id` AS `post_id`,`qes`.`title` AS `title`,`qes`.`dimension_id` AS `dimension_id`,`qes`.`target_id` AS `target_id`,`qes`.`son_target_id` AS `son_target_id`,`qes`.`details_id` AS `details_id`,`qes`.`attribute` AS `attribute`,`qes`.`min_score` AS `min_score`,`qes`.`max_score` AS `max_score`,`qes`.`scoring_method` AS `scoring_method`,`qes`.`state` AS `state`,`qes`.`addtime` AS `addtime`,`qes`.`eitetime` AS `eitetime`,`qes`.`censor_type` AS `censor_type`,`qes`.`source` AS `source`,`qes`.`run_state` AS `run_state`,`tr`.`type` AS `tr_type`,`tr`.`man_key` AS `man_key`,`tr`.`man_department` AS `man_department`,`tr`.`class` AS `tr_class`,`tr`.`type_level` AS `tr_level` from (`qualitative_evaluation_scheme` `qes` join `target_report` `tr` on(((`qes`.`dimension_id` = `tr`.`dimension_id`) and (`qes`.`target_id` = `tr`.`target_id`) and (`qes`.`son_target_id` = `tr`.`target_sun_id`) and (`qes`.`details_id` = `tr`.`target_bylaws`) and (`qes`.`post_id` = `tr`.`post_id`) and (`qes`.`org_id` = `tr`.`department_id`))))
```
<span style="color:#D98719; font-size:20px;">
Time:2022-08-29 <br>
数据库增加 岗位审批工作流 数据表
</span>
```
CREATE TABLE `post_workflow_orders` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`order_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '审批单ID',
`step` int(5) unsigned NOT NULL DEFAULT '0' COMMENT '当前执行到第几步',
`next_step` int(5) unsigned NOT NULL DEFAULT '0' COMMENT '下一步执行哪个步骤',
`work_flow` longtext COMMENT '工作流(审批json字符串)',
`company_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '公司',
`department_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '部门',
`org_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '行政组织',
`post_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '岗位',
`class` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '属性1、定性;2、定量',
`dimension` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '维度',
`target` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '指标',
`son_target` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '指标子栏目',
`detailed` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '指标细则',
`executor` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '执行人',
`executor_department` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '执行人部门',
`state` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '流程状态 1:草稿;2:驳回;3:审批中;4:归档;5:废弃;6:删除',
`start_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '流程开始时间',
`time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '时间',
`enclosure_format` longtext COMMENT '附件',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='岗位审批工作流';
```
<span style="color:#D98719; font-size:20px;">
Time:2022-08-29 <br>
数据库增加 定性考核流水 数据表
</span>
```
CREATE TABLE `post_nature_flow` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`order_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '审批单ID同时也是订单ID',
`add_or_decrease` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '增加或减少(1:增加;2:减少)',
`score` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '分值(*100保存)',
`money` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '钱(扣款或奖励)*100保存',
`reason` text COMMENT '这样操作的原因',
`sheme_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '方案ID',
`sheme_version` varchar(255) NOT NULL DEFAULT '' COMMENT '方案版本',
`dimension` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '维度',
`target` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '指标',
`son_target` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '指标子栏目',
`detailed` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '指标细则',
`year` int(7) unsigned NOT NULL DEFAULT '0' COMMENT '年',
`quarter` int(3) unsigned NOT NULL DEFAULT '0' COMMENT '季度',
`month` int(3) unsigned NOT NULL DEFAULT '0' COMMENT '月',
`week` int(3) unsigned NOT NULL DEFAULT '0' COMMENT '周',
`person_liable` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '责任人',
`company_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '公司',
`department_id` bigint(20) NOT NULL COMMENT '部门',
`org_id` bigint(20) NOT NULL COMMENT '行政组织',
`post_id` bigint(20) NOT NULL COMMENT '岗位',
`executor` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '执行人',
`executor_department` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '执行人部门',
`rectification` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '是否需要整改 1、需要整改;2:无需整改',
`correction_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '整改期限',
`happen_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '发生时间',
`happen_count` int(7) unsigned NOT NULL DEFAULT '1' COMMENT '发生次数',
`time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='定性考核流水';
```
<span style="color:#D98719; font-size:20px;">
Time:2022-08-29 <br>
数据库增加 岗位定量考核流水 数据表
</span>
```
CREATE TABLE `post_metering_flow` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`order_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '审批单ID同时也是订单ID',
`sheme_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '方案ID',
`sheme_version` varchar(255) NOT NULL DEFAULT '' COMMENT '方案版本号',
`dimension` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '维度',
`target` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '指标',
`score` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '实际值',
`reason` text COMMENT '这样操作的原因',
`year` int(7) unsigned NOT NULL DEFAULT '0' COMMENT '年',
`quarter` int(3) unsigned NOT NULL DEFAULT '0' COMMENT '季度',
`month` int(3) unsigned NOT NULL DEFAULT '0' COMMENT '月',
`week` int(3) unsigned NOT NULL DEFAULT '0' COMMENT '周',
`person_liable` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '责任人',
`company_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '公司',
`department_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '部门',
`org_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '行政组织',
`post_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '岗位',
`executor` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '执行人',
`executor_department` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '执行人部门',
`happen_time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '发生时间',
`baseline` text COMMENT '基准线',
`time` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COMMENT='岗位定量考核流水';
```

88
api/version1/postseting/postpc/targetpost.go

@ -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
}

13
api/version1/postseting/postpc/type.go

@ -138,3 +138,16 @@ type outShemeVersionCont struct {
publicmethod.PublicId //id
postScheme
}
// 岗位单一指标详细内容输出
type getPostOneTarget struct {
modelskpi.PostTarget
RelevantPostsMan []postPeople `json:"relevantpostsman"` //相关岗位
}
// 岗位单一指标关联岗位及提报人
type postPeople struct {
publicmethod.PublicId
Operator []string `json:"operator"` //考核执行人
}

122
api/version1/postseting/postweb/posttarget.go

@ -8,6 +8,7 @@ import (
"key_performance_indicators/overall/publicmethod"
"strconv"
"strings"
"time"
"github.com/gin-gonic/gin"
)
@ -363,3 +364,124 @@ func (a *ApiMethod) GetNaturePostDimerons(c *gin.Context) {
outCont.UserKey = receivedValue.UserKey
publicmethod.Result(0, outCont, c)
}
// 提交个人岗位定性考核数据
func (a *ApiMethod) SendUsNatureEvaluation(c *gin.Context) {
var receivedValue sendMyEvaluationData
err := c.ShouldBindJSON(&receivedValue)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if receivedValue.Id == "" {
publicmethod.Result(101, receivedValue, c)
return
}
var postShemeCont modelskpi.QualitativeEvaluationScheme
err = postShemeCont.GetCont(map[string]interface{}{"`id`": receivedValue.Id})
if err != nil {
publicmethod.Result(107, err, c)
return
}
if receivedValue.UserKey == "" {
publicmethod.Result(101, receivedValue, c)
return
}
//获取被考核人基本信息
var userCont modelshr.PersonArchives
err = userCont.GetCont(map[string]interface{}{"`key`": receivedValue.UserKey}, "`company`", "`maindeparment`", "`admin_org`", "`position`")
if err != nil {
publicmethod.Result(107, err, c)
return
}
if receivedValue.AddOrDecrease == 0 {
receivedValue.AddOrDecrease = 2
}
if receivedValue.Punishmode == 0 {
receivedValue.Punishmode = 1
}
var scoreVal int64 = 0
var moneyVal int64 = 0
isTrue := false
var msg string
switch receivedValue.Punishmode {
case 1:
scoreVal, isTrue, msg = judgeScoreOrMoneyIsTrue(receivedValue.ScoreState, receivedValue.Score, postShemeCont.MaxScore, postShemeCont.MinScore)
if isTrue != true {
publicmethod.Result(1, isTrue, c, msg)
return
}
case 2:
moneyVal, isTrue, msg = judgeScoreOrMoneyIsTrue(receivedValue.MoneyState, receivedValue.Money, postShemeCont.Maxmoney, postShemeCont.Minmoney)
if isTrue != true {
publicmethod.Result(1, isTrue, c, msg)
return
}
case 3:
scoreVal, isTrue, msg = judgeScoreOrMoneyIsTrue(receivedValue.ScoreState, receivedValue.Score, postShemeCont.MaxScore, postShemeCont.MinScore)
if isTrue != true {
publicmethod.Result(1, isTrue, c, msg)
return
}
moneyVal, isTrue, msg = judgeScoreOrMoneyIsTrue(receivedValue.MoneyState, receivedValue.Money, postShemeCont.Maxmoney, postShemeCont.Minmoney)
if isTrue != true {
publicmethod.Result(1, isTrue, c, msg)
return
}
}
if receivedValue.Count == 0 {
receivedValue.Count = 1
}
currentTime := time.Now().Unix()
if receivedValue.HappenTime != "" {
happTime, timeErr := publicmethod.DateToTimeStamp(receivedValue.HappenTime)
if timeErr == true {
currentTime = happTime
}
}
if receivedValue.Rectification == 0 {
receivedValue.Rectification = 2
}
uuId := publicmethod.GetUUid(1)
//流程列表
var flowCont modelskpi.PostWorkflowOrders
fmt.Printf("%v---%v---%v---%v---%v\n", currentTime, uuId, flowCont, scoreVal, moneyVal)
}
/*
判断分数是否符合要求
@scoreState 1定分2区间分3不定性分值
@score 要操作的数值
@MaxScore 最大值
@minScore 最小值
*/
func judgeScoreOrMoneyIsTrue(scoreState int, score string, maxScore, minScore int64) (scoreInt64 int64, isTrue bool, msg string) {
isTrue = false
switch scoreState {
case 2, 3:
if score == "" {
return
}
scoreInt64, _ = strconv.ParseInt(score, 10, 64)
scoreInt64 = scoreInt64 * 100
if scoreInt64 > maxScore {
msg = fmt.Sprintf("您提交的数值超过允许提交的最大值(最大值:%v)!", float64(maxScore)/100)
return
}
if scoreInt64 < minScore {
msg = fmt.Sprintf("您提交的数值低于允许提交的最小值(最小值:%v)!", float64(minScore)/100)
return
}
isTrue = true
case 1:
scoreInt64, _ = strconv.ParseInt(score, 10, 64)
scoreInt64 = scoreInt64 * 100
isTrue = true
default:
msg = "请您输入要操作的数据,谢谢!"
return
}
return
}

17
api/version1/postseting/postweb/type.go

@ -76,3 +76,20 @@ type outNatureDimePostCont struct {
MoneyStr string `json:"moneystr"` //现金
UserKey string `json:"userkey"`
}
// 个人岗位定性考核提交数据参数
type sendMyEvaluationData struct {
publicmethod.PublicId //考核项ID
UserKey string `json:"userkey"` //接受考核人key
Count int `json:"count"` //计数
HappenTime string `json:"happentime"` //发生时间.
Reason string `json:"reason"` //操作原因
Rectification int `json:"rectification"` //是否需要整改 1、需要整改;2:无需整改
AddOrDecrease int `json:"addordecrease"` //加或减 1:增加;2:减少
Punishmode int `json:"punishmode" ` //处罚方式 1:扣分;2:现金处罚;3:扣分加现金
Score string `json:"score"` //分数*100保存
Money string `json:"money"` //钱(扣款或奖励)*100保存
ScoreState int `json:"scorestate"` //1、定分;2、区间分;3、不定性分值
MoneyState int `json:"moneystate"` //1、定分;2、区间分;3、不定性分值
Enclosure []publicmethod.EnclosureFormat `json:"enclosure"` //附件
}

1
apirouter/v1/postseting/pc.go

@ -19,5 +19,6 @@ func (a *ApiRouter) RouterGroupPc(router *gin.RouterGroup) {
apiRouter.POST("submit_post_scheme", methodBinding.SubmitPostScheme) //提交岗位考核方案
apiRouter.POST("get_post_scheme", methodBinding.GetPostScheme) //获取岗位方案内容列表
apiRouter.POST("get_copy_sheme_infor", methodBinding.GetCopyShemeInfor) //获取复制岗位考核方案
apiRouter.POST("get_post_target", methodBinding.GetPostTarget) //获取岗位指标详情
}
}

77
models/modelskpi/post_metering_flow.go

@ -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
}

83
models/modelskpi/post_nature_flow.go

@ -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
}

75
models/modelskpi/post_workflow_orders.go

@ -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
}

12
overall/publicmethod/technique.go

@ -9,6 +9,7 @@ import (
"errors"
"fmt"
"key_performance_indicators/middleware/grocerystore"
"key_performance_indicators/middleware/snowflake"
"key_performance_indicators/models/modelshr"
"key_performance_indicators/overall"
"math"
@ -36,6 +37,17 @@ func TableNumber(class ...string) (number int64) {
return
}
// 获取UUID
func GetUUid(workId int64) (uuId int64) {
snowflakeId, snowflakeErr := snowflake.NewWorker(workId)
if snowflakeErr != nil {
uuId = TableNumber()
} else {
uuId = snowflakeId.GetId()
}
return
}
// 初始化map(泛型)
func MapOut[T GenericityVariable]() (data map[T]interface{}) {
data = make(map[T]interface{}) //必可不少,分配内存

7
overall/publicmethod/type.go

@ -49,3 +49,10 @@ type PubilcImageCont struct {
Imgpath string `json:"imgpath"` //物理地址
AscriptionId string `json:"ascriptionid"` //归属
}
//附件格式
type EnclosureFormat struct {
FileName string `json:"filename"` //附件名称
FilePath string `json:"filepath"` //附件地址
FileType int `json:"filetype"` //附件类型 1:图片;2:视频;3:表格;4:word;5:pdf;7:其他文件
}

Loading…
Cancel
Save