Commit 90d893ca by guanghui.cui

菜单缓存添加字段

parent 12d87215
......@@ -69,15 +69,24 @@ struct TakeawayOrder
struct PrinterMenu
{
std::string strMenuId;
int iPrinterId;
std::string strDevice;
std::string strMenuId; //菜品ID
int iPrinterId; //打印机ID(厨房)
std::string strDevice; //打印机端口(厨房)
int iBaud; //波特率(厨房)
std::string strTitle; //打印标题(厨房)
int iOrderPrinterId; //打印机ID(上菜单)
std::string strOrderDevice; //打印机端口(上菜单)
int iOrderBaud; //波特率(上菜单)
std::string strOrderTitle; //打印标题(上菜单)
};
struct PrintDevice
{
int id;
std::string strDevice;
int id; //打印机id
std::string strDevice; //打印端口
int iBaud; //波特率
int iPrintQ; //打印类型(上菜单、厨房等)
std::string strTitle; //打印标题
};
#endif
\ No newline at end of file
#!/bin/bash
CMDClient="/home/fm/monitor"
PIDClient="./pidClient.txt"
CMDName="/home/czl/monitor/bin/monitor"
PIDFile="/home/czl/monitor/bin/pidMonitor.txt"
# ---------------------------------------------------
# 启动函数
function startClient {
$CMDClient 2>&1 &
$CMDName 2>&1 &
mypgmpid=$!
echo $mypgmpid > $PIDClient
echo $mypgmpid > $PIDFile
echo "startClient [ok]"
}
# 停止函数
function stopClient {
kill `cat $PIDClient`
rm $PIDClient
kill `cat $PIDFile`
rm $PIDFile
echo "stopClient [ok]"
}
# --------------------------------------------------
echo "$CMDClient $1"
echo "$CMDName $1"
case "$1" in
start)
if [ -f $PIDFile ] ; then
stopClient
sleep 4
fi
startClient
;;
restart)
if [ -f $PIDClient ] ; then
if [ -f $PIDFile ] ; then
stopClient
sleep 4
fi
......@@ -35,8 +39,8 @@ stop)
esac
for (( c=0 ; ; c++ ))
do
if [ -f $PIDClient ] ; then
mypgmpid=`cat $PIDClient`
if [ -f $PIDFile ] ; then
mypgmpid=`cat $PIDFile`
cmdex="ps uh -p$mypgmpid"
psrtn=`$cmdex`
if [ -z "$psrtn" ]; then
......
......@@ -17,5 +17,5 @@ serverip=192.168.0.102
#守护进程脚本
[SH]
monitor=/home/fm/daemon_monitor.sh start &
#monitor=/home/fm/daemon_monitor.sh start &
takeout=/home/fm/daemon_takeout.sh start &
\ No newline at end of file
......@@ -452,29 +452,67 @@ bool COrderInfo::GetMenuPrinter()
dbDevice.interactive_timeout=5;
MySQLService *mysqlDevice=new MySQLService(&dbDevice);
sprintf(mysqlDevice->sqlStr,"%s","SELECT Printer,Device FROM tbl_PrintDevice;");
sprintf(mysqlDevice->sqlStr,"%s","SELECT PrintQ,Name3,Printer FROM tbl_PrintQueue;");
nErrCode = mysqlDevice->query();
while ((mysqlDevice->_row = mysql_fetch_row(mysqlDevice->_result)) != NULL){
PrintDevice device;
device.iPrintQ=atoi(mysqlDevice->_row[0]);
device.strTitle=mysqlDevice->_row[1];
device.id=atoi(mysqlDevice->_row[2]);
vecDevices.push_back(device);
}
mysql_free_result(mysqlDevice->_result);
LOG(INFO)<<"-------------------------------------------------";
std::vector<PrintDevice> vecPrinterInfo;
sprintf(mysqlDevice->sqlStr,"%s","SELECT Printer,Device,BaudRate FROM tbl_PrintDevice;");
nErrCode = mysqlDevice->query();
while ((mysqlDevice->_row = mysql_fetch_row(mysqlDevice->_result)) != NULL){
PrintDevice device;
device.id=atoi(mysqlDevice->_row[0]);
device.strDevice=mysqlDevice->_row[1];
vecDevices.push_back(device);
device.iBaud=atoi(mysqlDevice->_row[2]);
vecPrinterInfo.push_back(device);
}
for(auto &dev:vecDevices){
for(auto printer:vecPrinterInfo){
if(dev.id==printer.id){
dev.strDevice=printer.strDevice;
dev.iBaud=printer.iBaud;
}
}
}
mysql_free_result(mysqlDevice->_result);
delete mysqlDevice;
if(nErrCode==-1)
return false;
//查询菜单数据
sprintf(mysql->sqlStr,"%s","SELECT Item,PrintQ1 FROM tbl_Menu;");
//PrintQ1:厨房打印机 PrintQ5:上菜单打印机
sprintf(mysql->sqlStr,"%s","SELECT Item,PrintQ1,PrintQ5 FROM tbl_Menu;");
nErrCode = mysql->query();
while ((mysql->_row = mysql_fetch_row(mysql->_result)) != NULL){
PrinterMenu menu;
menu.strMenuId=mysql->_row[0];
menu.iPrinterId=atoi(mysql->_row[1]);
for(auto dev:vecDevices){
if(menu.iPrinterId==dev.id){
if(menu.iPrinterId==dev.iPrintQ){
menu.strDevice=dev.strDevice;
menu.iBaud=dev.iBaud;
menu.strTitle=dev.strTitle;
break;
}
}
menu.iOrderPrinterId=atoi(mysql->_row[2]);
for(auto dev:vecDevices){
if(menu.iOrderPrinterId==dev.iPrintQ){
menu.strOrderDevice=dev.strDevice;
menu.iOrderBaud=dev.iBaud;
menu.strOrderTitle=dev.strTitle;
break;
}
}
vecPrinterMenus.push_back(menu);
......@@ -485,14 +523,13 @@ bool COrderInfo::GetMenuPrinter()
// for(auto menu:vecPrinterMenus){
// LOG(INFO)<<"idMenu"<<menu.idMenu<<" idPrinter:"<<menu.idPrinter<<" device:"<<menu.device;
// }
return true;
}
std::vector<PrinterMenu>& COrderInfo::GetPOSMenu()
{
if(!GetMenuPrinter())
LOG(INFO)<<"Get menu info failed!";
LOG(ERROR)<<"Get menu info failed!";
return vecPrinterMenus;
}
......
......@@ -259,7 +259,6 @@ void *FunTakeaway(void* lpParamter)
else if(order.fm_cmd == "get_menu"){
LOG(INFO)<<"------get pos menu------";
std::vector<PrinterMenu> &vecMenu = dbOperation->GetPOSMenu();
LOG(INFO)<<"------get pos menu------111111";
// for(auto menu:vecMenu){
// LOG(INFO)<<"idMenu"<<menu.idMenu<<" idPrinter:"<<menu.idPrinter<<" device:"<<menu.device;
// }
......
......@@ -215,6 +215,12 @@ std::string GetPOSMenuJson(std::vector<PrinterMenu> &vecMenu)
obj.AddMember("iPrinterId", vecMenu[i].iPrinterId, allocator);
obj.AddMember("strMenuId", rapidjson::Value(vecMenu[i].strMenuId.c_str(), document.GetAllocator()), allocator);
obj.AddMember("strDevice", rapidjson::Value(vecMenu[i].strDevice.c_str(), document.GetAllocator()), allocator);
obj.AddMember("iBaud", vecMenu[i].iBaud, allocator);
obj.AddMember("strTitle", rapidjson::Value(vecMenu[i].strTitle.c_str(), document.GetAllocator()), allocator);
obj.AddMember("iOrderPrinterId", vecMenu[i].iOrderPrinterId, allocator);
obj.AddMember("strOrderDevice", rapidjson::Value(vecMenu[i].strOrderDevice.c_str(), document.GetAllocator()), allocator);
obj.AddMember("iOrderBaud", vecMenu[i].iOrderBaud, allocator);
obj.AddMember("strOrderTitle", rapidjson::Value(vecMenu[i].strOrderTitle.c_str(), document.GetAllocator()), allocator);
arrayJson.PushBack(obj, allocator);
}
......
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