650 lines
27 KiB
C#
650 lines
27 KiB
C#
using System;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using System.Configuration;
|
||
using Transmission.SDK;
|
||
using Transmission.SDK.ThreadPool;
|
||
|
||
namespace DataTransferClient
|
||
{
|
||
public class ConfigThread : IConfigInterface
|
||
{
|
||
#region 参数变量
|
||
protected string TransferTimes = ConfigurationManager.AppSettings["TransferTimes"];
|
||
|
||
/// <summary>
|
||
/// 表名集合
|
||
/// </summary>
|
||
private Hashtable tableNameList = null; //表名集合
|
||
/// <summary>
|
||
/// 表注解集合
|
||
/// </summary>
|
||
private Hashtable tableDescList = null;
|
||
/// <summary>
|
||
/// 查询表所有数据SQL集合
|
||
/// </summary>
|
||
private Hashtable allDataSql = null; //查询表所有数据SQL集合
|
||
/// <summary>
|
||
/// 表对应创建时间字段名
|
||
/// </summary>
|
||
private Hashtable createDateName = null; //表对应创建时间字段名
|
||
/// <summary>
|
||
/// 表对应主键值
|
||
/// </summary>
|
||
private Hashtable tableDatas = null; //表对应主键值
|
||
/// <summary>
|
||
/// 本地需要修改的状态字段名称
|
||
/// </summary>
|
||
private Hashtable stateNames = null; //本地需要修改的状态字段名称
|
||
/// <summary>
|
||
/// 线程上传、下发启动时间比例
|
||
/// </summary>
|
||
private Hashtable timeList = null; //线程上传、下发启动时间比例
|
||
/// <summary>
|
||
/// 上传批量传输最大数据量
|
||
/// </summary>
|
||
private Hashtable maxDataQuantityList = null; //上传批量传输最大数据量
|
||
/// <summary>
|
||
/// 服务区编码
|
||
/// </summary>
|
||
private string serverpartcode = null; //SERVERPARTCODE 服务区编码
|
||
/// <summary>
|
||
/// 是否使用替换字段名
|
||
/// </summary>
|
||
private bool isReplaceColumnName = false; //是否使用替换字段名
|
||
/// <summary>
|
||
/// 默认最大上传天数
|
||
/// </summary>
|
||
private int endaccounttimes = 0; //ENDACCOUNTTIMES 默认最大上传天数
|
||
|
||
protected string _SALEDATE = ConfigurationManager.AppSettings["SALEDATE"];//流水节点
|
||
|
||
protected string _ServerPartCode = ConfigurationManager.AppSettings["SERVERPARTCODE"];//服务区编码
|
||
|
||
#endregion
|
||
|
||
/// <summary>
|
||
/// 需要传输的表及传输类型
|
||
/// 上传:TOP
|
||
/// 下载:DOWN
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
private Hashtable getTableNameList()
|
||
{
|
||
Hashtable _TableNameList = new Hashtable
|
||
{
|
||
#region 上传部分
|
||
//服务区门店信息表
|
||
{ "Platform_Data.T_SERVERPARTSHOP", "TOP" },
|
||
//商品列表表
|
||
{ "Platform_Data.T_CommodityType", "TOP"},
|
||
//商品信息表
|
||
{ "Platform_Data.T_Commodity", "TOP"},
|
||
//日结营收表
|
||
{ "Platform_Data.T_Revenue", "TOP"},
|
||
//现场稽核表
|
||
{ "Platform_Data.T_Check", "TOP"},
|
||
//销售流水表
|
||
{ "Platform_Data.T_Sales", "TOP"},
|
||
//销售流水明细表
|
||
{ "Platform_Data.T_SalesDetail", "TOP"}
|
||
#endregion
|
||
};
|
||
return _TableNameList;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 传输表时间间隔比例
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
private Hashtable getTimeList()
|
||
{
|
||
Hashtable _TimeList = new Hashtable
|
||
{
|
||
#region 上传部分
|
||
//服务区门店信息表
|
||
{ "Platform_Data.T_SERVERPARTSHOP", 0 },
|
||
//商品列表表
|
||
{ "Platform_Data.T_CommodityType", 0},
|
||
//商品信息表
|
||
{ "Platform_Data.T_Commodity", 0},
|
||
//日结营收表
|
||
{ "Platform_Data.T_Revenue", 0},
|
||
//现场稽核表
|
||
{ "Platform_Data.T_Check", 0 },
|
||
//销售流水表
|
||
{ "Platform_Data.T_Sales", 0},
|
||
//销售流水明细表
|
||
{ "Platform_Data.T_SalesDetail", 0},
|
||
#endregion
|
||
};
|
||
return _TimeList;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 传输表数据读取方式
|
||
/// </summary>
|
||
/// 数据格式:{接收端表名,发送端查询语句}
|
||
/// <returns></returns>
|
||
private Hashtable getAllDataSql()
|
||
{
|
||
return new Hashtable()
|
||
{
|
||
#region 上传部分
|
||
|
||
#region 服务区门店信息表
|
||
{
|
||
"Platform_Data.T_SERVERPARTSHOP", string.Format(
|
||
@"SELECT
|
||
A.SERVERPARTSHOP_ID,B.SPREGIONTYPE_NAME AS REGION_NAME,
|
||
B.SERVERPART_NAME,A.SHOPNAME AS SERVERPARTSHOP_NAME,
|
||
CASE WHEN A.BUSINESS_STATE = 1000 THEN '在营业' ELSE '已关闭' END AS BUSINESS_STATE,
|
||
A.OPERATE_DATE AS CREATE_DATE,A.OPERATE_DATE AS TRANSFER_DATE
|
||
FROM
|
||
HIGHWAY_STORAGE.T_SERVERPARTSHOP A,
|
||
HIGHWAY_STORAGE.T_SERVERPART B
|
||
WHERE
|
||
A.Serverpart_ID = B.Serverpart_ID AND
|
||
TRUNC(A.OPERATE_DATE) {0}", TransferTimes == "1" ? "= TRUNC(SYSDATE) - 1" :
|
||
"BETWEEN TRUNC(SYSDATE) - " + TransferTimes + " AND TRUNC(SYSDATE) - 1")
|
||
},
|
||
#endregion
|
||
|
||
#region 商品类别表
|
||
{
|
||
"Platform_Data.T_CommodityType", string.Format(
|
||
@"SELECT
|
||
A.COMMODITYTYPE_ID,A.COMMODITYTYPE_NAME,
|
||
A.COMMODITYTYPE_PID,A.COMMODITYTYPE_CODE,
|
||
CASE WHEN A.COMMODITYTYPE_VALID = 1 THEN '有效' ELSE '无效' END AS COMMODITYTYPE_STATE,
|
||
A.OPERATE_DATE AS CREATE_DATE,A.OPERATE_DATE AS TRANSFER_DATE
|
||
FROM
|
||
HIGHWAY_STORAGE.T_COMMODITYTYPE A
|
||
WHERE
|
||
TRUNC(A.OPERATE_DATE) {0}", TransferTimes == "1" ? "= TRUNC(SYSDATE) - 1" :
|
||
"BETWEEN TRUNC(SYSDATE) - " + TransferTimes + " AND TRUNC(SYSDATE) - 1")
|
||
},
|
||
#endregion
|
||
|
||
#region 商品信息表
|
||
{
|
||
"Platform_Data.T_Commodity", string.Format(
|
||
@"SELECT
|
||
SERVERPARTSHOP_ID,SERVERPART_NAME,SERVERPARTSHOP_NAME,
|
||
COMMODITYTYPE_ID,COMMODITYTYPE_NAME,COMMODITY_NAME,
|
||
COMMODITY_BARCODE,COMMODITY_UNIT,COMMODITY_RULE,
|
||
COMMODITY_RETAILPRICE,COMMODITY_PURCHASEPRICE,
|
||
COMMODITY_STATE,CREATE_DATE,TRANSFER_DATE
|
||
FROM
|
||
(
|
||
SELECT
|
||
B.SERVERPARTSHOP_ID,C.SERVERPART_NAME,B.SHOPNAME AS SERVERPARTSHOP_NAME,
|
||
D.COMMODITYTYPE_ID,D.COMMODITYTYPE_NAME,A.COMMODITY_NAME,
|
||
A.COMMODITY_BARCODE,A.COMMODITY_UNIT,A.COMMODITY_RULE,
|
||
A.COMMODITY_RETAILPRICE,A.COMMODITY_PURCHASEPRICE,
|
||
CASE WHEN A.COMMODITY_STATE = 1 THEN '有效' ELSE '无效' END AS COMMODITY_STATE,
|
||
A.ADDTIME AS CREATE_DATE,A.OPERATE_DATE AS TRANSFER_DATE,
|
||
ROW_NUMBER()OVER(PARTITION BY B.SERVERPARTSHOP_ID,A.COMMODITY_BARCODE
|
||
ORDER BY A.OPERATE_DATE DESC) AS COLNUM
|
||
FROM
|
||
HIGHWAY_STORAGE.T_COMMODITY A,
|
||
HIGHWAY_STORAGE.T_SERVERPARTSHOP B,
|
||
HIGHWAY_STORAGE.T_SERVERPART C,
|
||
HIGHWAY_STORAGE.T_COMMODITYTYPE D
|
||
WHERE
|
||
A.SERVERPART_ID = C.SERVERPART_ID AND TO_CHAR(A.BUSINESSTYPE) = B.SHOPTRADE AND
|
||
B.SERVERPART_ID = C.SERVERPART_ID AND A.COMMODITY_TYPE = TO_CHAR(D.COMMODITYTYPE_ID) AND
|
||
TRUNC(A.OPERATE_DATE) {0}
|
||
)
|
||
WHERE COLNUM = 1", TransferTimes == "1" ? "= TRUNC(SYSDATE) - 1" :
|
||
"BETWEEN TRUNC(SYSDATE) - " + TransferTimes + " AND TRUNC(SYSDATE) - 1")
|
||
},
|
||
#endregion
|
||
|
||
#region 日结营收表
|
||
{
|
||
"Platform_Data.T_Revenue", string.Format(
|
||
@"SELECT
|
||
B.SERVERPARTSHOP_ID,A.SERVERPART_NAME,B.SHOPNAME AS SERVERPARTSHOP_NAME,A.ENDACCOUNT_DATE AS STATISTICS_DATE,
|
||
CASE WHEN A.VALID = 0 THEN 0 ELSE A.CASHPAY END AS REVENUE_AMOUNT,
|
||
A.TICKETCOUNT,A.TOTALCOUNT,A.TOTALSELLAMOUNT AS TOTALAMOUNT,A.TOTALOFFAMOUNT AS TOTALDISCOUNT,
|
||
A.CASH AS CASHPAY,A.CREDITCARD AS BANKPAY,A.TICKETBILL AS WECHATPAY,A.OTHERPAY AS ALIPAY,
|
||
NVL(A.COSTBILL,0) + NVL(A.VIPPERSON,0) AS OTHERPAY,
|
||
A.CASHPAY_DOWNLORD AS CASHPAYMENT,A.DIFFERENT_PRICE AS DIFFERENTAMOUNT,
|
||
A.DOWNLOAD_DATE AS CREATE_DATE,A.DESCRIPTION_DATE AS TRANSFER_DATE
|
||
FROM
|
||
HIGHWAY_SELLDATA.T_ENDACCOUNT A,
|
||
HIGHWAY_STORAGE.T_SERVERPARTSHOP B
|
||
WHERE
|
||
A.SERVERPART_ID = B.SERVERPART_ID AND A.SHOPCODE = B.SHOPCODE AND
|
||
TRUNC(A.DESCRIPTION_DATE) {0}
|
||
UNION ALL
|
||
SELECT
|
||
B.SERVERPARTSHOP_ID,A.SERVERPART_NAME,B.SHOPNAME AS SERVERPARTSHOP_NAME,A.ENDACCOUNT_DATE AS STATISTICS_DATE,
|
||
CASE WHEN A.VALID = 0 THEN 0 ELSE A.CASHPAY END AS REVENUE_AMOUNT,
|
||
A.TICKETCOUNT,A.TOTALCOUNT,A.TOTALSELLAMOUNT AS TOTALAMOUNT,A.TOTALOFFAMOUNT AS TOTALDISCOUNT,
|
||
A.CASH AS CASHPAY,A.CREDITCARD AS BANKPAY,A.TICKETBILL AS WECHATPAY,A.OTHERPAY AS ALIPAY,
|
||
NVL(A.COSTBILL,0) + NVL(A.VIPPERSON,0) AS OTHERPAY,
|
||
A.CASHPAY_DOWNLORD AS CASHPAYMENT,A.DIFFERENT_PRICE AS DIFFERENTAMOUNT,
|
||
A.DOWNLOAD_DATE AS CREATE_DATE,A.DOWNLOAD_DATE AS TRANSFER_DATE
|
||
FROM
|
||
HIGHWAY_SELLDATA.T_ENDACCOUNT A,
|
||
HIGHWAY_STORAGE.T_SERVERPARTSHOP B
|
||
WHERE
|
||
A.SERVERPART_ID = B.SERVERPART_ID AND A.SHOPCODE = B.SHOPCODE AND
|
||
TRUNC(A.DOWNLOAD_DATE) {0} AND A.DESCRIPTION_DATE IS NULL",
|
||
TransferTimes == "1" ? "= TRUNC(SYSDATE) - " + TransferTimes :
|
||
"BETWEEN TRUNC(SYSDATE) - " + TransferTimes + " AND TRUNC(SYSDATE)")
|
||
},
|
||
#endregion
|
||
|
||
#region 现场稽核表
|
||
{
|
||
"Platform_Data.T_Check", string.Format(
|
||
@"SELECT
|
||
B.ServerpartShop_ID,A.Serverpart_Name,B.SHOPNAME AS ServerpartShop_Name,
|
||
A.CHECK_ENDDATE AS Check_Date,A.CASHPAY AS Check_Amount,
|
||
A.DIFFERENT_PRICE AS Different_Amount,
|
||
A.WORKER_NAME AS Check_Staff,A.DOWNLOAD_DATE AS Transfer_Date
|
||
FROM
|
||
HIGHWAY_SELLDATA.T_CHECKACCOUNT A,
|
||
HIGHWAY_STORAGE.T_SERVERPARTSHOP B
|
||
WHERE
|
||
A.SERVERPART_ID = B.SERVERPART_ID AND A.SHOPCODE = B.SHOPCODE AND
|
||
TRUNC(A.DOWNLOAD_DATE) {0}", TransferTimes == "1" ? "= TRUNC(SYSDATE) - 1" :
|
||
"BETWEEN TRUNC(SYSDATE) - " + TransferTimes + " AND TRUNC(SYSDATE) - 1")
|
||
},
|
||
#endregion
|
||
|
||
#region 销售流水表
|
||
{
|
||
"Platform_Data.T_Sales",string.Format(
|
||
@"SELECT
|
||
SERVERPARTSHOP_ID,SERVERPART_NAME,SERVERPARTSHOP_NAME,MACHINECODE,SALES_CODE,
|
||
SALES_TIME,SALESWORKER_NAME,TICKET_CODE,SALES_COUNT,SALES_AMOUNT,SALES_OFFAMOUNT,
|
||
CASHPAY,BANKPAY,WECHATPAY,ALIPAY,OTHERPAY,SELLMASTER_CODE,SYSDATE AS TRANSFER_DATE
|
||
FROM
|
||
(
|
||
SELECT
|
||
B.SERVERPARTSHOP_ID,A.SERVERPART_NAME,B.SHOPNAME AS SERVERPARTSHOP_NAME,
|
||
A.MACHINECODE,A.SELLMASTER_CODE AS SALES_CODE,A.SELLMASTER_DATE AS SALES_TIME,
|
||
A.SELLMASTER_CODE,A.SELLWORKER_NAME AS SALESWORKER_NAME,A.TICKET_CODE,
|
||
A.SELLMASTER_COUNT AS SALES_COUNT,A.SELLMASTER_AMOUNT AS SALES_AMOUNT,
|
||
A.SELLMASTER_OFFPRICE AS SALES_OFFAMOUNT,A.CASHPAY,A.BANKPAY,
|
||
CASE WHEN PAYMENT_TYPE = 'WECHATPAY' THEN MOBILEPAY ELSE 0 END AS WECHATPAY,
|
||
CASE WHEN PAYMENT_TYPE = 'ALIPAY' THEN MOBILEPAY ELSE 0 END AS ALIPAY,
|
||
NVL(A.MEMBERPAY,0) + NVL(A.COUPONPAY,0) + NVL(INTERNALPAY,0) + NVL(OTHERPAY,0) AS OTHERPAY
|
||
FROM
|
||
HIGHWAY_EXCHANGE.T_SELLMASTER A,
|
||
HIGHWAY_EXCHANGE.T_SHOPMESSAGE_EX B
|
||
WHERE
|
||
A.SERVERPARTCODE = B.SERVERPART_CODE AND A.SHOPCODE = B.SHOPCODE AND
|
||
NVL(A.TRANSFER_STATE,0) = 0 AND A.SELLMASTER_DATE {0} {1} {2}
|
||
ORDER BY A.SELLMASTER_DATE
|
||
)",
|
||
"BETWEEN TRUNC(SYSDATE) - " + TransferTimes + " AND TRUNC(SYSDATE) + 1",
|
||
!string.IsNullOrEmpty(_SALEDATE) ? " AND A.SELLMASTER_DATE >= TO_DATE('" + _SALEDATE + "','YYYY/MM/DD') + 1" : "",
|
||
!string.IsNullOrEmpty(_ServerPartCode) ? " AND A.SERVERPARTCODE IN ('" + _ServerPartCode.Replace(",","','") + "')" : "")
|
||
},
|
||
{
|
||
"Platform_Data.T_SalesDetail",string.Format(
|
||
@"SELECT
|
||
SALESDETAIL_ID,SALES_CODE,SELLMASTER_CODE,LINENUM,COMMODITY_NAME,COMMODITY_BARCODE,
|
||
SALESDETAIL_COUNT,SALESDETAIL_PRICE,SALESDETAIL_AMOUNT,
|
||
SALESDETAIL_OFFAMOUNT,SALESDETAIL_LINENUM,SYSDATE AS TRANSFER_DATE
|
||
FROM
|
||
(
|
||
SELECT
|
||
A.SELLDETAILS_ID AS SALESDETAIL_ID,A.SELLMASTER_CODE AS SALES_CODE,
|
||
A.COMMODITY_NAME,A.COMMODITY_BARCODE,A.SELLDETAILS_COUNT AS SALESDETAIL_COUNT,
|
||
A.SELLDETAILS_PRICE AS SALESDETAIL_PRICE,A.SELLDETAILS_AMOUNT AS SALESDETAIL_AMOUNT,
|
||
A.SELLDETAILS_OFFPRICE AS SALESDETAIL_OFFAMOUNT,A.LINENUM AS SALESDETAIL_LINENUM,
|
||
A.SELLMASTER_CODE,A.LINENUM
|
||
FROM
|
||
HIGHWAY_EXCHANGE.T_SELLDETAILS A
|
||
WHERE
|
||
NVL(A.TRANSFER_STATE,0) = 0 AND A.CREATE_DATE {0}
|
||
ORDER BY A.CREATE_DATE
|
||
)",
|
||
"BETWEEN TRUNC(SYSDATE) - " + TransferTimes + " AND TRUNC(SYSDATE) + 1")
|
||
},
|
||
#endregion
|
||
|
||
#endregion
|
||
};
|
||
}
|
||
|
||
/// <summary>
|
||
/// 初始化传输时间字段
|
||
/// </summary>
|
||
/// 数据格式:{接收端表名,数据更新判断唯一字段}
|
||
/// <returns></returns>
|
||
private Hashtable getCreateDateName()
|
||
{
|
||
Hashtable _CreateDateName = new Hashtable
|
||
{
|
||
#region 上传部分
|
||
//服务区门店信息表
|
||
{ "Platform_Data.T_SERVERPARTSHOP","TRANSFER_DATE" },
|
||
//商品列表表
|
||
{ "Platform_Data.T_CommodityType", "TRANSFER_DATE"},
|
||
//商品信息表
|
||
{ "Platform_Data.T_Commodity", "TRANSFER_DATE"},
|
||
//日结营收表
|
||
{ "Platform_Data.T_Revenue", "TRANSFER_DATE"},
|
||
//现场稽核表
|
||
{ "Platform_Data.T_Check","TRANSFER_DATE" },
|
||
//销售流水表
|
||
{ "Platform_Data.T_Sales", "TRANSFER_DATE"},
|
||
//销售流水明细表
|
||
{ "Platform_Data.T_SalesDetail", "TRANSFER_DATE"},
|
||
#endregion
|
||
|
||
};
|
||
return _CreateDateName;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 初始化数据唯一条件字段
|
||
/// </summary>
|
||
/// 数据格式:{接收端表名,发送端表名,发送端主键值}
|
||
/// <returns></returns>
|
||
private Hashtable getTableDatas()
|
||
{
|
||
return new Hashtable
|
||
{
|
||
#region 上传部分 -> 唯一条件标识上传状态
|
||
|
||
#region 服务区信息表
|
||
//服务区信息表
|
||
{
|
||
"Platform_Data.T_SERVERPARTSHOP",
|
||
new TopParameter("HIGHWAY_STORAGE.T_SERVERPARTSHOP",
|
||
new Dictionary<string, DataCheckHelper.ValueType>())
|
||
},
|
||
#endregion
|
||
|
||
#region 商品类别表
|
||
//服务区门店表
|
||
{
|
||
"Platform_Data.T_CommodityType",
|
||
new TopParameter("HIGHWAY_STORAGE.T_COMMODITYTYPE",
|
||
new Dictionary<string, DataCheckHelper.ValueType>())
|
||
},
|
||
#endregion
|
||
|
||
#region 商品信息表
|
||
//服务区门店表
|
||
{
|
||
"Platform_Data.T_Commodity",
|
||
new TopParameter("HIGHWAY_STORAGE.T_COMMODITY",
|
||
new Dictionary<string, DataCheckHelper.ValueType>())
|
||
},
|
||
#endregion
|
||
|
||
#region 日结营收表
|
||
//用户账户表
|
||
{
|
||
"Platform_Data.T_Revenue",
|
||
new TopParameter("HIGHWAY_SELLDATA.T_ENDACCOUNT",
|
||
new Dictionary<string, DataCheckHelper.ValueType>())
|
||
},
|
||
#endregion
|
||
|
||
#region 现场稽核表
|
||
//推送详情表
|
||
{
|
||
"Platform_Data.T_Check",
|
||
new TopParameter("HIGHWAY_SELLDATA.T_CHECKACCOUNT",
|
||
new Dictionary<string, DataCheckHelper.ValueType>())
|
||
},
|
||
#endregion
|
||
|
||
#region 销售流水表
|
||
//销售流水表
|
||
{
|
||
"Platform_Data.T_Sales",
|
||
new TopParameter("HIGHWAY_EXCHANGE.T_SELLMASTER",
|
||
new Dictionary<string, DataCheckHelper.ValueType>
|
||
{
|
||
{ "SELLMASTER_CODE", DataCheckHelper.ValueType.String }
|
||
})
|
||
},
|
||
{
|
||
"Platform_Data.T_SalesDetail",
|
||
new TopParameter("HIGHWAY_EXCHANGE.T_SELLDETAILS",
|
||
new Dictionary<string, DataCheckHelper.ValueType>
|
||
{
|
||
{ "SELLMASTER_CODE", DataCheckHelper.ValueType.String },
|
||
{ "LINENUM", DataCheckHelper.ValueType.Int }
|
||
})
|
||
},
|
||
#endregion
|
||
|
||
#endregion
|
||
};
|
||
}
|
||
|
||
/// <summary>
|
||
/// 定义表传输状态字段
|
||
/// </summary>
|
||
/// 数据格式:{接收端表名,传输状态字段}
|
||
/// <returns></returns>
|
||
private Hashtable getStateNames()
|
||
{
|
||
return new Hashtable
|
||
{
|
||
#region 上传部分
|
||
//服务区门店信息表
|
||
{ "Platform_Data.T_SERVERPARTSHOP","" },
|
||
//商品列表表
|
||
{ "Platform_Data.T_CommodityType", ""},
|
||
//商品信息表
|
||
{ "Platform_Data.T_Commodity", ""},
|
||
//日结营收表
|
||
{ "Platform_Data.T_Revenue", ""},
|
||
//现场稽核表
|
||
{ "Platform_Data.T_Check","" },
|
||
//销售流水表
|
||
{ "Platform_Data.T_Sales", "TRANSFER_STATE"},
|
||
//销售流水明细表
|
||
{ "Platform_Data.T_SalesDetail", "TRANSFER_STATE"},
|
||
#endregion
|
||
};
|
||
}
|
||
|
||
/// <summary>
|
||
/// 单次最大传输数量
|
||
/// </summary>
|
||
/// 数据格式:{接收端表名,传输数量}
|
||
/// <returns></returns>
|
||
private Hashtable getMaxDataQuantityList()
|
||
{
|
||
return new Hashtable
|
||
{
|
||
#region 上传部分
|
||
//服务区门店信息表
|
||
{ "Platform_Data.T_SERVERPARTSHOP", 20 },
|
||
//商品列表表
|
||
{ "Platform_Data.T_CommodityType", 20},
|
||
//商品信息表
|
||
{ "Platform_Data.T_Commodity", 20},
|
||
//日结营收表
|
||
{ "Platform_Data.T_Revenue", 20},
|
||
//现场稽核表
|
||
{ "Platform_Data.T_Check", 20 },
|
||
//销售流水表
|
||
{ "Platform_Data.T_Sales", 20},
|
||
//销售流水明细表
|
||
{ "Platform_Data.T_SalesDetail", 20},
|
||
#endregion
|
||
};
|
||
}
|
||
|
||
#region 方法 -> 构造函数
|
||
|
||
/// <summary>
|
||
/// 线程配置
|
||
/// </summary>
|
||
public ConfigThread(string serverpartcode = null, bool isReplaceColumnName = false, int endaccounttimes = 0)
|
||
{
|
||
if (serverpartcode != null)
|
||
{
|
||
this.serverpartcode = serverpartcode;
|
||
}
|
||
if (endaccounttimes > 0)
|
||
{
|
||
this.endaccounttimes = endaccounttimes;
|
||
}
|
||
if (this.isReplaceColumnName != isReplaceColumnName)
|
||
{
|
||
this.isReplaceColumnName = isReplaceColumnName;
|
||
}
|
||
setTableNameList();
|
||
setCreateDateName();
|
||
setTableDatas();
|
||
setStateNames();
|
||
setTimeList();
|
||
setMaxDataQuantityList();
|
||
setAllDataSql();//最后加载
|
||
}
|
||
|
||
/// <summary>
|
||
/// 线程配置
|
||
/// </summary>
|
||
/// <param name="tableNameList">表名集合</param>
|
||
/// <param name="allDataSql">查询表所有数据SQL集合</param>
|
||
/// <param name="createDateName">表对应创建时间字段名</param>
|
||
/// <param name="tableDatas">表对应主键值</param>
|
||
/// <param name="stateNames">本地需要修改的状态名称</param>
|
||
public ConfigThread(Hashtable tableNameList, Hashtable allDataSql, Hashtable createDateName,
|
||
Hashtable tableDatas, Hashtable stateNames, Hashtable timeList, bool isReplaceColumnName = false,
|
||
Hashtable maxDataQuantityList = null, string serverpartcode = null, int endaccounttimes = 0)
|
||
{
|
||
if (serverpartcode != null)
|
||
{
|
||
this.serverpartcode = serverpartcode;
|
||
}
|
||
|
||
if (endaccounttimes > 0)
|
||
{
|
||
this.endaccounttimes = endaccounttimes;
|
||
}
|
||
if (this.isReplaceColumnName != isReplaceColumnName)
|
||
{
|
||
this.isReplaceColumnName = isReplaceColumnName;
|
||
}
|
||
setTableNameList(tableNameList);
|
||
setCreateDateName(createDateName);
|
||
setTableDatas(tableDatas);
|
||
setStateNames(stateNames);
|
||
setTimeList(timeList);
|
||
setMaxDataQuantityList(maxDataQuantityList);
|
||
setAllDataSql(allDataSql);//最后加载
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 动态配置参数
|
||
/// <summary>
|
||
/// 表名集合
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public void setTableNameList(Hashtable tableNameList = null)
|
||
{
|
||
if (tableNameList == null)
|
||
{ this.tableNameList = getTableNameList(); }
|
||
else { this.tableNameList = tableNameList; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 查询表所有数据SQL集合
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public void setAllDataSql(Hashtable allDataSql = null)
|
||
{
|
||
if (allDataSql == null)
|
||
{ this.allDataSql = getAllDataSql(); }
|
||
else { this.allDataSql = allDataSql; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 表对应创建时间字段名
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public void setCreateDateName(Hashtable createDateName = null)
|
||
{
|
||
if (createDateName == null)
|
||
{ this.createDateName = getCreateDateName(); }
|
||
else { this.createDateName = createDateName; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 表对应主键值
|
||
/// </summary>
|
||
/// <param name="tableDatas"></param>
|
||
public void setTableDatas(Hashtable tableDatas = null)
|
||
{
|
||
if (tableDatas == null)
|
||
{ this.tableDatas = getTableDatas(); }
|
||
else { this.tableDatas = tableDatas; }
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 本地需要修改的状态名称
|
||
/// </summary>
|
||
/// <param name="stateNames"></param>
|
||
public void setStateNames(Hashtable stateNames = null)
|
||
{
|
||
if (stateNames == null)
|
||
{ this.stateNames = getStateNames(); }
|
||
else { this.stateNames = stateNames; }
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 上传、下发启动间隔时间
|
||
/// </summary>
|
||
/// <param name="timeList"></param>
|
||
public void setTimeList(Hashtable timeList = null)
|
||
{
|
||
if (timeList == null)
|
||
{ this.timeList = getTimeList(); }
|
||
else { this.timeList = timeList; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 上传批量传输最大数据量
|
||
/// </summary>
|
||
/// <param name="maxDataQuantity"></param>
|
||
public void setMaxDataQuantityList(Hashtable maxDataQuantityList = null)
|
||
{
|
||
if (maxDataQuantityList == null)
|
||
{ this.maxDataQuantityList = getMaxDataQuantityList(); }
|
||
else { this.maxDataQuantityList = maxDataQuantityList; }
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 方法 -> 接口参数
|
||
/// <summary>
|
||
/// 接口参数
|
||
/// Important parameters of the interface, sacred and inviolable
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public Hashtable onTableNameList() { return tableNameList; }
|
||
public Hashtable onAllDataSql() { return allDataSql; }
|
||
public Hashtable onCreateDateName() { return createDateName; }
|
||
public Hashtable onTableDatas() { return tableDatas; }
|
||
public Hashtable onStateNames() { return stateNames; }
|
||
public Hashtable onTimeList() { return timeList; }
|
||
public Hashtable onMaxDataQuantityList() { return maxDataQuantityList; }
|
||
|
||
public Hashtable onTableDescList()
|
||
{
|
||
return tableDescList;
|
||
}
|
||
#endregion
|
||
}
|
||
}
|