|
|
- package task
-
- import (
- model "LAPP_GAAS_GFrame_BACKEND/models/log"
- 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"
- "context"
- "time"
- )
-
- /*************************************
- *功能:异步打印生成打印规则(包装单打印方法生成)
- **************************************/
-
- //仓库
- var packChan = make(chan model.PackOrder, 100) //定义一个调度任务通道
-
- var printNum = 50
-
- func CreatePackPrintTaskTick() {
- tick := time.Tick(1 * time.Second)
- for {
- select {
- case <-tick:
- CreatePackPrintTask()
- }
- }
- }
-
- /****查询要打印的任务**********/
- 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) {
- //第三步,启动协程,从channel里读取数据
- for {
- select {
- case <-ctx.Done():
- return
- case task, ok := <-packChan:
-
- if !ok {
- return //停机退出
- }
- var serviceOfPackOrder = svr.NewPackOrderService()
- err := serviceOfPackOrder.CreatePackOrderPrintInfo(task)
- if err != nil {
- glog.InfoExtln("serviceOfPackOrder", "err:", err)
- continue
- }
- }
- }
- }
-
- //仓库
- var recChan = make(chan qmmodel.ReclinerReclst, 100) //定义一个调度任务通道
-
- func CreateRecPrintTaskTick() {
- tick := time.Tick(1 * time.Second)
- for {
- select {
- case <-tick:
- CreateRecPrintTask()
- }
- }
- }
-
- /****查询要打印的任务**********/
- 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) {
-
- //第三步,启动协程,从channel里读取数据
- for {
- select {
- case <-ctx.Done():
- return
- case task, ok := <-recChan:
- if !ok {
- return //停机退出
- }
- var serviceOfRec = qmsvr.NewReclinerReclstService()
- err := serviceOfRec.CreateRecPrintInfo(task)
- if err != nil {
- glog.InfoExtln("返修错误", "返修错误打印err:", err)
- continue
- }
- }
- }
- }
|