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()
connect(this,&FlowControl::doRefundOrder,this,&FlowControl::_RefundOrder,Qt::BlockingQueuedConnection);
connect(this, &FlowControl::doLogin, this, &FlowControl::onGetNewStoreInfo,Qt::BlockingQueuedConnection);
/***打开Sql server express 数据库并登陆外卖插件***/
// /*
// 打开Sql server express 数据库并登陆外卖插件 //
SimProcOrderDB::getInstance();
m_initSimProcOrderDBRet = SimProcOrderDB::getInstance().initSimProcOrderDB();
/***打开SqlServer POS打印汇总信息本地数据库***/
// 打开SqlServer POS打印汇总信息本地数据库 //
PrintSumBillPosDB::getInstance();
m_initPrintSumBillPosDBRet = PrintSumBillPosDB::getInstance().initPrintSumBillPosDB();
/***打开SqlServer POS打印杯贴商品数据本地数据库***/
// 打开SqlServer POS打印杯贴商品数据本地数据库 //
PrintCupStickPosDB::getInstance();
m_initPrintCupStickPosDBRet = PrintCupStickPosDB::getInstance().initPrintCupStickPosDB();
/***打开SqlServer POS打印消息队列本地数据库***/
// 打开SqlServer POS打印消息队列本地数据库 //
PrintMsgQueueDB::getInstance();
m_initPrintMsgQueueDBRet = PrintMsgQueueDB::getInstance().initPrintMsgQueueDB();
/***打开SqlServer POS打印订单优惠明细数据本地数据库***/
// 打开SqlServer POS打印订单优惠明细数据本地数据库 //
PrintOrderPromotionDB::getInstance();
m_initPrintOrderPromotionDBRet = PrintOrderPromotionDB::getInstance().initPrintOrderPromotionDB();
/***打开SqlServer POS获取 当前用户 是否绑定钱箱+是否拥有退货权限 本地数据库***/
// 打开SqlServer POS获取 当前用户 是否绑定钱箱+是否拥有退货权限 本地数据库 //
GetCaboxAReAuth::getInstance();
m_initGetAuthPosDBRet = GetCaboxAReAuth::getInstance().initGetAuthPosDB();
/***打开SqlServer 用订单的全部去重Poskey校验 在POS本地数据库的有效性***/
// 打开SqlServer 用订单的全部去重Poskey校验 在POS本地数据库的有效性 //
CheckPoskeyExistPosDB::getInstance();
m_initCheckPoskeyExistPosDBRet = CheckPoskeyExistPosDB::getInstance().initCheckPoskeyExistPosDB();
/***打开SqlServer 存储上游推送的 通告消息 本地数据库***/
// 打开SqlServer 存储上游推送的 通告消息 本地数据库 //
SaveNoticeMsgDB::getInstance();
m_initSaveNoticeMsgDBRet = SaveNoticeMsgDB::getInstance().initSaveNoticeMsgDB();
// */
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)
}
// 3: 刷新订单 预约时间 & 制作时间 & 街送小票时间;
if ( 3 == orderObject->inAdvanceTakemeal ) {
if ( 3 == orderObject->inAdvanceTakemeal || oldArriveAhead != orderObject->inAdvanceTakemeal ) {
int updateOrderRet = PrintSumBillPosDB::getInstance().updateOrderDataToDB(orderObject, QString("UpdateTimeAction"));
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"));
QLOG_INFO() << QString("[<<<<---PrintSumBillPosDB.getInstance().updateOrderDataToDB orderId:%1 updateOrderRet:%2--->>>>]").arg(orderObject->id).arg(updateOrderRet);
if ( 2 == orderObject->inAdvanceTakemeal ) {
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->expectDate.mid(11,5) ).arg( orderObject->lastExpectDate.mid(11,5) );
emit showAlert(AlertForm::WARNNING, warnMsg );
}
}
/* // updateOrderDataToDB -> updateOrderTimeInfo()-> trigger show alert; [已经触发提示了;故此处注释此处代码]
if ( oldArriveAhead != orderObject->inAdvanceTakemeal && 2 == orderObject->inAdvanceTakemeal ) {
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->expectDate.mid(11,5) ).arg( orderObject->lastExpectDate.mid(11,5) );
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&
" 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, "
" pluginVersion, packageSku, thirdPartyOrderId, discountShopFee, packFee, packDiscount, deliveryFee, deliveryDiscount, "
" reserve8, reserve9, reserve10, reserve22, reserve23, reserve24 ) "
"VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? , ?, ?, ?, "
" ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?, ?, ? , ?, ?)" );
" reserve8, reserve9, reserve10, reserve11, reserve12, reserve22, reserve23, reserve24 ) "
"VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
" ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" );
query.addBindValue(posCheckNo.toInt()); // --小票号
query.addBindValue(orderObj->lastName); // --顾客-姓
query.addBindValue(orderObj->consigneeName); // --顾客-全名
......@@ -966,6 +966,8 @@ bool PrintSumBillPosDB::insertOrderSumBill(OrderObject* orderObj, const QString&
query.addBindValue(orderObj->carNumber); // Curbside-车牌号;
query.addBindValue(orderObj->privacyPhone); // 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->deliveryProvider); // 配送商家类型: 1:蜂鸟 2:美团;
query.addBindValue(orderObj->deliveryType); // 配送方式: 1: 二轮车 2: 四轮车 3: 美团无人机;
......@@ -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"
" orderPayType, sbkAppPayType, sbkAppPayValue, sbkAppRefundPayValue, orderTransFlowNo, orderRefundTransFlowNo, "
" 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,"
" %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(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("")
......@@ -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(orderObj->packDiscount).arg(orderObj->deliveryPrice).arg(orderObj->deliveryDiscount)
.arg(orderObj->carNumber).arg(orderObj->privacyPhone).arg(orderObj->remindTicketTime)
.arg(orderObj->carColor).arg(orderObj->carBrandModel)
.arg(orderObj->extendType).arg(orderObj->deliveryProvider).arg(orderObj->deliveryType);
} else {
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
int PrintSumBillPosDB::syncOrderDataToDB(OrderObject* orderObj) {
// 0: 同步失败;1: 无需同步;2: 同步成功;
int syncOrderTimeRet = 1;
// 1、同步 预约当日订单的 "提前到店" 信息,避免出现 遗漏;
if ( OrderObject::Refunded != orderObj->orderStatus && ( 7 == orderObj->orderType || 11 == orderObj->orderType ) && orderObj->inAdvanceTakemeal ) {
syncOrderTimeRet = syncOrderTimeInfo(orderObj);
QLOG_INFO()<<QString("[<<<<---syncOrderDataToDB OrderId: %1 ArriverAhead: %2 syncOrderTimeRet: %3 "
" reserveMakeTime:%4 lastExpectDate:%5 expectDate:%6 remindTicketTime:%7 --->>>>]")
.arg(orderObj->id).arg(orderObj->inAdvanceTakemeal).arg(syncOrderTimeRet).arg(orderObj->reserveMakeTime).arg(orderObj->lastExpectDate)
.arg(orderObj->expectDate).arg(orderObj->remindTicketTime);
int syncOrderRet = 1;
// 1、同步预约当日订单的 "提前到店" 信息, 避免出现遗漏(删除条件 && orderObj->inAdvanceTakemeal);
if ( OrderObject::Refunded != orderObj->orderStatus && ( 7 == orderObj->orderType || 11 == orderObj->orderType ) ) {
syncOrderRet = updateOrderTimeInfo(orderObj);
QLOG_INFO()<<QString("[<<<<---syncOrderDataToDB OrderId: %1 ArriverAhead: %2 syncOrderRet: %3 reserveMakeTime:%4 lastExpectDate:%5 expectDate:%6 "
" remindTicketTime:%7 privacyPhone:%8 --->>>>]")
.arg(orderObj->id).arg(orderObj->inAdvanceTakemeal).arg(syncOrderRet).arg(orderObj->reserveMakeTime).arg(orderObj->lastExpectDate)
.arg(orderObj->expectDate).arg(orderObj->remindTicketTime).arg(orderObj->privacyPhone);
}
// 2、同步其他......
return syncOrderTimeRet;
if ( orderObj->privacyPhone.length() ) {
syncOrderRet = updateOrderPhoneInfo(orderObj);
}
return syncOrderRet;
}
int PrintSumBillPosDB::syncOrderTimeInfo(OrderObject* orderObj) {
int PrintSumBillPosDB::updateOrderTimeInfo(OrderObject* orderObj) {
QMutexLocker mutex(&m_mutex);
// 0: 更新失败; 1:无需更新; 2: 更新成功;
int syncRet = 0;
int updateRet = 0;
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SqlServer Database:Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
......@@ -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));
if(!query.exec()) {
QLOG_ERROR()<<query.lastError().text()<<QString("[<<<<---SqlServer Database: select OrderId %1 appointed* Time Failed--->>>>]").arg(orderObj->id);
syncRet= 0;
updateRet= 0;
} else {
if ( query.first() && query.value(0).toString().length() ) {
QString tempRemindTemplate = query.value(0).toString().split(';').first();
if ( 3 == orderObj->inAdvanceTakemeal ) {
if ( 3 == orderObj->inAdvanceTakemeal || orderObj->inAdvanceTakemeal != tempRemindTemplate.toInt() ) {
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' "
......@@ -1125,92 +1131,84 @@ int PrintSumBillPosDB::syncOrderTimeInfo(OrderObject* orderObj) {
.arg(orderObj->lastExpectDate).arg(orderObj->id).arg(orderObj->expectDate).arg(orderObj->remindTicketTime).arg(orderObj->privacyPhone) );
if(!updateQuery.exec()) {
QLOG_ERROR()<<updateQuery.lastError().text()<<QString("[<<<<---DB::Sync OrderId %1 appointed* Time Failed--->>>>]").arg(orderObj->id);
syncRet= 0;
updateRet= 0;
} else {
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 {
QLOG_INFO()<<QString("[<<<<---SqlServer Database:Sync OrderId %1 appointed* Time success--->>>>]").arg(orderObj->id);
syncRet= 2;
}
} else {
// orderObj->inAdvanceTakemea != 3 && orderObj->inAdvanceTakemeal != tempRemindTemplate.toInt() [ inAdvanceTakemea 与本地数据库中值一致 ]
updateRet= 1;
}
// 内存中 inAdvanceTakemeal 标识 与 本地数据库中 标识不一致时,且 是修改预约时间时,需要插件弹框提醒;
if ( 2 == orderObj->inAdvanceTakemeal ) {
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->expectDate.mid(11,5) ).arg( orderObj->lastExpectDate.mid(11,5) );
// 内存中 inAdvanceTakemeal 标识 与 本地数据库中 标识不一致时,且 是修改预约时间时,需要插件弹框提醒;
if ( 2 == orderObj->inAdvanceTakemeal && orderObj->inAdvanceTakemeal != tempRemindTemplate.toInt() ) {
emit triggerFlowContrlAlert(AlertForm::WARNNING,warnMsg);
// Can't Emit Success; emit FlowControl::GetInstance().showAlert(AlertForm::WARNNING, warnMsg );
}
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->expectDate.mid(11,5) ).arg( orderObj->lastExpectDate.mid(11,5) );
} else {
// orderObj->inAdvanceTakemea != 3 && orderObj->inAdvanceTakemeal != tempRemindTemplate.toInt() [ inAdvanceTakemea 与本地数据库中值一致 ]
syncRet= 1;
emit triggerFlowContrlAlert(AlertForm::WARNNING,warnMsg);
// Can't Emit Success; emit FlowControl::GetInstance().showAlert(AlertForm::WARNNING, warnMsg );
}
} else {
// 订单-汇总小票表中无此订单记录: 没有销售单, 仅有退货单;
syncRet= 1;
updateRet= 1;
}
}
m_sqlDb.close();
return syncRet;
return updateRet;
}
int PrintSumBillPosDB::updateOrderDataToDB(OrderObject* orderObj, const QString &cloumnName) {
// 0: 更新失败; 1: 更新成功; 2: 更新成功;
int updateOrderTimeRet = 1;
// 0: 更新失败; 1: 无需更新; 2: 更新成功;
int updateOrderRet = 1;
if ("UpdateTimeAction"==cloumnName ) {
// 1、更新 预约当日订单的 "提前到店" 信息,避免出现 遗漏;
if ( OrderObject::Refunded != orderObj->orderStatus && ( 7 == orderObj->orderType || 11 == orderObj->orderType ) && orderObj->inAdvanceTakemeal ) {
updateOrderTimeRet = updateOrderTimeInfo(orderObj);
QLOG_INFO()<<QString("[<<<<---updateOrderDataToDB OrderId: %1 ArriverAhead: %2 updateOrderTimeRet: %3 "
// 1、同步预约当日订单的 "提前到店" 信息, 避免出现遗漏(删除条件 && orderObj->inAdvanceTakemeal);
if ( OrderObject::Refunded != orderObj->orderStatus && ( 7 == orderObj->orderType || 11 == orderObj->orderType ) ) {
updateOrderRet = updateOrderTimeInfo(orderObj);
QLOG_INFO()<<QString("[<<<<---updateOrderDataToDB OrderId: %1 ArriverAhead: %2 updateOrderRet: %3 "
" 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);
}
} 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);
if(!m_sqlDb.open()) {
QLOG_ERROR()<<"[<<<<---SqlServer Database:Open Failed--->>>>]"<<m_sqlDb.lastError().text();
return false;
}
// False: 更新失败; True: 更新成功;
bool updateRet = false;
// 0: 更新失败; 1:无需更新 2: 更新成功;
int updateRet = 1;
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' "
" 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) );
query.prepare(QString("update tb_msr_customer_info set reserve9='%2' where order_id='%1' ").arg(orderObj->id).arg(orderObj->privacyPhone) );
if(!query.exec()) {
QLOG_ERROR()<<query.lastError().text()<<QString("[<<<<---SqlServer Database:update OrderId %1 appointed* Time Failed--->>>>]").arg(orderObj->id);
updateRet= false;
QLOG_ERROR()<<query.lastError().text()<<QString("[<<<<---SqlServer Database:update OrderId %1 Phone* Failed--->>>>]").arg(orderObj->id);
updateRet= 0;
} else {
QLOG_INFO()<<QString("[<<<<---SqlServer Database:Update OrderId %1 appointed* Time success--->>>>]").arg(orderObj->id);
updateRet = true;
QLOG_INFO()<<QString("[<<<<---SqlServer Database:Update OrderId %1 Phone* success--->>>>]").arg(orderObj->id);
updateRet = 2;
}
m_sqlDb.close();
return updateRet;
}
......
......@@ -88,13 +88,6 @@ public:
int syncOrderDataToDB(OrderObject* orderObj);
/**
*功能: 根据订单对象 同步pos数据库中汇总单中的预约信息;
*参数:[1]订单对象指针
*返回: 0: 同步失败;1: 无需同步;2: 同步成功;
**/
int syncOrderTimeInfo(OrderObject* orderObj);
/**
*功能: 根据订单对象指针 更新pos本地数据库中数据;
*参数:[1]订单对象指针
*返回: 0: 更新失败;1: 无需更新; 2: 更新成功;
......@@ -103,10 +96,18 @@ public:
/**
*功能: 根据订单对象 更新 pos数据库中汇总单中的预约信息;
*参数:[1]订单号
*返回:true操作成功,false失败
*参数:[1]订单号对象
*返回:0: 更新失败;1: 无需更新;2: 更新成功;
**/
int updateOrderTimeInfo(OrderObject* orderObj);
/**
*功能: 根据订单对象 更新 pos数据库中汇总单中的手机号信息;
*参数:[1]订单对象
*返回:0: 更新失败;1: 无需更新;2: 更新成功;
**/
bool updateOrderTimeInfo(OrderObject* orderObj);
int updateOrderPhoneInfo(OrderObject* orderObj);
/**
*功能: 根据订单ID 更新 pos本地数据库中汇总单状态信息;
......
......@@ -108,6 +108,8 @@ class OrderObject : public QObject
Q_PROPERTY (QString remindTicketTime READ getRemindTicketTime WRITE setRemindTicketTime )
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 callBackUrl READ getCallBackUrl WRITE setCallBackUrl)
Q_PROPERTY (bool skipPrint READ getSkipPrint WRITE setSkipPrint)
......@@ -257,6 +259,8 @@ public:
QString remindTicketTime; // 提醒小票时间
QString carNumber; // 车牌号
QString carColor; // 车颜色
QString carBrandModel; // 车-品牌车型
QString privacyPhone; // 隐私号
QString callBackUrl; // 为 Fulfillment Service 后多个OMS, 用于获取订单详情, 和汇报订单入机情况: 拉取订单详情成功时手动添加到订单json报文体中为了入机汇报接口;
bool skipPrint; // 上游推送的订单 是否跳过打印;
......@@ -559,6 +563,12 @@ public:
inline QString getCarNumber()const{return carNumber;}
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 void setPrivacyPhone(const QString& v){privacyPhone = v;}
......
......@@ -9,6 +9,7 @@
#include <QList>
#include <QMap>
#include <QProcess>
#include "windows.h"
#include <QThread>
extern QThread workThread;
......@@ -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()
{
#ifdef QT_DEBUG
......@@ -125,8 +185,9 @@ void MainForm::MyShow()
void MainForm::_Init()
{
this->setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
//this->showFullScreen();
//this->setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
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();
......
......@@ -35,8 +35,24 @@ public:
* 返回:NULL
* */
void MyShow();
protected:
void mouseMoveEvent(QMouseEvent * event);
void mousePressEvent(QMouseEvent * event);
void mouseReleaseEvent(QMouseEvent * event);
private:
Ui::MainForm *ui;
// 记录左键按下去后是否移动过
bool m_bMouseMove;
// 记录左键是否按下去
bool m_bMousePress;
// 拖动前鼠标坐标
QPoint m_lastMousePos;
// 此次拖动一共移动的距离
QPoint m_absMove;
// 时间定时器
QTimer m_timeTimer;
......
......@@ -36,7 +36,7 @@
<number>10</number>
</property>
<item>
<widget class="HeadFrame" name="mainFrmHead">
<widget class="QFrame" name="mainFrmHead">
<property name="maximumSize">
<size>
<width>16777215</width>
......@@ -1480,12 +1480,6 @@
<extends>QLineEdit</extends>
<header location="global">clickedLineEdit.h</header>
</customwidget>
<customwidget>
<class>HeadFrame</class>
<extends>QFrame</extends>
<header location="global">headframe.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<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