1543 lines
87 KiB
C#
1543 lines
87 KiB
C#
using Newtonsoft.Json.Linq;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
using System.Diagnostics;
|
||
using System.Linq;
|
||
using System.Net;
|
||
using System.Net.NetworkInformation;
|
||
using System.Text;
|
||
using System.Threading;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace GetHttpData.SDK
|
||
{
|
||
public class ConcurrentThread
|
||
{
|
||
//上传
|
||
private static CancellationTokenSource _RunSellmasterCancell = null;
|
||
private static CancellationTokenSource _RunSelldetailsCancell = null;
|
||
private static CancellationTokenSource _RunCommoditysale_newCancell = null;
|
||
private static CancellationTokenSource _RunPersonsell_newCancell = null;
|
||
private static CancellationTokenSource _RunEndaccount_newCancell = null;
|
||
private static CancellationTokenSource _RunTransfer_saleCancell = null;
|
||
|
||
//下发
|
||
private static CancellationTokenSource _RunUserdefinedtypeCancell = null;
|
||
private static CancellationTokenSource _RunCommodityexCancell = null;
|
||
|
||
//上传
|
||
private static Thread _RunSellmasterThread = null;
|
||
private static Thread _RunSelldetailsThread = null;
|
||
private static Thread _RunCommoditysale_newThread = null;
|
||
private static Thread _RunPersonsell_newThread = null;
|
||
private static Thread _RunEndaccount_newThread = null;
|
||
private static Thread _RunTransfer_saleThread = null;
|
||
|
||
//下发
|
||
private static Thread _RunUserdefinedtypeThread = null;
|
||
private static Thread _RunCommodityexThread = null;
|
||
|
||
//--配置文件--//
|
||
private bool _IsUpload = false, _IsDownload = false;
|
||
private List<StartUpType> _StartUpTypes = null;
|
||
private List<StartDownType> _StartDownTypes = null;
|
||
private bool _IsUploadContinuousStart = false;
|
||
private string _IpAddress = null;
|
||
private string _CodeEndaccount = null;
|
||
private string _Serverpartcode = null;
|
||
private string _Serverpartshop_id = null;
|
||
private string _Machinecode = null;
|
||
private string _JsonString = null;
|
||
private string _InterfaceNameUpload = "UploadTableData";
|
||
private string _InterfaceNameDownload = "DownloadTableData";
|
||
|
||
#region 方法 -> 初始化参数配置
|
||
|
||
public ConcurrentThread()
|
||
{
|
||
return;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 参数配置
|
||
/// </summary>
|
||
/// <param name="_IpAddress">接口地址</param>
|
||
/// <param name="_CodeEndaccount">授权码</param>
|
||
/// <param name="serverpartcode">服务区编码</param>
|
||
/// <param name="serverpartshop_id">门店ID</param>
|
||
/// <param name="machinecode">收银机编号</param>
|
||
/// <returns></returns>
|
||
public ConcurrentThread(string ipAddress, string codeEndaccount,
|
||
string serverpartcode, string serverpartshop_id, string machinecode)
|
||
{
|
||
//设置配置参数
|
||
setConfiguration(ipAddress, codeEndaccount, serverpartcode, serverpartshop_id, machinecode);
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 设置配置参数
|
||
/// <summary>
|
||
/// 参数配置
|
||
/// </summary>
|
||
/// <param name="_IpAddress">接口地址</param>
|
||
/// <param name="_CodeEndaccount">授权码</param>
|
||
/// <param name="serverpartcode">服务区编码</param>
|
||
/// <param name="serverpartshop_id">门店ID</param>
|
||
/// <param name="machinecode">收银机编号</param>
|
||
/// <returns></returns>
|
||
public void setConfiguration(string ipAddress, string codeEndaccount,
|
||
string serverpartcode, string serverpartshop_id, string machinecode)
|
||
{
|
||
if (string.IsNullOrEmpty(ipAddress) || string.IsNullOrEmpty(codeEndaccount) ||
|
||
string.IsNullOrEmpty(serverpartcode) || string.IsNullOrEmpty(serverpartshop_id) ||
|
||
string.IsNullOrEmpty(machinecode))
|
||
{
|
||
//throw new Exception("接口地址、授权码、服务区编码、门店ID不可为空!");
|
||
return;
|
||
}
|
||
_IpAddress = ipAddress;
|
||
_CodeEndaccount = codeEndaccount;
|
||
_Serverpartcode = serverpartcode;
|
||
_Serverpartshop_id = serverpartshop_id;
|
||
_Machinecode = machinecode;
|
||
_JsonString = "{SERVERPARTCODE:'" + serverpartcode +
|
||
"',SERVERPARTSHOP_ID:'" + serverpartshop_id +
|
||
"',MACHINECODE:'" + machinecode + "'}";
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 是否开启上传线程
|
||
/// <summary>
|
||
/// 是否开启上传线程
|
||
/// </summary>
|
||
/// <param name="isUpload">是否启动</param>
|
||
/// <param name="startType">默认所有</param>
|
||
/// <returns></returns>
|
||
public void IsUpload(bool isUpload = false, List<StartUpType> startUpTypes = null)
|
||
{
|
||
_IsUpload = isUpload;
|
||
_StartUpTypes = startUpTypes;
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 是否开启下发线程
|
||
/// <summary>
|
||
/// 是否开启下发线程
|
||
/// </summary>
|
||
/// <param name="isDownload">是否启动</param>
|
||
/// <param name="startType">默认所有</param>
|
||
/// <returns></returns>
|
||
public void IsDownload(bool isDownload = false, List<StartDownType> startDownTypes = null)
|
||
{
|
||
_IsDownload = isDownload;
|
||
_StartDownTypes = startDownTypes;
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 是否开启上传线程持续执行
|
||
/// <summary>
|
||
/// 是否开启上传线程持续执行
|
||
/// </summary>
|
||
/// <param name="isUploadContinuousStart">开启持续执行</param>
|
||
public void isUploadContinuousStart(bool isUploadContinuousStart = false)
|
||
{
|
||
_IsUploadContinuousStart = isUploadContinuousStart;
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 线程入口
|
||
|
||
private void OpenThreadPoolMain()
|
||
{
|
||
#region 线程上传集合
|
||
if (_IsUpload)
|
||
{
|
||
if (_StartUpTypes == null)
|
||
{
|
||
if (_RunSellmasterThread == null || !_RunSellmasterThread.IsAlive)
|
||
{
|
||
_RunSellmasterThread = new Thread(new ParameterizedThreadStart(delegate
|
||
{
|
||
RunSellmasterThread(_IpAddress, _InterfaceNameUpload, _CodeEndaccount,
|
||
_Serverpartcode, _Serverpartshop_id, _Machinecode, _IsUploadContinuousStart);
|
||
}));
|
||
_RunSellmasterThread.IsBackground = true;
|
||
_RunSellmasterThread.Start();
|
||
}
|
||
if (_RunSelldetailsThread == null || !_RunSelldetailsThread.IsAlive)
|
||
{
|
||
_RunSelldetailsThread = new Thread(new ParameterizedThreadStart(delegate
|
||
{
|
||
RunSelldetailsThread(_IpAddress, _InterfaceNameUpload, _CodeEndaccount,
|
||
_Serverpartcode, _Serverpartshop_id, _Machinecode, _IsUploadContinuousStart);
|
||
}));
|
||
_RunSelldetailsThread.IsBackground = true;
|
||
_RunSelldetailsThread.Start();
|
||
}
|
||
if (_RunCommoditysale_newThread == null || !_RunCommoditysale_newThread.IsAlive)
|
||
{
|
||
_RunCommoditysale_newThread = new Thread(new ParameterizedThreadStart(delegate
|
||
{
|
||
RunCommoditysale_newThread(_IpAddress, _InterfaceNameUpload, _CodeEndaccount,
|
||
_Serverpartcode, _Serverpartshop_id, _Machinecode, _IsUploadContinuousStart);
|
||
}));
|
||
_RunCommoditysale_newThread.IsBackground = true;
|
||
_RunCommoditysale_newThread.Start();
|
||
}
|
||
if (_RunPersonsell_newThread == null || !_RunPersonsell_newThread.IsAlive)
|
||
{
|
||
_RunPersonsell_newThread = new Thread(new ParameterizedThreadStart(delegate
|
||
{
|
||
RunPersonsell_newThread(_IpAddress, _InterfaceNameUpload, _CodeEndaccount,
|
||
_Serverpartcode, _Serverpartshop_id, _Machinecode, _IsUploadContinuousStart);
|
||
}));
|
||
_RunPersonsell_newThread.IsBackground = true;
|
||
_RunPersonsell_newThread.Start();
|
||
}
|
||
if (_RunEndaccount_newThread == null || !_RunEndaccount_newThread.IsAlive)
|
||
{
|
||
_RunEndaccount_newThread = new Thread(new ParameterizedThreadStart(delegate
|
||
{
|
||
RunEndaccount_newThread(_IpAddress, _InterfaceNameUpload, _CodeEndaccount,
|
||
_Serverpartcode, _Serverpartshop_id, _Machinecode, _IsUploadContinuousStart);
|
||
}));
|
||
_RunEndaccount_newThread.IsBackground = true;
|
||
_RunEndaccount_newThread.Start();
|
||
}
|
||
if (_RunTransfer_saleThread == null || !_RunTransfer_saleThread.IsAlive)
|
||
{
|
||
_RunTransfer_saleThread = new Thread(new ParameterizedThreadStart(delegate
|
||
{
|
||
RunTransfer_saleThread(_IpAddress, _InterfaceNameUpload, _CodeEndaccount,
|
||
_Serverpartcode, _Serverpartshop_id, _Machinecode, _IsUploadContinuousStart);
|
||
}));
|
||
_RunTransfer_saleThread.IsBackground = true;
|
||
_RunTransfer_saleThread.Start();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
foreach (StartUpType _StartUpType in _StartUpTypes)
|
||
{
|
||
switch (_StartUpType)
|
||
{
|
||
case StartUpType.SELLMASTER:
|
||
if (_RunSellmasterThread == null || !_RunSellmasterThread.IsAlive)
|
||
{
|
||
_RunSellmasterThread = new Thread(new ParameterizedThreadStart(delegate
|
||
{
|
||
RunSellmasterThread(_IpAddress, _InterfaceNameUpload, _CodeEndaccount,
|
||
_Serverpartcode, _Serverpartshop_id, _Machinecode, _IsUploadContinuousStart);
|
||
}));
|
||
_RunSellmasterThread.IsBackground = true;
|
||
_RunSellmasterThread.Start();
|
||
}
|
||
break;
|
||
case StartUpType.SELLDETAILS:
|
||
if (_RunSelldetailsThread == null || !_RunSelldetailsThread.IsAlive)
|
||
{
|
||
_RunSelldetailsThread = new Thread(new ParameterizedThreadStart(delegate
|
||
{
|
||
RunSelldetailsThread(_IpAddress, _InterfaceNameUpload, _CodeEndaccount,
|
||
_Serverpartcode, _Serverpartshop_id, _Machinecode, _IsUploadContinuousStart);
|
||
}));
|
||
_RunSelldetailsThread.IsBackground = true;
|
||
_RunSelldetailsThread.Start();
|
||
}
|
||
break;
|
||
case StartUpType.COMMODITYSALE_NEW:
|
||
if (_RunCommoditysale_newThread == null || !_RunCommoditysale_newThread.IsAlive)
|
||
{
|
||
_RunCommoditysale_newThread = new Thread(new ParameterizedThreadStart(delegate
|
||
{
|
||
RunCommoditysale_newThread(_IpAddress, _InterfaceNameUpload, _CodeEndaccount,
|
||
_Serverpartcode, _Serverpartshop_id, _Machinecode, _IsUploadContinuousStart);
|
||
}));
|
||
_RunCommoditysale_newThread.IsBackground = true;
|
||
_RunCommoditysale_newThread.Start();
|
||
}
|
||
break;
|
||
case StartUpType.PERSONSELL_NEW:
|
||
if (_RunPersonsell_newThread == null || !_RunPersonsell_newThread.IsAlive)
|
||
{
|
||
_RunPersonsell_newThread = new Thread(new ParameterizedThreadStart(delegate
|
||
{
|
||
RunPersonsell_newThread(_IpAddress, _InterfaceNameUpload, _CodeEndaccount,
|
||
_Serverpartcode, _Serverpartshop_id, _Machinecode, _IsUploadContinuousStart);
|
||
}));
|
||
_RunPersonsell_newThread.IsBackground = true;
|
||
_RunPersonsell_newThread.Start();
|
||
}
|
||
break;
|
||
case StartUpType.ENDACCOUNT_NEW:
|
||
if (_RunEndaccount_newThread == null || !_RunEndaccount_newThread.IsAlive)
|
||
{
|
||
_RunEndaccount_newThread = new Thread(new ParameterizedThreadStart(delegate
|
||
{
|
||
RunEndaccount_newThread(_IpAddress, _InterfaceNameUpload, _CodeEndaccount,
|
||
_Serverpartcode, _Serverpartshop_id, _Machinecode, _IsUploadContinuousStart);
|
||
}));
|
||
_RunEndaccount_newThread.IsBackground = true;
|
||
_RunEndaccount_newThread.Start();
|
||
}
|
||
break;
|
||
case StartUpType.TRANSFER_SALE:
|
||
if (_RunTransfer_saleThread == null || !_RunTransfer_saleThread.IsAlive)
|
||
{
|
||
_RunTransfer_saleThread = new Thread(new ParameterizedThreadStart(delegate
|
||
{
|
||
RunTransfer_saleThread(_IpAddress, _InterfaceNameUpload, _CodeEndaccount,
|
||
_Serverpartcode, _Serverpartshop_id, _Machinecode, _IsUploadContinuousStart);
|
||
}));
|
||
_RunTransfer_saleThread.IsBackground = true;
|
||
_RunTransfer_saleThread.Start();
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 线程下发集合
|
||
if (_IsDownload)
|
||
{
|
||
if (_StartDownTypes == null)
|
||
{
|
||
if (_RunUserdefinedtypeThread == null || !_RunUserdefinedtypeThread.IsAlive)
|
||
{
|
||
_RunUserdefinedtypeThread = new Thread(new ParameterizedThreadStart(delegate
|
||
{
|
||
RunUserdefinedtypeThread(_IpAddress, _InterfaceNameDownload, _CodeEndaccount, _JsonString);
|
||
}));
|
||
_RunUserdefinedtypeThread.IsBackground = true;
|
||
_RunUserdefinedtypeThread.Start();
|
||
}
|
||
|
||
if (_RunCommodityexThread == null || !_RunCommodityexThread.IsAlive)
|
||
{
|
||
_RunCommodityexThread = new Thread(new ParameterizedThreadStart(delegate
|
||
{
|
||
RunCommodityexThread(_IpAddress, _InterfaceNameDownload, _CodeEndaccount, _JsonString);
|
||
}));
|
||
_RunCommodityexThread.IsBackground = true;
|
||
_RunCommodityexThread.Start();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
foreach (StartDownType _StartDownType in _StartDownTypes)
|
||
{
|
||
switch (_StartDownType)
|
||
{
|
||
case StartDownType.USERDEFINEDTYPE:
|
||
if (_RunUserdefinedtypeThread == null || !_RunUserdefinedtypeThread.IsAlive)
|
||
{
|
||
_RunUserdefinedtypeThread = new Thread(new ParameterizedThreadStart(delegate
|
||
{
|
||
RunUserdefinedtypeThread(_IpAddress, _InterfaceNameDownload, _CodeEndaccount, _JsonString);
|
||
}));
|
||
_RunUserdefinedtypeThread.IsBackground = true;
|
||
_RunUserdefinedtypeThread.Start();
|
||
}
|
||
break;
|
||
case StartDownType.COMMODITYEX:
|
||
if (_RunCommodityexThread == null || !_RunCommodityexThread.IsAlive)
|
||
{
|
||
_RunCommodityexThread = new Thread(new ParameterizedThreadStart(delegate
|
||
{
|
||
RunCommodityexThread(_IpAddress, _InterfaceNameDownload, _CodeEndaccount, _JsonString);
|
||
}));
|
||
_RunCommodityexThread.IsBackground = true;
|
||
_RunCommodityexThread.Start();
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 线程上传集合
|
||
|
||
#region HIGHWAY_EXCHANGE.T_SELLMASTER
|
||
|
||
static void RunSellmasterThread(string _IpAddress, string _InterfaceName, string _CodeEndaccount,
|
||
string serverpartcode, string serverpartshop_id, string machinecode, bool _IsContinuousStart = false)
|
||
{
|
||
//耗时监听
|
||
Stopwatch sw = new Stopwatch();
|
||
sw.Start();
|
||
|
||
_RunSellmasterCancell = new CancellationTokenSource();
|
||
while (true)
|
||
{
|
||
if (_RunSellmasterCancell != null && _RunSellmasterCancell.Token.IsCancellationRequested)
|
||
{
|
||
//退出线程
|
||
_RunSellmasterCancell.Dispose();
|
||
_RunSellmasterCancell = null;
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
try
|
||
{
|
||
DataTable _DataTable = DBHelper.QueryOdbc(
|
||
"SELECT * FROM T_SELLMASTER WHERE TRANSFER_STATE = 0 AND SELLMASTER_CODE IS NOT NULL AND SELLMASTER_DATE IS NOT NULL").Tables[0];
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
DataSet _DataSet = SplitDataTable(_DataTable, 400);
|
||
if (_DataSet != null)
|
||
{
|
||
for (int i = 0; i < _DataSet.Tables.Count; i++)
|
||
{
|
||
try
|
||
{
|
||
if (_DataSet.Tables[i].Rows.Count > 0)
|
||
{
|
||
//最早操作时间
|
||
string _EndDate = string.Empty;
|
||
foreach (DataRow dr in _DataSet.Tables[i].Rows)
|
||
{
|
||
try
|
||
{
|
||
if (string.IsNullOrEmpty(_EndDate))
|
||
{
|
||
DateTime.Parse(dr["SELLMASTER_DATE"].ToString());
|
||
_EndDate = dr["SELLMASTER_DATE"].ToString();
|
||
}
|
||
else
|
||
{
|
||
if (DateTime.Parse(_EndDate) > DateTime.Parse(dr["SELLMASTER_DATE"].ToString()))
|
||
{
|
||
_EndDate = dr["SELLMASTER_DATE"].ToString();
|
||
}
|
||
}
|
||
}
|
||
catch { }
|
||
}
|
||
|
||
string _DataBack = HttpDataHelper.InsertDataByJson(_IpAddress, _InterfaceName,
|
||
"HIGHWAY_EXCHANGE.T_SELLMASTER", _CodeEndaccount, JsonHelper.DataTableToJson(_DataSet.Tables[i]),
|
||
"{SERVERPARTCODE:'" + serverpartcode + "',SERVERPARTSHOP_ID:'" + serverpartshop_id +
|
||
"',MACHINECODE:'" + machinecode + "',ENDDATE:'" + _EndDate + "'}");
|
||
JObject _JObject = JObject.Parse(_DataBack);
|
||
if (_JObject.Property("error") != null)
|
||
{
|
||
if ("1".Equals(_JObject.Property("error").Value.ToString()))
|
||
{
|
||
string _SELLMASTER_CODEStr = string.Empty;
|
||
foreach (DataRow dr in _DataSet.Tables[i].Rows)
|
||
{
|
||
_SELLMASTER_CODEStr += (string.IsNullOrEmpty(_SELLMASTER_CODEStr) ? "" : ",") +
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["SELLMASTER_CODE"].ToString());
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(_SELLMASTER_CODEStr))
|
||
{
|
||
string sqlString = string.Format("UPDATE T_SELLMASTER SET TRANSFER_STATE = 1 WHERE SELLMASTER_CODE IN({0})", _SELLMASTER_CODEStr);
|
||
DBHelper.ExecuteSqlTran(new List<string> { sqlString });
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch { }
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ex.ToString();
|
||
}
|
||
}
|
||
|
||
if (!_IsContinuousStart) break;
|
||
}
|
||
|
||
sw.Stop();
|
||
System.Diagnostics.Debug.WriteLine(sw.Elapsed, "RunCommoditysale_newThread");
|
||
}
|
||
#endregion
|
||
|
||
#region HIGHWAY_EXCHANGE.T_SELLDETAILS
|
||
|
||
static void RunSelldetailsThread(string _IpAddress, string _InterfaceName, string _CodeEndaccount,
|
||
string serverpartcode, string serverpartshop_id, string machinecode, bool _IsContinuousStart = false)
|
||
{
|
||
_RunSelldetailsCancell = new CancellationTokenSource();
|
||
while (true)
|
||
{
|
||
if (_RunSelldetailsCancell != null && _RunSelldetailsCancell.Token.IsCancellationRequested)
|
||
{
|
||
//退出线程
|
||
_RunSelldetailsCancell.Dispose();
|
||
_RunSelldetailsCancell = null;
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
try
|
||
{
|
||
DataTable _DataTable = DBHelper.QueryOdbc("SELECT * FROM T_SELLDETAILS WHERE TRANSFER_STATE = 0 AND SELLMASTER_CODE IS NOT NULL").Tables[0];
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
DataSet _DataSet = SplitDataTable(_DataTable, 400);
|
||
if (_DataSet != null)
|
||
{
|
||
for (int i = 0; i < _DataSet.Tables.Count; i++)
|
||
{
|
||
try
|
||
{
|
||
if (_DataSet.Tables[i].Rows.Count > 0)
|
||
{
|
||
string _DataBack = HttpDataHelper.InsertDataByJson(_IpAddress, _InterfaceName,
|
||
"HIGHWAY_EXCHANGE.T_SELLDETAILS", _CodeEndaccount, JsonHelper.DataTableToJson(_DataSet.Tables[i]),
|
||
"{SERVERPARTCODE:'" + serverpartcode + "',SERVERPARTSHOP_ID:'" + serverpartshop_id +
|
||
"',MACHINECODE:'" + machinecode + "',ENDDATE:''}");
|
||
JObject _JObject = JObject.Parse(_DataBack);
|
||
if (_JObject.Property("error") != null)
|
||
{
|
||
if ("1".Equals(_JObject.Property("error").Value.ToString()))
|
||
{
|
||
string _SELLMASTER_CODEStr = string.Empty;
|
||
foreach (DataRow dr in _DataSet.Tables[i].Rows)
|
||
{
|
||
_SELLMASTER_CODEStr += (string.IsNullOrEmpty(_SELLMASTER_CODEStr) ? "" : ",") +
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["SELLMASTER_CODE"].ToString());
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(_SELLMASTER_CODEStr))
|
||
{
|
||
string sqlString = string.Format("UPDATE T_SELLDETAILS SET TRANSFER_STATE = 1 WHERE SELLMASTER_CODE IN({0})", _SELLMASTER_CODEStr);
|
||
DBHelper.ExecuteSqlTran(new List<string> { sqlString });
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch { }
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ex.ToString();
|
||
}
|
||
}
|
||
if (!_IsContinuousStart) break;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region HIGHWAY_EXCHANGE.T_COMMODITYSALE_NEW
|
||
static void RunCommoditysale_newThread(string _IpAddress, string _InterfaceName, string _CodeEndaccount,
|
||
string serverpartcode, string serverpartshop_id, string machinecode, bool _IsContinuousStart = false)
|
||
{
|
||
//耗时监听
|
||
Stopwatch sw = new Stopwatch();
|
||
sw.Start();
|
||
|
||
_RunCommoditysale_newCancell = new CancellationTokenSource();
|
||
while (true)
|
||
{
|
||
if (_RunCommoditysale_newCancell != null && _RunCommoditysale_newCancell.Token.IsCancellationRequested)
|
||
{
|
||
//退出线程
|
||
_RunCommoditysale_newCancell.Dispose();
|
||
_RunCommoditysale_newCancell = null;
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
try
|
||
{
|
||
DataTable _DataTable = DBHelper.QueryOdbc("SELECT * FROM T_COMMODITYSALE_NEW WHERE TRANSFER_STATE = 0 AND ENDACCOUNT_CODE IS NOT NULL ").Tables[0];
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
DataSet _DataSet = SplitDataTable(_DataTable, 400);
|
||
if (_DataSet != null)
|
||
{
|
||
for (int i = 0; i < _DataSet.Tables.Count; i++)
|
||
{
|
||
try
|
||
{
|
||
if (_DataSet.Tables[i].Rows.Count > 0)
|
||
{
|
||
string _DataBack = HttpDataHelper.InsertDataByJson(_IpAddress, _InterfaceName,
|
||
"HIGHWAY_EXCHANGE.T_COMMODITYSALE_NEW", _CodeEndaccount, JsonHelper.DataTableToJson(_DataSet.Tables[i]),
|
||
"{SERVERPARTCODE:'" + serverpartcode + "',SERVERPARTSHOP_ID:'" + serverpartshop_id +
|
||
"',MACHINECODE:'" + machinecode + "',ENDDATE:''}");
|
||
JObject _JObject = JObject.Parse(_DataBack);
|
||
|
||
if (_JObject.Property("error") != null)
|
||
{
|
||
if ("1".Equals(_JObject.Property("error").Value.ToString()))
|
||
{
|
||
string _ENDACCOUNT_CODEStr = string.Empty;
|
||
foreach (DataRow dr in _DataSet.Tables[i].Rows)
|
||
{
|
||
_ENDACCOUNT_CODEStr += (string.IsNullOrEmpty(_ENDACCOUNT_CODEStr) ? "" : ",") +
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["ENDACCOUNT_CODE"].ToString());
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(_ENDACCOUNT_CODEStr))
|
||
{
|
||
string sqlString = string.Format("UPDATE T_COMMODITYSALE_NEW SET TRANSFER_STATE = 1 WHERE ENDACCOUNT_CODE IN({0})", _ENDACCOUNT_CODEStr);
|
||
DBHelper.ExecuteSqlTran(new List<string> { sqlString });
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch { }
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ex.ToString();
|
||
}
|
||
}
|
||
if (!_IsContinuousStart) break;
|
||
}
|
||
|
||
sw.Stop();
|
||
System.Diagnostics.Debug.WriteLine(sw.Elapsed, "RunCommoditysale_newThread");
|
||
}
|
||
#endregion
|
||
|
||
#region HIGHWAY_EXCHANGE.T_PERSONSELL_NEW
|
||
static void RunPersonsell_newThread(string _IpAddress, string _InterfaceName, string _CodeEndaccount,
|
||
string serverpartcode, string serverpartshop_id, string machinecode, bool _IsContinuousStart = false)
|
||
{
|
||
_RunPersonsell_newCancell = new CancellationTokenSource();
|
||
while (true)
|
||
{
|
||
if (_RunPersonsell_newCancell != null && _RunPersonsell_newCancell.Token.IsCancellationRequested)
|
||
{
|
||
//退出线程
|
||
_RunPersonsell_newCancell.Dispose();
|
||
_RunPersonsell_newCancell = null;
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
try
|
||
{
|
||
DataTable _DataTable = DBHelper.QueryOdbc(
|
||
"SELECT * FROM T_PERSONSELL_NEW WHERE TRANSFER_STATE = 0 AND ENDDATE IS NOT NULL AND ENDACCOUNT_CODE IS NOT NULL").Tables[0];
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
DataSet _DataSet = SplitDataTable(_DataTable, 400);
|
||
if (_DataSet != null)
|
||
{
|
||
for (int i = 0; i < _DataSet.Tables.Count; i++)
|
||
{
|
||
try
|
||
{
|
||
if (_DataSet.Tables[i].Rows.Count > 0)
|
||
{
|
||
//最早操作时间
|
||
string _EndDate = string.Empty;
|
||
foreach (DataRow dr in _DataSet.Tables[i].Rows)
|
||
{
|
||
try
|
||
{
|
||
if (string.IsNullOrEmpty(_EndDate))
|
||
{
|
||
DateTime.Parse(dr["ENDDATE"].ToString());
|
||
_EndDate = dr["ENDDATE"].ToString();
|
||
}
|
||
else
|
||
{
|
||
if (DateTime.Parse(_EndDate) > DateTime.Parse(dr["ENDDATE"].ToString()))
|
||
{
|
||
_EndDate = dr["ENDDATE"].ToString();
|
||
}
|
||
}
|
||
}
|
||
catch { }
|
||
}
|
||
|
||
string _DataBack = HttpDataHelper.InsertDataByJson(_IpAddress, _InterfaceName,
|
||
"HIGHWAY_EXCHANGE.T_PERSONSELL_NEW", _CodeEndaccount, JsonHelper.DataTableToJson(_DataSet.Tables[i]),
|
||
"{SERVERPARTCODE:'" + serverpartcode + "',SERVERPARTSHOP_ID:'" + serverpartshop_id +
|
||
"',MACHINECODE:'" + machinecode + "',ENDDATE:'" + _EndDate + "'}");
|
||
JObject _JObject = JObject.Parse(_DataBack);
|
||
if (_JObject.Property("error") != null)
|
||
{
|
||
if ("1".Equals(_JObject.Property("error").Value.ToString()) || "2".Equals(_JObject.Property("error").Value.ToString()))
|
||
{
|
||
if (_JObject.Property("rows") != null)
|
||
{
|
||
JArray _JsonArray = JArray.Parse(_JObject.Property("rows").Value.ToString());
|
||
string[] _ENDACCOUNT_CODES = new string[_JsonArray.Count];
|
||
for (int j = 0; j < _JsonArray.Count; j++)
|
||
{
|
||
JObject _Json = JObject.Parse(_JsonArray[i].ToString());
|
||
if (_Json.Property("ENDACCOUNT_CODE") != null)
|
||
{
|
||
_ENDACCOUNT_CODES[j] += _Json.Property("ENDACCOUNT_CODE").Value.ToString();
|
||
}
|
||
}
|
||
|
||
bool falg = true;
|
||
string _ENDACCOUNT_CODEStr = string.Empty;
|
||
|
||
|
||
foreach (DataRow dr in _DataSet.Tables[i].Rows)
|
||
{
|
||
falg = true;
|
||
|
||
if ("2".Equals(_JObject.Property("error").Value.ToString()))
|
||
{
|
||
//不更新失败的
|
||
for (int z = 0; z < _ENDACCOUNT_CODES.Length; z++)
|
||
{
|
||
if (_ENDACCOUNT_CODES[z] != null && _ENDACCOUNT_CODES[z].Contains(dr["ENDACCOUNT_CODE"].ToString()))
|
||
{
|
||
falg = false;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (falg)
|
||
{
|
||
//更新
|
||
_ENDACCOUNT_CODEStr += (string.IsNullOrEmpty(_ENDACCOUNT_CODEStr) ? "" : ",") +
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["ENDACCOUNT_CODE"].ToString());
|
||
}
|
||
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(_ENDACCOUNT_CODEStr))
|
||
{
|
||
//更新
|
||
string sqlString = string.Format(
|
||
"UPDATE T_PERSONSELL_NEW SET TRANSFER_STATE = 1 WHERE ENDACCOUNT_CODE IN({0})", _ENDACCOUNT_CODEStr);
|
||
DBHelper.ExecuteSqlTran(new List<string> { sqlString });
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch { }
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ex.ToString();
|
||
}
|
||
}
|
||
|
||
if (!_IsContinuousStart) break;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW
|
||
static void RunEndaccount_newThread(string _IpAddress, string _InterfaceName, string _CodeEndaccount,
|
||
string serverpartcode, string serverpartshop_id, string machinecode, bool _IsContinuousStart = false)
|
||
{
|
||
_RunEndaccount_newCancell = new CancellationTokenSource();
|
||
while (true)
|
||
{
|
||
if (_RunEndaccount_newCancell != null && _RunEndaccount_newCancell.Token.IsCancellationRequested)
|
||
{
|
||
//退出线程
|
||
_RunEndaccount_newCancell.Dispose();
|
||
_RunEndaccount_newCancell = null;
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
try
|
||
{
|
||
DataTable _DataTable = DBHelper.QueryOdbc(
|
||
"SELECT * FROM T_ENDACCOUNT_NEW WHERE TRANSFER_STATE = 0 AND ENDDATE IS NOT NULL AND ENDACCOUNT_CODE IS NOT NULL").Tables[0];
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
DataSet _DataSet = SplitDataTable(_DataTable, 400);
|
||
if (_DataSet != null)
|
||
{
|
||
for (int i = 0; i < _DataSet.Tables.Count; i++)
|
||
{
|
||
try
|
||
{
|
||
if (_DataSet.Tables[i].Rows.Count > 0)
|
||
{
|
||
//最早操作时间
|
||
string _EndDate = string.Empty;
|
||
foreach (DataRow dr in _DataSet.Tables[i].Rows)
|
||
{
|
||
try
|
||
{
|
||
if (string.IsNullOrEmpty(_EndDate))
|
||
{
|
||
DateTime.Parse(dr["ENDDATE"].ToString());
|
||
_EndDate = dr["ENDDATE"].ToString();
|
||
}
|
||
else
|
||
{
|
||
if (DateTime.Parse(_EndDate) > DateTime.Parse(dr["ENDDATE"].ToString()))
|
||
{
|
||
_EndDate = dr["ENDDATE"].ToString();
|
||
}
|
||
}
|
||
}
|
||
catch { }
|
||
}
|
||
|
||
string _DataBack = HttpDataHelper.InsertDataByJson(_IpAddress, _InterfaceName,
|
||
"HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW", _CodeEndaccount, JsonHelper.DataTableToJson(_DataSet.Tables[i]),
|
||
"{SERVERPARTCODE:'" + serverpartcode + "',SERVERPARTSHOP_ID:'" + serverpartshop_id +
|
||
"',MACHINECODE:'" + machinecode + "',ENDDATE:'" + _EndDate + "'}");
|
||
JObject _JObject = JObject.Parse(_DataBack);
|
||
if (_JObject.Property("error") != null)
|
||
{
|
||
if ("1".Equals(_JObject.Property("error").Value.ToString()) || "2".Equals(_JObject.Property("error").Value.ToString()))
|
||
{
|
||
if (_JObject.Property("rows") != null)
|
||
{
|
||
JArray _JsonArray = JArray.Parse(_JObject.Property("rows").Value.ToString());
|
||
string[] _ENDACCOUNT_CODES = new string[_JsonArray.Count];
|
||
for (int j = 0; j < _JsonArray.Count; j++)
|
||
{
|
||
JObject _Json = JObject.Parse(_JsonArray[i].ToString());
|
||
if (_Json.Property("ENDACCOUNT_CODE") != null)
|
||
{
|
||
_ENDACCOUNT_CODES[j] += _Json.Property("ENDACCOUNT_CODE").Value.ToString();
|
||
}
|
||
}
|
||
|
||
bool falg = true;
|
||
string _ENDACCOUNT_CODEStr = string.Empty;
|
||
foreach (DataRow dr in _DataSet.Tables[i].Rows)
|
||
{
|
||
falg = true;
|
||
|
||
if ("2".Equals(_JObject.Property("error").Value.ToString()))
|
||
{
|
||
//不更新失败的
|
||
for (int z = 0; z < _ENDACCOUNT_CODES.Length; z++)
|
||
{
|
||
if (_ENDACCOUNT_CODES[z] != null && _ENDACCOUNT_CODES[z].Contains(dr["ENDACCOUNT_CODE"].ToString()))
|
||
{
|
||
falg = false;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
if (falg)
|
||
{
|
||
//更新
|
||
_ENDACCOUNT_CODEStr += (string.IsNullOrEmpty(_ENDACCOUNT_CODEStr) ? "" : ",") +
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["ENDACCOUNT_CODE"].ToString());
|
||
}
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(_ENDACCOUNT_CODEStr))
|
||
{
|
||
//更新
|
||
string sqlString = string.Format(
|
||
"UPDATE T_ENDACCOUNT_NEW SET TRANSFER_STATE = 1 WHERE ENDACCOUNT_CODE IN({0})", _ENDACCOUNT_CODEStr);
|
||
DBHelper.ExecuteSqlTran(new List<string> { sqlString });
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch { }
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ex.ToString();
|
||
}
|
||
}
|
||
if (!_IsContinuousStart) break;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region HIGHWAY_EXCHANGE.T_TRANSFER_SALE
|
||
static void RunTransfer_saleThread(string _IpAddress, string _InterfaceName, string _CodeEndaccount,
|
||
string serverpartcode, string serverpartshop_id, string machinecode, bool _IsContinuousStart = false)
|
||
{
|
||
_RunTransfer_saleCancell = new CancellationTokenSource();
|
||
while (true)
|
||
{
|
||
if (_RunTransfer_saleCancell != null && _RunTransfer_saleCancell.Token.IsCancellationRequested)
|
||
{
|
||
//退出线程
|
||
_RunTransfer_saleCancell.Dispose();
|
||
_RunTransfer_saleCancell = null;
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
try
|
||
{
|
||
DataTable _DataTable = DBHelper.QueryOdbc(@"SELECT * FROM T_TRANSFER_SALE WHERE
|
||
TRANSFER_STATE = 0 AND TRANSFER_TWELFTHDATAS IS NOT NULL AND TRANSFER_ID IS NOT NULL AND ENDDATE IS NOT NULL").Tables[0];
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
DataSet _DataSet = SplitDataTable(_DataTable, 400);
|
||
if (_DataSet != null)
|
||
{
|
||
for (int i = 0; i < _DataSet.Tables.Count; i++)
|
||
{
|
||
try
|
||
{
|
||
if (_DataSet.Tables[i].Rows.Count > 0)
|
||
{
|
||
//最早操作时间
|
||
string _EndDate = string.Empty;
|
||
foreach (DataRow dr in _DataSet.Tables[i].Rows)
|
||
{
|
||
try
|
||
{
|
||
if (string.IsNullOrEmpty(_EndDate))
|
||
{
|
||
DateTime.Parse(dr["ENDDATE"].ToString());
|
||
_EndDate = dr["ENDDATE"].ToString();
|
||
}
|
||
else
|
||
{
|
||
if (DateTime.Parse(_EndDate) > DateTime.Parse(dr["ENDDATE"].ToString()))
|
||
{
|
||
_EndDate = dr["ENDDATE"].ToString();
|
||
}
|
||
}
|
||
}
|
||
catch { }
|
||
}
|
||
|
||
string _DataBack = HttpDataHelper.InsertDataByJson(_IpAddress, _InterfaceName,
|
||
"HIGHWAY_EXCHANGE.T_TRANSFER_SALE", _CodeEndaccount, JsonHelper.DataTableToJson(_DataSet.Tables[i]),
|
||
"{SERVERPARTCODE:'" + serverpartcode + "',SERVERPARTSHOP_ID:'" + serverpartshop_id +
|
||
"',MACHINECODE:'" + machinecode + "',ENDDATE:'" + _EndDate + "'}");
|
||
JObject _JObject = JObject.Parse(_DataBack);
|
||
if (_JObject.Property("error") != null)
|
||
{
|
||
if ("1".Equals(_JObject.Property("error").Value.ToString()))
|
||
{
|
||
List<string> _list = new List<string>();
|
||
foreach (DataRow dr in _DataSet.Tables[i].Rows)
|
||
{
|
||
//更新
|
||
_list.Add(string.Format(@"UPDATE T_TRANSFER_SALE SET TRANSFER_STATE = 1 WHERE
|
||
TRANSFER_ID = {0} AND TRANSFER_TWELFTHDATAS = {1}",
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["TRANSFER_ID"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["TRANSFER_TWELFTHDATAS"].ToString())));
|
||
}
|
||
|
||
if (_list.Count > 0)
|
||
{
|
||
DBHelper.ExecuteSqlTran(_list);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch { }
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ex.ToString();
|
||
}
|
||
}
|
||
|
||
if (!_IsContinuousStart) break;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#endregion
|
||
|
||
#region 方法 -> 线程下发集合
|
||
|
||
#region HIGHWAY_EXCHANGE.T_USERDEFINEDTYPE
|
||
|
||
static void RunUserdefinedtypeThread(string _IpAddress, string _InterfaceName, string _CodeEndaccount, string _JsonString = "")
|
||
{
|
||
_RunUserdefinedtypeCancell = new CancellationTokenSource();
|
||
while (true)
|
||
{
|
||
if (_RunUserdefinedtypeCancell != null && _RunUserdefinedtypeCancell.Token.IsCancellationRequested)
|
||
{
|
||
//退出线程
|
||
_RunUserdefinedtypeCancell.Dispose();
|
||
_RunUserdefinedtypeCancell = null;
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
try
|
||
{
|
||
string _DataBack = HttpDataHelper.InsertDataByJson(_IpAddress, _InterfaceName,
|
||
"HIGHWAY_EXCHANGE.T_USERDEFINEDTYPE", _CodeEndaccount, _JsonString);
|
||
if (!string.IsNullOrEmpty(_DataBack))
|
||
{
|
||
JObject _JObject = JObject.Parse(_DataBack);
|
||
if (_JObject.Property("error") != null && _JObject.Property("msg") != null && _JObject.Property("rows") != null)
|
||
{
|
||
if ("1".Equals(_JObject.Property("error").Value.ToString()))
|
||
{
|
||
DataSet _DataSet = JsonHelper.JsonToDataSet(_JObject.Property("rows").Value.ToString());
|
||
DataSet _Data = DBHelper.QueryOdbc("SELECT * FROM T_USERDEFINEDTYPE");
|
||
List<string> _list = new List<string>();
|
||
foreach (DataRow dr in _DataSet.Tables[0].Rows)
|
||
{
|
||
DataRow[] _DataRows = _Data.Tables[0].Select(
|
||
string.Format(" SERVERPARTCODE = '{0}' AND SERVERPARTSHOP_ID = {1} AND USERDEFINEDTYPE_ID = {2}",
|
||
dr["SERVERPARTCODE"], dr["SERVERPARTSHOP_ID"], dr["USERDEFINEDTYPE_ID"]));
|
||
|
||
if (_DataRows != null && _DataRows.Length > 0)
|
||
{
|
||
if (
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.Decimal, _DataRows[0]["USERDEFINEDTYPE_ID"], dr["USERDEFINEDTYPE_ID"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.Decimal, _DataRows[0]["USERDEFINEDTYPE_PID"], dr["USERDEFINEDTYPE_PID"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.String, _DataRows[0]["USERDEFINEDTYPE_NAME"], dr["USERDEFINEDTYPE_NAME"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.String, _DataRows[0]["SERVERPARTCODE"], dr["SERVERPARTCODE"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.Decimal, _DataRows[0]["SERVERPARTSHOP_ID"], dr["SERVERPARTSHOP_ID"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.Decimal, _DataRows[0]["BUSINESSTYPE"], dr["BUSINESSTYPE"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.DateTime, _DataRows[0]["USERDEFINEDTYPE_DATE"], dr["USERDEFINEDTYPE_DATE"])
|
||
)
|
||
{
|
||
//数据相同不更新
|
||
break;
|
||
}
|
||
|
||
//更新
|
||
_list.Add(string.Format(@"UPDATE T_USERDEFINEDTYPE SET
|
||
USERDEFINEDTYPE_ID = {0},USERDEFINEDTYPE_PID = {1},
|
||
USERDEFINEDTYPE_NAME = {2},SERVERPARTCODE = {3},
|
||
SERVERPARTSHOP_ID = {4},BUSINESSTYPE = {5},
|
||
USERDEFINEDTYPE_DATE = {6},TRANSFER_STATE = 1
|
||
WHERE USERDEFINEDTYPE_ID = {0} AND SERVERPARTCODE = {3} AND SERVERPARTSHOP_ID = {4}",
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["USERDEFINEDTYPE_ID"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["USERDEFINEDTYPE_PID"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["USERDEFINEDTYPE_NAME"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["SERVERPARTCODE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["SERVERPARTSHOP_ID"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["BUSINESSTYPE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime, dr["USERDEFINEDTYPE_DATE"].ToString())));
|
||
}
|
||
else
|
||
{
|
||
//增加
|
||
_list.Add(string.Format(@"INSERT INTO T_USERDEFINEDTYPE(USERDEFINEDTYPE_ID,
|
||
USERDEFINEDTYPE_PID,USERDEFINEDTYPE_NAME,SERVERPARTCODE,SERVERPARTSHOP_ID,
|
||
BUSINESSTYPE,USERDEFINEDTYPE_DATE,TRANSFER_STATE) VALUES({0},{1},{2},{3},{4},{5},{6},1)",
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["USERDEFINEDTYPE_ID"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["USERDEFINEDTYPE_PID"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["USERDEFINEDTYPE_NAME"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["SERVERPARTCODE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["SERVERPARTSHOP_ID"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["BUSINESSTYPE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime, dr["USERDEFINEDTYPE_DATE"].ToString())));
|
||
}
|
||
}
|
||
|
||
if (_list.Count > 0)
|
||
{
|
||
DBHelper.ExecuteSqlTran(_list);
|
||
}
|
||
|
||
//正常
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
//错误
|
||
return;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
//错误
|
||
ex.ToString();
|
||
return;
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region HIGHWAY_EXCHANGE.T_COMMODITYEX
|
||
|
||
static void RunCommodityexThread(string _IpAddress, string _InterfaceName, string _CodeEndaccount, string _JsonString = "")
|
||
{
|
||
_RunCommodityexCancell = new CancellationTokenSource();
|
||
while (true)
|
||
{
|
||
if (_RunCommodityexCancell != null && _RunCommodityexCancell.Token.IsCancellationRequested)
|
||
{
|
||
//退出线程
|
||
_RunCommodityexCancell.Dispose();
|
||
_RunCommodityexCancell = null;
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
try
|
||
{
|
||
string _DataBack = HttpDataHelper.InsertDataByJson(_IpAddress, _InterfaceName,
|
||
"HIGHWAY_EXCHANGE.T_COMMODITYEX", _CodeEndaccount, _JsonString);
|
||
if (!string.IsNullOrEmpty(_DataBack))
|
||
{
|
||
JObject _JObject = JObject.Parse(_DataBack);
|
||
if (_JObject.Property("error") != null && _JObject.Property("msg") != null && _JObject.Property("rows") != null)
|
||
{
|
||
if ("1".Equals(_JObject.Property("error").Value.ToString()))
|
||
{
|
||
DataSet _DataSet = JsonHelper.JsonToDataSet(_JObject.Property("rows").Value.ToString());
|
||
DataSet _Data = DBHelper.QueryOdbc("SELECT * FROM T_COMMODITYEX");
|
||
List<string> _list = new List<string>();
|
||
foreach (DataRow dr in _DataSet.Tables[0].Rows)
|
||
{
|
||
DataRow[] _DataRows = _Data.Tables[0].Select(
|
||
string.Format(" SERVERPARTCODE = '{0}' AND SERVERPARTSHOP_ID = {1} AND COMMODITYEX_ID = {2}",
|
||
dr["SERVERPARTCODE"], dr["SERVERPARTSHOP_ID"], dr["COMMODITYEX_ID"]));
|
||
|
||
if (_DataRows != null && _DataRows.Length > 0)
|
||
{
|
||
if (
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.Decimal, _DataRows[0]["COMMODITYEX_ID"], dr["COMMODITYEX_ID"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.String, _DataRows[0]["SERVERPARTCODE"], dr["SERVERPARTCODE"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.String, _DataRows[0]["COMMODITY_TYPE"], dr["COMMODITY_TYPE"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.String, _DataRows[0]["COMMODITY_CODE"], dr["COMMODITY_CODE"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.String, _DataRows[0]["COMMODITY_BARCODE"], dr["COMMODITY_BARCODE"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.String, _DataRows[0]["COMMODITY_NAME"], dr["COMMODITY_NAME"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.String, _DataRows[0]["COMMODITY_RULE"], dr["COMMODITY_RULE"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.String, _DataRows[0]["COMMODITY_UNIT"], dr["COMMODITY_UNIT"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.Decimal, _DataRows[0]["COMMODITY_RETAILPRICE"], dr["COMMODITY_RETAILPRICE"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.Decimal, _DataRows[0]["COMMODITY_MEMBERPRICE"], dr["COMMODITY_MEMBERPRICE"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.Decimal, _DataRows[0]["CANCHANGEPRICE"], dr["CANCHANGEPRICE"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.Decimal, _DataRows[0]["ISVALID"], dr["ISVALID"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.String, _DataRows[0]["COMMODITY_EN"], dr["COMMODITY_EN"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.Decimal, _DataRows[0]["ISBULK"], dr["ISBULK"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.Decimal, _DataRows[0]["METERINGMETHOD"], dr["METERINGMETHOD"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.DateTime, _DataRows[0]["DOWNLOADDATE"], dr["DOWNLOADDATE"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.Decimal, _DataRows[0]["FLAG"], dr["FLAG"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.Decimal, _DataRows[0]["BUSINESSTYPE"], dr["BUSINESSTYPE"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.Decimal, _DataRows[0]["SERVERPARTSHOP_ID"], dr["SERVERPARTSHOP_ID"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.String, _DataRows[0]["PRINT_DATE"], dr["PRINT_DATE"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.String, _DataRows[0]["CONTAINER_CODE"], dr["CONTAINER_CODE"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.String, _DataRows[0]["COMMODITY_SYMBOL"], dr["COMMODITY_SYMBOL"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.Decimal, _DataRows[0]["COMMODITY_HOTKEY"], dr["COMMODITY_HOTKEY"]) &&
|
||
DataCheckHelper.IsCheckValue(DataCheckHelper.CheckType.Decimal, _DataRows[0]["USERDEFINEDTYPE_ID"], dr["USERDEFINEDTYPE_ID"])
|
||
)
|
||
{
|
||
//数据相同不更新
|
||
break;
|
||
}
|
||
|
||
//更新
|
||
_list.Add(string.Format(@"UPDATE T_COMMODITYEX SET
|
||
COMMODITYEX_ID = {0},SERVERPARTCODE = {1},
|
||
COMMODITY_TYPE = {2},COMMODITY_CODE = {3},
|
||
COMMODITY_BARCODE = {4},COMMODITY_NAME = {5},
|
||
COMMODITY_RULE = {6},COMMODITY_UNIT = {7},
|
||
COMMODITY_RETAILPRICE = {8},COMMODITY_MEMBERPRICE = {9},
|
||
CANCHANGEPRICE = {10},ISVALID = {11},
|
||
COMMODITY_EN = {12},ISBULK = {13},
|
||
METERINGMETHOD = {14},DOWNLOADDATE = {15},
|
||
FLAG = {16},BUSINESSTYPE = {17},
|
||
SERVERPARTSHOP_ID = {18},PRINT_DATE = {19},
|
||
CONTAINER_CODE = {20},COMMODITY_SYMBOL = {21},
|
||
COMMODITY_HOTKEY = {22},USERDEFINEDTYPE_ID = {23},
|
||
TRANSFER_STATE = 1
|
||
WHERE COMMODITYEX_ID = {0} AND SERVERPARTCODE = {1} AND SERVERPARTSHOP_ID = {18}",
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["COMMODITYEX_ID"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["SERVERPARTCODE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["COMMODITY_TYPE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["COMMODITY_CODE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["COMMODITY_BARCODE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["COMMODITY_NAME"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["COMMODITY_RULE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["COMMODITY_UNIT"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["COMMODITY_RETAILPRICE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["COMMODITY_MEMBERPRICE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["CANCHANGEPRICE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["ISVALID"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["COMMODITY_EN"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["ISBULK"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["METERINGMETHOD"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime, dr["DOWNLOADDATE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["FLAG"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["BUSINESSTYPE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["SERVERPARTSHOP_ID"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["PRINT_DATE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["CONTAINER_CODE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["COMMODITY_SYMBOL"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["COMMODITY_HOTKEY"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["USERDEFINEDTYPE_ID"].ToString())));
|
||
}
|
||
else
|
||
{
|
||
//增加
|
||
_list.Add(string.Format(@"INSERT INTO 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,
|
||
TRANSFER_STATE)
|
||
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},1)",
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["COMMODITYEX_ID"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["SERVERPARTCODE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["COMMODITY_TYPE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["COMMODITY_CODE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["COMMODITY_BARCODE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["COMMODITY_NAME"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["COMMODITY_RULE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["COMMODITY_UNIT"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["COMMODITY_RETAILPRICE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["COMMODITY_MEMBERPRICE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["CANCHANGEPRICE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["ISVALID"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["COMMODITY_EN"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["ISBULK"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["METERINGMETHOD"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.DateTime, dr["DOWNLOADDATE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["FLAG"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["BUSINESSTYPE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["SERVERPARTSHOP_ID"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["PRINT_DATE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["CONTAINER_CODE"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.String, dr["COMMODITY_SYMBOL"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["COMMODITY_HOTKEY"].ToString()),
|
||
DataCheckHelper.IsArrayType(DataCheckHelper.ValueType.Int, dr["USERDEFINEDTYPE_ID"].ToString())));
|
||
}
|
||
}
|
||
|
||
if (_list.Count > 0)
|
||
{
|
||
DBHelper.ExecuteSqlTran(_list);
|
||
}
|
||
|
||
//正常
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
//错误
|
||
return;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
//错误
|
||
ex.ToString();
|
||
return;
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region HIGHWAY_EXCHANGE.T_ICCARDINFO
|
||
|
||
#endregion
|
||
|
||
#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 方法 -> 检查网络状态
|
||
private bool ConnectState(string ConnectUrl)
|
||
{
|
||
try
|
||
{
|
||
// Creates an HttpWebRequest for the specified URL.
|
||
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(ConnectUrl);
|
||
// 有些网站会阻止程序访问,需要加入下面这句
|
||
myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";
|
||
myHttpWebRequest.Method = "GET";
|
||
// Sends the HttpWebRequest and waits for a response.
|
||
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
|
||
if (myHttpWebResponse.StatusCode == HttpStatusCode.OK)
|
||
{
|
||
myHttpWebResponse.Close();
|
||
return true;
|
||
}
|
||
else
|
||
{
|
||
myHttpWebResponse.Close();
|
||
return false;
|
||
}
|
||
// Releases the resources of the response.
|
||
}
|
||
catch
|
||
{
|
||
return false;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 关闭枚举
|
||
public enum StopType
|
||
{
|
||
STOP_ALL = 0,
|
||
SELLMASTER = 1,
|
||
SELLDETAILS = 2,
|
||
COMMODITYSALE_NEW = 3,
|
||
PERSONSELL_NEW = 4,
|
||
ENDACCOUNT_NEW = 5,
|
||
TRANSFER_SALE = 6,
|
||
USERDEFINEDTYPE = 7,
|
||
COMMODITYEX = 8
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 启动上传枚举
|
||
public enum StartUpType
|
||
{
|
||
//START_ALL = 0,
|
||
SELLMASTER = 1,
|
||
SELLDETAILS = 2,
|
||
COMMODITYSALE_NEW = 3,
|
||
PERSONSELL_NEW = 4,
|
||
ENDACCOUNT_NEW = 5,
|
||
TRANSFER_SALE = 6
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 启动下发枚举
|
||
public enum StartDownType
|
||
{
|
||
//START_ALL = 0,
|
||
USERDEFINEDTYPE = 1,
|
||
COMMODITYEX = 2
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 启动线程
|
||
/// <summary>
|
||
/// 启动线程
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public bool onState()
|
||
{
|
||
if (!string.IsNullOrEmpty(_IpAddress) && !string.IsNullOrEmpty(_InterfaceNameUpload) &&
|
||
!string.IsNullOrEmpty(_InterfaceNameDownload) && !string.IsNullOrEmpty(_CodeEndaccount) &&
|
||
!string.IsNullOrEmpty(_JsonString))
|
||
{
|
||
try
|
||
{
|
||
//检查网络是否畅通
|
||
Ping pingSender = new Ping();
|
||
PingOptions options = new PingOptions();
|
||
options.DontFragment = true;
|
||
byte[] buffer = Encoding.ASCII.GetBytes("");
|
||
int timeout = 1000;
|
||
PingReply reply = pingSender.Send(_IpAddress.Split(":")[0], timeout, buffer, options);
|
||
|
||
if (reply.Status == IPStatus.Success || ConnectState(_IpAddress.Split(":")[0]))
|
||
{
|
||
OpenThreadPoolMain();
|
||
return true;
|
||
}
|
||
}
|
||
catch { }
|
||
}
|
||
return false;
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 停止线程
|
||
/// <summary>
|
||
/// 停止线程
|
||
/// </summary>
|
||
/// <param name="_StopType"></param>
|
||
/// <returns></returns>
|
||
public void onStop(StopType _StopType = StopType.STOP_ALL)
|
||
{
|
||
#region 延迟退出线程
|
||
switch (_StopType)
|
||
{
|
||
case StopType.SELLMASTER:
|
||
if (_RunSellmasterCancell != null)
|
||
{
|
||
_RunSellmasterCancell.Cancel();
|
||
}
|
||
break;
|
||
case StopType.SELLDETAILS:
|
||
if (_RunSelldetailsCancell != null)
|
||
{
|
||
_RunSelldetailsCancell.Cancel();
|
||
}
|
||
break;
|
||
case StopType.COMMODITYSALE_NEW:
|
||
if (_RunCommoditysale_newCancell != null)
|
||
{
|
||
_RunCommoditysale_newCancell.Cancel();
|
||
}
|
||
break;
|
||
case StopType.PERSONSELL_NEW:
|
||
if (_RunPersonsell_newCancell != null)
|
||
{
|
||
_RunPersonsell_newCancell.Cancel();
|
||
}
|
||
break;
|
||
case StopType.ENDACCOUNT_NEW:
|
||
if (_RunEndaccount_newCancell != null)
|
||
{
|
||
_RunEndaccount_newCancell.Cancel();
|
||
}
|
||
break;
|
||
case StopType.TRANSFER_SALE:
|
||
if (_RunTransfer_saleCancell != null)
|
||
{
|
||
_RunTransfer_saleCancell.Cancel();
|
||
}
|
||
break;
|
||
case StopType.USERDEFINEDTYPE:
|
||
if (_RunUserdefinedtypeCancell != null)
|
||
{
|
||
_RunUserdefinedtypeCancell.Cancel();
|
||
}
|
||
break;
|
||
case StopType.COMMODITYEX:
|
||
if (_RunCommodityexCancell != null)
|
||
{
|
||
_RunCommodityexCancell.Cancel();
|
||
}
|
||
break;
|
||
default:
|
||
if (_RunSellmasterCancell != null)
|
||
{
|
||
_RunSellmasterCancell.Cancel();
|
||
}
|
||
if (_RunSelldetailsCancell != null)
|
||
{
|
||
_RunSelldetailsCancell.Cancel();
|
||
}
|
||
if (_RunCommoditysale_newCancell != null)
|
||
{
|
||
_RunCommoditysale_newCancell.Cancel();
|
||
}
|
||
if (_RunPersonsell_newCancell != null)
|
||
{
|
||
_RunPersonsell_newCancell.Cancel();
|
||
}
|
||
if (_RunEndaccount_newCancell != null)
|
||
{
|
||
_RunEndaccount_newCancell.Cancel();
|
||
}
|
||
if (_RunTransfer_saleCancell != null)
|
||
{
|
||
_RunTransfer_saleCancell.Cancel();
|
||
}
|
||
if (_RunUserdefinedtypeCancell != null)
|
||
{
|
||
_RunUserdefinedtypeCancell.Cancel();
|
||
}
|
||
if (_RunCommodityexCancell != null)
|
||
{
|
||
_RunCommodityexCancell.Cancel();
|
||
}
|
||
break;
|
||
}
|
||
#endregion
|
||
}
|
||
#endregion
|
||
|
||
}
|
||
}
|