aa
This commit is contained in:
@@ -373,10 +373,10 @@ func HandleTcpMessages() {
|
||||
prints, _ := dao.GetPrintMsgs(db, []int{printMsgWait}, time.Now().Add(-time.Hour*3), time.Now(), offset, pageSize)
|
||||
for _, printMsg := range prints {
|
||||
printMsgChan <- printMsg
|
||||
select {
|
||||
case data, _ := <-printMsgCallbackChan:
|
||||
changePrintMsg(data)
|
||||
}
|
||||
//select {
|
||||
//case data, _ := <-printMsgCallbackChan:
|
||||
// changePrintMsg(data)
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -385,50 +385,57 @@ func doPrint2(printMsgChan chan *model.PrintMsg) (err error) {
|
||||
var (
|
||||
db = dao.GetDB()
|
||||
)
|
||||
select {
|
||||
case printMsg, _ := <-printMsgChan:
|
||||
var (
|
||||
data []byte
|
||||
c net.Conn
|
||||
)
|
||||
if printMsg != nil {
|
||||
if err = checkPrintMsg(db, printMsg); err == nil {
|
||||
tcpClient.s.RLock()
|
||||
if tcpClient.Clients[printMsg.PrintNo] != nil {
|
||||
if tcpClient.Clients[printMsg.PrintNo].Status == printerStatusOnline {
|
||||
if tcpClient.Clients[printMsg.PrintNo].C != nil {
|
||||
c = tcpClient.Clients[printMsg.PrintNo].C
|
||||
data, err = buildMsg(printMsg)
|
||||
for {
|
||||
select {
|
||||
case data, _ := <-printMsgCallbackChan:
|
||||
changePrintMsg(data)
|
||||
default:
|
||||
select {
|
||||
case printMsg, _ := <-printMsgChan:
|
||||
var (
|
||||
data []byte
|
||||
c net.Conn
|
||||
)
|
||||
if printMsg != nil {
|
||||
if err = checkPrintMsg(db, printMsg); err == nil {
|
||||
tcpClient.s.RLock()
|
||||
if tcpClient.Clients[printMsg.PrintNo] != nil {
|
||||
if tcpClient.Clients[printMsg.PrintNo].Status == printerStatusOnline {
|
||||
if tcpClient.Clients[printMsg.PrintNo].C != nil {
|
||||
c = tcpClient.Clients[printMsg.PrintNo].C
|
||||
data, err = buildMsg(printMsg)
|
||||
}
|
||||
} else if tcpClient.Clients[printMsg.PrintNo].Status == printerStatusOffline {
|
||||
err = fmt.Errorf("打印机离线!")
|
||||
} else if tcpClient.Clients[printMsg.PrintNo].Status == printerStatusOnlineWithoutPaper {
|
||||
err = fmt.Errorf("打印机缺纸!")
|
||||
}
|
||||
}
|
||||
} else if tcpClient.Clients[printMsg.PrintNo].Status == printerStatusOffline {
|
||||
err = fmt.Errorf("打印机离线!")
|
||||
} else if tcpClient.Clients[printMsg.PrintNo].Status == printerStatusOnlineWithoutPaper {
|
||||
err = fmt.Errorf("打印机缺纸!")
|
||||
tcpClient.s.RUnlock()
|
||||
}
|
||||
}
|
||||
tcpClient.s.RUnlock()
|
||||
}
|
||||
} else {
|
||||
err = fmt.Errorf("未查询到此printMsg")
|
||||
}
|
||||
if err != nil {
|
||||
printMsg.Status = printMsgErr
|
||||
printMsg.Comment = err.Error()
|
||||
dao.UpdateEntity(db, printMsg, "Status", "Comment")
|
||||
delete(tcpClient.Clients, printMsg.PrintNo)
|
||||
if c != nil {
|
||||
c.Close()
|
||||
}
|
||||
} else {
|
||||
if c != nil {
|
||||
if _, err = c.Write(data); err != nil {
|
||||
globals.SugarLogger.Debugf("handleTcpMessages err [%v]", err)
|
||||
delete(tcpClient.Clients, printMsg.PrintNo)
|
||||
c.Close()
|
||||
} else {
|
||||
globals.SugarLogger.Debugf("handleTcpMessages success, data: %v", hex.EncodeToString(data))
|
||||
printMsg.Status = printMsgAlreadySend
|
||||
err = fmt.Errorf("未查询到此printMsg")
|
||||
}
|
||||
if err != nil {
|
||||
printMsg.Status = printMsgErr
|
||||
printMsg.Comment = err.Error()
|
||||
dao.UpdateEntity(db, printMsg, "Status", "Comment")
|
||||
delete(tcpClient.Clients, printMsg.PrintNo)
|
||||
if c != nil {
|
||||
c.Close()
|
||||
}
|
||||
} else {
|
||||
if c != nil {
|
||||
if _, err = c.Write(data); err != nil {
|
||||
globals.SugarLogger.Debugf("handleTcpMessages err [%v]", err)
|
||||
delete(tcpClient.Clients, printMsg.PrintNo)
|
||||
c.Close()
|
||||
} else {
|
||||
globals.SugarLogger.Debugf("handleTcpMessages success, data: %v", hex.EncodeToString(data))
|
||||
printMsg.Status = printMsgAlreadySend
|
||||
dao.UpdateEntity(db, printMsg, "Status", "Comment")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user