|
@ -1,10 +1,10 @@ |
|
|
package task |
|
|
package task |
|
|
|
|
|
|
|
|
import ( |
|
|
import ( |
|
|
svr "LAPP_GAAS_GFrame_BACKEND/services/log" |
|
|
|
|
|
qmsvr "LAPP_GAAS_GFrame_BACKEND/services/qm" |
|
|
|
|
|
model "LAPP_GAAS_GFrame_BACKEND/models/log" |
|
|
model "LAPP_GAAS_GFrame_BACKEND/models/log" |
|
|
qmmodel "LAPP_GAAS_GFrame_BACKEND/models/qm" |
|
|
qmmodel "LAPP_GAAS_GFrame_BACKEND/models/qm" |
|
|
|
|
|
svr "LAPP_GAAS_GFrame_BACKEND/services/log" |
|
|
|
|
|
qmsvr "LAPP_GAAS_GFrame_BACKEND/services/qm" |
|
|
"LAPP_GAAS_GFrame_BACKEND/web/middleware/glog" |
|
|
"LAPP_GAAS_GFrame_BACKEND/web/middleware/glog" |
|
|
"context" |
|
|
"context" |
|
|
"time" |
|
|
"time" |
|
@ -19,40 +19,52 @@ var packChan = make(chan model.PackOrder, 100) //定义一个调度任务通道 |
|
|
|
|
|
|
|
|
var printNum = 50 |
|
|
var printNum = 50 |
|
|
|
|
|
|
|
|
/****查询要打印的任务**********/ |
|
|
|
|
|
func CreatePackPrintTask() { |
|
|
|
|
|
|
|
|
func CreatePackPrintTaskTick() { |
|
|
|
|
|
tick := time.Tick(1 * time.Second) |
|
|
for { |
|
|
for { |
|
|
//创建继承Baxkground的子节点Context
|
|
|
|
|
|
ctx, cancel := context.WithCancel(context.Background()) |
|
|
|
|
|
defer cancel() |
|
|
|
|
|
go doTaskPrintPack(ctx) |
|
|
|
|
|
|
|
|
|
|
|
data := make([]model.PackOrder, 0) |
|
|
|
|
|
packList := make([]string, 0) |
|
|
|
|
|
//第一步,查询要打印的数据
|
|
|
|
|
|
var serviceOfPackOrder = svr.NewPackOrderService() |
|
|
|
|
|
|
|
|
|
|
|
data, err := serviceOfPackOrder.SelectUnPrint(printNum) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
//锁定
|
|
|
|
|
|
for _, v := range data { |
|
|
|
|
|
packList = append(packList, v.PackOrderId) |
|
|
|
|
|
} |
|
|
|
|
|
err = serviceOfPackOrder.UpdateUnPrint(packList) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
time.Sleep(1 * time.Second) |
|
|
|
|
|
continue |
|
|
|
|
|
} |
|
|
|
|
|
//第二步,把所有的服务调度放到channel
|
|
|
|
|
|
for _, v := range data { |
|
|
|
|
|
packChan <- v |
|
|
|
|
|
|
|
|
select { |
|
|
|
|
|
case <-tick: |
|
|
|
|
|
CreatePackPrintTask() |
|
|
} |
|
|
} |
|
|
time.Sleep(1 * time.Second) |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/****查询要打印的任务**********/ |
|
|
|
|
|
func CreatePackPrintTask() { |
|
|
|
|
|
|
|
|
|
|
|
//创建继承Baxkground的子节点Context
|
|
|
|
|
|
ctx, cancel := context.WithCancel(context.Background()) |
|
|
|
|
|
defer cancel() |
|
|
|
|
|
|
|
|
|
|
|
go doTaskPrintPack(ctx) |
|
|
|
|
|
|
|
|
|
|
|
data := make([]model.PackOrder, 0) |
|
|
|
|
|
packList := make([]string, 0) |
|
|
|
|
|
//第一步,查询要打印的数据
|
|
|
|
|
|
var serviceOfPackOrder = svr.NewPackOrderService() |
|
|
|
|
|
|
|
|
|
|
|
data, err := serviceOfPackOrder.SelectUnPrint(printNum) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if len(data) == 0 { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
//锁定
|
|
|
|
|
|
for _, v := range data { |
|
|
|
|
|
packList = append(packList, v.PackOrderId) |
|
|
|
|
|
} |
|
|
|
|
|
err = serviceOfPackOrder.UpdateUnPrint(packList) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
//第二步,把所有的服务调度放到channel
|
|
|
|
|
|
for _, v := range data { |
|
|
|
|
|
packChan <- v |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/********打印逻辑************/ |
|
|
/********打印逻辑************/ |
|
|
func doTaskPrintPack(ctx context.Context) { |
|
|
func doTaskPrintPack(ctx context.Context) { |
|
|
//第三步,启动协程,从channel里读取数据
|
|
|
//第三步,启动协程,从channel里读取数据
|
|
@ -67,72 +79,81 @@ func doTaskPrintPack(ctx context.Context) { |
|
|
} |
|
|
} |
|
|
var serviceOfPackOrder = svr.NewPackOrderService() |
|
|
var serviceOfPackOrder = svr.NewPackOrderService() |
|
|
err := serviceOfPackOrder.CreatePackOrderPrintInfo(task) |
|
|
err := serviceOfPackOrder.CreatePackOrderPrintInfo(task) |
|
|
if err !=nil{ |
|
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
|
glog.InfoExtln("serviceOfPackOrder", "err:", err) |
|
|
continue |
|
|
continue |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//仓库
|
|
|
//仓库
|
|
|
var recChan = make(chan qmmodel.ReclinerReclst, 100) //定义一个调度任务通道
|
|
|
var recChan = make(chan qmmodel.ReclinerReclst, 100) //定义一个调度任务通道
|
|
|
|
|
|
|
|
|
/****查询要打印的任务**********/ |
|
|
|
|
|
func CreateRecPrintTask() { |
|
|
|
|
|
|
|
|
func CreateRecPrintTaskTick() { |
|
|
|
|
|
tick := time.Tick(1 * time.Second) |
|
|
for { |
|
|
for { |
|
|
//创建继承Baxkground的子节点Context
|
|
|
|
|
|
ctx, cancel := context.WithCancel(context.Background()) |
|
|
|
|
|
defer cancel() |
|
|
|
|
|
go doTaskPrintRec(ctx) |
|
|
|
|
|
|
|
|
|
|
|
data := make([]qmmodel.ReclinerReclst, 0) |
|
|
|
|
|
recList := make([]int, 0) |
|
|
|
|
|
//第一步,查询要打印的数据
|
|
|
|
|
|
var serviceOfRec = qmsvr.NewReclinerReclstService() |
|
|
|
|
|
|
|
|
|
|
|
data, err := serviceOfRec.SelectUnPrint(printNum) |
|
|
|
|
|
glog.InfoExtln("返修错误","data:",len(data)) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
glog.InfoExtln("返修错误","err:",err) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
//锁定
|
|
|
|
|
|
for _, v := range data { |
|
|
|
|
|
recList = append(recList, v.RecNr) |
|
|
|
|
|
} |
|
|
|
|
|
err = serviceOfRec.UpdateUnPrint(recList) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
glog.InfoExtln("返修错误","err:",err) |
|
|
|
|
|
time.Sleep(1 * time.Second) |
|
|
|
|
|
continue |
|
|
|
|
|
} |
|
|
|
|
|
//第二步,把所有的服务调度放到channel
|
|
|
|
|
|
for _, v := range data { |
|
|
|
|
|
recChan <- v |
|
|
|
|
|
|
|
|
select { |
|
|
|
|
|
case <-tick: |
|
|
|
|
|
CreateRecPrintTask() |
|
|
} |
|
|
} |
|
|
time.Sleep(1 * time.Second) |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/****查询要打印的任务**********/ |
|
|
|
|
|
func CreateRecPrintTask() { |
|
|
|
|
|
|
|
|
|
|
|
//创建继承Baxkground的子节点Context
|
|
|
|
|
|
ctx, cancel := context.WithCancel(context.Background()) |
|
|
|
|
|
defer cancel() |
|
|
|
|
|
go doTaskPrintRec(ctx) |
|
|
|
|
|
|
|
|
|
|
|
data := make([]qmmodel.ReclinerReclst, 0) |
|
|
|
|
|
recList := make([]int, 0) |
|
|
|
|
|
//第一步,查询要打印的数据
|
|
|
|
|
|
var serviceOfRec = qmsvr.NewReclinerReclstService() |
|
|
|
|
|
data, err := serviceOfRec.SelectUnPrint(printNum) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
glog.InfoExtln("返修错误", "err:", err) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
if len(data) == 0 { |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
//锁定
|
|
|
|
|
|
for _, v := range data { |
|
|
|
|
|
recList = append(recList, v.RecNr) |
|
|
|
|
|
} |
|
|
|
|
|
err = serviceOfRec.UpdateUnPrint(recList) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
glog.InfoExtln("返修错误", "err:", err) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
//第二步,把所有的服务调度放到channel
|
|
|
|
|
|
for _, v := range data { |
|
|
|
|
|
recChan <- v |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/********打印逻辑************/ |
|
|
/********打印逻辑************/ |
|
|
func doTaskPrintRec(ctx context.Context) { |
|
|
func doTaskPrintRec(ctx context.Context) { |
|
|
|
|
|
|
|
|
//第三步,启动协程,从channel里读取数据
|
|
|
//第三步,启动协程,从channel里读取数据
|
|
|
for { |
|
|
for { |
|
|
select { |
|
|
select { |
|
|
case <-ctx.Done(): |
|
|
case <-ctx.Done(): |
|
|
return |
|
|
return |
|
|
case task, ok := <-recChan: |
|
|
case task, ok := <-recChan: |
|
|
|
|
|
|
|
|
if !ok { |
|
|
if !ok { |
|
|
return //停机退出
|
|
|
return //停机退出
|
|
|
} |
|
|
} |
|
|
var serviceOfRec = qmsvr.NewReclinerReclstService() |
|
|
var serviceOfRec = qmsvr.NewReclinerReclstService() |
|
|
err := serviceOfRec.CreateRecPrintInfo(task) |
|
|
err := serviceOfRec.CreateRecPrintInfo(task) |
|
|
if err !=nil{ |
|
|
|
|
|
glog.InfoExtln("返修错误","返修错误打印err:",err) |
|
|
|
|
|
|
|
|
if err != nil { |
|
|
|
|
|
glog.InfoExtln("返修错误", "返修错误打印err:", err) |
|
|
continue |
|
|
continue |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |