Commit d45480cb by guanghui.cui

菜单缓存

parent 41bb2d1c
......@@ -52,4 +52,4 @@ storeId=hzl9999
operatorId=001
[POSServer]
serverIp=127.0.0.1
\ No newline at end of file
serverIp=192.168.0.102
\ No newline at end of file
......@@ -225,6 +225,8 @@ void BillsManger::_ProcPullOrdersReply(const QByteArray &data)
if(tmpOrderObj->status == 2 && !Database::getInstance().isPrint(orderId))
{
QLOG_INFO() << QString("[---print order---]")<<tmpOrderObj->toJson();
WBillControl::GetInstance().PrintLable(tmpOrderObj);
// 打印
// QLOG_INFO() << QString("[---begin print---]");
// if(FmTakeaway_printer::Instance().DoPrint(IniDataManger::Instance().GetPrinterName(), tmpOrderObj))
......
......@@ -41,6 +41,7 @@ public slots:
void onOperatorChanged(const FmTakeaway_db::OperatorInfo&);
void onGetNewStoreInfo(const QJsonObject&);
void onUpdateWritePosStatus(const OrderObject *order);
private:
BillsManger();
BillsManger(BillsManger const&);
......
......@@ -33,6 +33,7 @@ WBillControl::WBillControl()
{
this->moveToThread(&g_thread);
g_thread.start();
GetPosMenu();
}
WBillControl::~WBillControl()
......@@ -226,3 +227,70 @@ bool WBillControl::SendToMonitor(const QByteArray &data,QTcpSocket *pSocket)
delete[] m_pFmPackage;
return result;
}
void WBillControl::GetPosMenu()
{
QTcpSocket *socket = new QTcpSocket(this);
// 连接
QJsonObject rObj;
rObj.insert("fm_cmd", "get_menu");
rObj.insert("fm_ver", "1.0");
QJsonDocument doc(rObj);
QByteArray byteSlip=QString(doc.toJson( QJsonDocument::Compact)).toUtf8();
QLOG_INFO() << "------------------------------get_menu:"<<byteSlip.data();
socket->connectToHost(IniDataManger::Instance().GetPOSServerIP(), 23772);
if (socket->waitForConnected())
{
if(SendToMonitor(byteSlip,socket)){
// 接收返回
bool flag=true;
QByteArray arr;
while(flag){
if (socket->waitForReadyRead())
{
arr.push_back(socket->readAll());
QJsonObject recvJson = QJsonDocument::fromJson(arr).object();
if(!recvJson.isEmpty())
flag=false;
}
}
setMenu(arr);
}
}
socket->close();
}
void WBillControl::setMenu(const QByteArray &JsonMenu)
{
vecMenu.clear();
QJsonObject recvJson = QJsonDocument::fromJson(JsonMenu).object();
QJsonArray orders = recvJson["MenuList"].toArray();
PrinterMenu menu;
foreach (QJsonValue order, orders) {
QJsonObject orderObj = order.toObject();
menu.strMenuId = orderObj["strMenuId"].toString();
menu.iPrinterId = orderObj["iPrinterId"].toInt();
menu.strDevice = orderObj["strDevice"].toString();
vecMenu.push_back(menu);
}
}
void WBillControl::PrintLable(const OrderObject *obj)
{
QVector<QString> vecPid;
for(int i=0; i < obj->pvm.keys().count(); i++)
{
QString pid=obj->proList.at(i)->pid;
vecPid.push_back(pid);
for(PrinterMenu menu:vecMenu){
if(menu.strMenuId==pid){
//print
//...
break;
}
}
}
}
......@@ -13,6 +13,13 @@ typedef struct {
int len;
}FMSOCKEHEADER;
struct PrinterMenu
{
QString strMenuId;
int iPrinterId;
QString strDevice;
};
class WBillControl : public QObject
{
Q_OBJECT
......@@ -30,6 +37,9 @@ public:
* */
void SetStoreInfo(const QString& partner_id, const QString& storeId, const QString& operaId, const QString& posId, const QString& dbusiness);
//打印小票
void PrintLable(const OrderObject *obj);
public slots:
/* 功能:写入销售单
* 参数:[1]订单对象[2]错误信息[3]是否是确认动作
......@@ -59,6 +69,13 @@ private:
* 返回:发送结果
* */
bool SendToMonitor(const QByteArray &data,QTcpSocket *pSocket);
void GetPosMenu();
void setMenu(const QByteArray &JsonMenu);
public:
QVector<PrinterMenu> vecMenu;
private:
WBillControl();
~WBillControl();
......@@ -80,7 +97,6 @@ private:
signals:
// 更新list入库显示
void sUpdatePosRes(const OrderObject *order);
};
#endif // WBILLCONTROL_H
......@@ -9,6 +9,7 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = fmTakeout
TEMPLATE = app
CONFIG += c++11
include("./QsLog/QsLog.pri")
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 3.5.1, 2017-09-20T18:07:00. -->
<!-- Written by QtCreator 3.5.1, 2017-09-25T09:09:44. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment