@ -1,7 +1,10 @@
package postweb
import (
"encoding/json"
"fmt"
"key_performance_indicators/middleware/wechatapp/wechatcallback"
"key_performance_indicators/models/modelshr"
"key_performance_indicators/models/modelskpi"
"key_performance_indicators/overall"
"key_performance_indicators/overall/publicmethod"
@ -39,10 +42,10 @@ func (a *ApiMethod) GetPostFlowLog(c *gin.Context) {
if receivedValue . Title != "" {
gormDb = gormDb . Where ( "`pt_title` LIKE ? OR `pst_title` LIKE ? OR `ptd_title` LIKE ?" , "%" + receivedValue . Title + "%" , "%" + receivedValue . Title + "%" , "%" + receivedValue . Title + "%" )
}
if receivedValue . OrgId != "" {
if receivedValue . OrgId != 0 {
gormDb = gormDb . Where ( "`org_id` = ?" , receivedValue . OrgId )
}
if receivedValue . PostId != "" {
if receivedValue . PostId != 0 {
gormDb = gormDb . Where ( "`post_id` = ?" , receivedValue . PostId )
}
if receivedValue . DayTime != "" {
@ -60,8 +63,8 @@ func (a *ApiMethod) GetPostFlowLog(c *gin.Context) {
if receivedValue . ApprovalState == 2 {
gormDb = gormDb . Where ( "FIND_IN_SET(?,`next_executor`)" , context . Key )
}
err := gormDb . Order ( "`id` DESC" ) . Find ( & flowLogList ) . Error
gormDb = publicmethod . PageTurningSettings ( gormDb , receivedValue . Page , receivedValue . PageSize )
err := gormDb . Order ( "`state` ASC" ) . Order ( "` id` DESC" ) . Find ( & flowLogList ) . Error
var total int64
totalErr := gormDb . Count ( & total ) . Error
if totalErr != nil {
@ -88,20 +91,20 @@ func (a *ApiMethod) GetPostFlowLog(c *gin.Context) {
sendCont . Result = "起草" //审批结果
sendCont . Statetype = 1 //审批状态
case 2 :
sendCont . Result = "驳回"
sendCont . Statetype = 4
case 3 :
sendCont . Result = "审批中"
sendCont . Statetype = 0
case 3 :
sendCont . Result = "驳回"
sendCont . Statetype = 4
case 4 :
sendCont . Result = "归档"
sendCont . Statetype = 1
sendCont . Statetype = 3
case 5 :
sendCont . Result = "废弃"
sendCont . Statetype = 1
sendCont . Statetype = 3
case 6 :
sendCont . Result = "删除"
sendCont . Statetype = 1
sendCont . Statetype = 3
default :
sendCont . Result = "审批中"
sendCont . Statetype = 0
@ -128,9 +131,586 @@ func (a *ApiMethod) GetPostFlowLog(c *gin.Context) {
_ , flowCont , _ := wechatcallback . GetOneNodeCont ( v . WorkFlow , v . Step )
sendCont . Node = flowCont . NodeName //当前节点
}
sendCont . Class = v . Class
sendCont . MonthDays = publicmethod . UnixTimeToDay ( v . StartTime , 22 ) //提报日期
sendData = append ( sendData , sendCont )
}
publicmethod . ResultList ( 0 , receivedValue . Page , receivedValue . PageSize , total , int64 ( len ( sendData ) ) , sendData , c )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2022 - 10 - 27 16 : 43 : 56
@ 功能 : 获取审批流详情
@ 参数
#
@ 返回值
#
* /
func ( a * ApiMethod ) LookFlowMap ( c * gin . Context ) {
var receivedValue LookFlowInfo
err := c . ShouldBindJSON ( & receivedValue )
if err != nil {
publicmethod . Result ( 100 , err , c )
return
}
if receivedValue . Id == "" {
publicmethod . Result ( 101 , receivedValue , c )
return
}
if receivedValue . Class == 0 {
receivedValue . Class = 1
}
//获取登录人信息
context , _ := publicmethod . LoginMyCont ( c )
//获取审批流相关内容
var getFlowCont GetFlowLogCont
syncSeting . Add ( 1 )
go getFlowCont . ReadMainFlowLog ( receivedValue . Id ) //获取审批主表
if receivedValue . Class == 1 {
//定性
syncSeting . Add ( 1 )
go getFlowCont . ReadNatureFlowLog ( receivedValue . Id ) //获取审批主表
syncSeting . Wait ( )
mainFlowLog , natureFlowList , _ := getFlowCont . readDataLock ( ) //读取线程通道数据
var sendDataCont SendPostDingXing
sendDataCont . OrderId = strconv . FormatInt ( mainFlowLog . OrderId , 10 )
sendDataCont . Title = GetNatureFlowTitle ( mainFlowLog . Executor , mainFlowLog . DepartmentId , mainFlowLog . PostId , mainFlowLog . PersonLiable , mainFlowLog . Target , mainFlowLog . HappenTime , 1 )
sendDataCont . FlowMapAll , _ , _ = wechatcallback . GetOneNodeCont ( mainFlowLog . WorkFlow , mainFlowLog . Step )
for _ , v := range natureFlowList {
sendDataCont . List = append ( sendDataCont . List , AnalysisDingXing ( v ) )
}
sendDataCont . Isset = 1
var zhiXingRen [ ] string
//判断当前人是否要审批
if mainFlowLog . NextStep > 1 {
if mainFlowLog . NextExecutor != "" {
err = json . Unmarshal ( [ ] byte ( mainFlowLog . NextExecutor ) , & zhiXingRen )
if err == nil {
dangQianRen := strconv . FormatInt ( context . Key , 10 )
if publicmethod . IsInTrue [ string ] ( dangQianRen , zhiXingRen ) == true {
sendDataCont . Isset = 2
}
}
}
}
//获取步进值
var oacl modelskpi . OpenApprovalChangeLog
clickStep , stepErr := oacl . GetMAx ( mainFlowLog . OrderId , zhiXingRen )
if stepErr != nil {
sendDataCont . Stepper = 1
} else {
sendDataCont . Stepper = clickStep + 1
}
if mainFlowLog . EnclosureFormat != "" {
json . Unmarshal ( [ ] byte ( mainFlowLog . EnclosureFormat ) , & sendDataCont . Enclosure )
}
publicmethod . Result ( 0 , sendDataCont , c ) //输出
} else {
//定量
syncSeting . Add ( 1 )
go getFlowCont . ReadMeterMainFlowLog ( receivedValue . Id ) //获取审批主表
syncSeting . Wait ( )
mainFlowLog , _ , meterFlowList := getFlowCont . readDataLock ( ) //读取线程通道数据
var sendDataCont SendPostDingLiang
sendDataCont . OrderId = strconv . FormatInt ( mainFlowLog . OrderId , 10 )
sendDataCont . Title = GetNatureFlowTitle ( mainFlowLog . Executor , mainFlowLog . DepartmentId , mainFlowLog . PostId , mainFlowLog . PersonLiable , mainFlowLog . Target , mainFlowLog . HappenTime , 2 )
sendDataCont . FlowMapAll , _ , _ = wechatcallback . GetOneNodeCont ( mainFlowLog . WorkFlow , mainFlowLog . Step )
sendDataCont . Isset = 1
//判断当前人是否要审批
var zhiXingRen [ ] string
if mainFlowLog . NextStep > 1 {
if mainFlowLog . NextExecutor != "" {
err = json . Unmarshal ( [ ] byte ( mainFlowLog . NextExecutor ) , & zhiXingRen )
if err == nil {
dangQianRen := strconv . FormatInt ( context . Key , 10 )
if publicmethod . IsInTrue [ string ] ( dangQianRen , zhiXingRen ) == true {
sendDataCont . Isset = 2
}
}
}
}
//获取步进值
var oacl modelskpi . OpenApprovalChangeLog
clickStep , stepErr := oacl . GetMAx ( mainFlowLog . OrderId , zhiXingRen )
if stepErr != nil {
sendDataCont . Stepper = 1
} else {
sendDataCont . Stepper = clickStep + 1
}
if mainFlowLog . EnclosureFormat != "" {
json . Unmarshal ( [ ] byte ( mainFlowLog . EnclosureFormat ) , & sendDataCont . Enclosure )
}
for _ , v := range meterFlowList {
sendDataCont . List = append ( sendDataCont . List , AnalysisDingLiang ( v ) )
}
publicmethod . Result ( 0 , sendDataCont , c ) //输出
}
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2022 - 10 - 28 14 : 37 : 27
@ 功能 : 解析定量输出结构体
@ 参数
#
@ 返回值
#
* /
func AnalysisDingLiang ( natureCont modelskpi . PostMeteringFlow ) ( sendData DingLiangList ) {
//获取指标
var targetCont modelskpi . PostTarget
targetCont . GetCont ( map [ string ] interface { } { "`id`" : natureCont . Target } , "`title`" )
sendData . Title = targetCont . Title
sendData . Target = targetCont . Title
sendData . Content = natureCont . Reason
//解析考核基准线
var jinZhunXian baseLineType
err := json . Unmarshal ( [ ] byte ( natureCont . Baseline ) , & jinZhunXian )
if err == nil {
sendData . ZeroPrize = publicmethod . DecimalEs ( jinZhunXian . Zeroprize , 2 ) //零奖值
sendData . AllPrize = publicmethod . DecimalEs ( jinZhunXian . Allprize , 2 ) //全奖值
sendData . CappingVal = jinZhunXian . Capping //封顶值
}
var shemeCont modelskpi . QualitativeEvaluationScheme
err = shemeCont . GetCont ( map [ string ] interface { } { "`id`" : natureCont . ShemeId } )
//获取指标分
var departDimPostWeight modelskpi . DepartDimePostWeight
where := publicmethod . MapOut [ string ] ( )
where [ "`orgid`" ] = shemeCont . OrgId
where [ "`postid`" ] = shemeCont . PostId
where [ "`dimension`" ] = shemeCont . DimensionId
where [ "`hierarchy`" ] = 1
where [ "`is_quote`" ] = shemeCont . Source
where [ "`target`" ] = shemeCont . TargetId
departDimPostWeight . GetCont ( where , "`weight`" )
sendData . Weight = departDimPostWeight . Weight / 100
sendData . Score = natureCont . Score
sendData . Achievement , sendData . Actual = GetAchieAndActual ( natureCont . Score , departDimPostWeight . Weight , sendData . ZeroPrize , sendData . AllPrize , sendData . CappingVal )
fmt . Printf ( "jinZhunXian----->%v\n" , jinZhunXian )
return
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2022 - 10 - 28 15 : 0 9 : 33
@ 功能 : 计算达成率及得分
@ 参数
# score 实际分
# weight 指标权重
# zeroprize 零奖值
# allprize 全奖值
# cappingval 封顶值
@ 返回值
# achievement 达成率
# actual 得分
* /
func GetAchieAndActual ( score , weight , zeroprize , allprize , cappingval float64 ) ( achievement , actual float64 ) {
if zeroprize == 0 && allprize == 0 { //当全奖值与零奖值都为空时
if score != 0 { //判断实际值是否不为0
actual = weight
achievement = 100
}
} else {
if allprize > zeroprize { //当全奖值大于零奖值时 正向计算
if score <= zeroprize { //实际数值小于零奖值时达成率与得分都为零
actual = 0
achievement = 0
} else {
chuShu := score - zeroprize
beiChushu := allprize - zeroprize
if beiChushu != 0 { //判断除数不能为零
daChengLv := chuShu / beiChushu
achievement = publicmethod . DecimalEs ( daChengLv , 3 )
if daChengLv * 100 >= cappingval { //达成率大于等于封顶值
if cappingval > 0 {
deFen := ( weight / 100 ) * ( cappingval / 100 )
actual = publicmethod . DecimalEs ( deFen , 2 )
} else {
actual = weight
}
} else {
deFen := ( weight / 100 ) * ( daChengLv / 100 )
actual = publicmethod . DecimalEs ( deFen , 2 )
}
} else {
actual = 0
achievement = 0
}
}
} else { //如果全奖值小于零奖值 执行一下操作
if score >= zeroprize { //实际结算值大于零奖值 那么达成率和实际得分都是0
actual = 0
achievement = 0
} else {
chuShu := score - zeroprize
beiChushu := allprize - zeroprize
if beiChushu != 0 { //判断除数不能为零
daChengLv := chuShu / beiChushu
achievement = publicmethod . DecimalEs ( daChengLv , 3 )
if daChengLv < 0 {
actual = 0
achievement = 0
} else {
if daChengLv * 100 >= cappingval { //达成率大于等于封顶值
if cappingval > 0 {
deFen := ( weight / 100 ) * ( cappingval / 100 )
actual = publicmethod . DecimalEs ( deFen , 2 )
} else {
actual = weight
}
} else {
deFen := ( weight / 100 ) * ( daChengLv / 100 )
actual = publicmethod . DecimalEs ( deFen , 2 )
}
}
} else {
actual = 0
achievement = 0
}
}
}
}
return
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2022 - 10 - 28 11 : 06 : 45
@ 功能 : 解析定性输出结构体
@ 参数
# natureCont 定性考核数据
@ 返回值
# sendData 展示数据
* /
func AnalysisDingXing ( natureCont modelskpi . PostNatureFlow ) ( sendData DingXingList ) {
var dimCont modelskpi . DutyClass
dimCont . GetCont ( map [ string ] interface { } { "`id`" : natureCont . Dimension } , "`title`" )
//获取指标
var targetCont modelskpi . PostTarget
targetCont . GetCont ( map [ string ] interface { } { "`id`" : natureCont . Target } , "`title`" )
//获取指标子栏目
var sunTargetCont modelskpi . PostSonTarget
sunTargetCont . GetCont ( map [ string ] interface { } { "`id`" : natureCont . SonTarget } , "`title`" )
var detailsCont modelskpi . PostTargetDetails
detailsCont . GetCont ( map [ string ] interface { } { "`id`" : natureCont . Detailed } , "`title`" , "`min_score`" , "`max_score`" , "`maxmoney`" , "`minmoney`" , "`punishmode`" , "`company`" )
sendData . Dimension = dimCont . Title //维度
sendData . Target = targetCont . Title //考核指标
sendData . Targetsun = sunTargetCont . Title //考核项目
sendData . Detailedtargent = detailsCont . Title //考核内容
var scoreStr string
if detailsCont . MinScore != 0 {
if detailsCont . MaxScore != 0 {
scoreStr = fmt . Sprintf ( "%v-%v%v" , publicmethod . DecimalEs ( float64 ( detailsCont . MinScore ) / 100 , 2 ) , publicmethod . DecimalEs ( float64 ( detailsCont . MaxScore / 100 ) , 2 ) , detailsCont . Company )
} else {
scoreStr = fmt . Sprintf ( "%v%v" , publicmethod . DecimalEs ( float64 ( detailsCont . MinScore / 100 ) , 2 ) , detailsCont . Company )
}
} else {
if detailsCont . MaxScore != 0 {
scoreStr = fmt . Sprintf ( "%v%v" , publicmethod . DecimalEs ( float64 ( detailsCont . MaxScore / 100 ) , 2 ) , detailsCont . Company )
}
}
sendData . Standard = scoreStr //考核标准(分)
var moneyStr string
if detailsCont . Minmoney != 0 {
if detailsCont . Maxmoney != 0 {
moneyStr = fmt . Sprintf ( "%v-%v元" , publicmethod . DecimalEs ( float64 ( detailsCont . Minmoney / 100 ) , 2 ) , publicmethod . DecimalEs ( float64 ( detailsCont . Maxmoney / 100 ) , 2 ) )
} else {
moneyStr = fmt . Sprintf ( "%v元" , publicmethod . DecimalEs ( float64 ( detailsCont . Minmoney / 100 ) , 2 ) )
}
} else {
if detailsCont . Maxmoney != 0 {
moneyStr = fmt . Sprintf ( "%v元" , publicmethod . DecimalEs ( float64 ( detailsCont . Maxmoney / 100 ) , 2 ) )
}
}
sendData . StandardMoney = moneyStr //考核标准(钱)
addOrDec := "扣除"
if natureCont . AddOrDecrease == 1 {
addOrDec = "奖励"
}
sendData . Lanmuname = addOrDec //奖励OR扣除
sendData . ScoreVal = publicmethod . DecimalEs ( natureCont . Score / 100 , 2 ) * float64 ( natureCont . HappenCount ) //奖励或扣除的分数
sendData . MoneyVal = publicmethod . DecimalEs ( natureCont . Money / 100 , 2 ) * float64 ( natureCont . HappenCountMoney ) //奖励或扣除的钱
sendData . Reason = natureCont . Reason //考核原因
sendData . Unit = detailsCont . Company
return
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2022 - 10 - 28 10 : 44 : 57
@ 功能 : 获取定性审批标题
@ 参数
# executor 执行人
# orgId 被执行人行政组织
# postId 被执行人岗位
# personLiable 被执行人KEY
# target 指标
# class 1 定性 , 2 : 定量
@ 返回值
#
* /
func GetNatureFlowTitle ( executor , orgId , postId , personLiable , target , happenTime int64 , class int ) ( title string ) {
//获取执行人
var exeUser modelshr . PersonArchives
exeUser . GetCont ( map [ string ] interface { } { "`key`" : executor } , "`name`" )
//获取被执行人信息
var perUserCont modelshr . PersonArchives
perUserCont . GetCont ( map [ string ] interface { } { "`key`" : personLiable } , "`name`" )
var orgCont modelshr . AdministrativeOrganization
orgCont . GetCont ( map [ string ] interface { } { "`id`" : orgId } , "`name`" )
var postCont modelshr . Position
postCont . GetCont ( map [ string ] interface { } { "`id`" : postId } , "`name`" )
//获取指标
var targetCont modelskpi . PostTarget
targetCont . GetCont ( map [ string ] interface { } { "`id`" : target } , "`title`" )
timeStr := publicmethod . UnixTimeToDay ( happenTime , 14 )
if class != 1 {
timeStr = publicmethod . UnixTimeToDay ( happenTime , 15 )
}
title = fmt . Sprintf ( "%v提交\n%v%v%v\n%v考核数据" , exeUser . Name , orgCont . Name , postCont . Name , perUserCont . Name , timeStr )
return
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2022 - 10 - 27 17 : 03 : 13
@ 功能 : 读取审批流主表
@ 参数
# orderId 订单ID
@ 返回值
#
* /
func ( g * GetFlowLogCont ) ReadMainFlowLog ( orderId string ) {
g . mutext . Lock ( )
defer g . mutext . Unlock ( )
var flowLogCont modelskpi . PostWorkflowOrders
err := flowLogCont . GetCont ( map [ string ] interface { } { ` order_id ` : orderId } )
if err == nil {
g . FlowCont = flowLogCont
}
syncSeting . Done ( )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2022 - 10 - 28 0 8 : 10 : 31
@ 功能 : 定性考核数据
@ 参数
# orderId 订单ID
@ 返回值
#
* /
func ( g * GetFlowLogCont ) ReadNatureFlowLog ( orderId string ) {
g . mutext . Lock ( )
defer g . mutext . Unlock ( )
var flowLogCont [ ] modelskpi . PostNatureFlow
err := overall . CONSTANT_DB_KPI . Model ( & modelskpi . PostNatureFlow { } ) . Where ( "`order_id` = ?" , orderId ) . Find ( & flowLogCont ) . Error
if err == nil {
g . NatureFlow = flowLogCont
}
syncSeting . Done ( )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2022 - 10 - 28 0 8 : 10 : 31
@ 功能 : 定量考核数据
@ 参数
# orderId 订单ID
@ 返回值
#
* /
func ( g * GetFlowLogCont ) ReadMeterMainFlowLog ( orderId string ) {
g . mutext . Lock ( )
defer g . mutext . Unlock ( )
var flowLogCont [ ] modelskpi . PostMeteringFlow
err := overall . CONSTANT_DB_KPI . Model ( & modelskpi . PostMeteringFlow { } ) . Where ( "`order_id` = ?" , orderId ) . Find ( & flowLogCont ) . Error
if err == nil {
g . MeterFlow = flowLogCont
}
syncSeting . Done ( )
}
/ *
*
@ 作者 : 秦东
@ 时间 : 2022 - 10 - 27 16 : 43 : 56
@ 功能 : 获取审批流详情 -- > 整改措施专用 ( 岗位 )
@ 参数
#
@ 返回值
#
* /
func ( a * ApiMethod ) LookFlowMapCorra ( c * gin . Context ) {
var receivedValue LookFlowInfoCorra
err := c . ShouldBindJSON ( & receivedValue )
if err != nil {
publicmethod . Result ( 100 , err , c )
return
}
if receivedValue . Id == "" {
publicmethod . Result ( 101 , receivedValue , c )
return
}
if receivedValue . Class == 0 {
receivedValue . Class = 1
}
//获取登录人信息
context , _ := publicmethod . LoginMyCont ( c )
//获取审批流相关内容
var getFlowCont GetFlowLogCont
syncSeting . Add ( 1 )
go getFlowCont . ReadMainFlowLog ( receivedValue . Id ) //获取审批主表
if receivedValue . Class == 1 {
//定性
syncSeting . Add ( 1 )
go getFlowCont . ReadNatureFlowLog ( receivedValue . Id ) //获取审批主表
syncSeting . Wait ( )
mainFlowLog , natureFlowList , _ := getFlowCont . readDataLock ( ) //读取线程通道数据
var sendDataCont SendPostDingXing
sendDataCont . OrderId = strconv . FormatInt ( mainFlowLog . OrderId , 10 )
sendDataCont . Title = GetNatureFlowTitle ( mainFlowLog . Executor , mainFlowLog . DepartmentId , mainFlowLog . PostId , mainFlowLog . PersonLiable , mainFlowLog . Target , mainFlowLog . HappenTime , 1 )
sendDataCont . FlowMapAll , _ , _ = wechatcallback . GetOneNodeCont ( mainFlowLog . WorkFlow , mainFlowLog . Step )
for _ , v := range natureFlowList {
sendDataCont . List = append ( sendDataCont . List , AnalysisDingXing ( v ) )
}
sendDataCont . Isset = 1
var zhiXingRen [ ] string
//判断当前人是否要审批
if mainFlowLog . NextStep > 1 {
if mainFlowLog . NextExecutor != "" {
err = json . Unmarshal ( [ ] byte ( mainFlowLog . NextExecutor ) , & zhiXingRen )
if err == nil {
dangQianRen := strconv . FormatInt ( context . Key , 10 )
if publicmethod . IsInTrue [ string ] ( dangQianRen , zhiXingRen ) == true {
// sendDataCont.Isset = 2
}
}
}
}
//获取挂号信息
//判断此号码是否可以使用
var setUpRegister modelskpi . Register
err := setUpRegister . GetCont ( map [ string ] interface { } { "`number`" : receivedValue . Num } , "`state`" , "`id`" )
if err != nil {
sendDataCont . Isset = 2
}
if setUpRegister . State != 1 {
sendDataCont . Isset = 2
}
//获取步进值
var oacl modelskpi . OpenApprovalChangeLog
clickStep , stepErr := oacl . GetMAx ( mainFlowLog . OrderId , zhiXingRen )
if stepErr != nil {
sendDataCont . Stepper = 1
} else {
sendDataCont . Stepper = clickStep + 1
}
if mainFlowLog . EnclosureFormat != "" {
json . Unmarshal ( [ ] byte ( mainFlowLog . EnclosureFormat ) , & sendDataCont . Enclosure )
}
publicmethod . Result ( 0 , sendDataCont , c ) //输出
} else {
//定量
syncSeting . Add ( 1 )
go getFlowCont . ReadMeterMainFlowLog ( receivedValue . Id ) //获取审批主表
syncSeting . Wait ( )
mainFlowLog , _ , meterFlowList := getFlowCont . readDataLock ( ) //读取线程通道数据
var sendDataCont SendPostDingLiang
sendDataCont . OrderId = strconv . FormatInt ( mainFlowLog . OrderId , 10 )
sendDataCont . Title = GetNatureFlowTitle ( mainFlowLog . Executor , mainFlowLog . DepartmentId , mainFlowLog . PostId , mainFlowLog . PersonLiable , mainFlowLog . Target , mainFlowLog . HappenTime , 2 )
sendDataCont . FlowMapAll , _ , _ = wechatcallback . GetOneNodeCont ( mainFlowLog . WorkFlow , mainFlowLog . Step )
sendDataCont . Isset = 1
//判断当前人是否要审批
var zhiXingRen [ ] string
if mainFlowLog . NextStep > 1 {
if mainFlowLog . NextExecutor != "" {
err = json . Unmarshal ( [ ] byte ( mainFlowLog . NextExecutor ) , & zhiXingRen )
if err == nil {
dangQianRen := strconv . FormatInt ( context . Key , 10 )
if publicmethod . IsInTrue [ string ] ( dangQianRen , zhiXingRen ) == true {
// sendDataCont.Isset = 2
}
}
}
}
//获取挂号信息
//判断此号码是否可以使用
var setUpRegister modelskpi . Register
err := setUpRegister . GetCont ( map [ string ] interface { } { "`number`" : receivedValue . Num } , "`state`" , "`id`" )
if err != nil {
sendDataCont . Isset = 2
}
if setUpRegister . State != 1 {
sendDataCont . Isset = 2
}
//获取步进值
var oacl modelskpi . OpenApprovalChangeLog
clickStep , stepErr := oacl . GetMAx ( mainFlowLog . OrderId , zhiXingRen )
if stepErr != nil {
sendDataCont . Stepper = 1
} else {
sendDataCont . Stepper = clickStep + 1
}
if mainFlowLog . EnclosureFormat != "" {
json . Unmarshal ( [ ] byte ( mainFlowLog . EnclosureFormat ) , & sendDataCont . Enclosure )
}
for _ , v := range meterFlowList {
sendDataCont . List = append ( sendDataCont . List , AnalysisDingLiang ( v ) )
}
publicmethod . Result ( 0 , sendDataCont , c ) //输出
}
}