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

566 lines
29 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 System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
namespace SocketTransfer.SDK
{
public class ScanUpdateHelper
{
/// <summary>
/// 扫码上传
/// </summary>
/// <param name="dataType">数据类型(1001:日结1002:稽核2001:交班3001:单品4001;移动支付)</param>
/// <param name="oracleHelper"></param>
/// <param name="updateURL"></param>
public static void UpLoad(int dataType, OracleHelper oracleHelper, string updateURL = "http://183.129.232.107:8010")
{
int UploadSuccess = 0;
bool isReplaceColumnName = false;
try
{
DataTable _DataTable = null;
try
{
_DataTable = oracleHelper.ExcuteSqlGetDataSet(
@"SELECT SERVERPARTCODE,SHOPCODE
FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE
WHERE VALID = 1").Tables[0];
}
catch
{
_DataTable = oracleHelper.ExcuteSqlGetDataSet(
@"SELECT SERVERPART_CODE AS SERVERPARTCODE,SHOPCODE
FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE
WHERE VALID = 1").Tables[0];
isReplaceColumnName = true;
}
for (int i = 0; i < _DataTable.Rows.Count; i++)
{
if (UploadData(dataType, _DataTable.Rows[i]["SERVERPARTCODE"].ToString(),
_DataTable.Rows[i]["SHOPCODE"].ToString(), oracleHelper, updateURL, isReplaceColumnName))
{
UploadSuccess++;
}
}
}
catch (Exception ex)
{
LogHelper.WriteSendLog("自动扫码上传失败:(" + dataType + ")" + ex.Message,
"日志_ScanUpdate" + DateTime.Now.ToString("yyyyMMdd"));
}
}
/// <summary>
/// 执行上传
/// </summary>
/// <param name="dataType">数据类型(1001:日结1002:稽核2001:交班3001:单品4001;移动支付)</param>
/// <param name="StartTime">开始时间</param>
/// <param name="EndTime">结束时间</param>
/// <param name="ServerCode">服务区编号</param>
/// <param name="ShopCode">门店编号</param>
/// <returns></returns>
private static bool UploadData(int dataType, string ServerCode, string ShopCode, OracleHelper oracleHelper, string updateURL, bool isReplaceColumnName = false)
{
DataTable _QRcodeTable = null;
int _Length = 0, _RowCount = 0, _RecordCount = 0, _ScanIndex = 0, _ScanCount = 0;
string _EndAccountData = "", _PersonsellData = "";
string _strCheckCode = "";
try
{
if (dataType == 3001)
{
_QRcodeTable = SaleQrCode(ServerCode, ShopCode, oracleHelper, out _strCheckCode);
}
else
{
_QRcodeTable = EndAccountQrCode(ServerCode, ShopCode, isReplaceColumnName, oracleHelper, out _strCheckCode);
}
if (_QRcodeTable.Rows.Count > 0)
{
for (int n = 0; n < _QRcodeTable.Rows.Count; n++)
{
string text = "";
if (dataType == 3001)
{
_EndAccountData = HttpUtility.UrlEncode(_QRcodeTable.Rows[n]["salestr"].ToString());
_Length = _QRcodeTable.Rows[n]["salestr"].ToString().Length;
_RowCount = Convert.ToInt16(_QRcodeTable.Rows[n]["salerow"]);
_ScanIndex = n + 1;
_ScanCount = _QRcodeTable.Rows.Count;
int t = 0;
for (int x = 0; x < _QRcodeTable.Rows.Count; x++)
{
if (Convert.ToDateTime(_QRcodeTable.Rows[x]["enddate"]) == Convert.ToDateTime(_QRcodeTable.Rows[n]["enddate"]))
{
t++;
}
}
_RecordCount = t;
text = "CommoditySale" + "_New=" + _EndAccountData + "&Length=" + _Length + "&RowCount=" + _RowCount + "&RecordCount=" + _RecordCount +
"&CheckCode=" + _QRcodeTable.Rows[n]["checkMD5"].ToString() + "&ScanIndex=" + _ScanIndex + "&ScanCount=" + _ScanCount;
}
else
{
_EndAccountData = HttpUtility.UrlEncode(_QRcodeTable.Rows[n]["endaccountstr"].ToString());
_PersonsellData = HttpUtility.UrlEncode(_QRcodeTable.Rows[n]["personsellstr"].ToString());
_Length = _QRcodeTable.Rows[n]["endaccountstr"].ToString().Length + _QRcodeTable.Rows[n]["personsellstr"].ToString().Length;
_RowCount = n + 1;
_ScanIndex = n + 1;
_ScanCount = _QRcodeTable.Rows.Count;
_RecordCount = _QRcodeTable.Rows.Count;
text = "EndAccount" + "=" + _EndAccountData + (_PersonsellData == "" ? "" : "&Personsell=" + _PersonsellData) + "&Length=" + _Length + "&RowCount=" +
_RowCount + "&RecordCount=" + _RecordCount + "&CheckCode=" + _QRcodeTable.Rows[n]["checkMD5"].ToString() +
"&ScanIndex=" + _RowCount + "&ScanCount=" + _RecordCount;
}
string retString = "";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(updateURL + "/MobileServicePlatform/Handler/handler_ajax.ashx");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
byte[] byteArray = Encoding.UTF8.GetBytes("action_type=ScanCodeUpdate&action_data=" + HttpUtility.UrlEncode(text) + "&action_record=1");
request.ContentLength = byteArray.Length;
using (Stream dataStream = request.GetRequestStream())
{
dataStream.Write(byteArray, 0, byteArray.Length);
}
using (WebResponse response = request.GetResponse())
{
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
retString = responseFromServer;
}
if (retString == _strCheckCode)
{
return true;
}
}
}
else
{
return true;
}
}
catch (Exception ex)
{
LogHelper.WriteSendLog("自动扫码上传失败:(" + dataType + ")" + ex.Message,
"日志_ScanUpdate" + DateTime.Now.ToString("yyyyMMdd") + ".log");
}
return false;
}
#region -->
/// <summary>
/// 生成单品集合数据
/// </summary>
private static DataTable SaleQrCode(string ServerCode, string ShopCode, OracleHelper oracleHelper, out string checkCode)
{
string _strSalestart = "";
//string _strSaleend = "";
string strtmp = "";
string saletmp = "";
int m = 0;
checkCode = "";
DataTable _DataTable = new DataTable();
_DataTable.Columns.Add("id", typeof(decimal));
_DataTable.Columns.Add("startdate", typeof(DateTime));
_DataTable.Columns.Add("enddate", typeof(DateTime));
_DataTable.Columns.Add("salestr", typeof(string));
_DataTable.Columns.Add("salerow", typeof(int));
_DataTable.Columns.Add("checkMD5", typeof(string));
////获取未上传单品记录(交班时间)
DataTable _TransferSaleTable = oracleHelper.ExcuteSqlGetDataSet(
$@"SELECT TRANSFER_ID, SERVERPARTCODE, SHOPCODE,STARTDATE,ENDDATE
FROM HIGHWAY_EXCHANGE.T_TRANSFER_SALE A
WHERE SERVERPARTCODE = '{ServerCode}' AND SHOPCODE = '{ShopCode}' AND
ENDDATE > TRUNC(SYSDATE) - 1 AND NVL(TRANSFER_STATE,0) < 9
ORDER BY TRANSFER_ID ASC").Tables[0];
DataTable _TempTable = _TransferSaleTable.DefaultView.ToTable(true, new string[] { "serverpartcode", "shopcode", "startdate", "enddate" });
for (int i = 0; i < _TempTable.Rows.Count; i++)
{
m = 0;
_strSalestart = _TempTable.Rows[i]["serverpartcode"].ToString() + "|" + _TempTable.Rows[i]["shopcode"].ToString() +
"|" + Convert.ToDateTime(_TempTable.Rows[i]["startdate"]).ToString("yyyyMMddHHmmss") +
"|" + Convert.ToDateTime(_TempTable.Rows[i]["enddate"]).ToString("yyyyMMddHHmmss");
//根据交班时间获取单品记录
DataTable _SaleTable = oracleHelper.ExcuteSqlGetDataSet(
$@"SELECT B.COMMODITY_SYMBOL,A.TOTAL_COUNT,A.TOTAL_AMOUNT
FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE_NEW A,
HIGHWAY_EXCHANGE.T_COMMODITYEX B
WHERE A.COMMODITY_CODE = B.COMMODITY_CODE AND
A.CREATE_DATE BETWEEN TO_DATE('{_TempTable.Rows[i]["enddate"].ToString()}','YYYY/MM/DD HH24:MI:SS') AND
TO_DATE('{_TempTable.Rows[i]["enddate"].ToString()}','YYYY/MM/DD HH24:MI:SS') AND
B.SERVERPARTCODE = '{ServerCode}'
ORDER BY COMMODITYSALE_ID").Tables[0];
DataTable dataTable = oracleHelper.ExcuteSqlGetDataSet(
$@"SELECT B.COMMODITY_SYMBOL,
A.TOTALCOUNT AS TOTAL_COUNT,
A.TOTALSELLAMOUNT AS TOTAL_AMOUNT
FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE A,
HIGHWAY_EXCHANGE.T_COMMODITYEX B
WHERE A.STARTDATE = TO_DATE('{_TransferSaleTable.Rows[i]["startdate"].ToString()}','YYYY/MM/DD HH24:MI:SS') AND
A.ENDDATE = TO_DATE('{_TransferSaleTable.Rows[i]["enddate"].ToString()}','YYYY/MM/DD HH24:MI:SS') AND
A.SERVERPARTCODE = '{ServerCode}' AND SHOPCODE = '{ShopCode}' AND A.COMMODITY_CODE = B.COMMODITY_CODE
ORDER BY COMMODITYSALE_ID").Tables[0];
_SaleTable = ConvertOraclTableToDoNetTable(_SaleTable);
dataTable = ConvertOraclTableToDoNetTable(dataTable);
_SaleTable.Merge(dataTable);
for (int n = 0; n < _SaleTable.Rows.Count; n++)
{
saletmp = _SaleTable.Rows[n]["commodity_symbol"].ToString() +
"^" + _SaleTable.Rows[n]["total_count"].ToString().Replace(".00", "") +
"^" + _SaleTable.Rows[n]["total_amount"].ToString().Replace(".00", "");
if ((strtmp.Length + saletmp.Length) > 300)
{
m++;
DataRow _row = _DataTable.NewRow();
_row["id"] = m;
_row["startdate"] = _TempTable.Rows[i]["startdate"];
_row["enddate"] = _TempTable.Rows[i]["enddate"];
_row["salestr"] = strtmp;
_row["salerow"] = m;
_DataTable.Rows.Add(_row);
strtmp = "";
}
strtmp += (strtmp == "" ? _strSalestart + "|" : ",") + saletmp;
if (n == (_SaleTable.Rows.Count - 1))
{
m++;
DataRow _row = _DataTable.NewRow();
_row["id"] = m;
_row["startdate"] = _TempTable.Rows[i]["startdate"];
_row["enddate"] = _TempTable.Rows[i]["enddate"];
_row["salestr"] = strtmp;
_row["salerow"] = m;
_DataTable.Rows.Add(_row);
strtmp = "";
}
}
if (_DataTable.Rows.Count > 0)
{
string MD5 = "", strMD5 = "";
for (int j = 0; j < _DataTable.Rows.Count; j++)
{
strMD5 += (strMD5 == "" ? "" : ",") + _DataTable.Rows[j]["salestr"].ToString();
}
MD5 = CreateMD5(strMD5);
for (int j = 0; j < _DataTable.Rows.Count; j++)
{
_DataTable.Rows[j]["checkMD5"] = MD5;
}
checkCode = MD5;
}
}
return _DataTable;
}
#endregion
#region -->
/// <summary>
/// 生成结账数据
/// </summary>
private static DataTable EndAccountQrCode(string ServerCode, string ShopCode,
bool isReplaceColumnName, OracleHelper oracleHelper, out string checkCode)
{
string _strEndAccount = "";
string _strPersonSell = "";
string _strTemp = "";
checkCode = "";
DataTable _DataTable = new DataTable("list");
_DataTable.Columns.Add("id", typeof(decimal));
_DataTable.Columns.Add("startdate", typeof(DateTime));
_DataTable.Columns.Add("enddate", typeof(DateTime));
_DataTable.Columns.Add("endaccountstr", typeof(string));
_DataTable.Columns.Add("personsellstr", typeof(string));
_DataTable.Columns.Add("flag", typeof(string));
_DataTable.Columns.Add("checkMD5", typeof(string));
DataTable dt = oracleHelper.ExcuteSqlGetDataSet(
$@"SELECT ENDACCOUNT_ID,STARTDATE,ENDDATE,SERVERPARTCODE,
SHOPCODE,MACHINECODE,ENDPERSON_CODE,TICKET_COUNT,
TOTAL_COUNT,TOTAL_AMOUNT,TOTAL_OFFAMOUNT,CASHPAY,
BANKPAY,-1 AS TICKETBILL,MEMBERPAY,COUPONPAY,-1 AS OTHERPAY,
CONTRIBUTION_AMOUNT,ENDACCOUNT_TYPE,PAYMENT_DETAILS,ENDACCOUNT_CODE
FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT_NEW
WHERE SERVERPARTCODE = '{ServerCode}' AND
SHOPCODE = '{ShopCode}' AND ENDDATE > TRUNC(SYSDATE) - 1 AND NVL(TRANSFER_STATE,0) < 9
ORDER BY ENDDATE ASC").Tables[0];
DataTable dataTable = oracleHelper.ExcuteSqlGetDataSet(
$@"SELECT A.ENDACCOUNT_ID,A.ENDACCOUNT_STARTDATE AS STARTDATE,
A.ENDACCOUNT_DATE AS ENDDATE,{(isReplaceColumnName ?
"A.SERVERPART_CODE" : "A.SERVERPARTCODE")} AS SERVERPARTCODE,
A.SHOPCODE,A.MACHINECODE,A.ENDPERSONCODE AS ENDPERSON_CODE,
A.TICKETCOUNT AS TICKET_COUNT,A.TOTALCOUNT AS TOTAL_COUNT,
A.TOTALSELLAMOUNT AS TOTAL_AMOUNT,A.TOTALOFFAMOUNT AS TOTAL_OFFAMOUNT,
A.CASH AS CASHPAY, A.CREDITCARD AS BANKPAY,A.TICKETBILL,A.VIPPERSON AS MEMBERPAY,
A.COSTBILL AS COUPONPAY,A.OTHERPAY,A.CASHPAY AS CONTRIBUTION_AMOUNT,
A.FLAG AS ENDACCOUNT_TYPE,'' AS PAYMENT_DETAILS,'' AS ENDACCOUNT_CODE
FROM T_ENDACCOUNT A
WHERE {(isReplaceColumnName ? "A.SERVERPART_CODE" : "A.SERVERPARTCODE")} = '{ServerCode}' AND
A.SHOPCODE = '{ShopCode}' AND A.ENDACCOUNT_DATE > TRUNC(SYSDATE) AND
NVL(A.TRANSFER_STATE,0) < 9
ORDER BY A.ENDACCOUNT_DATE ASC").Tables[0];
dt = ConvertOraclTableToDoNetTable(dt);
dataTable = ConvertOraclTableToDoNetTable(dataTable);
dt.Merge(dataTable);
foreach (DataRow row in dt.Rows)
{
#region
_strEndAccount = "";
_strPersonSell = "";
for (int i = 0; i < dt.Columns.Count; i++)
{
if (dt.Columns[i].ColumnName != "TICKETBILL" && dt.Columns[i].ColumnName != "OTHERPAY" &&
dt.Columns[i].ColumnName != "PAYMENT_DETAILS" && dt.Columns[i].ColumnName != "ENDACCOUNT_CODE")
{
_strEndAccount += (_strEndAccount == "" ? "" : "|") + (dt.Columns[i].DataType.ToString() ==
"System.DateTime" ? Convert.ToDateTime(row[i]).ToString("yyyyMMddHHmmss") :
row[i].ToString().Replace(".00", ""));
}
else
{
string[] MovePay = row["PAYMENT_DETAILS"].ToString().Split(',');
Dictionary<string, string> _MobilePayList = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
for (int k = 0; k < MovePay.Length; k++)
{
if (MovePay[k].Split(':').Length > 1)
{
_MobilePayList.Add(MovePay[k].Split(':')[0], MovePay[k].Split(':')[1]);
}
}
switch (dt.Columns[i].ColumnName)
{
case "TICKETBILL":
if (row["TICKETBILL"].ToString() == "-1")
{
if (_MobilePayList.ContainsKey("WECHATPAY"))
{
_strEndAccount += "|" + _MobilePayList["WECHATPAY"].Replace(".00", "");
}
else
{
_strEndAccount += "|0";
}
}
else
{
_strEndAccount += (_strEndAccount == "" ? "" : "|") + (dt.Columns[i].DataType.ToString() ==
"System.DateTime" ? Convert.ToDateTime(row[i]).ToString("yyyyMMddHHmmss") :
row[i].ToString().Replace(".00", ""));
}
break;
case "OTHERPAY":
if (row["OTHERPAY"].ToString() == "-1")
{
if (_MobilePayList.ContainsKey("ALIPAY"))
{
_strEndAccount += "|" + _MobilePayList["ALIPAY"].Replace(".00", "");
}
else
{
_strEndAccount += "|0";
}
}
else
{
_strEndAccount += (_strEndAccount == "" ? "" : "|") + (dt.Columns[i].DataType.ToString() ==
"System.DateTime" ? Convert.ToDateTime(row[i]).ToString("yyyyMMddHHmmss") :
row[i].ToString().Replace(".00", ""));
}
break;
case "ENDACCOUNT_CODE":
case "PAYMENT_DETAILS":
break;
}
}
}
#endregion
#region
DataTable person = oracleHelper.ExcuteSqlGetDataSet(
$@"SELECT PERSONSELL_ID,SERVERPARTCODE,SHOPCODE,MACHINECODE,
STARTDATE,ENDDATE,SELLWORKER_CODE,TICKET_COUNT,TOTAL_COUNT,
TOTAL_AMOUNT,TOTAL_OFFAMOUNT,CASHPAY,-1 AS TICKETBILL,BANKPAY,
MEMBERPAY,COUPONPAY,-1 AS OTHERPAY,CONTRIBUTION_AMOUNT,
SELLWORKER_CODE AS ENDPERSONCODE,PAYMENT_DETAILS
FROM HIGHWAY_EXCHANGE.T_PERSONSELL_NEW
WHERE SERVERPARTCODE = '{ServerCode}' AND SHOPCODE = '{ShopCode}' AND
ENDACCOUNT_CODE = '{row["ENDACCOUNT_CODE"].ToString()}'
ORDER BY PERSONSELL_ID ASC").Tables[0];
DataTable _Table = oracleHelper.ExcuteSqlGetDataSet(
$@"SELECT PERSONSELL_ID,SERVERPARTCODE,SHOPCODE,MACHINECODE,
STARTDATE,ENDDATE,CASHWORKER_CODE AS SELLWORKER_CODE,
TICKETCOUNT AS TICKET_COUNT,TOTALCOUNT AS TOTAL_COUNT,
TOTALSELLAMOUNT AS TOTAL_AMOUNT,TOTALOFFAMOUNT AS TOTAL_OFFAMOUNT,
CASH AS CASHPAY,TICKETBILL,CREDITCARD AS BANKPAY,VIPPERSON AS MEMBERPAY,
COSTBILL AS COUPONPAY,OTHERPAY,CASHPAY AS CONTRIBUTION_AMOUNT,
ENDPERSONCODE,'' AS PAYMENT_DETAILS
FROM HIGHWAY_EXCHANGE.T_PERSONSELL
WHERE SERVERPARTCODE = '{ServerCode}' AND SHOPCODE = '{ShopCode}' AND
STARTDATE >= TO_DATE('{row["STARTDATE"].ToString()}','YYYY/MM/DD HH24:MI:SS') AND
ENDDATE <= TO_DATE('{row["ENDDATE"].ToString()}','YYYY/MM/DD HH24:MI:SS')
ORDER BY PERSONSELL_ID ASC").Tables[0];
person = ConvertOraclTableToDoNetTable(person);
_Table = ConvertOraclTableToDoNetTable(_Table);
person.Merge(_Table);
foreach (DataRow _DataRow in person.Rows)
{
_strTemp = "";
for (int i = 0; i < person.Columns.Count; i++)
{
if (person.Columns[i].ColumnName != "TICKETBILL" && person.Columns[i].ColumnName !=
"OTHERPAY" && person.Columns[i].ColumnName != "PAYMENT_DETAILS")
{
_strTemp += (_strTemp == "" ? "" : "|") + (person.Columns[i].DataType.ToString() ==
"System.DateTime" ? Convert.ToDateTime(_DataRow[i]).ToString("yyyyMMddHHmmss") :
_DataRow[i].ToString().Replace(".00", ""));
}
else
{
string[] MovePay = row["PAYMENT_DETAILS"].ToString().Split(',');
Dictionary<string, string> _MobilePayList = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
for (int k = 0; k < MovePay.Length; k++)
{
if (MovePay[k].Split(':').Length > 1)
{
_MobilePayList.Add(MovePay[k].Split(':')[0], MovePay[k].Split(':')[1]);
}
}
switch (person.Columns[i].ColumnName)
{
case "TICKETBILL":
if (row["TICKETBILL"].ToString() == "-1")
{
if (_MobilePayList.ContainsKey("WECHATPAY"))
{
_strTemp += "|" + _MobilePayList["WECHATPAY"].Replace(".00", "");
}
else
{
_strTemp += "|0";
}
}
else
{
_strTemp += (_strTemp == "" ? "" : "|") + (person.Columns[i].DataType.ToString() ==
"System.DateTime" ? Convert.ToDateTime(_DataRow[i]).ToString("yyyyMMddHHmmss") :
_DataRow[i].ToString().Replace(".00", ""));
}
break;
case "OTHERPAY":
if (row["OTHERPAY"].ToString() == "-1")
{
if (_MobilePayList.ContainsKey("ALIPAY"))
{
_strTemp += "|" + _MobilePayList["ALIPAY"].Replace(".00", "");
}
else
{
_strTemp += "|0";
}
}
else
{
_strTemp += (_strTemp == "" ? "" : "|") + (person.Columns[i].DataType.ToString() ==
"System.DateTime" ? Convert.ToDateTime(_DataRow[i]).ToString("yyyyMMddHHmmss") :
_DataRow[i].ToString().Replace(".00", ""));
}
break;
case "PAYMENT_DETAILS":
break;
}
}
}
_strPersonSell += (_strPersonSell == "" ? "" : ",") + _strTemp;
}
#endregion
DataRow _row = _DataTable.NewRow();
_row["id"] = row["endaccount_id"];
_row["startdate"] = row["startdate"];
_row["enddate"] = row["enddate"];
_row["endaccountstr"] = _strEndAccount;
_row["personsellstr"] = _strPersonSell;
_row["flag"] = row["endaccount_type"];
_DataTable.Rows.Add(_row);
//}
string MD5 = "", strMD5 = "";
for (int i = 0; i < _DataTable.Rows.Count; i++)
{
strMD5 += (strMD5 == "" ? "" : ",") + _DataTable.Rows[i]["endaccountstr"].ToString();
}
MD5 = CreateMD5(strMD5);
for (int i = 0; i < _DataTable.Rows.Count; i++)
{
_DataTable.Rows[i]["checkMD5"] = MD5;
}
checkCode = MD5;
}
return _DataTable;
}
#endregion
#region md5 16
private static string CreateMD5(string text)
{
var md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
//换成utf8后对于中文加密也适用
byte[] output = md5.ComputeHash(Encoding.UTF8.GetBytes(text));
string pass2md5 = BitConverter.ToString(output, 4, 8).Replace("-", "");
//pass2md5 = pass2md5.ToUpper();
return pass2md5;
}
#endregion
/// <summary>
/// 转换DataTable字段类型
/// </summary>
/// <param name="table"></param>
/// <returns></returns>
private static DataTable ConvertOraclTableToDoNetTable(DataTable table)
{
DataTable dt = new DataTable();
foreach (DataColumn dc in table.Columns)
{
DataColumn column = new DataColumn();
column.DataType = GetDataType(dc.DataType);
column.ColumnName = dc.ColumnName;
column.Caption = dc.Caption;
dt.Columns.Add(column);
}
dt.TableName = table.TableName;
dt.Merge(table, false, MissingSchemaAction.Ignore);
return dt;
}
/// <summary>
/// 字段类型
/// </summary>
/// <param name="dataType"></param>
/// <returns></returns>
private static Type GetDataType(Type dataType)
{
switch (dataType.ToString())
{
case "System.Double":
return System.Type.GetType("System.Decimal");
case "System.Int32":
return System.Type.GetType("System.Decimal");
case "System.Int16":
return System.Type.GetType("System.Decimal");
case "System.Int64":
return System.Type.GetType("System.Decimal");
default:
return dataType;
}
}
}
}