Commit b174e683 by wuyang.zou

《PcsPlugin》

<1> 将通过 Fulfillment 服务推送PCS插件的 EC-OMS订单的 callbackUrl 同步存储给 PCS系统;【Pad操作订单状态变更, 测试通过】

<2> PCS插件将 EC-MOP 订单的 supplyChainSku 同步存储 PCS系统 【Pad展示,测试通过】

<3> PCS插件 支持 EC-WECHAT_MOP 渠道订单转换【上游未开通,无需测试】
parent 16c60a45
......@@ -517,6 +517,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
orderObject->globalOrderType = 0;
orderObject->isGiftitForward = 0 ;
orderObject->callBackUrl = "";
orderObject->pcsCallbackUrl = "";
orderObject->FromJson(jsonObject);
orderObject->pushOrderType=0;
......@@ -1505,7 +1506,7 @@ void FlowControl::_ReportOMSRecordOrderInfo()
sendJson.insert(JSON_POS_WORKS_NUM, m_posWorkstationNum);
sendJson.insert(JSON_POS_HOST_NAME, m_posHostName);
sendJson.insert(JSON_POS_MAC_ADDRESS, m_posMacAddress);
// sendJson.insert(JSON_POS_PLUGIN_VERSION, RepOMSRecOrderIn->posPluginVersion);
sendJson.insert(JSON_PCS_PLUGIN_VERSION, APP_VERSION );
sendJson.insert(JSON_PMSMACHINENO,m_pmsMachineNo);
sendJson.insert(JSON_TCP_DEVICE_TYPE , "pcsPlugin");
......
......@@ -22,6 +22,7 @@ bool PmsOrdersData::initPmsOrdersData() {
bool supportTransact = m_sqlDb.driver()->hasFeature(QSqlDriver::Transactions);
QLOG_INFO()<<"[<<<<---PmsOrdersData driver is valid and supportTransact: --->>>>]"<< supportTransact;
m_puginInitUrl = ConfigManger::GetInstance().GetLoginServerUrl();
m_sqlDbIp = ConfigManger::GetInstance().GetMysqlIpConfig();
m_sqlDbPassword = ConfigManger::GetInstance().GetMysqlPasswordConfig();
m_sqlDb.setHostName( m_sqlDbIp.length() ? m_sqlDbIp :"127.0.0.1" ); //连接数据库主机名,这里需要注意(若填的为”127.0.0.1“,出现不能连接,则改为localhost)
......@@ -205,13 +206,13 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
"is_package, last_pay_time, address_latitude, address_longitude, oms_msrno, consumer_birthday, cancel_reason, confirm_time,customer_id,customer_gender,"
"way_bill_id,store_id,store_name,store_address,store_street, pos_id, lang, ext_info, rider_phone, rider_name, "
"displateform_fee, make_status, make_source, make_device_id,reserve_type, appointed_time,appointed_remind_template,sub_store_id, "
"global_order_type,global_service_type,platform_source ) "
"global_order_type,global_service_type,platform_source,callback_url ) "
"VALUES(?, ?, ?, ?, ?,?, ?, ?, ?, ?, "
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?,"
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" );
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" );
query.addBindValue(orderObj->id); // --非码OMS订单号
query.addBindValue(orderObj->id); // --非码OMS订单号
......@@ -221,6 +222,7 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
QString tempChannel = ("WSG-MOD"==orderObj->channel) ? "MOD" : orderObj->channel;
tempChannel = ( "WSG-MOP" == tempChannel || "MT-MOP" == tempChannel ) ? "MOP" : tempChannel;
tempChannel = ( "EC_WECHAT_MOP" == tempChannel ) ? "EC-MOP" : tempChannel; // EC_WECHAT_MOP: 电商微信MOP 需转换 电商MOP;
query.addBindValue(tempChannel); // --订单渠道
query.addBindValue(orderObj->orderType); // --订单类型
......@@ -304,6 +306,15 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
query.addBindValue( orderObj->globalOrderType ); // --全链路订单类型
query.addBindValue( orderObj->globalServiceType); // --全链路服务类型
query.addBindValue( orderObj->platformSource); // --平台来源枚举值
// Origin: orderObj->callBackUrl : https://o2ofulfillment.stg.starbucks.net/fulfillment/pos
// Dest: orderObj->pcsCallbackUrl : https://o2ofulfillment.stg.starbucks.net/fulfillment/pcs/order/pms/callback
QString tempPcsCallbackUrl = "";
if ( orderObj->callBackUrl.length() ) { // callBackUrl 如果是空值 还是需要 插件使用 目前地址进行拼接;
tempPcsCallbackUrl = orderObj->callBackUrl.mid(0, orderObj->callBackUrl.length() - 3) + "pcs/order/pms/callback";
} else {
tempPcsCallbackUrl = m_puginInitUrl.mid(0, m_puginInitUrl.length() - 4) + "pcs/order/pms/callback";
}
query.addBindValue( tempPcsCallbackUrl ); // --平台来源枚举值 //PCS系统拼接的 callback_url
if(!query.exec()) {
QLOG_ERROR()<<"[<<<<---PmsOrdersData::insertOrderData:Insert Order Error--->>>>]"<<query.lastError().text()
......@@ -317,11 +328,11 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
"last_pay_time, address_latitude, address_longitude, oms_msrno, consumer_birthday, cancel_reason, "
"confirm_time,customer_id,customer_gender,way_bill_id,store_id,store_name,store_address,store_street, "
"pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee, make_status, make_source, make_device_id,"
" reserve_type, appointed_time,appointed_remind_template,sub_store_id,global_order_type,global_service_type,platform_source ) "
" reserve_type, appointed_time,appointed_remind_template,sub_store_id,global_order_type,global_service_type,platform_source,callback_url ) "
"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)")
.arg(orderObj->id).arg(orderObj->id).arg(orderObj->orderStatus).arg(updateTimeString).arg(orderObj->channel)
"%41, %42, %43, %44, %45, %46, %47, %48, %49, %50, %51, %52, %53, %54,%55,%56,%57,%58,%59,%60,%61,%62)")
.arg(orderObj->id).arg(orderObj->id).arg(orderObj->orderStatus).arg(updateTimeString).arg( tempChannel )
.arg(orderObj->orderType).arg(tempOrderTypeId)
.arg(orderObj->pickupCode).arg(orderObj->totalPrice * 0.01).arg(orderObj->productPrice * 0.01).arg(orderObj->orderDiscount * 0.01)
.arg("").arg(orderObj->invoiceUrl).arg("").arg(orderObj->thirdPartyOrderId).arg(orderObj->orderIndex)
......@@ -335,7 +346,7 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
.arg("").arg(orderObj->lang).arg(orderObj->memo).arg(orderObj->riderPhone).arg(orderObj->riderName)
.arg(orderObj->disPlateformFee * 0.01).arg(orderObj->makeStatus).arg(orderObj->makeSource).arg(orderObj->makeDeviceId)
.arg( tempBusinessType ).arg(orderObj->expectDate).arg( QString::number(orderObj->inAdvanceTakemeal) + ";" + orderObj->reserveMakeTime )
.arg(orderObj->subStoreId).arg(orderObj->globalOrderType).arg(orderObj->globalServiceType).arg(orderObj->platformSource);
.arg(orderObj->subStoreId).arg(orderObj->globalOrderType).arg(orderObj->globalServiceType).arg(orderObj->platformSource).arg( tempPcsCallbackUrl );
} else {
QLOG_INFO()<<QString("[<<<<---PmsOrdersData::insertOrderData:Insert OrderId %1 Into PMS Order Success--->>>>]").arg(orderObj->id);
......@@ -432,8 +443,8 @@ bool PmsOrdersData::insertProductData(const QList<dishesObject*> proList, const
QSqlQuery query(m_sqlDb);
query.prepare("INSERT INTO order_items(order_id,product_id, product_code, product_name, en_product_name, product_qty, item_total,"
"spec_id, spec_name, en_spec_name, price, promotion_name, promotion_price, promotion_qty, promotion_sku,"
"package_price, default_image, prod_owner) "
"VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
"package_price, default_image, prod_owner, sku_id ) "
"VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
query.addBindValue(OrderId); // --非码OMS订单号
query.addBindValue(dishesObjectTemp->id); // --主商品ID
query.addBindValue(dishesObjectTemp->code); // --主商品code
......@@ -453,6 +464,7 @@ bool PmsOrdersData::insertProductData(const QList<dishesObject*> proList, const
query.addBindValue(dishesObjectTemp->defaultImage); // --主商品默认图片
// (默认主商品的拼单人 拆字) 拆口令分配的字 |#| 拼单人昵称 例:"世" |#| "Kernel(邹伍洋)" 分割符为: "|#|"
query.addBindValue(dishesObjectTemp->userName + ( dishesObjectTemp->wechatName.length() ? "|#|" + dishesObjectTemp->wechatName : "" ) ); // 拆字 + 微信昵称
query.addBindValue(dishesObjectTemp->supplyChainSku); // --EC-MOP主商品 SKU Code;
if(!query.exec()) {
QLOG_ERROR()<<QString("[<<<<---PmsOrdersData::insertProductData:Insert OrderId %1 Product code:%2 Failed --->>>>]")
......@@ -460,13 +472,14 @@ bool PmsOrdersData::insertProductData(const QList<dishesObject*> proList, const
<<query.lastError().text()<<QString::number(query.lastError().type());
QLOG_ERROR()<<QString("INSERT INTO order_items(order_id,order_item_id, product_id, product_name, en_product_name, product_qty,"
" item_total,spec_id, spec_name, en_spec_name, price, promotion_name, promotion_price, promotion_qty,"
" promotion_sku, package_price, default_image, prod_owner) "
"VALUES(%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18)")
" promotion_sku, package_price, default_image, prod_owner, sku_id) "
"VALUES(%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18, %19)")
.arg(OrderId).arg(dishesObjectTemp->id).arg(dishesObjectTemp->code).arg(dishesObjectTemp->name)
.arg("").arg(dishesObjectTemp->qty).arg(0).arg(dishesObjectTemp->specId).arg(dishesObjectTemp->specName)
.arg("").arg(dishesObjectTemp->price * 0.01).arg(dishesObjectTemp->promotionName).arg(dishesObjectTemp->promotionPrice * 0.01)
.arg(dishesObjectTemp->promotionQty).arg(dishesObjectTemp->promotionSku).arg(dishesObjectTemp->packagePrice * 0.01).arg("")
.arg(dishesObjectTemp->userName + ( dishesObjectTemp->wechatName.length() ? "|#|" + dishesObjectTemp->wechatName : "" ) );
.arg(dishesObjectTemp->userName + ( dishesObjectTemp->wechatName.length() ? "|#|" + dishesObjectTemp->wechatName : "" ) )
.arg(dishesObjectTemp->supplyChainSku);
} else {
ProInIdRef = query.lastInsertId().toString();
QLOG_INFO()<<QString("[<<<<---PmsOrdersData::insertOrderProductData:Insert OrderId %1 Product Success code:%2 increaseId:%3--->>>>]")
......
......@@ -112,6 +112,7 @@ private:
QString m_sqlDbIp;
QString m_sqlDbPassword;
QString m_puginInitUrl; // PcsPlugin Configure File Login Url Part;
signals:
......
......@@ -12,6 +12,7 @@ class dishesObject : public QObject
Q_PROPERTY (QString specId READ getspecId WRITE setspecId)
Q_PROPERTY (QString name READ getname WRITE setname)
Q_PROPERTY (QString enProductName READ getEnProductName WRITE setEnProductName)
Q_PROPERTY (QString supplyChainSku READ getSupplyChainSku WRITE setSupplyChainSku)
Q_PROPERTY (QString specName READ getspecName WRITE setspecName)
Q_PROPERTY (QString enSpecificationName READ getEnSpecificationName WRITE setEnSpecificationName)
Q_PROPERTY (QString defaultImage READ getDefaultImage WRITE setDefaultImage)
......@@ -44,6 +45,7 @@ public:
QString id = "";
QString name = "";
QString enProductName = ""; //英文版商品名称;
QString supplyChainSku; // EC-MOP 渠道订单商品的SKU
QString specId = "";
QString specName = "";
QString enSpecificationName = ""; //英文版规格名称;
......@@ -85,6 +87,9 @@ protected:
inline QString getEnProductName(){ return enProductName; }
inline void setEnProductName(const QString& v){ enProductName = v; }
inline QString getSupplyChainSku(){ return supplyChainSku; }
inline void setSupplyChainSku(const QString& v){ supplyChainSku = v; }
inline int getprice(){ return price; }
inline void setprice(const int& v){ price = v; }
......
......@@ -210,7 +210,7 @@ QString OrderObject::getChannelName()
return QString::fromLocal8Bit("美团-MOP");
}
} else if ( "EC-MOP" == channel ){
} else if ( "EC-MOP" == channel || "EC_WECHAT_MOP" == channel ) {
return QString::fromLocal8Bit("电商MOP");
}else{
......
......@@ -104,6 +104,7 @@ class OrderObject : public QObject
Q_PROPERTY (QString carNumber READ getCarNumber WRITE setCarNumber)
Q_PROPERTY (QString privacyPhone READ getPrivacyPhone WRITE setPrivacyPhone)
Q_PROPERTY (QString callBackUrl READ getCallBackUrl WRITE setCallBackUrl)
Q_PROPERTY (QString pcsCallbackUrl READ getPcsCallbackUrl WRITE setPcsCallbackUrl)
public:
OrderObject(QObject *parent=0)
......@@ -217,6 +218,7 @@ public:
QString carNumber; // 车牌号
QString privacyPhone; // 隐私号
QString callBackUrl; // 为阿里云配置新域名, 用于获取订单详情, 和汇报订单入机情况: 拉取订单详情成功时手动添加到订单json报文体中为了入机汇报接口;
QString pcsCallbackUrl; // 为走 O2O Fufillment Service 链路的EC-OMS新系统, PCS门店 Pad上操作订单状态变更 请求正确的 Url 地址;
int deliveryStatus = 0;
int payStatus = 0;
......@@ -500,6 +502,8 @@ public:
inline QString getCallBackUrl()const{return callBackUrl;}
inline void setCallBackUrl(const QString& v){callBackUrl = v;}
inline QString getPcsCallbackUrl()const{return pcsCallbackUrl;}
inline void setPcsCallbackUrl(const QString& v){pcsCallbackUrl = v;}
};
#endif // ORDEROBJECT_H
......@@ -259,12 +259,12 @@ void DetailForm::InitData(OrderObject *orderObject)
ui->detailBtn2->hide();
}
//星巴克:客诉单/MOP渠道/ORS渠道,不能显示退单按钮;
if(3 == orderObject->getOrderType() || "MOP" == orderObject->channel || "ORS" == orderObject->channel){
if(3 == orderObject->getOrderType() || "MOP" == orderObject->channel || "MT-MOP" == orderObject->channel || "ORS" == orderObject->channel) {
ui->detailBtn2->hide();
}
//星巴克:电商-MOP 需要显示退单按钮(便于 当日退 / 跨日退);
if ( "EC-MOP" == orderObject->channel && OrderObject::Refunded != orderObject->orderStatus ) {
if ( ( "EC-MOP" == orderObject->channel || "EC_WECHAT_MOP" == orderObject->channel ) && OrderObject::Refunded != orderObject->orderStatus ) {
ui->detailBtn2->show();
}
......
......@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico"
#endif
VS_VERSION_INFO VERSIONINFO
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
FILEVERSION 4,2022,4,11
PRODUCTVERSION 4,2022,4,11
FILEVERSION 4,2022,4,28
PRODUCTVERSION 4,2022,4,28
//*************************************************************************//
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
......@@ -31,8 +31,8 @@ VS_VERSION_INFO VERSIONINFO
VALUE "OriginalFilename", "PmsPlugin.exe"
VALUE "ProductName", "PMS Plugin"
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
VALUE "ProductVersion", "4.2022.4.11"
VALUE "FileVersion", "4.2022.4.11"
VALUE "ProductVersion", "4.2022.4.28"
VALUE "FileVersion", "4.2022.4.28"
//*************************************************************************//
END
END
......
......@@ -464,7 +464,7 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
pBtn->setObjectName("mainProcBtn");
pBtn->setProperty("orderId", orderObject->id);
//pBtn->setProperty("operation", table->property("operation").toString());
if("MOP" == orderObject->channel){
if ( "MOP" == orderObject->channel || "MT-MOP" == orderObject->channel || "EC-MOP" == orderObject->channel || "EC_WECHAT_MOP" == orderObject->channel ) {
pBtn->setText(QString::fromLocal8Bit("请扫码通知"));
}else{
pBtn->setText(QString::fromLocal8Bit("请扫码配送"));
......
......@@ -17,7 +17,8 @@
//#define APP_VERSION "4.2021.5.10"
//#define APP_VERSION "4.2021.12.10"
//#define APP_VERSION "4.2022.3.3"
#define APP_VERSION "4.2022.4.11"
//#define APP_VERSION "4.2022.4.11"
#define APP_VERSION "4.2022.4.28"
//修正版本号时,切记修正 FmTakeout.rc 中的版本号
#define SERVER_PASSWORD "posoperator@freemud.cn"
......@@ -113,7 +114,9 @@
#define JSON_DATA "data"
#define JSON_POSVERSION "pos_version"
#define JSON_PLUGINVERSION "version"
#define JSON_PCS_PLUGIN_VERSION "posVersion"
#define JSON_PLUGINVERSIONCOMMENTS "versionComments"
#define JSON_SYNCSTORESTATUS "syncStoreStatus"
#define JSON_ORDERS "orders"
#define JSON_COUNT "count"
......
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