From 0cca12f938c3ce96b2f8cff3c54e2cb6d1e8cea5 Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Mon, 28 Jun 2021 17:48:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=9C=BA=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=B0=9D=E8=AF=95=E6=94=B9=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/event/event_tcp.go | 25 +++++++++++++++++++++++-- business/model/print.go | 10 ++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/business/jxstore/event/event_tcp.go b/business/jxstore/event/event_tcp.go index fbe3fa81c..c264e980d 100644 --- a/business/jxstore/event/event_tcp.go +++ b/business/jxstore/event/event_tcp.go @@ -29,6 +29,9 @@ const ( heartErrWithoutPaper = "04" //心跳错,缺纸 heartErrHot = "08" //过热 + + printerStatusOnline = 1 //在线 + printerStatusOffline = -1 //离线 ) var ( @@ -99,7 +102,7 @@ func handleConn(c net.Conn) { tcpClient.Clients[printNo] = c } else { //改变打印机状态 - + changePrinterStatus(db, printNo, printerStatusOnline) } } else if strings.Contains(data, printText) { changePrintMsg(db, data) @@ -159,7 +162,7 @@ func handleTcpMessages() { c = tcpClient.Clients[printMsg.PrintNo] data, err = buildMsg(printMsg) } else { - err = fmt.Errorf("打印机已掉线!") + changePrinterStatus(db, printMsg.PrintNo, printerStatusOffline) } } } else { @@ -169,16 +172,34 @@ func handleTcpMessages() { printMsg.Status = printMsgErr printMsg.Comment = err.Error() dao.UpdateEntity(db, printMsg, "Status", "Comment") + delete(tcpClient.Clients, printMsg.PrintNo) } else { if _, err = c.Write(data); err != nil { globals.SugarLogger.Debugf("handleTcpMessages err [%v]", err) c.Close() + delete(tcpClient.Clients, printMsg.PrintNo) } } } } } +func changePrinterStatus(db *dao.DaoDB, printNo string, status int) (err error) { + var ( + printer = &model.Printer{ + PrintNo: printNo, + } + ) + if err = dao.GetEntity(db, printer, "PrintNo"); err == nil { + if printer.ID != 0 { + if printer.Status != status { + dao.UpdateEntity(db, printer, "Status") + } + } + } + return err +} + func buildMsg(printMsg *model.PrintMsg) (data []byte, err error) { var ( content = printMsg.Content diff --git a/business/model/print.go b/business/model/print.go index b23145e90..a1bdd01a9 100644 --- a/business/model/print.go +++ b/business/model/print.go @@ -9,3 +9,13 @@ type PrintMsg struct { Status int `json:"status"` //打印状态 Comment string `json:"comment"` //失败原因 } + +type Printer struct { + ModelIDCULD + + AppID int `orm:"column(app_id)" json:"app_id"` //应用编号 + PrintNo string `json:"print_no"` //打印机编号 + PrintKey string `json:"print_key"` //打印机识别码 + Name string `json:"name"` //打印机备注名 + Status int `json:"status"` //打印机状态 +}