Commit d45480cb by guanghui.cui

菜单缓存

parent 41bb2d1c
...@@ -52,4 +52,4 @@ storeId=hzl9999 ...@@ -52,4 +52,4 @@ storeId=hzl9999
operatorId=001 operatorId=001
[POSServer] [POSServer]
serverIp=127.0.0.1 serverIp=192.168.0.102
\ No newline at end of file \ No newline at end of file
...@@ -225,6 +225,8 @@ void BillsManger::_ProcPullOrdersReply(const QByteArray &data) ...@@ -225,6 +225,8 @@ void BillsManger::_ProcPullOrdersReply(const QByteArray &data)
if(tmpOrderObj->status == 2 && !Database::getInstance().isPrint(orderId)) if(tmpOrderObj->status == 2 && !Database::getInstance().isPrint(orderId))
{ {
QLOG_INFO() << QString("[---print order---]")<<tmpOrderObj->toJson();
WBillControl::GetInstance().PrintLable(tmpOrderObj);
// 打印 // 打印
// QLOG_INFO() << QString("[---begin print---]"); // QLOG_INFO() << QString("[---begin print---]");
// if(FmTakeaway_printer::Instance().DoPrint(IniDataManger::Instance().GetPrinterName(), tmpOrderObj)) // if(FmTakeaway_printer::Instance().DoPrint(IniDataManger::Instance().GetPrinterName(), tmpOrderObj))
......
...@@ -41,6 +41,7 @@ public slots: ...@@ -41,6 +41,7 @@ public slots:
void onOperatorChanged(const FmTakeaway_db::OperatorInfo&); void onOperatorChanged(const FmTakeaway_db::OperatorInfo&);
void onGetNewStoreInfo(const QJsonObject&); void onGetNewStoreInfo(const QJsonObject&);
void onUpdateWritePosStatus(const OrderObject *order); void onUpdateWritePosStatus(const OrderObject *order);
private: private:
BillsManger(); BillsManger();
BillsManger(BillsManger const&); BillsManger(BillsManger const&);
......
...@@ -33,6 +33,7 @@ WBillControl::WBillControl() ...@@ -33,6 +33,7 @@ WBillControl::WBillControl()
{ {
this->moveToThread(&g_thread); this->moveToThread(&g_thread);
g_thread.start(); g_thread.start();
GetPosMenu();
} }
WBillControl::~WBillControl() WBillControl::~WBillControl()
...@@ -226,3 +227,70 @@ bool WBillControl::SendToMonitor(const QByteArray &data,QTcpSocket *pSocket) ...@@ -226,3 +227,70 @@ bool WBillControl::SendToMonitor(const QByteArray &data,QTcpSocket *pSocket)
delete[] m_pFmPackage; delete[] m_pFmPackage;
return result; 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 { ...@@ -13,6 +13,13 @@ typedef struct {
int len; int len;
}FMSOCKEHEADER; }FMSOCKEHEADER;
struct PrinterMenu
{
QString strMenuId;
int iPrinterId;
QString strDevice;
};
class WBillControl : public QObject class WBillControl : public QObject
{ {
Q_OBJECT Q_OBJECT
...@@ -30,6 +37,9 @@ public: ...@@ -30,6 +37,9 @@ public:
* */ * */
void SetStoreInfo(const QString& partner_id, const QString& storeId, const QString& operaId, const QString& posId, const QString& dbusiness); 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: public slots:
/* 功能:写入销售单 /* 功能:写入销售单
* 参数:[1]订单对象[2]错误信息[3]是否是确认动作 * 参数:[1]订单对象[2]错误信息[3]是否是确认动作
...@@ -59,6 +69,13 @@ private: ...@@ -59,6 +69,13 @@ private:
* 返回:发送结果 * 返回:发送结果
* */ * */
bool SendToMonitor(const QByteArray &data,QTcpSocket *pSocket); bool SendToMonitor(const QByteArray &data,QTcpSocket *pSocket);
void GetPosMenu();
void setMenu(const QByteArray &JsonMenu);
public:
QVector<PrinterMenu> vecMenu;
private: private:
WBillControl(); WBillControl();
~WBillControl(); ~WBillControl();
...@@ -80,7 +97,6 @@ private: ...@@ -80,7 +97,6 @@ private:
signals: signals:
// 更新list入库显示 // 更新list入库显示
void sUpdatePosRes(const OrderObject *order); void sUpdatePosRes(const OrderObject *order);
}; };
#endif // WBILLCONTROL_H #endif // WBILLCONTROL_H
...@@ -9,6 +9,7 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets ...@@ -9,6 +9,7 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = fmTakeout TARGET = fmTakeout
TEMPLATE = app TEMPLATE = app
CONFIG += c++11
include("./QsLog/QsLog.pri") include("./QsLog/QsLog.pri")
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!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> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <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