@ -5,6 +5,7 @@ import (
"errors"
"errors"
"fmt"
"fmt"
"leit.com/leit_seat_aps/common"
"leit.com/leit_seat_aps/common"
conf "leit.com/leit_seat_aps/config"
"leit.com/leit_seat_aps/db"
"leit.com/leit_seat_aps/db"
"leit.com/leit_seat_aps/etcd"
"leit.com/leit_seat_aps/etcd"
"leit.com/leit_seat_aps/glog"
"leit.com/leit_seat_aps/glog"
@ -140,7 +141,7 @@ func (bl_wl *BL_Workline) LoadPlannedTask() (err error) {
// 基于指定派工数量获取产线需派工生产订单
// 基于指定派工数量获取产线需派工生产订单
// 返回需要派工下达的排好序的生产订单
// 返回需要派工下达的排好序的生产订单
func ( bl_wl * BL_Workline ) GetTaskToReleaseByQty ( ) ( bl_wolst [ ] BL_WorkOrder , err error ) {
func ( bl_wl * BL_Workline ) GetTaskToReleaseByQty ( ) ( bl_wolst [ ] BL_WorkOrder , err error ) {
var (
var (
totalRelQty int
totalRelQty int
toRelQty int
toRelQty int
@ -229,8 +230,8 @@ LOOP:
swet2 = wotablst2 [ 0 ] . Swet
swet2 = wotablst2 [ 0 ] . Swet
}
}
//记录日志
//记录日志
glog . InfoExtln ( "scheduler" , "swet1" , swet1 )
glog . InfoExtln ( "scheduler" , "swet2" , swet2 )
glog . InfoExtln ( "scheduler" , "swet1" , swet1 )
glog . InfoExtln ( "scheduler" , "swet2" , swet2 )
if common . ValueIsEmpty ( swet1 ) {
if common . ValueIsEmpty ( swet1 ) {
if common . ValueIsEmpty ( swet2 ) {
if common . ValueIsEmpty ( swet2 ) {
@ -315,7 +316,7 @@ LOOP:
}
}
}
}
}
}
} else if len ( data ) == 1 {
} else if len ( data ) == 1 {
//项目1
//项目1
info1 := strings . Split ( data [ 0 ] , ":" )
info1 := strings . Split ( data [ 0 ] , ":" )
if len ( info1 ) >= 2 {
if len ( info1 ) >= 2 {
@ -349,7 +350,7 @@ LOOP:
bl_wo . Workordertab = wotablst1 [ i ]
bl_wo . Workordertab = wotablst1 [ i ]
bl_wolst = append ( bl_wolst , bl_wo )
bl_wolst = append ( bl_wolst , bl_wo )
}
}
} else {
} else {
return
return
}
}
}
}
@ -393,7 +394,7 @@ LOOP:
// 基于指定时间点获取产线需派工生产订单
// 基于指定时间点获取产线需派工生产订单
// 返回需要派工下达的排好序的生产订单
// 返回需要派工下达的排好序的生产订单
func ( bl_wl * BL_Workline ) GetTaskToReleaseByTime ( ) ( bl_wolst [ ] BL_WorkOrder , err error ) {
func ( bl_wl * BL_Workline ) GetTaskToReleaseByTime ( ) ( bl_wolst [ ] BL_WorkOrder , err error ) {
var (
var (
i int
i int
wotablst [ ] db . Pln_workorder
wotablst [ ] db . Pln_workorder
@ -1116,9 +1117,9 @@ LOOPTIME:
looptime ++
looptime ++
if len ( wotablst ) > 0 {
if len ( wotablst ) > 0 {
startseq = wotablst [ 0 ] . Schedseq + 1
startseq = wotablst [ 0 ] . Schedseq + 1
} else if looptime >= 100 {
} else if looptime >= 100 {
startseq = 1
startseq = 1
} else {
} else {
glog . InfoExtln ( "排序调度" , "LOOP起始排序号 = " , bl_wl . WorklineId , startseq )
glog . InfoExtln ( "排序调度" , "LOOP起始排序号 = " , bl_wl . WorklineId , startseq )
time . Sleep ( 100 * time . Millisecond )
time . Sleep ( 100 * time . Millisecond )
goto LOOPTIME
goto LOOPTIME
@ -1133,7 +1134,12 @@ LOOPTIME:
err = etcd . G_jobLock . TryLock ( "lock" )
err = etcd . G_jobLock . TryLock ( "lock" )
if err != nil {
if err != nil {
fmt . Println ( "seq groutine lock fail!" )
fmt . Println ( "seq groutine lock fail!" )
time . Sleep ( 10 * time . Millisecond )
if conf . ConfValue . TimeInterval < 1 {
time . Sleep ( 10 * time . Millisecond )
} else {
time . Sleep ( time . Duration ( conf . ConfValue . TimeInterval ) * time . Millisecond )
}
glog . InfoExtln ( "排序调度" , "conf.ConfValue.TimeInterval = " , conf . ConfValue . TimeInterval )
goto LOOP
goto LOOP
}
}
//开启事务
//开启事务
@ -1150,7 +1156,7 @@ LOOPTIME:
wotab . Lastmodif = common . Date ( time . Now ( ) . Unix ( ) , "YYYYMMDDHHmmss" )
wotab . Lastmodif = common . Date ( time . Now ( ) . Unix ( ) , "YYYYMMDDHHmmss" )
// 处理生产订单的拣料零件
// 处理生产订单的拣料零件
if err = wotab . UpdateFields ( session , "schedseq,status,pickstatus,lastmodif" ) ; err != nil {
if err = wotab . UpdateFields ( session , "schedseq,status,pickstatus,lastmodif" ) ; err != nil {
glog . InfoExtln ( "排序调度" , "err is : " , err )
glog . InfoExtln ( "排序调度" , "err is : " , err )
session . Rollback ( )
session . Rollback ( )
session . Close ( )
session . Close ( )
@ -1179,7 +1185,7 @@ LOOPTIME:
startseq = startseq + 1
startseq = startseq + 1
// 更新客户订单状态
// 更新客户订单状态
cotab = db . Pln_custorder { Finr : db . G_FINR , Custordernr : wotab . Custordernr , Status : common . WO_STATUS_RELEASED }
cotab = db . Pln_custorder { Finr : db . G_FINR , Custordernr : wotab . Custordernr , Status : common . WO_STATUS_RELEASED }
err = cotab . UpdateToFields ( session , "status" )
err = cotab . UpdateToFields ( session , "status" )
if err != nil {
if err != nil {
glog . InfoExtln ( "排序调度" , "err is : " , err )
glog . InfoExtln ( "排序调度" , "err is : " , err )
session . Rollback ( )
session . Rollback ( )