Commit b9db01d9 by wuyang.zou

1、decouple Pos插件自动登录功能;

2、decouple Pos插件自动获取工作站号;
3、decouple Pos插件支持小票补打功能;
4、双屏POS,插件展开时,可以拖拽到扩展屏(客显屏) 可能会遮盖右下角的录单按钮;
5、Curbside订单新增:车辆颜色+车辆品牌型号 两属性备用
6、Curbside订单,预约时间变更提醒&用户隐私号能否及时更新优化;

Version: 2.2022.10.20
parent 79741adb
Pipeline #41797 failed with stage
in 0 seconds
...@@ -122,37 +122,39 @@ FlowControl::FlowControl() ...@@ -122,37 +122,39 @@ FlowControl::FlowControl()
connect(this,&FlowControl::doRefundOrder,this,&FlowControl::_RefundOrder,Qt::BlockingQueuedConnection); connect(this,&FlowControl::doRefundOrder,this,&FlowControl::_RefundOrder,Qt::BlockingQueuedConnection);
connect(this, &FlowControl::doLogin, this, &FlowControl::onGetNewStoreInfo,Qt::BlockingQueuedConnection); connect(this, &FlowControl::doLogin, this, &FlowControl::onGetNewStoreInfo,Qt::BlockingQueuedConnection);
/***打开Sql server express 数据库并登陆外卖插件***/ // /*
// 打开Sql server express 数据库并登陆外卖插件 //
SimProcOrderDB::getInstance(); SimProcOrderDB::getInstance();
m_initSimProcOrderDBRet = SimProcOrderDB::getInstance().initSimProcOrderDB(); m_initSimProcOrderDBRet = SimProcOrderDB::getInstance().initSimProcOrderDB();
/***打开SqlServer POS打印汇总信息本地数据库***/ // 打开SqlServer POS打印汇总信息本地数据库 //
PrintSumBillPosDB::getInstance(); PrintSumBillPosDB::getInstance();
m_initPrintSumBillPosDBRet = PrintSumBillPosDB::getInstance().initPrintSumBillPosDB(); m_initPrintSumBillPosDBRet = PrintSumBillPosDB::getInstance().initPrintSumBillPosDB();
/***打开SqlServer POS打印杯贴商品数据本地数据库***/ // 打开SqlServer POS打印杯贴商品数据本地数据库 //
PrintCupStickPosDB::getInstance(); PrintCupStickPosDB::getInstance();
m_initPrintCupStickPosDBRet = PrintCupStickPosDB::getInstance().initPrintCupStickPosDB(); m_initPrintCupStickPosDBRet = PrintCupStickPosDB::getInstance().initPrintCupStickPosDB();
/***打开SqlServer POS打印消息队列本地数据库***/ // 打开SqlServer POS打印消息队列本地数据库 //
PrintMsgQueueDB::getInstance(); PrintMsgQueueDB::getInstance();
m_initPrintMsgQueueDBRet = PrintMsgQueueDB::getInstance().initPrintMsgQueueDB(); m_initPrintMsgQueueDBRet = PrintMsgQueueDB::getInstance().initPrintMsgQueueDB();
/***打开SqlServer POS打印订单优惠明细数据本地数据库***/ // 打开SqlServer POS打印订单优惠明细数据本地数据库 //
PrintOrderPromotionDB::getInstance(); PrintOrderPromotionDB::getInstance();
m_initPrintOrderPromotionDBRet = PrintOrderPromotionDB::getInstance().initPrintOrderPromotionDB(); m_initPrintOrderPromotionDBRet = PrintOrderPromotionDB::getInstance().initPrintOrderPromotionDB();
/***打开SqlServer POS获取 当前用户 是否绑定钱箱+是否拥有退货权限 本地数据库***/ // 打开SqlServer POS获取 当前用户 是否绑定钱箱+是否拥有退货权限 本地数据库 //
GetCaboxAReAuth::getInstance(); GetCaboxAReAuth::getInstance();
m_initGetAuthPosDBRet = GetCaboxAReAuth::getInstance().initGetAuthPosDB(); m_initGetAuthPosDBRet = GetCaboxAReAuth::getInstance().initGetAuthPosDB();
/***打开SqlServer 用订单的全部去重Poskey校验 在POS本地数据库的有效性***/ // 打开SqlServer 用订单的全部去重Poskey校验 在POS本地数据库的有效性 //
CheckPoskeyExistPosDB::getInstance(); CheckPoskeyExistPosDB::getInstance();
m_initCheckPoskeyExistPosDBRet = CheckPoskeyExistPosDB::getInstance().initCheckPoskeyExistPosDB(); m_initCheckPoskeyExistPosDBRet = CheckPoskeyExistPosDB::getInstance().initCheckPoskeyExistPosDB();
/***打开SqlServer 存储上游推送的 通告消息 本地数据库***/ // 打开SqlServer 存储上游推送的 通告消息 本地数据库 //
SaveNoticeMsgDB::getInstance(); SaveNoticeMsgDB::getInstance();
m_initSaveNoticeMsgDBRet = SaveNoticeMsgDB::getInstance().initSaveNoticeMsgDB(); m_initSaveNoticeMsgDBRet = SaveNoticeMsgDB::getInstance().initSaveNoticeMsgDB();
// */
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::FlowControl() m_initSimProcOrderDBRet: %1, m_initPrintSumBillPosDBRet: %2, m_initGetAuthPosDBRet:%3 ," QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::FlowControl() m_initSimProcOrderDBRet: %1, m_initPrintSumBillPosDBRet: %2, m_initGetAuthPosDBRet:%3 ,"
...@@ -943,19 +945,23 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) ...@@ -943,19 +945,23 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
} }
// 3: 刷新订单 预约时间 & 制作时间 & 街送小票时间; // 3: 刷新订单 预约时间 & 制作时间 & 街送小票时间;
if ( 3 == orderObject->inAdvanceTakemeal ) { if ( 3 == orderObject->inAdvanceTakemeal || oldArriveAhead != orderObject->inAdvanceTakemeal ) {
int updateOrderRet = PrintSumBillPosDB::getInstance().updateOrderDataToDB(orderObject, QString("UpdateTimeAction")); int updateOrderRet = PrintSumBillPosDB::getInstance().updateOrderDataToDB(orderObject, QString("UpdateTimeAction"));
QLOG_INFO() << QString("[<<<<---PrintSumBillPosDB.getInstance().updateOrderDataToDB orderId:%1 updateOrderRet:%2--->>>>]").arg(orderObject->id).arg(updateOrderRet); QLOG_INFO() << QString("[<<<<---PrintSumBillPosDB.getInstance().updateOrderDataToDB orderId:%1 updateOrderRet:%2--->>>>]").arg(orderObject->id).arg(updateOrderRet);
} else if ( oldArriveAhead != orderObject->inAdvanceTakemeal ) { }
int updateOrderRet = PrintSumBillPosDB::getInstance().updateOrderDataToDB(orderObject, QString("UpdateTimeAction")); /* // updateOrderDataToDB -> updateOrderTimeInfo()-> trigger show alert; [已经触发提示了;故此处注释此处代码]
QLOG_INFO() << QString("[<<<<---PrintSumBillPosDB.getInstance().updateOrderDataToDB orderId:%1 updateOrderRet:%2--->>>>]").arg(orderObject->id).arg(updateOrderRet); if ( oldArriveAhead != orderObject->inAdvanceTakemeal && 2 == orderObject->inAdvanceTakemeal ) {
if ( 2 == orderObject->inAdvanceTakemeal ) {
QString warnMsg = QString::fromLocal8Bit("用户修改 %1 预约时间; 订单尾号: %2; 订单号: %3; 新预约时间: %4; 原预约时间: %5") QString warnMsg = QString::fromLocal8Bit("用户修改 %1 预约时间; 订单尾号: %2; 订单号: %3; 新预约时间: %4; 原预约时间: %5")
.arg( orderObject->channel ).arg( orderObject->id.mid(orderObject->id.length() - 5, 5) ).arg(orderObject->id) .arg( orderObject->channel ).arg( orderObject->id.mid(orderObject->id.length() - 5, 5) ).arg(orderObject->id)
.arg( orderObject->expectDate.mid(11,5) ).arg( orderObject->lastExpectDate.mid(11,5) ); .arg( orderObject->expectDate.mid(11,5) ).arg( orderObject->lastExpectDate.mid(11,5) );
emit showAlert(AlertForm::WARNNING, warnMsg ); emit showAlert(AlertForm::WARNNING, warnMsg );
} }
*/
// 4: 特殊字段值存在则刷新(此类订单量小);
// 4.1: 更新手机隐私号;
if ( orderObject->privacyPhone.length() ) {
int updateOrderPhoneRet = PrintSumBillPosDB::getInstance().updateOrderDataToDB(orderObject, QString("UpdatePhoneAction"));
QLOG_INFO() << QString("[<<<<---PrintSumBillPosDB.getInstance().updateOrderDataToDB orderId:%1 updateOrderPhoneRet:%2--->>>>]").arg(orderObject->id).arg(updateOrderPhoneRet);
} }
} }
......
...@@ -851,9 +851,9 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj, const QString& ...@@ -851,9 +851,9 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj, const QString&
" pay_way, customer_id, customer_name, msr_no, store_id, sub_store_id, store_name, store_address, is_package, order_discount, total_price, " " pay_way, customer_id, customer_name, msr_no, store_id, sub_store_id, store_name, store_address, is_package, order_discount, total_price, "
" orderPayType, sbkAppPayType, sbkAppPayValue, sbkAppRefundPayValue, orderTransFlowNo, orderRefundTransFlowNo, " " orderPayType, sbkAppPayType, sbkAppPayValue, sbkAppRefundPayValue, orderTransFlowNo, orderRefundTransFlowNo, "
" pluginVersion, packageSku, thirdPartyOrderId, discountShopFee, packFee, packDiscount, deliveryFee, deliveryDiscount, " " pluginVersion, packageSku, thirdPartyOrderId, discountShopFee, packFee, packDiscount, deliveryFee, deliveryDiscount, "
" reserve8, reserve9, reserve10, reserve22, reserve23, reserve24 ) " " reserve8, reserve9, reserve10, reserve11, reserve12, reserve22, reserve23, reserve24 ) "
"VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? , ?, ?, ?, " "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
" ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?, ?, ? , ?, ?)" ); " ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" );
query.addBindValue(posCheckNo.toInt()); // --小票号 query.addBindValue(posCheckNo.toInt()); // --小票号
query.addBindValue(orderObj->lastName); // --顾客-姓 query.addBindValue(orderObj->lastName); // --顾客-姓
query.addBindValue(orderObj->consigneeName); // --顾客-全名 query.addBindValue(orderObj->consigneeName); // --顾客-全名
...@@ -966,6 +966,8 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj, const QString& ...@@ -966,6 +966,8 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj, const QString&
query.addBindValue(orderObj->carNumber); // Curbside-车牌号; query.addBindValue(orderObj->carNumber); // Curbside-车牌号;
query.addBindValue(orderObj->privacyPhone); // Curbside-隐私号 query.addBindValue(orderObj->privacyPhone); // Curbside-隐私号
query.addBindValue(orderObj->remindTicketTime); // Curbside-打印街送提醒小票时间 query.addBindValue(orderObj->remindTicketTime); // Curbside-打印街送提醒小票时间
query.addBindValue(orderObj->carColor); // Curbside-车颜色;
query.addBindValue(orderObj->carBrandModel); // Curbside-车品牌车型;
query.addBindValue(orderObj->extendType); // 扩展类型: 20: MOD PLUS 渠道; query.addBindValue(orderObj->extendType); // 扩展类型: 20: MOD PLUS 渠道;
query.addBindValue(orderObj->deliveryProvider); // 配送商家类型: 1:蜂鸟 2:美团; query.addBindValue(orderObj->deliveryProvider); // 配送商家类型: 1:蜂鸟 2:美团;
query.addBindValue(orderObj->deliveryType); // 配送方式: 1: 二轮车 2: 四轮车 3: 美团无人机; query.addBindValue(orderObj->deliveryType); // 配送方式: 1: 二轮车 2: 四轮车 3: 美团无人机;
...@@ -984,10 +986,10 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj, const QString& ...@@ -984,10 +986,10 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj, const QString&
" pay_way, customer_id, customer_name, msr_no, store_id, sub_store_id, store_name, store_address, is_package, order_discount, total_price" " pay_way, customer_id, customer_name, msr_no, store_id, sub_store_id, store_name, store_address, is_package, order_discount, total_price"
" orderPayType, sbkAppPayType, sbkAppPayValue, sbkAppRefundPayValue, orderTransFlowNo, orderRefundTransFlowNo, " " orderPayType, sbkAppPayType, sbkAppPayValue, sbkAppRefundPayValue, orderTransFlowNo, orderRefundTransFlowNo, "
" pluginVersion, packageSku, thirdPartyOrderId, discountShopFee, packFee, packDiscount, deliveryFee, deliveryDiscount, " " pluginVersion, packageSku, thirdPartyOrderId, discountShopFee, packFee, packDiscount, deliveryFee, deliveryDiscount, "
" reserve8, reserve9, reserve10, reserve22, reserve23, reserve24 ) " " reserve8, reserve9, reserve10, reserve11, reserve12, reserve22, reserve23, reserve24 ) "
"VALUES(%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18," "VALUES(%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18,"
" %19, %20, %21, %22, %23, %24, %25, %26, %27, %28, %29, %30,%31, %32, %33, %34, %35, %36, %37, %38, %39, %40, %41, %42" " %19, %20, %21, %22, %23, %24, %25, %26, %27, %28, %29, %30,%31, %32, %33, %34, %35, %36, %37, %38, %39, %40, %41, %42"
" %43, %44, %45, %46, %47, %48, %49, %50,%51, %52, %53, %54, %55, %56, %57, %58, %59, %60, %61, %62, %63 )") " %43, %44, %45, %46, %47, %48, %49, %50,%51, %52, %53, %54, %55, %56, %57, %58, %59, %60, %61, %62, %63, %64, %65 )")
.arg(posCheckNo.toInt()) .arg(posCheckNo.toInt())
.arg(orderObj->lastName).arg(orderObj->customerName).arg(temp_customerSex) .arg(orderObj->lastName).arg(orderObj->customerName).arg(temp_customerSex)
.arg(0).arg(qdaTi.addSecs(60*60*8).toString("yyyy-MM-dd hh:mm:ss")).arg(FlowControl::GetInstance()._GetCashierId()).arg("").arg("") .arg(0).arg(qdaTi.addSecs(60*60*8).toString("yyyy-MM-dd hh:mm:ss")).arg(FlowControl::GetInstance()._GetCashierId()).arg("").arg("")
...@@ -1005,6 +1007,7 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj, const QString& ...@@ -1005,6 +1007,7 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj, const QString&
.arg("").arg(APP_VERSION).arg(orderObj->packageSku).arg(orderObj->thirdPartyOrderId).arg(0).arg(orderObj->packageFee) .arg("").arg(APP_VERSION).arg(orderObj->packageSku).arg(orderObj->thirdPartyOrderId).arg(0).arg(orderObj->packageFee)
.arg(orderObj->packDiscount).arg(orderObj->deliveryPrice).arg(orderObj->deliveryDiscount) .arg(orderObj->packDiscount).arg(orderObj->deliveryPrice).arg(orderObj->deliveryDiscount)
.arg(orderObj->carNumber).arg(orderObj->privacyPhone).arg(orderObj->remindTicketTime) .arg(orderObj->carNumber).arg(orderObj->privacyPhone).arg(orderObj->remindTicketTime)
.arg(orderObj->carColor).arg(orderObj->carBrandModel)
.arg(orderObj->extendType).arg(orderObj->deliveryProvider).arg(orderObj->deliveryType); .arg(orderObj->extendType).arg(orderObj->deliveryProvider).arg(orderObj->deliveryType);
} else { } else {
QLOG_INFO()<<QString("[<<<<---SqlServer Database:Insert OrderId %1 Into tb_msr_customer_info Success--->>>>]").arg(orderObj->id); QLOG_INFO()<<QString("[<<<<---SqlServer Database:Insert OrderId %1 Into tb_msr_customer_info Success--->>>>]").arg(orderObj->id);
...@@ -1082,25 +1085,28 @@ bool PrintSumBillPosDB::updateSumBillCknoAndCktime(OrderObject* orderObj, const ...@@ -1082,25 +1085,28 @@ bool PrintSumBillPosDB::updateSumBillCknoAndCktime(OrderObject* orderObj, const
int PrintSumBillPosDB::syncOrderDataToDB(OrderObject* orderObj) { int PrintSumBillPosDB::syncOrderDataToDB(OrderObject* orderObj) {
// 0: 同步失败;1: 无需同步;2: 同步成功; // 0: 同步失败;1: 无需同步;2: 同步成功;
int syncOrderTimeRet = 1; int syncOrderRet = 1;
// 1、同步 预约当日订单的 "提前到店" 信息,避免出现 遗漏; // 1、同步预约当日订单的 "提前到店" 信息, 避免出现遗漏(删除条件 && orderObj->inAdvanceTakemeal);
if ( OrderObject::Refunded != orderObj->orderStatus && ( 7 == orderObj->orderType || 11 == orderObj->orderType ) && orderObj->inAdvanceTakemeal ) { if ( OrderObject::Refunded != orderObj->orderStatus && ( 7 == orderObj->orderType || 11 == orderObj->orderType ) ) {
syncOrderTimeRet = syncOrderTimeInfo(orderObj); syncOrderRet = updateOrderTimeInfo(orderObj);
QLOG_INFO()<<QString("[<<<<---syncOrderDataToDB OrderId: %1 ArriverAhead: %2 syncOrderTimeRet: %3 " QLOG_INFO()<<QString("[<<<<---syncOrderDataToDB OrderId: %1 ArriverAhead: %2 syncOrderRet: %3 reserveMakeTime:%4 lastExpectDate:%5 expectDate:%6 "
" reserveMakeTime:%4 lastExpectDate:%5 expectDate:%6 remindTicketTime:%7 --->>>>]") " remindTicketTime:%7 privacyPhone:%8 --->>>>]")
.arg(orderObj->id).arg(orderObj->inAdvanceTakemeal).arg(syncOrderTimeRet).arg(orderObj->reserveMakeTime).arg(orderObj->lastExpectDate) .arg(orderObj->id).arg(orderObj->inAdvanceTakemeal).arg(syncOrderRet).arg(orderObj->reserveMakeTime).arg(orderObj->lastExpectDate)
.arg(orderObj->expectDate).arg(orderObj->remindTicketTime); .arg(orderObj->expectDate).arg(orderObj->remindTicketTime).arg(orderObj->privacyPhone);
} }
// 2、同步其他...... // 2、同步其他......
if ( orderObj->privacyPhone.length() ) {
return syncOrderTimeRet; syncOrderRet = updateOrderPhoneInfo(orderObj);
}
return syncOrderRet;
} }
int PrintSumBillPosDB::syncOrderTimeInfo(OrderObject* orderObj) {
int PrintSumBillPosDB::updateOrderTimeInfo(OrderObject* orderObj) {
QMutexLocker mutex(&m_mutex); QMutexLocker mutex(&m_mutex);
// 0: 更新失败; 1:无需更新; 2: 更新成功; // 0: 更新失败; 1:无需更新; 2: 更新成功;
int syncRet = 0; int updateRet = 0;
if(!m_sqlDb.open()) { if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SqlServer Database:Open Failed--->>>>]"<<m_sqlDb.lastError().text(); QLOG_ERROR()<<"[<<<<---SqlServer Database:Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false; return false;
...@@ -1111,12 +1117,12 @@ int PrintSumBillPosDB::syncOrderTimeInfo(OrderObject* orderObj) { ...@@ -1111,12 +1117,12 @@ int PrintSumBillPosDB::syncOrderTimeInfo(OrderObject* orderObj) {
query.prepare(QString(" select appointed_remindTemplate from tb_msr_customer_info where order_id='%1' and order_status !=6").arg(orderObj->id)); query.prepare(QString(" select appointed_remindTemplate from tb_msr_customer_info where order_id='%1' and order_status !=6").arg(orderObj->id));
if(!query.exec()) { if(!query.exec()) {
QLOG_ERROR()<<query.lastError().text()<<QString("[<<<<---SqlServer Database: select OrderId %1 appointed* Time Failed--->>>>]").arg(orderObj->id); QLOG_ERROR()<<query.lastError().text()<<QString("[<<<<---SqlServer Database: select OrderId %1 appointed* Time Failed--->>>>]").arg(orderObj->id);
syncRet= 0; updateRet= 0;
} else { } else {
if ( query.first() && query.value(0).toString().length() ) { if ( query.first() && query.value(0).toString().length() ) {
QString tempRemindTemplate = query.value(0).toString().split(';').first(); QString tempRemindTemplate = query.value(0).toString().split(';').first();
if ( 3 == orderObj->inAdvanceTakemeal ) { if ( 3 == orderObj->inAdvanceTakemeal || orderObj->inAdvanceTakemeal != tempRemindTemplate.toInt() ) {
QSqlQuery updateQuery(m_sqlDb); QSqlQuery updateQuery(m_sqlDb);
updateQuery.prepare(QString("update tb_msr_customer_info set appointed_remindTemplate='%1', appointed_time ='%4', reserve5='%2', reserve9='%6', reserve10='%5' " updateQuery.prepare(QString("update tb_msr_customer_info set appointed_remindTemplate='%1', appointed_time ='%4', reserve5='%2', reserve9='%6', reserve10='%5' "
...@@ -1125,29 +1131,20 @@ int PrintSumBillPosDB::syncOrderTimeInfo(OrderObject* orderObj) { ...@@ -1125,29 +1131,20 @@ int PrintSumBillPosDB::syncOrderTimeInfo(OrderObject* orderObj) {
.arg(orderObj->lastExpectDate).arg(orderObj->id).arg(orderObj->expectDate).arg(orderObj->remindTicketTime).arg(orderObj->privacyPhone) ); .arg(orderObj->lastExpectDate).arg(orderObj->id).arg(orderObj->expectDate).arg(orderObj->remindTicketTime).arg(orderObj->privacyPhone) );
if(!updateQuery.exec()) { if(!updateQuery.exec()) {
QLOG_ERROR()<<updateQuery.lastError().text()<<QString("[<<<<---DB::Sync OrderId %1 appointed* Time Failed--->>>>]").arg(orderObj->id); QLOG_ERROR()<<updateQuery.lastError().text()<<QString("[<<<<---DB::Sync OrderId %1 appointed* Time Failed--->>>>]").arg(orderObj->id);
syncRet= 0; updateRet= 0;
} else { } else {
QLOG_INFO()<<QString("[<<<<---DB::Sync OrderId %1 appointed* Time success--->>>>]").arg(orderObj->id); QLOG_INFO()<<QString("[<<<<---DB::Sync OrderId %1 appointed* Time success--->>>>]").arg(orderObj->id);
syncRet= 2; updateRet= 2;
} }
} else if ( orderObj->inAdvanceTakemeal != tempRemindTemplate.toInt() ) {
QSqlQuery updateQuery(m_sqlDb);
updateQuery.prepare(QString("update tb_msr_customer_info set appointed_remindTemplate='%1', appointed_time ='%4', reserve9='%5', reserve5='%2' "
" where order_id='%3' and order_status !=6")
.arg(QString::number(orderObj->inAdvanceTakemeal) + ";" + orderObj->reserveMakeTime)
.arg(orderObj->lastExpectDate).arg(orderObj->id).arg(orderObj->expectDate).arg(orderObj->privacyPhone) );
if(!updateQuery.exec()) {
QLOG_ERROR()<<updateQuery.lastError().text()<<QString("[<<<<---DB::Sync OrderId %1 appointed* Time Failed--->>>>]").arg(orderObj->id);
syncRet= 0;
} else { } else {
QLOG_INFO()<<QString("[<<<<---SqlServer Database:Sync OrderId %1 appointed* Time success--->>>>]").arg(orderObj->id); // orderObj->inAdvanceTakemea != 3 && orderObj->inAdvanceTakemeal != tempRemindTemplate.toInt() [ inAdvanceTakemea 与本地数据库中值一致 ]
syncRet= 2; updateRet= 1;
} }
// 内存中 inAdvanceTakemeal 标识 与 本地数据库中 标识不一致时,且 是修改预约时间时,需要插件弹框提醒; // 内存中 inAdvanceTakemeal 标识 与 本地数据库中 标识不一致时,且 是修改预约时间时,需要插件弹框提醒;
if ( 2 == orderObj->inAdvanceTakemeal ) { if ( 2 == orderObj->inAdvanceTakemeal && orderObj->inAdvanceTakemeal != tempRemindTemplate.toInt() ) {
QString warnMsg = QString::fromLocal8Bit("用户修改 %1 预约时间; 订单尾号: %2; 订单号: %3; 新预约时间: %4; 原预约时间: %5") QString warnMsg = QString::fromLocal8Bit("用户修改 %1 预约时间; 订单尾号: %2; 订单号: %3; 新预约时间: %4; 原预约时间: %5")
.arg( orderObj->channel ).arg( orderObj->id.mid(orderObj->id.length() - 5, 5) ).arg(orderObj->id) .arg( orderObj->channel ).arg( orderObj->id.mid(orderObj->id.length() - 5, 5) ).arg(orderObj->id)
.arg( orderObj->expectDate.mid(11,5) ).arg( orderObj->lastExpectDate.mid(11,5) ); .arg( orderObj->expectDate.mid(11,5) ).arg( orderObj->lastExpectDate.mid(11,5) );
...@@ -1157,60 +1154,61 @@ int PrintSumBillPosDB::syncOrderTimeInfo(OrderObject* orderObj) { ...@@ -1157,60 +1154,61 @@ int PrintSumBillPosDB::syncOrderTimeInfo(OrderObject* orderObj) {
} }
} else { } else {
// orderObj->inAdvanceTakemea != 3 && orderObj->inAdvanceTakemeal != tempRemindTemplate.toInt() [ inAdvanceTakemea 与本地数据库中值一致 ]
syncRet= 1;
}
} else {
// 订单-汇总小票表中无此订单记录: 没有销售单, 仅有退货单; // 订单-汇总小票表中无此订单记录: 没有销售单, 仅有退货单;
syncRet= 1; updateRet= 1;
} }
} }
m_sqlDb.close(); m_sqlDb.close();
return syncRet; return updateRet;
} }
int PrintSumBillPosDB::updateOrderDataToDB(OrderObject* orderObj, const QString &cloumnName) { int PrintSumBillPosDB::updateOrderDataToDB(OrderObject* orderObj, const QString &cloumnName) {
// 0: 更新失败; 1: 更新成功; 2: 更新成功; // 0: 更新失败; 1: 无需更新; 2: 更新成功;
int updateOrderTimeRet = 1; int updateOrderRet = 1;
if ("UpdateTimeAction"==cloumnName ) { if ("UpdateTimeAction"==cloumnName ) {
// 1、更新 预约当日订单的 "提前到店" 信息,避免出现 遗漏; // 1、同步预约当日订单的 "提前到店" 信息, 避免出现遗漏(删除条件 && orderObj->inAdvanceTakemeal);
if ( OrderObject::Refunded != orderObj->orderStatus && ( 7 == orderObj->orderType || 11 == orderObj->orderType ) && orderObj->inAdvanceTakemeal ) { if ( OrderObject::Refunded != orderObj->orderStatus && ( 7 == orderObj->orderType || 11 == orderObj->orderType ) ) {
updateOrderTimeRet = updateOrderTimeInfo(orderObj); updateOrderRet = updateOrderTimeInfo(orderObj);
QLOG_INFO()<<QString("[<<<<---updateOrderDataToDB OrderId: %1 ArriverAhead: %2 updateOrderTimeRet: %3 " QLOG_INFO()<<QString("[<<<<---updateOrderDataToDB OrderId: %1 ArriverAhead: %2 updateOrderRet: %3 "
" reserveMakeTime:%4 lastExpectDate:%5 expectDate:%6 remindTicketTime:%7 privacyPhone:%8 --->>>>]") " reserveMakeTime:%4 lastExpectDate:%5 expectDate:%6 remindTicketTime:%7 privacyPhone:%8 --->>>>]")
.arg(orderObj->id).arg(orderObj->inAdvanceTakemeal).arg(updateOrderTimeRet).arg(orderObj->reserveMakeTime).arg(orderObj->lastExpectDate) .arg(orderObj->id).arg(orderObj->inAdvanceTakemeal).arg(updateOrderRet).arg(orderObj->reserveMakeTime).arg(orderObj->lastExpectDate)
.arg(orderObj->expectDate).arg(orderObj->remindTicketTime).arg(orderObj->privacyPhone); .arg(orderObj->expectDate).arg(orderObj->remindTicketTime).arg(orderObj->privacyPhone);
} }
} else if ( "UpdatePhoneAction" ==cloumnName ) {
// 1、更新订单的隐私号信息, 避免出现遗漏;
if ( 7 == orderObj->orderType || 11 == orderObj->orderType ) {
updateOrderRet = updateOrderPhoneInfo(orderObj);
QLOG_INFO()<<QString("[<<<<---updateOrderDataToDB OrderId: %1 updateOrderRet: %2 privacyPhone:%3 --->>>>]")
.arg(orderObj->id).arg(updateOrderRet).arg(orderObj->privacyPhone);
}
} }
return updateOrderTimeRet; return updateOrderRet;
} }
bool PrintSumBillPosDB::updateOrderTimeInfo(OrderObject* orderObj) {
int PrintSumBillPosDB::updateOrderPhoneInfo(OrderObject* orderObj) {
QMutexLocker mutex(&m_mutex); QMutexLocker mutex(&m_mutex);
if(!m_sqlDb.open()) { if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SqlServer Database:Open Failed--->>>>]"<<m_sqlDb.lastError().text(); QLOG_ERROR()<<"[<<<<---SqlServer Database:Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false; return false;
} }
// False: 更新失败; True: 更新成功; // 0: 更新失败; 1:无需更新 2: 更新成功;
bool updateRet = false; int updateRet = 1;
QSqlQuery query(m_sqlDb); QSqlQuery query(m_sqlDb);
query.prepare(QString("update tb_msr_customer_info set appointed_remindTemplate='%1', appointed_time ='%4', reserve5='%2', reserve9='%6', reserve10='%5' " query.prepare(QString("update tb_msr_customer_info set reserve9='%2' where order_id='%1' ").arg(orderObj->id).arg(orderObj->privacyPhone) );
" where order_id='%3' and order_status !=6")
.arg(QString::number(orderObj->inAdvanceTakemeal) + ";" + orderObj->reserveMakeTime)
.arg(orderObj->lastExpectDate).arg(orderObj->id).arg(orderObj->expectDate).arg(orderObj->remindTicketTime).arg(orderObj->privacyPhone) );
if(!query.exec()) { if(!query.exec()) {
QLOG_ERROR()<<query.lastError().text()<<QString("[<<<<---SqlServer Database:update OrderId %1 appointed* Time Failed--->>>>]").arg(orderObj->id); QLOG_ERROR()<<query.lastError().text()<<QString("[<<<<---SqlServer Database:update OrderId %1 Phone* Failed--->>>>]").arg(orderObj->id);
updateRet= false; updateRet= 0;
} else { } else {
QLOG_INFO()<<QString("[<<<<---SqlServer Database:Update OrderId %1 appointed* Time success--->>>>]").arg(orderObj->id); QLOG_INFO()<<QString("[<<<<---SqlServer Database:Update OrderId %1 Phone* success--->>>>]").arg(orderObj->id);
updateRet = true; updateRet = 2;
} }
m_sqlDb.close(); m_sqlDb.close();
return updateRet; return updateRet;
} }
......
...@@ -88,13 +88,6 @@ public: ...@@ -88,13 +88,6 @@ public:
int syncOrderDataToDB(OrderObject* orderObj); int syncOrderDataToDB(OrderObject* orderObj);
/** /**
*功能: 根据订单对象 同步pos数据库中汇总单中的预约信息;
*参数:[1]订单对象指针
*返回: 0: 同步失败;1: 无需同步;2: 同步成功;
**/
int syncOrderTimeInfo(OrderObject* orderObj);
/**
*功能: 根据订单对象指针 更新pos本地数据库中数据; *功能: 根据订单对象指针 更新pos本地数据库中数据;
*参数:[1]订单对象指针 *参数:[1]订单对象指针
*返回: 0: 更新失败;1: 无需更新; 2: 更新成功; *返回: 0: 更新失败;1: 无需更新; 2: 更新成功;
...@@ -103,10 +96,18 @@ public: ...@@ -103,10 +96,18 @@ public:
/** /**
*功能: 根据订单对象 更新 pos数据库中汇总单中的预约信息; *功能: 根据订单对象 更新 pos数据库中汇总单中的预约信息;
*参数:[1]订单号 *参数:[1]订单号对象
*返回:true操作成功,false失败 *返回:0: 更新失败;1: 无需更新;2: 更新成功;
**/
int updateOrderTimeInfo(OrderObject* orderObj);
/**
*功能: 根据订单对象 更新 pos数据库中汇总单中的手机号信息;
*参数:[1]订单对象
*返回:0: 更新失败;1: 无需更新;2: 更新成功;
**/ **/
bool updateOrderTimeInfo(OrderObject* orderObj); int updateOrderPhoneInfo(OrderObject* orderObj);
/** /**
*功能: 根据订单ID 更新 pos本地数据库中汇总单状态信息; *功能: 根据订单ID 更新 pos本地数据库中汇总单状态信息;
......
...@@ -108,6 +108,8 @@ class OrderObject : public QObject ...@@ -108,6 +108,8 @@ class OrderObject : public QObject
Q_PROPERTY (QString remindTicketTime READ getRemindTicketTime WRITE setRemindTicketTime ) Q_PROPERTY (QString remindTicketTime READ getRemindTicketTime WRITE setRemindTicketTime )
Q_PROPERTY (QString carNumber READ getCarNumber WRITE setCarNumber) Q_PROPERTY (QString carNumber READ getCarNumber WRITE setCarNumber)
Q_PROPERTY (QString carColor READ getCarColor WRITE setCarColor)
Q_PROPERTY (QString carBrandModel READ getCarBrandModel WRITE setCarBrandModel)
Q_PROPERTY (QString privacyPhone READ getPrivacyPhone WRITE setPrivacyPhone) Q_PROPERTY (QString privacyPhone READ getPrivacyPhone WRITE setPrivacyPhone)
Q_PROPERTY (QString callBackUrl READ getCallBackUrl WRITE setCallBackUrl) Q_PROPERTY (QString callBackUrl READ getCallBackUrl WRITE setCallBackUrl)
Q_PROPERTY (bool skipPrint READ getSkipPrint WRITE setSkipPrint) Q_PROPERTY (bool skipPrint READ getSkipPrint WRITE setSkipPrint)
...@@ -257,6 +259,8 @@ public: ...@@ -257,6 +259,8 @@ public:
QString remindTicketTime; // 提醒小票时间 QString remindTicketTime; // 提醒小票时间
QString carNumber; // 车牌号 QString carNumber; // 车牌号
QString carColor; // 车颜色
QString carBrandModel; // 车-品牌车型
QString privacyPhone; // 隐私号 QString privacyPhone; // 隐私号
QString callBackUrl; // 为 Fulfillment Service 后多个OMS, 用于获取订单详情, 和汇报订单入机情况: 拉取订单详情成功时手动添加到订单json报文体中为了入机汇报接口; QString callBackUrl; // 为 Fulfillment Service 后多个OMS, 用于获取订单详情, 和汇报订单入机情况: 拉取订单详情成功时手动添加到订单json报文体中为了入机汇报接口;
bool skipPrint; // 上游推送的订单 是否跳过打印; bool skipPrint; // 上游推送的订单 是否跳过打印;
...@@ -559,6 +563,12 @@ public: ...@@ -559,6 +563,12 @@ public:
inline QString getCarNumber()const{return carNumber;} inline QString getCarNumber()const{return carNumber;}
inline void setCarNumber(const QString& v){carNumber = v;} inline void setCarNumber(const QString& v){carNumber = v;}
inline QString getCarColor()const{return carColor;}
inline void setCarColor(const QString& v){carColor = v;}
inline QString getCarBrandModel()const{return carBrandModel;}
inline void setCarBrandModel(const QString& v){carBrandModel = v;}
inline QString getPrivacyPhone()const{return privacyPhone;} inline QString getPrivacyPhone()const{return privacyPhone;}
inline void setPrivacyPhone(const QString& v){privacyPhone = v;} inline void setPrivacyPhone(const QString& v){privacyPhone = v;}
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <QList> #include <QList>
#include <QMap> #include <QMap>
#include <QProcess> #include <QProcess>
#include "windows.h"
#include <QThread> #include <QThread>
extern QThread workThread; extern QThread workThread;
...@@ -75,6 +76,65 @@ MainForm::~MainForm() ...@@ -75,6 +76,65 @@ MainForm::~MainForm()
} }
void MainForm::mouseMoveEvent(QMouseEvent *event)
{
if ((event->buttons()==Qt::LeftButton) && m_bMousePress)
{
QPoint moveAmount = event->globalPos() - m_lastMousePos;
m_absMove += moveAmount;
move(pos() + moveAmount);
m_lastMousePos = event->globalPos();
m_bMouseMove = true;
}
}
void MainForm::mousePressEvent(QMouseEvent *event)
{
if (event->button()==Qt::LeftButton) {
m_bMousePress = true;
m_lastMousePos = event->globalPos();
m_absMove = QPoint(0,0);
}
/*
if(event->button()==Qt::RightButton) {
sInfoThread.terminate();
workThread.terminate();
qApp->exit(-1);
QProcess::startDetached(qApp->applicationFilePath(), QStringList(qApp->applicationFilePath()));
}
*/
}
void MainForm::mouseReleaseEvent(QMouseEvent *event)
{
if (event->button()==Qt::LeftButton)
{
m_bMousePress = false;
}
m_bMouseMove = false;
int x = m_absMove.x();
int y = m_absMove.y();
int form_width_x = this->width();
int from_height_y = this->height();
QPoint point = this->pos();
QLOG_INFO()<<QString("MainForm current Position(x:%1,y:%2) absMove: m_x=%3,m_y=%4").arg( point.x() ).arg( point.y() ).arg(x).arg(y);
int nWidth = GetSystemMetrics(SM_CXSCREEN);
int nHeight = GetSystemMetrics(SM_CYSCREEN);
QLOG_INFO()<<QString::fromLocal8Bit("MainForm active_Range(x: 0~%1,y: 0~%2)").arg( nWidth - form_width_x ).arg( nHeight -from_height_y );
if( (point.x() + form_width_x/3) < 0 || (point.x() + form_width_x) > (nWidth - 40)
|| (point.y() + from_height_y/3) < 0 || (point.y() + from_height_y) > (nHeight - 60) ) {
int reset_x = point.x() - x;
int reset_y = point.y() - y;
QLOG_INFO()<<QString::fromLocal8Bit("MainForm OutRange, Reset Position Before Move (x:%1,y:%2)").arg( reset_x ).arg( reset_y );
this->move( QPoint( reset_x, reset_y ) );
} else {
// this->move( QPoint( point.x()+x, point.y()+y ) ); // No Need Move, mouseMoveEvent Trigger Move;
}
}
void MainForm::MyShow() void MainForm::MyShow()
{ {
#ifdef QT_DEBUG #ifdef QT_DEBUG
...@@ -125,8 +185,9 @@ void MainForm::MyShow() ...@@ -125,8 +185,9 @@ void MainForm::MyShow()
void MainForm::_Init() void MainForm::_Init()
{ {
this->setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); //this->setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
//this->showFullScreen(); this->setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::Tool);
QLOG_INFO()<<QString::fromLocal8Bit("MainForm _Init Size(width:%1,height:%2)").arg( this->width() ).arg( this->height() );
// 显示托盘 // 显示托盘
m_tray.show(); m_tray.show();
......
...@@ -35,8 +35,24 @@ public: ...@@ -35,8 +35,24 @@ public:
* 返回:NULL * 返回:NULL
* */ * */
void MyShow(); void MyShow();
protected:
void mouseMoveEvent(QMouseEvent * event);
void mousePressEvent(QMouseEvent * event);
void mouseReleaseEvent(QMouseEvent * event);
private: private:
Ui::MainForm *ui; Ui::MainForm *ui;
// 记录左键按下去后是否移动过
bool m_bMouseMove;
// 记录左键是否按下去
bool m_bMousePress;
// 拖动前鼠标坐标
QPoint m_lastMousePos;
// 此次拖动一共移动的距离
QPoint m_absMove;
// 时间定时器 // 时间定时器
QTimer m_timeTimer; QTimer m_timeTimer;
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
<number>10</number> <number>10</number>
</property> </property>
<item> <item>
<widget class="HeadFrame" name="mainFrmHead"> <widget class="QFrame" name="mainFrmHead">
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>16777215</width> <width>16777215</width>
...@@ -1480,12 +1480,6 @@ ...@@ -1480,12 +1480,6 @@
<extends>QLineEdit</extends> <extends>QLineEdit</extends>
<header location="global">clickedLineEdit.h</header> <header location="global">clickedLineEdit.h</header>
</customwidget> </customwidget>
<customwidget>
<class>HeadFrame</class>
<extends>QFrame</extends>
<header location="global">headframe.h</header>
<container>1</container>
</customwidget>
</customwidgets> </customwidgets>
<resources/> <resources/>
<connections> <connections>
......
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