541 lines
30 KiB
C#
541 lines
30 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Transmission.SDK;
|
|
|
|
namespace TransmissionClient
|
|
{
|
|
public class OrderOnline
|
|
{
|
|
/// <summary>
|
|
/// 订单状态
|
|
/// </summary>
|
|
public enum OrderState
|
|
{
|
|
/// <summary>
|
|
/// 待支付
|
|
/// </summary>
|
|
PendingPay = 1005,
|
|
/// <summary>
|
|
/// 已支付
|
|
/// </summary>
|
|
AlreadyPaid = 1010,
|
|
/// <summary>
|
|
/// 已接收
|
|
/// </summary>
|
|
Received = 1090,
|
|
/// <summary>
|
|
/// 制作中
|
|
/// </summary>
|
|
Making = 2000,
|
|
/// <summary>
|
|
/// 待提取
|
|
/// </summary>
|
|
Extract = 2010,
|
|
/// <summary>
|
|
/// 已完成
|
|
/// </summary>
|
|
Completed = 3000
|
|
}
|
|
|
|
#region 方法 -> 同步订单状态至本地
|
|
/// <summary>
|
|
/// 本地订单状态同步
|
|
/// </summary>
|
|
/// <param name="serviceIP">订单接口IP</param>
|
|
/// <param name="servicePort">订单接口端口</param>
|
|
/// <param name="serverPartCode">服务区编码</param>
|
|
/// <param name="shopCode">门店编码</param>
|
|
/// <param name="provinceCode">省份编码</param>
|
|
/// <returns></returns>
|
|
public static OnlineTransferResult OrderBillStateUpdate(OracleHelper oracleHelper,
|
|
string serviceURL, string serverPartCode, string provinceCode = "330000")
|
|
{
|
|
OnlineTransferResult transferResult = new OnlineTransferResult();
|
|
try
|
|
{
|
|
string _strURL = $"{serviceURL}/MobileServicePlatform/Handler/handler_ajax.ashx";
|
|
string _strPostData = $"action_type=GetOrderBillInfo&action_data={provinceCode}" +
|
|
$"&SERVERPART_CODE={serverPartCode}&SALEBILL_STATE=2000,3000" +
|
|
$"&ORDER_DATE={DateTime.Today.AddDays(-1).ToString("yyyyMMddHHmmss")}" +
|
|
$"&SALEBILL_TYPE=6000";
|
|
string _Result = HttpDataHelper.OnPost(_strURL, _strPostData);
|
|
if (_Result != "")
|
|
{
|
|
_Result = _Result.Replace(" ", "");
|
|
using (DataTable _DataTable = JsonHelper.JsonToDataSet(_Result).Tables[0])
|
|
{
|
|
List<string> _UpdateList = new List<string>();
|
|
if (_DataTable.Rows.Count > 0)
|
|
{
|
|
int _MinId = 0;
|
|
try
|
|
{
|
|
_MinId = int.Parse(_DataTable.Compute("MIN(SALEBILL_ID)", "").ToString());
|
|
}
|
|
catch
|
|
{
|
|
_MinId = 0;
|
|
}
|
|
DataTable _SaleBill = oracleHelper.ExcuteSqlGetDataSet(
|
|
$@"SELECT SALEBILL_ID,SALEBILL_CODE
|
|
FROM HIGHWAY_EXCHANGE.T_SALEBILL
|
|
WHERE SALEBILL_ID >= {_MinId} AND
|
|
SERVERPART_CODE = '{serverPartCode}' ").Tables[0];
|
|
if (_DataTable.Rows.Count > 0)
|
|
{
|
|
for (int i = 0; i < _DataTable.Rows.Count; i++)
|
|
{
|
|
if (_SaleBill.Select("SALEBILL_ID = '" + _DataTable.Rows[i]["SALEBILL_ID"].ToString() +
|
|
"' AND SALEBILL_CODE = '" + _DataTable.Rows[i]["SALEBILL_CODE"].ToString() + "'").Count() > 0)
|
|
{
|
|
_UpdateList.Add($@"UPDATE HIGHWAY_EXCHANGE.T_SALEBILL
|
|
SET SALEBILL_STATE = {_DataTable.Rows[i]["SALEBILL_STATE"].ToString()}
|
|
WHERE SALEBILL_ID = '{_DataTable.Rows[i]["SALEBILL_ID"].ToString()}' AND
|
|
SALEBILL_STATE < {_DataTable.Rows[i]["SALEBILL_STATE"].ToString()}");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (_UpdateList.Count > 0)
|
|
{
|
|
oracleHelper.ExecuteSqlTran(_UpdateList);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch { }
|
|
return transferResult;
|
|
}
|
|
#endregion
|
|
|
|
#region 方法 -> 线上订单批量下载
|
|
/// <summary>
|
|
/// 线上订单批量下载
|
|
/// </summary>
|
|
/// <param name="serviceIP"></param>
|
|
/// <param name="servicePort"></param>
|
|
/// <param name="serverPartCode"></param>
|
|
/// <param name="shopCode"></param>
|
|
/// <param name="provinceCode"></param>
|
|
/// <returns></returns>
|
|
public static OnlineTransferResult OrderBillDown(OracleHelper oracleHelper,
|
|
string serviceURL, string serverPartCode, string provinceCode = "330000")
|
|
{
|
|
OnlineTransferResult transferResult = new OnlineTransferResult();
|
|
System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
|
|
stopwatch.Start();
|
|
try
|
|
{
|
|
string _strURL = $"{serviceURL}/MobileServicePlatform/Handler/handler_ajax.ashx";
|
|
string _strPostData = $"action_type=GetOrderBillInfo&action_data={provinceCode}" +
|
|
$"&SERVERPART_CODE={serverPartCode}&SALEBILL_STATE=1010" +
|
|
$"&ORDER_DATE={DateTime.Today.AddDays(-1).ToString("yyyyMMddHHmmss")}" +
|
|
$"&SALEBILL_TYPE=6000";
|
|
|
|
string _Result = HttpDataHelper.OnPost(_strURL, _strPostData);
|
|
if (_Result != "")
|
|
{
|
|
_Result = _Result.Replace(" ", "");
|
|
using (DataTable _DataTable = JsonHelper.JsonToDataSet(_Result).Tables[0])
|
|
{
|
|
transferResult.TotalCount = _DataTable.Rows.Count;
|
|
List<string> _InsertList = new List<string>();
|
|
if (_DataTable.Rows.Count > 0)
|
|
{
|
|
int _MinId = 0;
|
|
try
|
|
{
|
|
_MinId = int.Parse(_DataTable.Compute("MIN(SALEBILL_ID)", "").ToString());
|
|
}
|
|
catch
|
|
{
|
|
_MinId = 0;
|
|
}
|
|
DataTable _SaleBill = oracleHelper.ExcuteSqlGetDataSet(
|
|
$@"SELECT SALEBILL_ID,SALEBILL_CODE,
|
|
SALEBILL_STATE,MACHINECODE,MAKE_DATE
|
|
FROM HIGHWAY_EXCHANGE.T_SALEBILL
|
|
WHERE SALEBILL_ID >= {_MinId} AND
|
|
SERVERPART_CODE = '{serverPartCode}' ").Tables[0];
|
|
string _strSaleBillValues = "";
|
|
|
|
for (int i = 0; i < _DataTable.Rows.Count; i++)
|
|
{
|
|
if ((i + 1) % 50 == 0 && _strSaleBillValues != "")
|
|
{
|
|
_InsertList.Add($"INSERT ALL {_strSaleBillValues} SELECT * FROM DUAL");
|
|
_strSaleBillValues = "";
|
|
}
|
|
DataRow[] _DataRowList = _SaleBill.Select("SALEBILL_ID = '" + _DataTable.Rows[i]["SALEBILL_ID"].ToString() +
|
|
"' AND SALEBILL_CODE = '" + _DataTable.Rows[i]["SALEBILL_CODE"].ToString() + "'");
|
|
if (_DataRowList.Count() == 0)
|
|
{
|
|
List<string> _OrderDetailList = OrderDetailDown(oracleHelper, serviceURL,
|
|
_DataTable.Rows[i]["SALEBILL_ID"].ToString(), _DataTable.Rows[i]["SALEBILL_CODE"].ToString());
|
|
if (_OrderDetailList != null && _OrderDetailList.Count > 0)
|
|
{
|
|
_InsertList = _InsertList.Concat(_OrderDetailList).ToList();
|
|
}
|
|
else
|
|
{
|
|
transferResult.FailCount++;
|
|
continue;
|
|
}
|
|
transferResult.SuccessCount++;
|
|
string SALEBILL_ID = _DataTable.Rows[i]["SALEBILL_ID"].ToString();
|
|
string SALEBILL_CODE = _DataTable.Rows[i]["SALEBILL_CODE"].ToString();
|
|
string MEMBERSHIP_ID = _DataTable.Rows[i]["MEMBERSHIP_ID"].ToString();
|
|
string SALEBILL_TYPE = _DataTable.Rows[i]["SALEBILL_TYPE"].ToString();
|
|
string TABLE_NUMBER = _DataTable.Rows[i]["TABLE_NUMBER"].ToString();
|
|
string TAKE_TYPE = _DataTable.Rows[i]["TAKE_TYPE"].ToString();
|
|
string PROVINCE_CODE = _DataTable.Rows[i]["PROVINCE_CODE"].ToString();
|
|
string SERVERPART_ID = _DataTable.Rows[i]["SERVERPART_ID"].ToString();
|
|
string SERVERPART_CODE = _DataTable.Rows[i]["SERVERPART_CODE"].ToString();
|
|
string SERVERPART_NAME = _DataTable.Rows[i]["SERVERPART_NAME"].ToString();
|
|
string SERVERPARTSHOP_ID = _DataTable.Rows[i]["SERVERPARTSHOP_ID"].ToString();
|
|
string SHOPCODE = _DataTable.Rows[i]["SHOPCODE"].ToString();
|
|
string SHOPNAME = _DataTable.Rows[i]["SHOPNAME"].ToString();
|
|
string ORDER_PERSON = _DataTable.Rows[i]["ORDER_PERSON"].ToString();
|
|
string ORDER_PERSONTEL = _DataTable.Rows[i]["ORDER_PERSONTEL"].ToString();
|
|
string ORDER_DATE = _DataTable.Rows[i]["ORDER_DATE"].ToString();
|
|
string RESERVATION_DATE = _DataTable.Rows[i]["RESERVATION_DATE"].ToString();
|
|
string RECORD_COUNT = _DataTable.Rows[i]["RECORD_COUNT"].ToString();
|
|
string TOTAL_COUNT = _DataTable.Rows[i]["TOTAL_COUNT"].ToString();
|
|
string ORDER_AMOUNT = _DataTable.Rows[i]["ORDER_AMOUNT"].ToString();
|
|
string SALEBILL_STATE = _DataTable.Rows[i]["SALEBILL_STATE"].ToString();
|
|
string SALEBILL_DESC = _DataTable.Rows[i]["SALEBILL_DESC"].ToString();
|
|
string WECHAT_OPENID = _DataTable.Rows[i]["WECHAT_OPENID"].ToString();
|
|
string WECHAT_UNIONID = _DataTable.Rows[i]["WECHAT_UNIONID"].ToString();
|
|
string COUPON_AMOUNT = _DataTable.Rows[i]["COUPON_AMOUNT"].ToString();
|
|
string PAY_AMOUNT = _DataTable.Rows[i]["PAY_AMOUNT"].ToString();
|
|
string COUPON_ID = _DataTable.Rows[i]["COUPON_ID"].ToString();
|
|
string COUPON_SEND_ID = _DataTable.Rows[i]["COUPON_SEND_ID"].ToString();
|
|
string CHANNEL_TYPE = _DataTable.Rows[i]["CHANNEL_TYPE"].ToString();
|
|
string PACK_TYPE = _DataTable.Rows[i]["PACK_TYPE"].ToString();
|
|
string PACK_AMOUNT = _DataTable.Rows[i]["PACK_AMOUNT"].ToString();
|
|
_strSaleBillValues += $@" INTO HIGHWAY_EXCHANGE.T_SALEBILL
|
|
(SALEBILL_ID,SALEBILL_CODE,MEMBERSHIP_ID,SALEBILL_TYPE,
|
|
TABLE_NUMBER,TAKE_TYPE,PROVINCE_CODE,SERVERPART_ID,
|
|
SERVERPART_CODE,SERVERPART_NAME,SERVERPARTSHOP_ID,
|
|
SHOPCODE,SHOPNAME,ORDER_PERSON,ORDER_PERSONTEL,
|
|
ORDER_DATE,RESERVATION_DATE,RECORD_COUNT,TOTAL_COUNT,
|
|
ORDER_AMOUNT,SALEBILL_STATE,SALEBILL_DESC,WECHAT_OPENID,
|
|
WECHAT_UNIONID,COUPON_AMOUNT,PAY_AMOUNT,COUPON_ID,
|
|
COUPON_SEND_ID,CHANNEL_TYPE,PACK_TYPE,PACK_AMOUNT )
|
|
VALUES ({SALEBILL_ID},'{SALEBILL_CODE}',
|
|
{(MEMBERSHIP_ID == "" ? "NULL" : MEMBERSHIP_ID)},
|
|
{(SALEBILL_TYPE == "" ? "NULL" : SALEBILL_TYPE)},
|
|
'{TABLE_NUMBER}',{(TAKE_TYPE == "" ? "NULL" : TAKE_TYPE)},
|
|
{(PROVINCE_CODE == "" ? "NULL" : PROVINCE_CODE)},
|
|
{(SERVERPART_ID == "" ? "NULL" : SERVERPART_ID)},
|
|
'{SERVERPART_CODE}','{SERVERPART_NAME}',
|
|
{(SERVERPARTSHOP_ID == "" ? "NULL" : SERVERPARTSHOP_ID)},
|
|
'{SHOPCODE}','{SHOPNAME}','{ORDER_PERSON}','{ORDER_PERSONTEL}',
|
|
{(ORDER_DATE == "" ? "NULL" : $"TO_DATE('{ORDER_DATE}','YYYY/MM/DD HH24:MI:SS')")},
|
|
{(RESERVATION_DATE == "" ? "NULL" : $"TO_DATE('{RESERVATION_DATE}','YYYY/MM/DD HH24:MI:SS')")},
|
|
{(RECORD_COUNT == "" ? "NULL" : RECORD_COUNT)},
|
|
{(TOTAL_COUNT == "" ? "NULL" : TOTAL_COUNT)},
|
|
{(ORDER_AMOUNT == "" ? "NULL" : ORDER_AMOUNT)},
|
|
{SALEBILL_STATE},'{SALEBILL_DESC}','{WECHAT_OPENID}','{WECHAT_UNIONID}',
|
|
{(COUPON_AMOUNT == "" ? "NULL" : COUPON_AMOUNT)},
|
|
{(PAY_AMOUNT == "" ? "NULL" : PAY_AMOUNT)},
|
|
{(COUPON_ID == "" ? "NULL" : COUPON_ID)},
|
|
{(COUPON_SEND_ID == "" ? "NULL" : COUPON_SEND_ID)},
|
|
{(CHANNEL_TYPE == "" ? "NULL" : CHANNEL_TYPE)},
|
|
{(PACK_TYPE == "" ? "NULL" : PACK_TYPE)},
|
|
{(PACK_AMOUNT == "" ? "NULL" : PACK_AMOUNT)})";
|
|
}
|
|
else
|
|
{
|
|
transferResult.FilterCount++;
|
|
if (int.Parse(_DataRowList[0]["SALEBILL_STATE"].ToString()) >
|
|
int.Parse(_DataTable.Rows[i]["SALEBILL_STATE"].ToString()))
|
|
{
|
|
DateTime _MakeDate;
|
|
if (!DateTime.TryParse(_DataRowList[0]["MAKE_DATE"].ToString(), out _MakeDate))
|
|
{
|
|
_MakeDate = DateTime.Now;
|
|
}
|
|
OrderStateChange(serviceURL, _DataRowList[0]["MACHINECODE"].ToString(),
|
|
int.Parse(_DataRowList[0]["SALEBILL_ID"].ToString()), int.Parse(_DataRowList[0]["SALEBILL_STATE"].ToString()), _MakeDate);
|
|
}
|
|
}
|
|
if ((i + 1) == _DataTable.Rows.Count && _strSaleBillValues != "")
|
|
{
|
|
_InsertList.Add($"INSERT ALL {_strSaleBillValues} SELECT * FROM DUAL");
|
|
_strSaleBillValues = "";
|
|
}
|
|
}
|
|
}
|
|
if (_InsertList.Count > 0)
|
|
{
|
|
oracleHelper.ExecuteSqlTran(_InsertList);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
transferResult.SuccessCount = 0;
|
|
transferResult.FilterCount = 0;
|
|
transferResult.FailCount = transferResult.TotalCount;
|
|
LogHelper.WriteServiceLog("在线订单下载失败:" + ex.Message);
|
|
}
|
|
stopwatch.Stop();
|
|
transferResult.TotalSeconds = stopwatch.Elapsed.TotalSeconds;//这里是输出的总运行秒数,精确到毫秒的
|
|
|
|
return transferResult;
|
|
}
|
|
#endregion
|
|
|
|
#region 方法 -> 订单详情下载
|
|
/// <summary>
|
|
/// 订单详情下载
|
|
/// </summary>
|
|
/// <param name="serviceIP"></param>
|
|
/// <param name="servicePort"></param>
|
|
/// <param name="SaleBillID"></param>
|
|
/// <param name="SaleBillCode"></param>
|
|
/// <returns></returns>
|
|
public static List<string> OrderDetailDown(OracleHelper oracleHelper,
|
|
string serviceURL, string SaleBillID, string SaleBillCode)
|
|
{
|
|
string _Result = "";
|
|
List<string> _InsertList = new List<string>();
|
|
|
|
try
|
|
{
|
|
string _strURL = $"{serviceURL}/MobileServicePlatform/Handler/handler_ajax.ashx";
|
|
string _strPostData = $"action_type=GetOrderDetail&action_data={SaleBillID}";
|
|
|
|
_Result = HttpDataHelper.OnPost(_strURL, _strPostData);
|
|
if (_Result != "")
|
|
{
|
|
_Result = _Result.Replace(" ", "");
|
|
using (DataTable _DataTable = JsonHelper.JsonToDataSet(_Result).Tables[0])
|
|
{
|
|
if (_DataTable.Rows.Count > 0)
|
|
{
|
|
int _MinId = 0;
|
|
try
|
|
{
|
|
_MinId = int.Parse(_DataTable.Compute("MIN(SALEDETAIL_ID)", "").ToString());
|
|
}
|
|
catch
|
|
{
|
|
_MinId = 0;
|
|
}
|
|
DataTable _SaleDetail = oracleHelper.ExcuteSqlGetDataSet(
|
|
$@"SELECT SALEDETAIL_ID,SALEBILL_ID
|
|
FROM HIGHWAY_EXCHANGE.T_SALEDETAIL
|
|
WHERE SALEDETAIL_ID >= {_MinId}").Tables[0];
|
|
string _strSaleDetailValues = "";
|
|
for (int i = 0; i < _DataTable.Rows.Count; i++)
|
|
{
|
|
if ((i + 1) % 50 == 0 && _strSaleDetailValues != "")
|
|
{
|
|
_InsertList.Add("INSERT ALL " + _strSaleDetailValues + " SELECT * FROM DUAL");
|
|
_strSaleDetailValues = "";
|
|
}
|
|
if (_SaleDetail.Select("SALEDETAIL_ID = " + _DataTable.Rows[i]["SALEDETAIL_ID"].ToString() +
|
|
" AND SALEBILL_ID = " + _DataTable.Rows[i]["SALEBILL_ID"].ToString()).Count() == 0)
|
|
{
|
|
string SALEDETAIL_ID = _DataTable.Rows[i]["SALEDETAIL_ID"].ToString();
|
|
string SALEBILL_ID = _DataTable.Rows[i]["SALEBILL_ID"].ToString();
|
|
string PROVINCE_CODE = _DataTable.Rows[i]["PROVINCE_CODE"].ToString();
|
|
string COMMODITY_ID = _DataTable.Rows[i]["COMMODITY_ID"].ToString();
|
|
string COMMODITY_CODE = _DataTable.Rows[i]["COMMODITY_CODE"].ToString();
|
|
string COMMODITY_NAME = _DataTable.Rows[i]["COMMODITY_NAME"].ToString();
|
|
string COMMODITY_BARCODE = _DataTable.Rows[i]["COMMODITY_BARCODE"].ToString();
|
|
string COMMODITY_UNIT = _DataTable.Rows[i]["COMMODITY_UNIT"].ToString();
|
|
string COMMODITY_RULE = _DataTable.Rows[i]["COMMODITY_RULE"].ToString();
|
|
string ORDER_COUNT = _DataTable.Rows[i]["ORDER_COUNT"].ToString();
|
|
string AVERAGE_PRICE = _DataTable.Rows[i]["AVERAGE_PRICE"].ToString();
|
|
string DISCOUNT_AMOUNT = _DataTable.Rows[i]["DISCOUNT_AMOUNT"].ToString();
|
|
string ORDER_AMOUNT = _DataTable.Rows[i]["ORDER_AMOUNT"].ToString();
|
|
string SALEDETAIL_DESC = _DataTable.Rows[i]["SALEDETAIL_DESC"].ToString();
|
|
|
|
_strSaleDetailValues += $@" INTO HIGHWAY_EXCHANGE.T_SALEDETAIL
|
|
( SALEDETAIL_ID,SALEBILL_ID,PROVINCE_CODE,COMMODITY_ID,
|
|
COMMODITY_CODE,COMMODITY_NAME,COMMODITY_BARCODE,
|
|
COMMODITY_UNIT,COMMODITY_RULE,ORDER_COUNT,AVERAGE_PRICE,
|
|
DISCOUNT_AMOUNT,ORDER_AMOUNT,SALEDETAIL_DESC )
|
|
VALUES ( {SALEDETAIL_ID},{SALEBILL_ID},{(PROVINCE_CODE == "" ? "NULL" : PROVINCE_CODE)},
|
|
{(COMMODITY_ID == "" ? "NULL" : COMMODITY_ID)},'{COMMODITY_CODE}',
|
|
'{COMMODITY_NAME}','{COMMODITY_BARCODE}','{COMMODITY_UNIT}',
|
|
'{COMMODITY_RULE}',{(ORDER_COUNT == "" ? "0" : ORDER_COUNT)},
|
|
{(AVERAGE_PRICE == "" ? "0" : AVERAGE_PRICE)},
|
|
{(DISCOUNT_AMOUNT == "" ? "0" : DISCOUNT_AMOUNT)},
|
|
{(ORDER_AMOUNT == "" ? "0" : ORDER_AMOUNT)},'{SALEDETAIL_DESC}' ) ";
|
|
}
|
|
if ((i + 1) == _DataTable.Rows.Count && _strSaleDetailValues != "")
|
|
{
|
|
_InsertList.Add("INSERT ALL " + _strSaleDetailValues + " SELECT * FROM DUAL");
|
|
_strSaleDetailValues = "";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch { }
|
|
|
|
if (_InsertList.Count > 0)
|
|
{
|
|
return _InsertList;
|
|
}
|
|
else
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 方法 -> 在线订单状态批量上传
|
|
/// <summary>
|
|
/// 在线订单状态批量上传
|
|
/// </summary>
|
|
/// <param name="oracleHelper">本地订单数据库连接</param>
|
|
/// <param name="serviceIP">线上订单服务地址</param>
|
|
/// <param name="servicePort">线上订单服务端口</param>
|
|
/// <param name="serverPartCode">待上传服务区</param>
|
|
/// <param name="provinceCode">待上传省份</param>
|
|
/// <returns></returns>
|
|
public static OnlineTransferResult OrderBillUpload(OracleHelper oracleHelper,
|
|
string serviceURL, string serverPartCode, string provinceCode = "330000")
|
|
{
|
|
OnlineTransferResult transferResult = new OnlineTransferResult();
|
|
System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
|
|
stopwatch.Start();
|
|
try
|
|
{
|
|
DataTable _SaleBillTbale = oracleHelper.ExcuteSqlGetDataSet(
|
|
$@"SELECT SALEBILL_ID,SALEBILL_CODE,
|
|
SALEBILL_STATE,MACHINECODE,MAKE_DATE
|
|
FROM HIGHWAY_EXCHANGE.T_SALEBILL
|
|
WHERE SALEBILL_STATE IN ( 2000,3000 ) AND PROVINCE_CODE = {provinceCode} AND
|
|
SERVERPART_CODE = '{serverPartCode}' AND NVL(TRANSFER_STATE,0) = 0").Tables[0];
|
|
transferResult.TotalCount = _SaleBillTbale.Rows.Count;
|
|
for (int i = 0; i < _SaleBillTbale.Rows.Count; i++)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(_SaleBillTbale.Rows[i]["MAKE_DATE"].ToString()))
|
|
{
|
|
if (OrderStateChange(serviceURL, _SaleBillTbale.Rows[i]["MACHINECODE"].ToString(),
|
|
int.Parse(_SaleBillTbale.Rows[i]["SALEBILL_ID"].ToString()),
|
|
int.Parse(_SaleBillTbale.Rows[i]["SALEBILL_STATE"].ToString()), null))
|
|
{
|
|
oracleHelper.ExecuteSqlTran(
|
|
$@"UPDATE HIGHWAY_EXCHANGE.T_SALEBILL
|
|
SET TRANSFER_STATE = 9
|
|
WHERE SALEBILL_ID = {_SaleBillTbale.Rows[i]["SALEBILL_ID"].ToString()}");
|
|
transferResult.SuccessCount++;
|
|
}
|
|
else
|
|
{
|
|
transferResult.FailCount++;
|
|
}
|
|
}
|
|
else if (OrderStateChange(serviceURL, _SaleBillTbale.Rows[i]["MACHINECODE"].ToString(),
|
|
int.Parse(_SaleBillTbale.Rows[i]["SALEBILL_ID"].ToString()),
|
|
int.Parse(_SaleBillTbale.Rows[i]["SALEBILL_STATE"].ToString()),
|
|
DateTime.Parse(_SaleBillTbale.Rows[i]["MAKE_DATE"].ToString())))
|
|
{
|
|
oracleHelper.ExecuteSqlTran(
|
|
$@"UPDATE HIGHWAY_EXCHANGE.T_SALEBILL
|
|
SET TRANSFER_STATE = 9
|
|
WHERE SALEBILL_ID = {_SaleBillTbale.Rows[i]["SALEBILL_ID"].ToString()}");
|
|
transferResult.SuccessCount++;
|
|
}
|
|
else
|
|
{
|
|
transferResult.FailCount++;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.WriteServiceLog("在线订单状态上传失败:" + ex.Message);
|
|
transferResult.SuccessCount = 0;
|
|
transferResult.FilterCount = 0;
|
|
transferResult.FailCount = transferResult.TotalCount;
|
|
}
|
|
stopwatch.Stop();
|
|
transferResult.TotalSeconds = stopwatch.Elapsed.TotalSeconds;//这里是输出的总运行秒数,精确到毫秒的
|
|
|
|
return transferResult;
|
|
}
|
|
#endregion
|
|
|
|
#region 方法 -> 订单状态变更上传
|
|
/// <summary>
|
|
/// 订单状态变更上传
|
|
/// </summary>
|
|
/// <param name="serviceIP">线上订单服务地址</param>
|
|
/// <param name="servicePort">线上订单服务端口</param>
|
|
/// <param name="machineCode">接单收银机号</param>
|
|
/// <param name="saleBillID">线上订单内码</param>
|
|
/// <param name="orderState">待上传订单状态</param>
|
|
/// <param name="printTime">订单打印时间</param>
|
|
/// <returns></returns>
|
|
public static bool OrderStateChange(string serviceURL,
|
|
string machineCode, int saleBillID, int orderState, DateTime? printTime)
|
|
{
|
|
try
|
|
{
|
|
string _strURL = $"{serviceURL}/MobileServicePlatform/Handler/handler_ajax.ashx";
|
|
string _strPostData = $"action_type=MachineUpdateOrderState" +
|
|
$"&action_data={saleBillID}&SALEBILL_STATE={orderState}&MACHINECODE={machineCode}" +
|
|
$"&PRINTDATE={((printTime == null || printTime.Value == DateTime.MinValue) ? "" : printTime.Value.ToString())}";
|
|
string _Result = HttpDataHelper.OnPost(_strURL, _strPostData);
|
|
_Result = _Result.Replace(" ", "");
|
|
Newtonsoft.Json.Linq.JObject _JObject = Newtonsoft.Json.Linq.JObject.Parse(_Result);
|
|
if (_JObject.Property("error") != null && _JObject.Property("error").Value.ToString() == "1")
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.WriteServiceLog("在线订单状态变更失败:" + ex.Message);
|
|
return false;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 传输结果
|
|
/// </summary>
|
|
public class OnlineTransferResult
|
|
{
|
|
/// <summary>
|
|
/// 传输总数
|
|
/// </summary>
|
|
public int TotalCount { get; set; }
|
|
/// <summary>
|
|
/// 成功总数
|
|
/// </summary>
|
|
public int SuccessCount { get; set; }
|
|
/// <summary>
|
|
/// 失败总数
|
|
/// </summary>
|
|
public int FailCount { get; set; }
|
|
/// <summary>
|
|
/// 过滤总数
|
|
/// </summary>
|
|
public int FilterCount { get; set; }
|
|
/// <summary>
|
|
/// 总耗时
|
|
/// </summary>
|
|
public double TotalSeconds { get; set; }
|
|
}
|
|
}
|
|
}
|