Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
bft_takeout
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
guanghui.cui
bft_takeout
Commits
d45480cb
Commit
d45480cb
authored
Sep 26, 2017
by
guanghui.cui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
菜单缓存
parent
41bb2d1c
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
92 additions
and
4 deletions
+92
-4
build-Debug/fmTakeout/Config.ini
+2
-2
fmTakeaway/Util/BillsManger.cpp
+2
-0
fmTakeaway/Util/BillsManger.h
+1
-0
fmTakeaway/Util/wbillcontrol.cpp
+68
-0
fmTakeaway/Util/wbillcontrol.h
+17
-1
fmTakeaway/fmTakeaway.pro
+1
-0
fmTakeaway/fmTakeaway.pro.user
+1
-1
No files found.
build-Debug/fmTakeout/Config.ini
View file @
d45480cb
...
...
@@ -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
fmTakeaway/Util/BillsManger.cpp
View file @
d45480cb
...
...
@@ -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))
...
...
fmTakeaway/Util/BillsManger.h
View file @
d45480cb
...
...
@@ -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
&
);
...
...
fmTakeaway/Util/wbillcontrol.cpp
View file @
d45480cb
...
...
@@ -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
;
}
}
}
}
fmTakeaway/Util/wbillcontrol.h
View file @
d45480cb
...
...
@@ -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
fmTakeaway/fmTakeaway.pro
View file @
d45480cb
...
...
@@ -9,6 +9,7 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET
=
fmTakeout
TEMPLATE
=
app
CONFIG
+=
c
++
11
include
(
"./QsLog/QsLog.pri"
)
...
...
fmTakeaway/fmTakeaway.pro.user
View file @
d45480cb
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 3.5.1, 2017-09-2
0T18:07:00
. -->
<!-- Written by QtCreator 3.5.1, 2017-09-2
5T09:09:44
. -->
<qtcreator>
<data>
<variable>
EnvironmentId
</variable>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment