2025-03-28 09:49:56 +08:00

1893 lines
118 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using SocketTransfer.SDK;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace SocketTransfer
{
public class RemoteDataThread
{
protected string _OracleConnStrBD = ConfigurationManager.AppSettings["OracleConnStr"].ToString(); //本地连接
protected string _OracleConnStrHQ = ConfigurationManager.AppSettings["HostIP"].ToString().Split(',')[1]; //远程连接
protected OracleHelper _OracleBDHelper = null; //本地连接
protected OracleHelper _OracleHQHelper = null; //远程连接
private int _MaxLoadBearing = 400; //最大SQL执行量
private Dictionary<TableNameType, bool> _Data = null; //线程状态
System.Windows.Forms.Timer _Timer = new System.Windows.Forms.Timer();
#region ->
public RemoteDataThread()
{
try
{
//配置线程池
ThreadPool.SetMaxThreads(5, 5);
if (_OracleBDHelper == null)
{
_OracleBDHelper = new OracleHelper(_OracleConnStrBD.Split(',')[0], _OracleConnStrBD.Split(',')[1],
_OracleConnStrBD.Split(',')[2], _OracleConnStrBD.Split(',')[3]);
}
if (_OracleHQHelper == null)
{
_OracleHQHelper = new OracleHelper(_OracleConnStrHQ.Split(',')[0], "orcl", "HIGHWAY_EXCHANGE", "qrwl");
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("RemoteDataThread_RemoteDataThread:" + ex.Message,
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_RemoteDataThread)");
}
}
#endregion
#region ->
/// <summary>
/// 启动
/// </summary>
/// <param name="second">秒</param>
public void onStart(int second = 60)
{
try
{
//启动定时器
_Timer.Interval = second * 1000;
_Timer.Tick += new System.EventHandler(this.timer1_Tick);
_Timer.Start();
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("RemoteDataThread_onStart:" + ex.Message + "",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_onStart)");
}
}
#endregion
#region -> 线
private void onStartThread()
{
try
{
int workerThreads;
int portThreads;
ThreadPool.GetAvailableThreads(out workerThreads, out portThreads);
if (_Data == null)
{
_Data = new Dictionary<TableNameType, bool>();
_Data.Add(TableNameType.T_SHOPMESSAGE, true);
_Data.Add(TableNameType.T_COMMODITYEX, true);
_Data.Add(TableNameType.T_SELLWORKER, true);
_Data.Add(TableNameType.T_HOTKEYSET, true);
_Data.Add(TableNameType.STATISTICS, true);
}
if (workerThreads > 0)
{
System.Diagnostics.Debug.WriteLine("待命当前可用线程数:" + workerThreads +
",状态:" + _Data[TableNameType.T_SHOPMESSAGE], "onStartThread");
#region
if (_Data.Keys.Contains(TableNameType.T_SHOPMESSAGE) && _Data[TableNameType.T_SHOPMESSAGE])
{
System.Diagnostics.Debug.WriteLine("启动", "Run_T_SHOPMESSAGE");
_Data[TableNameType.T_SHOPMESSAGE] = false;//更新状态
ThreadPool.QueueUserWorkItem(Run_T_SHOPMESSAGE, null);
}
#endregion
#region
if (_Data.Keys.Contains(TableNameType.T_SELLWORKER) && _Data[TableNameType.T_SELLWORKER])
{
System.Diagnostics.Debug.WriteLine("启动", "Run_T_SELLWORKER");
_Data[TableNameType.T_SELLWORKER] = false;//更新状态
ThreadPool.QueueUserWorkItem(Run_T_SELLWORKER, null);
}
#endregion
#region
if (_Data.Keys.Contains(TableNameType.T_COMMODITYEX) && _Data[TableNameType.T_COMMODITYEX])
{
System.Diagnostics.Debug.WriteLine("启动", "Run_T_COMMODITYEX");
_Data[TableNameType.T_COMMODITYEX] = false; //更新状态
ThreadPool.QueueUserWorkItem(Run_T_COMMODITYEX, null);
}
#endregion
#region
if (_Data.Keys.Contains(TableNameType.T_HOTKEYSET) && _Data[TableNameType.T_HOTKEYSET])
{
System.Diagnostics.Debug.WriteLine("启动", "Run_T_HOTKEYSET");
_Data[TableNameType.T_HOTKEYSET] = false; //更新状态
ThreadPool.QueueUserWorkItem(Run_T_HOTKEYSET, null);
}
#endregion
#region
if (_Data.Keys.Contains(TableNameType.STATISTICS) && _Data[TableNameType.STATISTICS])
{
System.Diagnostics.Debug.WriteLine("启动", "Run_Statistics");
_Data[TableNameType.STATISTICS] = false; //更新状态
ThreadPool.QueueUserWorkItem(Run_Statistics, null);
}
#endregion
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("RemoteDataThread_onStartThread:" + ex.Message + "",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_onStartThread)");
}
#region
try
{
string FilePath = System.Windows.Forms.Application.StartupPath;
DirectoryInfo _DirectoryInfo = new DirectoryInfo(FilePath);
FileInfo[] files = _DirectoryInfo.GetFiles("*.log");
foreach (FileInfo _FileInfo in files)
{
if (_FileInfo.Name.Contains("RemoteDataThread") && _FileInfo.LastWriteTime < DateTime.Now.Date.AddDays(-7))
{
_FileInfo.Delete();
}
}
}
catch { }
#endregion
}
#endregion
#region -> 线
#region -> T_SHOPMESSAGE 线
private void Run_T_SHOPMESSAGE(object obj)
{
string SqlString = null;
string DelString = null;
DataSet _DataSetBD = null;
DataSet _DataSetHQ = null;
DataSet _DataTemp = null;
List<string> SQLStringArray = null;
List<string> DelStringArray = null;
try
{
Thread.Sleep(100);//启动线程业务前为CPU争取休息时间100毫秒不能再多
foreach (DataRow _DataRow in _OracleBDHelper.ExcuteSqlGetDataSet(
"SELECT SERVERPARTCODE FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows)
{
_DataSetHQ = _OracleHQHelper.ExcuteSqlGetDataSet(
SelectServerData(TableNameType.T_SHOPMESSAGE, _DataRow["SERVERPARTCODE"].ToString()));
if (_DataSetHQ != null && _DataSetHQ.Tables.Count > 0)
{
_DataTemp = SplitDataTable(_DataSetHQ.Tables[0], _MaxLoadBearing);
}
if (_DataTemp == null || _DataTemp.Tables.Count == 0)
{
continue;
}
foreach (DataTable _DataTableHQ in _DataTemp.Tables)
{
if (SQLStringArray == null)
{
SQLStringArray = new List<string>();
}
else
{
SQLStringArray.Clear();
}
if (DelStringArray == null)
{
DelStringArray = new List<string>();
}
else
{
DelStringArray.Clear();
}
_DataSetBD = _OracleBDHelper.ExcuteSqlGetDataSet(
SelectServerData(TableNameType.T_SHOPMESSAGE, _DataRow["SERVERPARTCODE"].ToString()));
LogHelper.WriteReceiveLog("T_SHOPMESSAGE:-------批次插入开始-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SHOPMESSAGE)");
foreach (DataRow _DataRowHQ in _DataTableHQ.Rows)
{
LogHelper.WriteReceiveLog("T_SHOPMESSAGE:" + string.Join(",", _DataRowHQ.ItemArray),
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SHOPMESSAGE)");
try
{
SqlString = " SERVERPARTCODE = '" + _DataRowHQ["SERVERPARTCODE"].ToString() +
"' AND SERVERPARTSHOP_ID = " + _DataRowHQ["SERVERPARTSHOP_ID"].ToString();
if (_DataSetBD.Tables[0].Select(SqlString).Length > 0)
{
SqlString = "SERVERPARTCODE = '" + _DataRowHQ["SERVERPARTCODE"].ToString() + "' AND SERVERPARTSHOP_ID = " +
_DataRowHQ["SERVERPARTSHOP_ID"].ToString() + " AND DOWNLOADDATE < '" + _DataRowHQ["DOWNLOADDATE"].ToString() + "'";
if (_DataSetBD.Tables[0].Select(SqlString).Length > 0)
{
SqlString = "DELETE FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE WHERE SERVERPARTCODE = '" +
_DataRowHQ["SERVERPARTCODE"].ToString() + "' AND SERVERPARTSHOP_ID = " +
_DataRowHQ["SERVERPARTSHOP_ID"].ToString();
SQLStringArray.Add(SqlString);
SqlString = string.Format(
@"INSERT INTO HIGHWAY_EXCHANGE.T_SHOPMESSAGE (
SHOPMESSAGE_ID,SERVERPARTSHOP_ID,SERVERPARTCODE,SHOPCODE,
SHOPNAME,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID)
VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8})",
IsArrayType(ValueType.Int, _DataRowHQ["SHOPMESSAGE_ID"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["SERVERPARTSHOP_ID"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SHOPCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SHOPNAME"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["BUSINESSTYPE"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowHQ["DOWNLOADDATE"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["FLAG"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["VALID"].ToString()));
SQLStringArray.Add(SqlString);
}
}
else
{
//不存在添加
SqlString = string.Format(
@"INSERT INTO HIGHWAY_EXCHANGE.T_SHOPMESSAGE (
SHOPMESSAGE_ID,SERVERPARTSHOP_ID,SERVERPARTCODE,SHOPCODE,
SHOPNAME,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID)
VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8})",
IsArrayType(ValueType.Int, _DataRowHQ["SHOPMESSAGE_ID"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["SERVERPARTSHOP_ID"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SHOPCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SHOPNAME"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["BUSINESSTYPE"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowHQ["DOWNLOADDATE"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["FLAG"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["VALID"].ToString()));
SQLStringArray.Add(SqlString);
}
//删除语句集合
DelString = string.Format(@"DELETE FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE
WHERE SHOPMESSAGE_ID = {0} AND SERVERPARTCODE = {1}",
IsArrayType(ValueType.Int, _DataRowHQ["SHOPMESSAGE_ID"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()));
DelStringArray.Add(DelString);
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("T_SHOPMESSAGE:(SERVERPARTCODE:" + _DataRowHQ["SERVERPARTCODE"].ToString() +
",SHOPMESSAGE_ID:" + _DataRowHQ["SHOPMESSAGE_ID"].ToString() + "," + ex.Message +
")", DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SHOPMESSAGE)");
}
}
//分批执行语句
if (SQLStringArray != null && SQLStringArray.Count > 0)
{
_OracleBDHelper.ExecuteSqlTran(SQLStringArray);
}
LogHelper.WriteReceiveLog("T_SHOPMESSAGE:-------批次插入结束-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SHOPMESSAGE)");
LogHelper.WriteReceiveLog("T_SHOPMESSAGE:-------批次删除开始-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SHOPMESSAGE)");
if (DelStringArray != null && DelStringArray.Count > 0)
{
//删除总部
_OracleHQHelper.ExecuteSqlTran(DelStringArray);
}
LogHelper.WriteReceiveLog("T_SHOPMESSAGE:-------批次删除结束-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SHOPMESSAGE)");
}
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("T_SHOPMESSAGE:" + ex.Message + "",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SHOPMESSAGE)");
}
finally
{
try
{
if (_Data != null)
{
//更新状态
_Data[TableNameType.T_SHOPMESSAGE] = true;
}
}
catch { }
//内存释放
SqlString = null;
DelString = null;
_DataSetBD = null;
_DataSetHQ = null;
_DataTemp = null;
SQLStringArray = null;
DelStringArray = null;
MemoryManagement.FlushMemory();
}
}
#endregion.
#region -> T_SELLWORKER 线
private void Run_T_SELLWORKER(object obj)
{
string SqlString = null;
string DelString = null;
DataSet _DataSetBD = null;
DataSet _DataSetHQ = null;
DataSet _DataTemp = null;
List<string> SQLStringArray = null;
List<string> DelStringArray = null;
try
{
Thread.Sleep(100);//启动线程业务前为CPU争取休息时间100毫秒不能再多
foreach (DataRow _DataRow in _OracleBDHelper.ExcuteSqlGetDataSet(
"SELECT SERVERPARTCODE FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows)
{
_DataSetHQ = _OracleHQHelper.ExcuteSqlGetDataSet(
SelectServerData(TableNameType.T_SELLWORKER, _DataRow["SERVERPARTCODE"].ToString()));
if (_DataSetHQ != null && _DataSetHQ.Tables.Count > 0)
{
_DataTemp = SplitDataTable(_DataSetHQ.Tables[0], _MaxLoadBearing);
}
if (_DataTemp == null || _DataTemp.Tables.Count == 0)
{
continue;
}
foreach (DataTable _DataTableHQ in _DataTemp.Tables)
{
if (SQLStringArray == null)
{
SQLStringArray = new List<string>();
}
else
{
SQLStringArray.Clear();
}
if (DelStringArray == null)
{
DelStringArray = new List<string>();
}
else
{
DelStringArray.Clear();
}
_DataSetBD = _OracleBDHelper.ExcuteSqlGetDataSet(
SelectServerData(TableNameType.T_SELLWORKER, _DataRow["SERVERPARTCODE"].ToString()));
LogHelper.WriteReceiveLog("T_SELLWORKER:-------批次插入开始-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLWORKER)");
foreach (DataRow _DataRowHQ in _DataTableHQ.Rows)
{
LogHelper.WriteReceiveLog("T_SELLWORKER:" + string.Join(",", _DataRowHQ.ItemArray),
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLWORKER)");
try
{
SqlString = " SERVERPARTCODE = '" + _DataRowHQ["SERVERPARTCODE"].ToString() + "' AND SELLWORKERCODE = '" +
_DataRowHQ["SELLWORKERCODE"].ToString() + "'";
if (_DataSetBD.Tables[0].Select(SqlString).Length > 0)
{
SqlString = " SERVERPARTCODE = '" + _DataRowHQ["SERVERPARTCODE"].ToString() + "' AND SELLWORKERCODE = '" +
_DataRowHQ["SELLWORKERCODE"].ToString() + "' AND DOWNLOADDATE < '" + _DataRowHQ["DOWNLOADDATE"].ToString() + "'";
if (_DataSetBD.Tables[0].Select(SqlString).Length > 0)
{
SqlString = "DELETE FROM HIGHWAY_EXCHANGE.T_SELLWORKER WHERE SERVERPARTCODE = '" +
_DataRowHQ["SERVERPARTCODE"].ToString() + "' AND SELLWORKERCODE = '" +
_DataRowHQ["SELLWORKERCODE"].ToString() + "'";
SQLStringArray.Add(SqlString);
SqlString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_SELLWORKER (SELLWORKER_ID,
SERVERPARTCODE,SELLWORKERCODE,SELLWORKERNAME,PROWERRIGHT,SHOPCODE,DOWNLOADDATE,
FLAG,VALID,SELLWORKERPASSWORD,DISCOUNT_RATE)
VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10})",
IsArrayType(ValueType.Int, _DataRowHQ["SELLWORKER_ID"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SELLWORKERCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SELLWORKERNAME"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["PROWERRIGHT"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SHOPCODE"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowHQ["DOWNLOADDATE"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["FLAG"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["VALID"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SELLWORKERPASSWORD"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["DISCOUNT_RATE"].ToString()));
SQLStringArray.Add(SqlString);
}
}
else
{
//不存在添加
SqlString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_SELLWORKER (SELLWORKER_ID,
SERVERPARTCODE,SELLWORKERCODE,SELLWORKERNAME,PROWERRIGHT,SHOPCODE,DOWNLOADDATE,
FLAG,VALID,SELLWORKERPASSWORD,DISCOUNT_RATE)
VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10})",
IsArrayType(ValueType.Int, _DataRowHQ["SELLWORKER_ID"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SELLWORKERCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SELLWORKERNAME"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["PROWERRIGHT"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SHOPCODE"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowHQ["DOWNLOADDATE"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["FLAG"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["VALID"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SELLWORKERPASSWORD"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["DISCOUNT_RATE"].ToString()));
SQLStringArray.Add(SqlString);
}
//删除语句集合
DelString = string.Format(@"DELETE FROM HIGHWAY_EXCHANGE.T_SELLWORKER
WHERE SELLWORKER_ID = {0} AND SERVERPARTCODE = {1}",
IsArrayType(ValueType.Int, _DataRowHQ["SELLWORKER_ID"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()));
DelStringArray.Add(DelString);
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("T_SELLWORKER:(SERVERPARTCODE:" + _DataRowHQ["SERVERPARTCODE"].ToString() +
",SELLWORKER_ID:" + _DataRowHQ["SELLWORKER_ID"].ToString() + "," + ex.Message +
")", DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLWORKER)");
}
}
//分批执行语句
if (SQLStringArray != null && SQLStringArray.Count > 0)
{
_OracleBDHelper.ExecuteSqlTran(SQLStringArray);
}
LogHelper.WriteReceiveLog("T_SELLWORKER:-------批次插入结束-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLWORKER)");
LogHelper.WriteReceiveLog("T_SELLWORKER:-------批次删除开始-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLWORKER)");
if (DelStringArray != null && DelStringArray.Count > 0)
{
//删除总部
_OracleHQHelper.ExecuteSqlTran(DelStringArray);
}
LogHelper.WriteReceiveLog("T_SELLWORKER:-------批次删除结束-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLWORKER)");
}
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("T_SELLWORKER:" + ex.Message + "",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_SELLWORKER)");
}
finally
{
try
{
if (_Data != null)
{
//更新状态
_Data[TableNameType.T_SELLWORKER] = true;
}
}
catch { }
//内存释放
SqlString = null;
DelString = null;
_DataSetBD = null;
_DataSetHQ = null;
_DataTemp = null;
SQLStringArray = null;
DelStringArray = null;
MemoryManagement.FlushMemory();
}
}
#endregion
#region -> T_COMMODITYEX 线
private void Run_T_COMMODITYEX(object obj)
{
string SqlString = null;
string DelString = null;
DataSet _DataSetBD = null;
DataSet _DataSetHQ = null;
DataSet _DataTemp = null;
List<string> SQLStringArray = null;
List<string> DelStringArray = null;
try
{
Thread.Sleep(100);//启动线程业务前为CPU争取休息时间100毫秒不能再多
foreach (DataRow _DataRow in _OracleBDHelper.ExcuteSqlGetDataSet(
"SELECT SERVERPARTCODE FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows)
{
_DataSetHQ = _OracleHQHelper.ExcuteSqlGetDataSet(
SelectServerData(TableNameType.T_COMMODITYEX, _DataRow["SERVERPARTCODE"].ToString()));
if (_DataSetHQ != null && _DataSetHQ.Tables.Count > 0)
{
_DataTemp = SplitDataTable(_DataSetHQ.Tables[0], _MaxLoadBearing);
}
if (_DataTemp == null || _DataTemp.Tables.Count == 0)
{
continue;
}
foreach (DataTable _DataTableHQ in _DataTemp.Tables)
{
if (SQLStringArray == null)
{
SQLStringArray = new List<string>();
}
else
{
SQLStringArray.Clear();
}
if (DelStringArray == null)
{
DelStringArray = new List<string>();
}
else
{
DelStringArray.Clear();
}
_DataSetBD = _OracleBDHelper.ExcuteSqlGetDataSet(SelectServerData(TableNameType.T_COMMODITYEX, _DataRow["SERVERPARTCODE"].ToString()));
LogHelper.WriteReceiveLog("T_COMMODITYEX:-------批次插入开始-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_COMMODITYEX)");
foreach (DataRow _DataRowHQ in _DataTableHQ.Rows)
{
LogHelper.WriteReceiveLog("T_COMMODITYEX:" + string.Join(",", _DataRowHQ.ItemArray),
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_COMMODITYEX)");
try
{
SqlString = "SERVERPARTCODE = '" + _DataRowHQ["SERVERPARTCODE"].ToString() +
"' AND COMMODITY_CODE = '" + _DataRowHQ["COMMODITY_CODE"].ToString() +
"' AND SERVERPARTSHOP_ID = " + _DataRowHQ["SERVERPARTSHOP_ID"].ToString();
if (_DataSetBD.Tables[0].Select(SqlString).Length > 0)
{
SqlString = "SERVERPARTCODE = '" + _DataRowHQ["SERVERPARTCODE"].ToString() +
"' AND COMMODITY_CODE = '" + _DataRowHQ["COMMODITY_CODE"].ToString() +
"' AND SERVERPARTSHOP_ID = " + _DataRowHQ["SERVERPARTSHOP_ID"].ToString() +
" AND DOWNLOADDATE < '" + _DataRowHQ["DOWNLOADDATE"].ToString() + "'";
if (_DataSetBD.Tables[0].Select(SqlString).Length > 0)
{
SqlString = "DELETE FROM HIGHWAY_EXCHANGE.T_COMMODITYEX WHERE SERVERPARTCODE = '" +
_DataRowHQ["SERVERPARTCODE"].ToString() + "' AND COMMODITY_CODE = '" +
_DataRowHQ["COMMODITY_CODE"].ToString() + "' AND SERVERPARTSHOP_ID = " +
_DataRowHQ["SERVERPARTSHOP_ID"].ToString();
SQLStringArray.Add(SqlString);
SqlString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_COMMODITYEX
(COMMODITYEX_ID,SERVERPARTCODE,COMMODITY_TYPE,COMMODITY_CODE,COMMODITY_BARCODE,
COMMODITY_NAME,COMMODITY_RULE,COMMODITY_UNIT,COMMODITY_RETAILPRICE,COMMODITY_MEMBERPRICE,
CANCHANGEPRICE,ISVALID,COMMODITY_EN,ISBULK,METERINGMETHOD,DOWNLOADDATE,FLAG,BUSINESSTYPE,
SERVERPARTSHOP_ID,PRINT_DATE,CONTAINER_CODE,COMMODITY_SYMBOL,COMMODITY_HOTKEY,USERDEFINEDTYPE_ID)
VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},
{14},{15},{16},{17},{18},{19},{20},{21},{22},{23})",
IsArrayType(ValueType.Int, _DataRowHQ["COMMODITYEX_ID"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_TYPE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_CODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_BARCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_NAME"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_RULE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_UNIT"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["COMMODITY_RETAILPRICE"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["COMMODITY_MEMBERPRICE"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["CANCHANGEPRICE"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["ISVALID"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_EN"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["ISBULK"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["METERINGMETHOD"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowHQ["DOWNLOADDATE"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["FLAG"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["BUSINESSTYPE"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["SERVERPARTSHOP_ID"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowHQ["PRINT_DATE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["CONTAINER_CODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_SYMBOL"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_HOTKEY"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["USERDEFINEDTYPE_ID"].ToString()));
SQLStringArray.Add(SqlString);
}
}
else
{
//不存在添加
SqlString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_COMMODITYEX
(COMMODITYEX_ID,SERVERPARTCODE,COMMODITY_TYPE,COMMODITY_CODE,COMMODITY_BARCODE,
COMMODITY_NAME,COMMODITY_RULE,COMMODITY_UNIT,COMMODITY_RETAILPRICE,COMMODITY_MEMBERPRICE,
CANCHANGEPRICE,ISVALID,COMMODITY_EN,ISBULK,METERINGMETHOD,DOWNLOADDATE,FLAG,BUSINESSTYPE,
SERVERPARTSHOP_ID,PRINT_DATE,CONTAINER_CODE,COMMODITY_SYMBOL,COMMODITY_HOTKEY,USERDEFINEDTYPE_ID)
VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},
{14},{15},{16},{17},{18},{19},{20},{21},{22},{23})",
IsArrayType(ValueType.Int, _DataRowHQ["COMMODITYEX_ID"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_TYPE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_CODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_BARCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_NAME"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_RULE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_UNIT"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["COMMODITY_RETAILPRICE"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["COMMODITY_MEMBERPRICE"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["CANCHANGEPRICE"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["ISVALID"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_EN"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["ISBULK"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["METERINGMETHOD"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowHQ["DOWNLOADDATE"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["FLAG"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["BUSINESSTYPE"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["SERVERPARTSHOP_ID"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowHQ["PRINT_DATE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["CONTAINER_CODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_SYMBOL"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_HOTKEY"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["USERDEFINEDTYPE_ID"].ToString()));
SQLStringArray.Add(SqlString);
}
//删除语句集合
DelString = string.Format(@"DELETE FROM HIGHWAY_EXCHANGE.T_COMMODITYEX
WHERE COMMODITYEX_ID = {0} AND SERVERPARTCODE = {1}",
IsArrayType(ValueType.Int, _DataRowHQ["COMMODITYEX_ID"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()));
DelStringArray.Add(DelString);
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("T_COMMODITYEX:(SERVERPARTCODE:" + _DataRowHQ["SERVERPARTCODE"].ToString() +
",COMMODITYEX_ID:" + _DataRowHQ["COMMODITYEX_ID"].ToString() + "," + ex.Message +
")", DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_COMMODITYEX)");
}
}
//分批执行语句
if (SQLStringArray != null && SQLStringArray.Count > 0)
{
_OracleBDHelper.ExecuteSqlTran(SQLStringArray);
}
LogHelper.WriteReceiveLog("T_COMMODITYEX:-------批次插入结束-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_COMMODITYEX)");
LogHelper.WriteReceiveLog("T_COMMODITYEX:-------批次删除开始-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_COMMODITYEX)");
if (DelStringArray != null && DelStringArray.Count > 0)
{
//删除总部
_OracleHQHelper.ExecuteSqlTran(DelStringArray);
}
LogHelper.WriteReceiveLog("T_COMMODITYEX:-------批次删除结束-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_COMMODITYEX)");
}
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("T_COMMODITYEX:" + ex.Message + "",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_COMMODITYEX)");
}
finally
{
try
{
if (_Data != null)
{
//更新状态
_Data[TableNameType.T_COMMODITYEX] = true;
}
}
catch { }
//内存释放
SqlString = null;
DelString = null;
_DataSetBD = null;
_DataSetHQ = null;
_DataTemp = null;
SQLStringArray = null;
DelStringArray = null;
MemoryManagement.FlushMemory();
}
}
#endregion
#region -> T_HOTKEYSET 线
private void Run_T_HOTKEYSET(object obj)
{
string SqlString = null;
string DelString = null;
DataSet _DataSetBD = null;
DataSet _DataSetHQ = null;
DataSet _DataTemp = null;
List<string> SQLStringArray = null;
List<string> DelStringArray = null;
try
{
Thread.Sleep(100);//启动线程业务前为CPU争取休息时间100毫秒不能再多
foreach (DataRow _DataRow in _OracleBDHelper.ExcuteSqlGetDataSet(
"SELECT SERVERPARTCODE FROM HIGHWAY_EXCHANGE.T_SYSCODE").Tables[0].Rows)
{
_DataSetHQ = _OracleHQHelper.ExcuteSqlGetDataSet(
SelectServerData(TableNameType.T_HOTKEYSET, _DataRow["SERVERPARTCODE"].ToString()));
if (_DataSetHQ != null && _DataSetHQ.Tables.Count > 0)
{
_DataTemp = SplitDataTable(_DataSetHQ.Tables[0], _MaxLoadBearing);
}
if (_DataTemp == null || _DataTemp.Tables.Count == 0)
{
continue;
}
foreach (DataTable _DataTableHQ in _DataTemp.Tables)
{
if (SQLStringArray == null)
{
SQLStringArray = new List<string>();
}
else
{
SQLStringArray.Clear();
}
if (DelStringArray == null)
{
DelStringArray = new List<string>();
}
else
{
DelStringArray.Clear();
}
_DataSetBD = _OracleBDHelper.ExcuteSqlGetDataSet(
SelectServerData(TableNameType.T_HOTKEYSET, _DataRow["SERVERPARTCODE"].ToString()));
LogHelper.WriteReceiveLog("T_HOTKEYSET:-------批次插入开始-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_HOTKEYSET)");
foreach (DataRow _DataRowHQ in _DataTableHQ.Rows)
{
LogHelper.WriteReceiveLog("T_HOTKEYSET:" + string.Join(",", _DataRowHQ.ItemArray),
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_HOTKEYSET)");
try
{
SqlString = " SERVERPARTCODE = '" + _DataRowHQ["SERVERPARTCODE"].ToString() +
"' AND COMMODITY_BARCODE = '" + _DataRowHQ["COMMODITY_BARCODE"].ToString() + "'";
if (_DataSetBD.Tables[0].Select(SqlString).Length > 0)
{
SqlString = " SERVERPARTCODE = '" + _DataRowHQ["SERVERPARTCODE"].ToString() + "' AND COMMODITY_BARCODE = '" +
_DataRowHQ["COMMODITY_BARCODE"].ToString() + "' AND DOWNLOADDATE < '" + _DataRowHQ["DOWNLOADDATE"].ToString() + "'";
if (_DataSetBD.Tables[0].Select(SqlString).Length > 0)
{
SqlString = "DELETE FROM HIGHWAY_EXCHANGE.T_HOTKEYSET WHERE SERVERPARTCODE = '" +
_DataRowHQ["SERVERPARTCODE"].ToString() + "' AND COMMODITY_BARCODE = '" +
_DataRowHQ["COMMODITY_BARCODE"].ToString() + "'";
SQLStringArray.Add(SqlString);
SqlString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_HOTKEYSET (HOTKEYSET_ID,
SERVERPARTCODE,COMMODITY_BARCODE,HOTKEY,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID)
VALUES ({0},{1},{2},{3},{4},{5},{6},{7})",
IsArrayType(ValueType.Int, _DataRowHQ["HOTKEYSET_ID"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_BARCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["HOTKEY"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["BUSINESSTYPE"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowHQ["DOWNLOADDATE"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["FLAG"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["VALID"].ToString()));
SQLStringArray.Add(SqlString);
}
}
else
{
//不存在添加
SqlString = string.Format(@"INSERT INTO HIGHWAY_EXCHANGE.T_HOTKEYSET (HOTKEYSET_ID,
SERVERPARTCODE,COMMODITY_BARCODE,HOTKEY,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID)
VALUES ({0},{1},{2},{3},{4},{5},{6},{7})",
IsArrayType(ValueType.Int, _DataRowHQ["HOTKEYSET_ID"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["COMMODITY_BARCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["HOTKEY"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["BUSINESSTYPE"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowHQ["DOWNLOADDATE"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["FLAG"].ToString()),
IsArrayType(ValueType.Int, _DataRowHQ["VALID"].ToString()));
SQLStringArray.Add(SqlString);
}
//删除语句集合
DelString = string.Format(@"DELETE FROM HIGHWAY_EXCHANGE.T_HOTKEYSET
WHERE HOTKEYSET_ID = {0} AND SERVERPARTCODE = {1}",
IsArrayType(ValueType.Int, _DataRowHQ["HOTKEYSET_ID"].ToString()),
IsArrayType(ValueType.String, _DataRowHQ["SERVERPARTCODE"].ToString()));
DelStringArray.Add(DelString);
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("T_HOTKEYSET:(SERVERPARTCODE:" + _DataRowHQ["SERVERPARTCODE"].ToString() +
",HOTKEYSET_ID:" + _DataRowHQ["HOTKEYSET_ID"].ToString() + "," + ex.Message + ")",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_HOTKEYSET)");
}
}
//分批执行语句
if (SQLStringArray != null && SQLStringArray.Count > 0)
{
_OracleBDHelper.ExecuteSqlTran(SQLStringArray);
}
LogHelper.WriteReceiveLog("T_HOTKEYSET:-------批次插入结束-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_HOTKEYSET)");
LogHelper.WriteReceiveLog("T_HOTKEYSET:-------批次删除开始-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_HOTKEYSET)");
if (DelStringArray != null && DelStringArray.Count > 0)
{
//删除总部
_OracleHQHelper.ExecuteSqlTran(DelStringArray);
}
LogHelper.WriteReceiveLog("T_HOTKEYSET:-------批次删除结束-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_HOTKEYSET)");
}
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("T_HOTKEYSET:" + ex.Message + "",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_T_HOTKEYSET)");
}
finally
{
try
{
if (_Data != null)
{
//更新状态
_Data[TableNameType.T_HOTKEYSET] = true;
}
}
catch { }
//内存释放
SqlString = null;
DelString = null;
_DataSetBD = null;
_DataSetHQ = null;
_DataTemp = null;
SQLStringArray = null;
DelStringArray = null;
MemoryManagement.FlushMemory();
}
}
#endregion
#endregion
#region -> 线
private void Run_Statistics(object obj)
{
string dataSql = null;
List<string> SQLStringArray = null;
Hashtable createDateName = null;
Hashtable okSqls = null;
Hashtable noSqls = null;
try
{
Thread.Sleep(100);//启动线程业务前为CPU争取休息时间100毫秒不能再多
dataSql = "SELECT TABLENAME,NICKNAME FROM HIGHWAY_EXCHANGE.T_TRANSFERTABLEINDEX";
DataTable _DataTableNameHQ = _OracleHQHelper.ExcuteSqlGetDataSet(dataSql).Tables[0];
//3天数据统计
for (int t = 0; t < 7; t++)
{
string oldDate = DateTime.Now.AddDays(-t).Date.ToString();
string newDate = DateTime.Now.AddDays(-t + 1).Date.ToString();
dataSql = "SELECT TRANSFERSTATISTICS_CODE FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS WHERE PID_CODE = '-1' AND OPERATE_DATE >= TO_DATE('" +
oldDate + "','YYYY/MM/DD HH24:MI:SS') AND OPERATE_DATE < TO_DATE('" + newDate + "','YYYY/MM/DD HH24:MI:SS')";
createDateName = getCreateDateName();
LogHelper.WriteReceiveLog("Statistics:-------遍历统计各表开始(" + oldDate + ")-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
#region
try
{
foreach (DataRow _DataRow in _OracleBDHelper.ExcuteSqlGetDataSet(dataSql).Tables[0].Rows)
{
if (SQLStringArray == null)
{
SQLStringArray = new List<string>();
}
else
{
SQLStringArray.Clear();
}
foreach (DataRow _DataRowSubgrade in _OracleBDHelper.ExcuteSqlGetDataSet(
"SELECT * FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS WHERE PID_CODE = '" +
_DataRow["TRANSFERSTATISTICS_CODE"].ToString() + "' AND OPERATE_DATE >= TO_DATE('" +
oldDate + "','YYYY/MM/DD HH24:MI:SS') AND OPERATE_DATE < TO_DATE('" +
newDate + "','YYYY/MM/DD HH24:MI:SS')").Tables[0].Rows)
{
_DataRowSubgrade["SERVERPARTCODE"].ToString();
_DataRowSubgrade["SHOPCODE"].ToString();
_DataRowSubgrade["MACHINECODE"].ToString();
_DataRowSubgrade["TABLENAME"].ToString();
if (!createDateName.ContainsKey(_DataRowSubgrade["TABLENAME"].ToString()))
{
continue;
}
try
{
//已上传
okSqls = getTopOrDownCount(_DataRowSubgrade["SERVERPARTCODE"].ToString(),
_DataRowSubgrade["SHOPCODE"].ToString(), _DataRowSubgrade["MACHINECODE"].ToString(),
createDateName[_DataRowSubgrade["TABLENAME"].ToString()].ToString(), oldDate, newDate, true);
//未上传
noSqls = getTopOrDownCount(_DataRowSubgrade["SERVERPARTCODE"].ToString(),
_DataRowSubgrade["SHOPCODE"].ToString(), _DataRowSubgrade["MACHINECODE"].ToString(),
createDateName[_DataRowSubgrade["TABLENAME"].ToString()].ToString(), oldDate, newDate, false);
DataTable _DataTableBD = _OracleBDHelper.ExcuteSqlGetDataSet(
"SELECT * FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS WHERE TRANSFERSTATISTICS_CODE = '" +
_DataRowSubgrade["TRANSFERSTATISTICS_CODE"].ToString() + "'").Tables[0];
if (_DataTableBD != null && _DataTableBD.Rows.Count > 0)
{
string okNumber = _OracleBDHelper.ExcuteSqlGetDataSet(okSqls[_DataRowSubgrade["TABLENAME"].ToString()].ToString()).Tables[0].Rows.Count.ToString();
string noNumber = _OracleBDHelper.ExcuteSqlGetDataSet(noSqls[_DataRowSubgrade["TABLENAME"].ToString()].ToString()).Tables[0].Rows.Count.ToString();
if (_DataTableBD.Rows[0]["SERVICE_UPLOADNUM"].ToString() != okNumber ||
_DataTableBD.Rows[0]["SERVICE_NOTUPLOADNUM"].ToString() != noNumber)
{
//更新
dataSql = string.Format(
@"UPDATE HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS SET SERVICE_UPLOADNUM = {0},SERVICE_NOTUPLOADNUM = {1},SERVICE_UPDATETIME = {2},
TRANSFER_STATE = 0,TRANSFER_ID = 0 WHERE TRANSFERSTATISTICS_CODE = {3} AND TABLENAME = {4}",
IsArrayType(ValueType.Int, okNumber),
IsArrayType(ValueType.Int, noNumber),
IsArrayType(ValueType.DateTime, DateTime.Now.ToString()),
IsArrayType(ValueType.String, _DataRowSubgrade["TRANSFERSTATISTICS_CODE"].ToString()),
IsArrayType(ValueType.String, _DataRowSubgrade["TABLENAME"].ToString()));
SQLStringArray.Add(dataSql);
}
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("RemoteDataThread_Run_Statistics:(SERVERPARTCODE:" +
_DataRowSubgrade["SERVERPARTCODE"].ToString() + ",SHOPCODE:" +
_DataRowSubgrade["SHOPCODE"].ToString() + "," + ex.Message + ")",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
}
}
//分批执行语句
if (SQLStringArray != null && SQLStringArray.Count > 0)
{
_OracleBDHelper.ExecuteSqlTran(SQLStringArray);
}
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("Statistics:" + ex.Message + "",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
}
#endregion
LogHelper.WriteReceiveLog("Statistics:-------遍历统计各表结束(" + oldDate + ")-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
LogHelper.WriteReceiveLog("Statistics:-------合计各表开始(" + oldDate + ")-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
#region
string _TRANSFERSTATISTICS_DESC = string.Empty; //备注详细
try
{
dataSql = "SELECT TRANSFERSTATISTICS_CODE,TRANSFERSTATISTICS_DESC,UPLOADED_MACHINE,NOTUPLOADED_MACHINE FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS " +
" WHERE PID_CODE = '-1' AND OPERATE_DATE >= TO_DATE('" + oldDate +
"','YYYY/MM/DD HH24:MI:SS') AND OPERATE_DATE < TO_DATE('" + newDate + "','YYYY/MM/DD HH24:MI:SS')";
foreach (DataRow _DataRow in _OracleBDHelper.ExcuteSqlGetDataSet(dataSql).Tables[0].Rows)
{
if (SQLStringArray == null)
{
SQLStringArray = new List<string>();
}
else
{
SQLStringArray.Clear();
}
#region
try
{
//OK MIDDLE NO
int _TABLENUMOK = 0, _TABLEMIDDLE = 0, _TABLENUMNO = 0;
List<string> _TableNameBDList = new List<string>();
List<string> _TableNameHQList = new List<string>();
foreach (DataRow _DataRowSubgrade in _OracleBDHelper.ExcuteSqlGetDataSet(
"SELECT * FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS WHERE PID_CODE = '" +
_DataRow["TRANSFERSTATISTICS_CODE"].ToString() + "' AND OPERATE_DATE >= TO_DATE('" +
oldDate + "','YYYY/MM/DD HH24:MI:SS') AND OPERATE_DATE < TO_DATE('" +
newDate + "','YYYY/MM/DD HH24:MI:SS')").Tables[0].Rows)
{
_DataRowSubgrade["SERVERPARTCODE"].ToString();
_DataRowSubgrade["SHOPCODE"].ToString();
_DataRowSubgrade["MACHINECODE"].ToString();
_DataRowSubgrade["TABLENAME"].ToString();
try
{
DataRow[] _DataRows = _DataTableNameHQ.
Select(" TABLENAME = '" + _DataRowSubgrade["TABLENAME"].ToString() + "'");
switch (_DataRowSubgrade["TABLENAME"].ToString())
{
case "HIGHWAY_EXCHANGE.T_PERSONSELL":
case "HIGHWAY_EXCHANGE.T_ENDACCOUNT":
case "HIGHWAY_EXCHANGE.T_PERSONSELL_NEW":
case "HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW":
case "HIGHWAY_EXCHANGE.T_BUSINESSTIME":
if ((!string.IsNullOrEmpty(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString())) &&
(!string.IsNullOrEmpty(_DataRowSubgrade["LOCAL_UPLOADNUM"].ToString())) &&
(int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) == 1 ||
int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) == 0))
{
if (!string.IsNullOrEmpty(_DataRowSubgrade["SERVICE_NOTUPLOADNUM"].ToString()) &&
int.Parse(_DataRowSubgrade["SERVICE_NOTUPLOADNUM"].ToString()) == 0 &&
_DataRowSubgrade["TABLENAME"].ToString() != "HIGHWAY_EXCHANGE.T_BUSINESSTIME")
{
//需要上传总部,没问题的
_TABLEMIDDLE++;
}
else if (_DataRowSubgrade["TABLENAME"].ToString() == "HIGHWAY_EXCHANGE.T_BUSINESSTIME")
{
//不需要上传中部,没问题的
_TABLEMIDDLE++;
}
else
{
if ((!string.IsNullOrEmpty(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString())) &&
int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) > 0)
{
//本地有未上传
if (_DataRows != null && _DataRows.Length > 0 &&
!_TableNameBDList.Contains(_DataRows[0]["NICKNAME"].ToString()))
{
_TableNameBDList.Add(_DataRows[0]["NICKNAME"].ToString());
}
_TABLENUMNO++;
}
else if ((!string.IsNullOrEmpty(_DataRowSubgrade["SERVICE_NOTUPLOADNUM"].ToString())) &&
int.Parse(_DataRowSubgrade["SERVICE_NOTUPLOADNUM"].ToString()) > 0)
{
//服务区有未上传
if (_DataRows != null && _DataRows.Length > 0 &&
!_TableNameHQList.Contains(_DataRows[0]["NICKNAME"].ToString()))
{
_TableNameHQList.Add(_DataRows[0]["NICKNAME"].ToString());
}
_TABLENUMNO++;
}
else
{
_TABLENUMOK++;
}
}
}
else
{
if (((!string.IsNullOrEmpty(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString())) &&
int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) > 0))
{
//本地有未上传
if (_DataRows != null && _DataRows.Length > 0 &&
!_TableNameBDList.Contains(_DataRows[0]["NICKNAME"].ToString()))
{
_TableNameBDList.Add(_DataRows[0]["NICKNAME"].ToString());
}
_TABLENUMNO++;
}
else if ((!string.IsNullOrEmpty(_DataRowSubgrade["SERVICE_NOTUPLOADNUM"].ToString())) &&
int.Parse(_DataRowSubgrade["SERVICE_NOTUPLOADNUM"].ToString()) > 0)
{
//服务区有未上传
if (_DataRows != null && _DataRows.Length > 0 &&
!_TableNameHQList.Contains(_DataRows[0]["NICKNAME"].ToString()))
{
_TableNameHQList.Add(_DataRows[0]["NICKNAME"].ToString());
}
_TABLENUMNO++;
}
else
{
_TABLENUMOK++;
}
}
break;
case "HIGHWAY_EXCHANGE.T_EXCEPTION":
case "HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS":
case "HIGHWAY_EXCHANGE.T_TRANSMISSIONERROR":
_TABLEMIDDLE++;
break;
default:
if (((!string.IsNullOrEmpty(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString())) &&
int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) > 0))
{
//本地有未上传
if (_DataRows != null && _DataRows.Length > 0 &&
!_TableNameBDList.Contains(_DataRows[0]["NICKNAME"].ToString()))
{
_TableNameBDList.Add(_DataRows[0]["NICKNAME"].ToString());
}
_TABLENUMNO++;
}
else if ((!string.IsNullOrEmpty(_DataRowSubgrade["SERVICE_NOTUPLOADNUM"].ToString())) &&
int.Parse(_DataRowSubgrade["SERVICE_NOTUPLOADNUM"].ToString()) > 0)
{
//服务区有未上传
if (_DataRows != null && _DataRows.Length > 0 &&
!_TableNameHQList.Contains(_DataRows[0]["NICKNAME"].ToString()))
{
_TableNameHQList.Add(_DataRows[0]["NICKNAME"].ToString());
}
_TABLENUMNO++;
}
else
{
_TABLENUMOK++;
}
break;
}
string _UPLOADNUM = null;
try
{
if (!string.IsNullOrEmpty(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) &&
!string.IsNullOrEmpty(_DataRowSubgrade["LOCAL_UPLOADNUM"].ToString()))
{
switch (_DataRowSubgrade["TABLENAME"].ToString())
{
case "HIGHWAY_EXCHANGE.T_PERSONSELL":
case "HIGHWAY_EXCHANGE.T_ENDACCOUNT":
case "HIGHWAY_EXCHANGE.T_PERSONSELL_NEW":
case "HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW":
case "HIGHWAY_EXCHANGE.T_BUSINESSTIME":
if (int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) > 0)
{
if (int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) +
int.Parse(_DataRowSubgrade["LOCAL_UPLOADNUM"].ToString()) != 0)
{
_UPLOADNUM = (int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) +
int.Parse(_DataRowSubgrade["LOCAL_UPLOADNUM"].ToString()) - 1).ToString();
}
else
{
_UPLOADNUM = "0";
}
}
else
{
_UPLOADNUM = (int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) +
int.Parse(_DataRowSubgrade["LOCAL_UPLOADNUM"].ToString())).ToString();
}
break;
default:
_UPLOADNUM = (int.Parse(_DataRowSubgrade["LOCAL_NOTUPLOADNUM"].ToString()) +
int.Parse(_DataRowSubgrade["LOCAL_UPLOADNUM"].ToString())).ToString();
break;
}
}
}
catch { _UPLOADNUM = null; }
if (_UPLOADNUM != null && _DataRowSubgrade["UPLOADNUM"].ToString() != _UPLOADNUM)
{
//更新
dataSql = string.Format(
@"UPDATE HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS SET SERVICE_UPDATETIME = {0},
UPLOADNUM = {1},TRANSFER_STATE = 0,TRANSFER_ID = 0 WHERE TRANSFERSTATISTICS_CODE = {2} AND TABLENAME = {3}",
IsArrayType(ValueType.DateTime, DateTime.Now.ToString()),
IsArrayType(ValueType.String, _UPLOADNUM),
IsArrayType(ValueType.String, _DataRowSubgrade["TRANSFERSTATISTICS_CODE"].ToString()),
IsArrayType(ValueType.String, _DataRowSubgrade["TABLENAME"].ToString()));
SQLStringArray.Add(dataSql);
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("RemoteDataThread_Run_Statistics:(SERVERPARTCODE:" +
_DataRowSubgrade["SERVERPARTCODE"].ToString() + ",SHOPCODE:" +
_DataRowSubgrade["SHOPCODE"].ToString() + "," + ex.Message + ")",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
}
}
//初始化
_TRANSFERSTATISTICS_DESC = "";
//备注统计
if (_TableNameBDList.Count > 0)
{
_TRANSFERSTATISTICS_DESC += " 区服未上传:" + string.Join(",", _TableNameBDList.ToArray()) + ";";
}
if (_TableNameHQList.Count > 0)
{
_TRANSFERSTATISTICS_DESC += " 总部未上传:" + string.Join(",", _TableNameHQList.ToArray()) + ";";
}
if (_DataRow["TRANSFERSTATISTICS_DESC"].ToString() != _TRANSFERSTATISTICS_DESC ||
_DataRow["UPLOADED_MACHINE"].ToString() != _TABLENUMOK.ToString() ||
_DataRow["NOTUPLOADED_MACHINE"].ToString() != _TABLENUMNO.ToString())
{
//更新
dataSql = string.Format(
@"UPDATE HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS SET TRANSFERSTATISTICS_DESC = {0},SERVICE_UPDATETIME = {1},
UPLOADED_MACHINE = {2},NOTUPLOADED_MACHINE = {3},
TRANSFER_STATE = 0,TRANSFER_ID = 0 WHERE TRANSFERSTATISTICS_CODE = {4}",
IsArrayType(ValueType.String, _TRANSFERSTATISTICS_DESC),
IsArrayType(ValueType.DateTime, DateTime.Now.ToString()),
IsArrayType(ValueType.Int, _TABLENUMOK.ToString()),
IsArrayType(ValueType.Int, _TABLENUMNO.ToString()),
IsArrayType(ValueType.String, _DataRow["TRANSFERSTATISTICS_CODE"].ToString()));
SQLStringArray.Add(dataSql);
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("Statistics:" + ex.Message + "",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
}
#endregion
//分批执行语句
if (SQLStringArray != null && SQLStringArray.Count > 0)
{
_OracleBDHelper.ExecuteSqlTran(SQLStringArray);
}
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("Statistics:" + ex.Message + "",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
}
finally
{
_TRANSFERSTATISTICS_DESC = null;
}
#endregion
LogHelper.WriteReceiveLog("Statistics:-------合计各表结束(" + oldDate + ")-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
LogHelper.WriteReceiveLog("Statistics:-------服务区、总部传输 开始(" + oldDate + ")-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
#region
try
{
foreach (DataRow _DataRow in _OracleBDHelper.ExcuteSqlGetDataSet(
"SELECT SERVERPARTCODE FROM T_SYSCODE WHERE SERVERPARTCODE IS NOT NULL").Tables[0].Rows)
{
DataSet _DataTemp = null;
dataSql = "SELECT * FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS WHERE OPERATE_DATE >= TO_DATE('" +
oldDate + "','YYYY/MM/DD HH24:MI:SS') AND OPERATE_DATE < TO_DATE('" +
newDate + "','YYYY/MM/DD HH24:MI:SS') AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'";
DataTable _DataTableBD = _OracleBDHelper.ExcuteSqlGetDataSet(dataSql).Tables[0];
dataSql = "SELECT TRANSFERSTATISTICS_CODE,SERVERPARTCODE,LOCAL_UPDATETIME,SERVICE_UPDATETIME,OPERATE_DATE " +
"FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS WHERE OPERATE_DATE >= TO_DATE('" +
oldDate + "','YYYY/MM/DD HH24:MI:SS') AND OPERATE_DATE < TO_DATE('" +
newDate + "','YYYY/MM/DD HH24:MI:SS') AND SERVERPARTCODE = '" + _DataRow["SERVERPARTCODE"].ToString() + "'";
DataTable _DataTableHQ = _OracleHQHelper.ExcuteSqlGetDataSet(dataSql).Tables[0];
if (_DataTableBD != null)
{
_DataTemp = SplitDataTable(_DataTableBD, _MaxLoadBearing);
}
try
{
foreach (DataTable _DataTableTemp in _DataTemp.Tables)
{
if (SQLStringArray == null)
{
SQLStringArray = new List<string>();
}
else
{
SQLStringArray.Clear();
}
foreach (DataRow _DataRowBD in _DataTableTemp.Rows)
{
DataRow[] _DataRowHQ = _DataTableHQ.Select(" TRANSFERSTATISTICS_CODE = '" + _DataRowBD["TRANSFERSTATISTICS_CODE"].ToString() + "'");
if (_DataRowHQ.Length == 0)
{
LogHelper.WriteReceiveLog("Statistics:" + string.Join(",", _DataRowBD.ItemArray),
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
//添加
string _SqlString = string.Format(
@"INSERT INTO HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS(
TRANSFERSTATISTICS_CODE,PID_CODE,
PROVINCE_CODE,SERVERPARTCODE,
SHOPCODE,MACHINECODE,
MACHINE_MACADDRESS,TABLENAME,
UPLOADNUM,LOCAL_UPLOADNUM,
LOCAL_NOTUPLOADNUM,LOCAL_UPDATETIME,
LOCAL_ENDTIME,SERVICE_UPLOADNUM,
SERVICE_NOTUPLOADNUM,SERVICE_UPDATETIME,
STAFF_ID,STAFF_NAME,
OPERATE_DATE,TRANSFERSTATISTICS_DESC,
UPLOADED_MACHINE,NOTUPLOADED_MACHINE,
NOTUPLOADED_TABLE)
VALUES ({0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20},{21},{22})",
IsArrayType(ValueType.String, _DataRowBD["TRANSFERSTATISTICS_CODE"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["PID_CODE"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["PROVINCE_CODE"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["SERVERPARTCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["SHOPCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["MACHINECODE"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["MACHINE_MACADDRESS"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["TABLENAME"].ToString()),
IsArrayType(ValueType.Int, _DataRowBD["UPLOADNUM"].ToString()),
IsArrayType(ValueType.Int, _DataRowBD["LOCAL_UPLOADNUM"].ToString()),
IsArrayType(ValueType.Int, _DataRowBD["LOCAL_NOTUPLOADNUM"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowBD["LOCAL_UPDATETIME"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowBD["LOCAL_ENDTIME"].ToString()),
IsArrayType(ValueType.Int, _DataRowBD["SERVICE_UPLOADNUM"].ToString()),
IsArrayType(ValueType.Int, _DataRowBD["SERVICE_NOTUPLOADNUM"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowBD["SERVICE_UPDATETIME"].ToString()),
IsArrayType(ValueType.Int, _DataRowBD["STAFF_ID"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["STAFF_NAME"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowBD["OPERATE_DATE"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["TRANSFERSTATISTICS_DESC"].ToString()),
IsArrayType(ValueType.Int, _DataRowBD["UPLOADED_MACHINE"].ToString()),
IsArrayType(ValueType.Int, _DataRowBD["NOTUPLOADED_MACHINE"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["NOTUPLOADED_TABLE"].ToString()));
SQLStringArray.Add(_SqlString);
}
else
{
if (
(!string.IsNullOrEmpty(_DataRowBD["OPERATE_DATE"].ToString()) && (string.IsNullOrEmpty(_DataRowHQ[0]["OPERATE_DATE"].ToString()) ||
DateTime.Parse(_DataRowHQ[0]["OPERATE_DATE"].ToString()) < DateTime.Parse(_DataRowBD["OPERATE_DATE"].ToString())) ||
((!string.IsNullOrEmpty(_DataRowBD["LOCAL_UPDATETIME"].ToString()) && (string.IsNullOrEmpty(_DataRowHQ[0]["LOCAL_UPDATETIME"].ToString()) ||
DateTime.Parse(_DataRowHQ[0]["LOCAL_UPDATETIME"].ToString()) < DateTime.Parse(_DataRowBD["LOCAL_UPDATETIME"].ToString())))) ||
((!string.IsNullOrEmpty(_DataRowBD["SERVICE_UPDATETIME"].ToString()) && (string.IsNullOrEmpty(_DataRowHQ[0]["SERVICE_UPDATETIME"].ToString()) ||
DateTime.Parse(_DataRowHQ[0]["SERVICE_UPDATETIME"].ToString()) < DateTime.Parse(_DataRowBD["SERVICE_UPDATETIME"].ToString())))))
)
{
LogHelper.WriteReceiveLog("Statistics:" + string.Join(",", _DataRowBD.ItemArray),
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
string _SqlString = string.Format(
@"UPDATE HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS SET
TRANSFERSTATISTICS_CODE = {0},PID_CODE = {1},
PROVINCE_CODE = {2},SERVERPARTCODE = {3},
SHOPCODE = {4},MACHINECODE ={5},
MACHINE_MACADDRESS = {6},TABLENAME = {7},
UPLOADNUM = {8},LOCAL_UPLOADNUM = {9},
LOCAL_NOTUPLOADNUM = {10},LOCAL_UPDATETIME ={11},
LOCAL_ENDTIME = {12}, SERVICE_UPLOADNUM ={13},
SERVICE_NOTUPLOADNUM = {14},SERVICE_UPDATETIME ={15},
STAFF_ID = {16},STAFF_NAME ={17},
OPERATE_DATE ={18},TRANSFERSTATISTICS_DESC ={19},
UPLOADED_MACHINE ={20},NOTUPLOADED_MACHINE ={21},
NOTUPLOADED_TABLE = {22}
WHERE TRANSFERSTATISTICS_CODE = {0}",
IsArrayType(ValueType.String, _DataRowBD["TRANSFERSTATISTICS_CODE"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["PID_CODE"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["PROVINCE_CODE"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["SERVERPARTCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["SHOPCODE"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["MACHINECODE"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["MACHINE_MACADDRESS"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["TABLENAME"].ToString()),
IsArrayType(ValueType.Int, _DataRowBD["UPLOADNUM"].ToString()),
IsArrayType(ValueType.Int, _DataRowBD["LOCAL_UPLOADNUM"].ToString()),
IsArrayType(ValueType.Int, _DataRowBD["LOCAL_NOTUPLOADNUM"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowBD["LOCAL_UPDATETIME"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowBD["LOCAL_ENDTIME"].ToString()),
IsArrayType(ValueType.Int, _DataRowBD["SERVICE_UPLOADNUM"].ToString()),
IsArrayType(ValueType.Int, _DataRowBD["SERVICE_NOTUPLOADNUM"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowBD["SERVICE_UPDATETIME"].ToString()),
IsArrayType(ValueType.Int, _DataRowBD["STAFF_ID"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["STAFF_NAME"].ToString()),
IsArrayType(ValueType.DateTime, _DataRowBD["OPERATE_DATE"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["TRANSFERSTATISTICS_DESC"].ToString()),
IsArrayType(ValueType.Int, _DataRowBD["UPLOADED_MACHINE"].ToString()),
IsArrayType(ValueType.Int, _DataRowBD["NOTUPLOADED_MACHINE"].ToString()),
IsArrayType(ValueType.String, _DataRowBD["NOTUPLOADED_TABLE"].ToString()));
SQLStringArray.Add(_SqlString);
}
}
}
//分批执行语句(总部)
if (SQLStringArray != null && SQLStringArray.Count > 0)
{
_OracleHQHelper.ExecuteSqlTran(SQLStringArray);
}
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("Statistics:" + ex.Message + "",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
}
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("Statistics:" + ex.Message + "",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
}
#endregion
LogHelper.WriteReceiveLog("Statistics:-------服务区、总部传输 结束(" + oldDate + ")-------",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
}
}
catch (Exception ex)
{
LogHelper.WriteReceiveLog("Statistics:" + ex.Message + "",
DateTime.Now.ToString("yyyyMMdd") + "日志_Sender(RemoteDataThread_Run_Statistics)");
}
finally
{
try
{
if (_Data != null)
{
//更新状态
_Data[TableNameType.STATISTICS] = true;
}
}
catch { }
//内存释放
dataSql = null;
SQLStringArray = null;
createDateName = null;
okSqls = null;
noSqls = null;
MemoryManagement.FlushMemory();
}
}
#endregion
#region ->
private string SelectServerData(TableNameType type, string serverpartcode)
{
string SQLString = string.Empty;
switch (type)
{
//门店
case TableNameType.T_SHOPMESSAGE:
SQLString = @"SELECT SHOPMESSAGE_ID,SERVERPARTSHOP_ID,SERVERPARTCODE,SHOPCODE,
SHOPNAME,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID FROM
(
SELECT T.*, ROW_NUMBER()
OVER(PARTITION BY SERVERPARTCODE,SERVERPARTSHOP_ID
ORDER BY T.DOWNLOADDATE DESC,T.SHOPMESSAGE_ID DESC) AS COLNUM
FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE T
) WHERE COLNUM = 1 AND SERVERPARTCODE = '" + serverpartcode + "'";
break;
//收银员
case TableNameType.T_SELLWORKER:
SQLString = @"SELECT SELLWORKER_ID,SERVERPARTCODE,SELLWORKERCODE,SELLWORKERNAME,PROWERRIGHT,SHOPCODE,
DOWNLOADDATE,FLAG,VALID,SELLWORKERPASSWORD,DISCOUNT_RATE FROM
(
SELECT T.*, ROW_NUMBER()
OVER(PARTITION BY SERVERPARTCODE,SELLWORKERCODE
ORDER BY T.DOWNLOADDATE DESC,T.SELLWORKER_ID DESC) AS COLNUM
FROM HIGHWAY_EXCHANGE.T_SELLWORKER T
) WHERE COLNUM = 1 AND SERVERPARTCODE = '" + serverpartcode + "'";
break;
//商品
case TableNameType.T_COMMODITYEX:
SQLString = @"SELECT COMMODITYEX_ID,SERVERPARTCODE,COMMODITY_TYPE,COMMODITY_CODE,COMMODITY_BARCODE,
COMMODITY_NAME,COMMODITY_RULE,COMMODITY_UNIT,COMMODITY_RETAILPRICE,COMMODITY_MEMBERPRICE,
CANCHANGEPRICE,ISVALID,COMMODITY_EN,ISBULK,METERINGMETHOD,DOWNLOADDATE,FLAG,BUSINESSTYPE,
SERVERPARTSHOP_ID,PRINT_DATE,CONTAINER_CODE,COMMODITY_SYMBOL,COMMODITY_HOTKEY,USERDEFINEDTYPE_ID FROM
(
SELECT T.*, ROW_NUMBER()
OVER(PARTITION BY SERVERPARTCODE,COMMODITY_CODE,SERVERPARTSHOP_ID
ORDER BY T.DOWNLOADDATE DESC,T.COMMODITYEX_ID DESC) AS COLNUM
FROM HIGHWAY_EXCHANGE.T_COMMODITYEX T
) WHERE COLNUM = 1 AND SERVERPARTCODE = '" + serverpartcode + "'";
break;
//快捷键
case TableNameType.T_HOTKEYSET:
SQLString = @"SELECT HOTKEYSET_ID,SERVERPARTCODE,COMMODITY_BARCODE,HOTKEY,BUSINESSTYPE,DOWNLOADDATE,FLAG,VALID FROM
(
SELECT T.*, ROW_NUMBER()
OVER(PARTITION BY SERVERPARTCODE,COMMODITY_BARCODE
ORDER BY T.DOWNLOADDATE DESC,T.HOTKEYSET_ID DESC) AS COLNUM
FROM HIGHWAY_EXCHANGE.T_HOTKEYSET T
) WHERE COLNUM = 1 AND SERVERPARTCODE = '" + serverpartcode + "'";
break;
}
return SQLString;
}
#endregion
#region ->
/// <summary>
/// 分解数据表
/// </summary>
/// <param name="originalTab">需要分解的表</param>
/// <param name="rowsNum">每个表包含的数据量</param>
/// <returns></returns>
private static DataSet SplitDataTable(DataTable originalTab, int rowsNum)
{
//获取所需创建的表数量
int tableNum = (int)Math.Ceiling((decimal)originalTab.Rows.Count / rowsNum);
//获取数据余数
int remainder = originalTab.Rows.Count % rowsNum;
DataSet ds = new DataSet();
//如果只需要创建1个表直接将原始表存入DataSet
//if (originalTab.Rows.Count <= rowsNum)
//{
// ds.Tables.Add(originalTab);
//}
//else
//{
DataTable[] tableSlice = new DataTable[tableNum];
//Save orginal columns into new table.
for (int c = 0; c < tableNum; c++)
{
tableSlice[c] = originalTab.Clone();
tableSlice[c].TableName = originalTab.TableName + c.ToString();
}
//Import Rows
for (int i = 0; i < tableNum; i++)
{
// if the current table is not the last one
//if (i != tableNum - 1)
//{
for (int j = i * rowsNum; j < ((i + 1) * rowsNum); j++)
{
if (j >= originalTab.Rows.Count)
{
break;
}
tableSlice[i].ImportRow(originalTab.Rows[j]);
}
//}
//else
//{
// for (int k = i * rowsNum; k < ((i + 1) * rowsNum + remainder); k++)
// {
// tableSlice[i].ImportRow(originalTab.Rows[k]);
// }
//}
}
//add all tables into a dataset
foreach (DataTable dt in tableSlice)
{
ds.Tables.Add(dt);
}
//}
return ds;
}
#endregion
#region ->
public enum TableNameType
{
T_SHOPMESSAGE = 62,
T_SELLWORKER = 63,
T_COMMODITYEX = 64,
T_HOTKEYSET = 65,
STATISTICS = 66
}
#endregion
#region ->
/// <summary>
/// 枚举参数过滤处理解决麻烦的SQL拼接
/// 对照数据表给定添加、更新的参数枚举类型ValueType
/// </summary>
/// <param name="_Type"></param>
/// <param name="_String"></param>
/// <returns></returns>
public string IsArrayType(ValueType _Type, string _String = null)
{
if (_String != null && _String.Length > 0)
{
switch (_Type)
{
case ValueType.String:
return string.Format("'{0}'", _String.Replace("'", " "));
case ValueType.Int:
case ValueType.Double:
case ValueType.Boolean:
return _String;
case ValueType.DateTime:
return string.Format("TO_DATE('{0}','YYYY/MM/DD HH24:MI:SS')", _String);
}
}
return "null";
}
/// <summary>
/// 枚举参数过滤处理解决麻烦的SQL拼接
/// 对照数据表给定添加、更新的参数枚举类型ValueType
/// </summary>
/// <param name="_Type"></param>
/// <param name="_Default">是否使用缺省值</param>
/// <returns></returns>
private static string IsArrayType(ValueType _Type, bool _DefaultValue = false)
{
if (_DefaultValue)
{
switch (_Type)
{
case ValueType.String:
return "''";
case ValueType.Int:
case ValueType.Double:
case ValueType.Boolean:
return "0";
case ValueType.DateTime:
return string.Format("TO_DATE('{0}','YYYY/MM/DD HH24:MI:SS')", DateTime.Now.ToString());
}
}
return "null";
}
#endregion
#region -> 5
public enum ValueType
{
String = 0,
Int = 1,
Double = 2,
Boolean = 3,
DateTime = 4
}
#endregion
#region ->
private void timer1_Tick(object sender, EventArgs e)
{
onStartThread();
}
#endregion
#region ->
private Hashtable getTopOrDownCount(string serverpartcode, string shopcode, string machinecode,
string dateName, string oldDate, string newDate, bool isUploaded)
{
Hashtable _AllDataSql = new Hashtable();
// _AllDataSql.Add("HIGHWAY_EXCHANGE.T_COMMODITYEX_NEW",
// @"SELECT 1
// FROM HIGHWAY_EXCHANGE.T_COMMODITYEX_NEW WHERE COMMODITYEX_ID IS NOT NULL AND
// SERVERPARTCODE IS NOT NULL AND SERVERPARTSHOP_ID IS NOT NULL AND COMMODITY_CODE <> '' " +
// (isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
// (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
// (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
// IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_ENDACCOUNT",
@"SELECT 1
FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT WHERE ENDACCOUNT_ID IS NOT NULL AND ENDACCOUNT_DATE IS NOT NULL AND
ENDACCOUNT_STARTDATE IS NOT NULL AND SERVERPARTCODE IS NOT NULL AND SHOPCODE IS NOT NULL AND
MACHINECODE IS NOT NULL AND FLAG IS NOT NULL AND ENDACCOUNT_STARTDATE > TO_DATE('2018/01/01 00:00:00','YYYY/MM/DD HH24:MI:SS')" +
(isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
(string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW",
@"SELECT 1
FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW WHERE ENDACCOUNT_CODE IS NOT NULL AND STARTDATE IS NOT NULL AND ENDDATE IS NOT NULL " +
(isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
(string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_EXCEPTION",
@"SELECT 1
FROM HIGHWAY_EXCHANGE.T_EXCEPTION WHERE EXCEPTION_ID IS NOT NULL AND EXCEPTION_DATE IS NOT NULL AND
SERVERPARTCODE IS NOT NULL AND SHOPCODE IS NOT NULL AND MACHINECODE IS NOT NULL AND WORKERCODE IS NOT NULL AND EXCEPTIONTYPE IS NOT NULL" +
(isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
(string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_MOBILE_PAY",
@"SELECT 1
FROM HIGHWAY_EXCHANGE.T_MOBILE_PAY WHERE MOBILE_PAY_ID IS NOT NULL AND MOBILEPAY_TYPE IS NOT NULL AND
NVL(MOBILEPAY_RESULT,0) <> 9 AND TICKET_CODE IS NOT NULL AND MOBILEPAY_DATE IS NOT NULL" +
(isUploaded == true ? " AND NVL(MOBILEPAY_STATE,0) = 9" : " AND NVL(MOBILEPAY_STATE,0) <> 9") +
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
(string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
// _AllDataSql.Add("HIGHWAY_EXCHANGE.T_MOBILE_PAYCHECK",
// @"SELECT 1
// FROM HIGHWAY_EXCHANGE.T_MOBILE_PAYCHECK WHERE MOBILE_PAYCHECK_ID IS NOT NULL AND
// MOBILEPAY_TYPE IS NOT NULL AND TICKET_CODE IS NOT NULL " +
// (isUploaded == true ? " AND NVL(MOBILE_PAYCHECK_STATE,0) = 9" : " AND NVL(MOBILE_PAYCHECK_STATE,0) <> 9") +
// (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
// IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_PERSONSELL",
@"SELECT 1
FROM HIGHWAY_EXCHANGE.T_PERSONSELL WHERE PERSONSELL_ID IS NOT NULL AND SERVERPARTCODE IS NOT NULL AND ENDDATE IS NOT NULL AND
SHOPCODE IS NOT NULL AND MACHINECODE IS NOT NULL AND STARTDATE IS NOT NULL AND STARTDATE > TO_DATE('2018/01/01 00:00:00','YYYY/MM/DD HH24:MI:SS') " +
(isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
(string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_PERSONSELL_NEW",
@"SELECT 1
FROM HIGHWAY_EXCHANGE.T_PERSONSELL_NEW WHERE ENDACCOUNT_CODE IS NOT NULL AND STARTDATE IS NOT NULL AND ENDDATE IS NOT NULL " +
(isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
(string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR",
@"SELECT COMMODITYSALE_ID, STARTDATE, ENDDATE, SERVERPARTCODE, SHOPCODE, MACHINECODE, COMMODITY_TYPE,
COMMODITY_CODE, COMMODITY_NAME, TICKETCOUNT, TOTALCOUNT, TOTALSELLAMOUNT, TOTALOFFAMOUNT,
FLAG,TRANSFER_STATE, TRANSFER_ID, MERGE_STATE
FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR WHERE COMMODITYSALE_ID IS NOT NULL AND STARTDATE IS NOT NULL AND
ENDDATE IS NOT NULL AND SERVERPARTCODE IS NOT NULL AND SHOPCODE IS NOT NULL AND MACHINECODE IS NOT NULL" +
(isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
(string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
// _AllDataSql.Add("HIGHWAY_EXCHANGE.T_SELLDATA",
// @"SELECT 1
// FROM HIGHWAY_EXCHANGE.T_SELLDATA_EXTRA WHERE SELLDATA_ID IS NOT NULL AND SELLDATA_DATE IS NOT NULL AND
// SERVERPARTCODE IS NOT NULL AND SHOPCODE IS NOT NULL AND MACHINECODE IS NOT NULL AND TICKETCODE IS NOT NULL AND
// TICKETCODE <> '' AND WORKERCODE IS NOT NULL AND COMMODITY_CODE IS NOT NULL AND SELLDATA_DATE > TO_DATE('2018/01/01 00:00:00','YYYY/MM/DD HH24:MI:SS')" +
// (isUploaded == true ? " AND NVL(SELLDATA_STATE,0) = 9" : " AND NVL(SELLDATA_STATE,0) <> 9") +
// (string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
// (string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
// (string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
// (string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
// IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_TRANSFER_SALE",
@"SELECT 1
FROM HIGHWAY_EXCHANGE.T_TRANSFER_SALE WHERE TRANSFER_FIRSTDATAS IS NOT NULL AND TRANSFER_ID IS NOT NULL AND STARTDATE IS NOT NULL AND ENDDATE IS NOT NULL" +
(isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
_AllDataSql.Add("HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS",
@"SELECT 1
FROM HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS WHERE OPERATE_DATE IS NOT NULL AND TRANSFERSTATISTICS_CODE IS NOT NULL" +
(isUploaded == true ? " AND NVL(TRANSFER_STATE,0) = 9" : " AND NVL(TRANSFER_STATE,0) <> 9") +
(string.IsNullOrWhiteSpace(serverpartcode) ? "" : (" AND SERVERPARTCODE = '" + serverpartcode + "'")) +
(string.IsNullOrWhiteSpace(shopcode) ? "" : (" AND SHOPCODE = '" + shopcode + "'")) +
(string.IsNullOrWhiteSpace(machinecode) ? "" : (" AND MACHINECODE = '" + machinecode + "'")) +
(string.IsNullOrWhiteSpace(dateName) ? "" : (string.Format(" AND {0} >= {1} AND {0} < {2}", dateName,
IsArrayType(ValueType.DateTime, oldDate), IsArrayType(ValueType.DateTime, newDate)))));
return _AllDataSql;
}
#endregion
#region ->
private Hashtable getCreateDateName()
{
Hashtable _CreateDateName = new Hashtable();
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_ENDACCOUNT", "ENDACCOUNT_DATE");
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW", "ENDDATE");
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_EXCEPTION", "EXCEPTION_DATE");
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_MOBILE_PAY", "MOBILEPAY_DATE");
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_PERSONSELL", "ENDDATE");
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_PERSONSELL_NEW", "ENDDATE");
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_COMMODITYSALE_EXTAR", "ENDDATE");
//_CreateDateName.Add("HIGHWAY_EXCHANGE.T_SELLDATA", "SELLDATA_DATE");
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_TRANSFER_SALE", "ENDDATE");
_CreateDateName.Add("HIGHWAY_EXCHANGE.T_TRANSFERSTATISTICS", "OPERATE_DATE");
return _CreateDateName;
}
#endregion
}
}