This commit is contained in:
PastSaid
2024-08-29 09:42:49 +08:00
parent fa480006a8
commit 5472714e30
66 changed files with 7417 additions and 243 deletions

View File

@@ -0,0 +1,210 @@
using Microsoft.VisualBasic;
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace RB_MES_API.Context
{
/// <summary>
/// 密码管理
/// </summary>
public class AESHelp
{
private static string appkey = "RB@8636926";
/// <summary>
/// 加密
/// </summary>
/// <param name="sourceText">原文</param>
/// <returns>密文(Base64字符串)</returns>
public static string Encrypt(string sourceText)
{
return Encrypt(sourceText, appkey);
}
/// <summary>
/// 加密
/// Key和IV将被转换为MD5值
/// </summary>
/// <param name="sourceText">原文</param>
/// <param name="sKey">密匙</param>
/// <returns>密文(Base64字符串)</returns>
private static string Encrypt(string sourceText, string sKey)
{
var des = DES.Create();
byte[] inputByteArray;
inputByteArray = Encoding.Default.GetBytes(sourceText);
des.Key = Encoding.ASCII.GetBytes(Md5Hash(sKey).Substring(0, 8));
des.IV = Encoding.ASCII.GetBytes(Md5Hash(sKey).Substring(0, 8));
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach (byte b in ms.ToArray())
{
ret.AppendFormat("{0:X2}", b);
}
ms.Dispose();
cs.Dispose();
des.Dispose();
return ret.ToString();
}
/// <summary>
/// 解密
/// </summary>
/// <param name="cipherText">密文</param>
/// <returns>原文</returns>
public static string Decrypt(string cipherText)
{
if (!string.IsNullOrEmpty(cipherText))
{
return Decrypt(cipherText, appkey);
}
else
{
return "";
}
}
/// <summary>
/// 解密
/// </summary>
/// <param name="sourceText">加密文本</param>
/// <param name="sKey">密匙</param>
/// <returns></returns>
private static string Decrypt(string sourceText, string sKey)
{
var des = DES.Create();
int len;
len = sourceText.Length / 2;
byte[] inputByteArray = new byte[len];
int x, i;
for (x = 0; x < len; x++)
{
i = Convert.ToInt32(sourceText.Substring(x * 2, 2), 16);
inputByteArray[x] = (byte)i;
}
des.Key = Encoding.ASCII.GetBytes(Md5Hash(sKey).Substring(0, 8));
des.IV = Encoding.ASCII.GetBytes(Md5Hash(sKey).Substring(0, 8));
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
byte[] msstr = ms.ToArray();
cs.Dispose();
ms.Dispose();
des.Dispose();
return Encoding.Default.GetString(msstr);
}
/// <summary>
/// 32位MD5加密
/// </summary>
/// <param name="input">要转为byte[]的文本</param>
/// <returns></returns>
private static string Md5Hash(string input)
{
MD5 md5Hasher = MD5.Create();
byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
md5Hasher.Dispose();
return sBuilder.ToString();
}
/// <summary>
/// 金蝶K3、KIS系列用户解密。想要加密算法的联系13823037922
/// </summary>
/// <param name="password"></param>
/// <returns></returns>
public static string K3Decrypt(string password)
{
if (password == null) return string.Empty;
int lenint, ASCInt1, ASCInt2, iMod, i;
string UnEncryptStrt, sMidStr;
UnEncryptStrt = "";
i = 1;
iMod = 1;
password = Strings.Mid(password, 51, (Strings.Len(password) - 50));
lenint = Strings.Len(password);
while (i < lenint)
{
sMidStr = Strings.Mid(password, i, 1);
ASCInt1 = Strings.Asc(sMidStr);
i = i + 1;
sMidStr = Strings.Mid(password, i, 1);
ASCInt2 = Strings.Asc(sMidStr);
iMod = iMod % 3;
if (iMod == 1)
{
UnEncryptStrt = UnEncryptStrt + Strings.Chr((ASCInt1 - 32) * 64 + ASCInt2 - 32);
i = i + 1;
}
if (iMod == 2)
{
UnEncryptStrt = UnEncryptStrt + Strings.Chr((int)((ASCInt1 - 32) * 16 + (ASCInt2 - 32) / (double)4));
i = i + 1;
}
if (iMod == 0)
UnEncryptStrt = UnEncryptStrt + Strings.Chr((int)((ASCInt1 - 32) * 4 + (ASCInt2 - 32) / (double)16));
i = i + 1;
iMod = iMod + 1;
}
return UnEncryptStrt;
}
/// <summary>
/// AES 加密
/// </summary>
/// <param name="str">明文(待加密)</param>
/// <param name="key">密文</param>
/// <returns></returns>
public static string AesEncrypt(string str, string key)
{
if (string.IsNullOrEmpty(str)) return null;
Byte[] toEncryptArray = Encoding.UTF8.GetBytes(str);
var rm = Aes.Create();
rm.Key = Encoding.UTF8.GetBytes(key);
rm.Mode = CipherMode.ECB;
rm.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rm.CreateEncryptor();
Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
/// <summary>
/// AES 解密
/// </summary>
/// <param name="str">明文(待解密)</param>
/// <param name="key">密文</param>
/// <returns></returns>
public static string AesDecrypt(string str, string key)
{
if (string.IsNullOrEmpty(str)) return null;
Byte[] toEncryptArray = Convert.FromBase64String(str);
var rm = Aes.Create();
rm.Key = Encoding.UTF8.GetBytes(key);
rm.Mode = CipherMode.ECB;
rm.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rm.CreateDecryptor();
Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Encoding.UTF8.GetString(resultArray);
}
}
}

View File

@@ -6,7 +6,6 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Windows.Forms;
using HandleUtils;
using System.Data.SqlClient;
using Kingdee.BOS.Util;
@@ -17,6 +16,9 @@ using Kingdee.BOS.Core.Util;
using LexmarkSFTPSDK.Response;
using System.Globalization;
using System.Xml;
using System.Text;
using HUIWEI.Lexmark.sftp.SDK.Doamin;
using Microsoft.Office.Interop.Excel;
namespace UnitTestProject2
{
@@ -39,27 +41,30 @@ namespace UnitTestProject2
// var item = a[key];
// item.Add("ttt", "1232");
//}
var rowList = new List<string>();
var rowList2 = new List<List<string>>();
var aaa = rowList2.ToArray();
Random rd = new Random();
var r1 = rd.Next(200, 1000);
//var rowList = new List<string>();
//var rowList2 = new List<List<string>>();
//var aaa = rowList2.ToArray();
//Random rd = new Random();
//var r1 = rd.Next(200, 1000);
for (int i = 0; i < r1; i++)
{
rowList.Add($"100123,{i},100123,2024-04-07 00:00:00,100123,100123,T_STK_STKTRANSFERINENTRY1");
}
//for (int i = 0; i < r1; i++)
//{
// rowList.Add($"100123,{i},100123,2024-04-07 00:00:00,100123,100123,T_STK_STKTRANSFERINENTRY1");
//}
var len = rowList.Max(x => x.Length);
var num = 8000 / 100;
int ii = 0;
var flag = rowList.Any();
while (flag)
{
ii++;
var t = rowList.Skip(num * ii).Take(num).ToList();
flag = num * ii > 8000;
}
//var len = rowList.Max(x => x.Length);
//var num = 8000 / 100;
//int ii = 0;
//var flag = rowList.Any();
//while (flag)
//{
// ii++;
// var t = rowList.Skip(num * ii).Take(num).ToList();
// flag = num * ii > 8000;
//}
var num = 2.00000001;
var res = Math.Ceiling(num);
var t = DateTime.Now.ToShortDateString();
return;
}
@@ -84,13 +89,132 @@ namespace UnitTestProject2
}
[TestMethod]
public void TestMethod3XML()
{
var receivePath = @"C:\Users\Fareoh\Desktop\对比\新建文件夹\22\";
var diInfos = new DirectoryInfo(receivePath);
var fileInfos = diInfos.GetFiles();
var encoding = 65001;
Application excelApp = new Application();
Workbook workbook = excelApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet worksheet = (Worksheet)workbook.Worksheets[1];
var allRowNum = 1;
var titleNum = 1;
worksheet.Cells[allRowNum, titleNum++].Value = "PurchaseOrderNumber";
worksheet.Cells[allRowNum, titleNum++].Value = "PurchaseOrderDate";
worksheet.Cells[allRowNum, titleNum++].Value = "RequestedDeliveryDate";
worksheet.Cells[allRowNum, titleNum++].Value = "Currency";
worksheet.Cells[allRowNum, titleNum++].Value = "TotalAmount";
worksheet.Cells[allRowNum, titleNum++].Value = "Incoterms";
worksheet.Cells[allRowNum, titleNum++].Value = "SalesOrganisation";
worksheet.Cells[allRowNum, titleNum++].Value = "Vendor.PartyId";
worksheet.Cells[allRowNum, titleNum++].Value = "ShipTo.PartyId";
worksheet.Cells[allRowNum, titleNum++].Value = "ShipTo.Name";
worksheet.Cells[allRowNum, titleNum++].Value = "ShipTo.AddressLine1";
worksheet.Cells[allRowNum, titleNum++].Value = "ShipTo.City";
worksheet.Cells[allRowNum, titleNum++].Value = "ShipTo.PostalCode";
worksheet.Cells[allRowNum, titleNum++].Value = "ShipTo.Country";
worksheet.Cells[allRowNum, titleNum++].Value = "BillTo.PartyId";
worksheet.Cells[allRowNum, titleNum++].Value = "BillTo.Name";
worksheet.Cells[allRowNum, titleNum++].Value = "BillTo.AddressLine1";
worksheet.Cells[allRowNum, titleNum++].Value = "BillTo.City";
worksheet.Cells[allRowNum, titleNum++].Value = "BillTo.PostalCode";
worksheet.Cells[allRowNum, titleNum++].Value = "BillTo.Country";
worksheet.Cells[allRowNum, titleNum++].Value = "ItemLineNumber";
worksheet.Cells[allRowNum, titleNum++].Value = "MaterialNumber";
worksheet.Cells[allRowNum, titleNum++].Value = "EANorUPCNumber";
worksheet.Cells[allRowNum, titleNum++].Value = "ItemQuantity";
worksheet.Cells[allRowNum, titleNum++].Value = "ItemUnitPrice";
worksheet.Cells[allRowNum, titleNum++].Value = "NetPrice";
worksheet.Cells[allRowNum, titleNum++].Value = "ItemUOM";
worksheet.Cells[allRowNum, titleNum++].Value = "ItemDescription";
worksheet.Cells[allRowNum, titleNum++].Value = "ItemCustomField1";
allRowNum = 2;
foreach (var fileInfo in fileInfos)
{
var fileName = fileInfo.Name;
using (StreamReader sr = new StreamReader(receivePath + fileName, Encoding.GetEncoding(encoding)))
{
var xml = XmlUtils.LoadSecureXmlDocByReader(sr);
var purchase = XmlSerializerHelper.Deserialize<PurchaseOrderDoamin>(xml.InnerXml);
var header = purchase.Header;
var pItem = purchase.LineItem;
var colNum = 1;
var rowNum = 1;
foreach (var item in pItem)
{
if (rowNum == 1)
{
worksheet.Cells[allRowNum, colNum++].Value = header.PurchaseOrderNumber;
worksheet.Cells[allRowNum, colNum++].Value = header.PurchaseOrderDate;
worksheet.Cells[allRowNum, colNum++].Value = header.RequestedDeliveryDate;
worksheet.Cells[allRowNum, colNum++].Value = header.Currency;
worksheet.Cells[allRowNum, colNum++].Value = header.TotalAmount;
worksheet.Cells[allRowNum, colNum++].Value = header.Incoterms;
worksheet.Cells[allRowNum, colNum++].Value = header.SalesOrganisation;
worksheet.Cells[allRowNum, colNum++].Value = header.Vendor.PartyId;
worksheet.Cells[allRowNum, colNum++].Value = header.ShipTo.PartyId;
worksheet.Cells[allRowNum, colNum++].Value = header.ShipTo.Name;
worksheet.Cells[allRowNum, colNum++].Value = header.ShipTo.AddressLine1;
worksheet.Cells[allRowNum, colNum++].Value = header.ShipTo.City;
worksheet.Cells[allRowNum, colNum++].Value = header.ShipTo.PostalCode;
worksheet.Cells[allRowNum, colNum++].Value = header.ShipTo.Country;
worksheet.Cells[allRowNum, colNum++].Value = header.BillTo.PartyId;
worksheet.Cells[allRowNum, colNum++].Value = header.BillTo.Name;
worksheet.Cells[allRowNum, colNum++].Value = header.BillTo.AddressLine1;
worksheet.Cells[allRowNum, colNum++].Value = header.BillTo.City;
worksheet.Cells[allRowNum, colNum++].Value = header.BillTo.PostalCode;
worksheet.Cells[allRowNum, colNum++].Value = header.BillTo.Country;
}
else
{
colNum = 21;
}
worksheet.Cells[allRowNum, colNum++].Value = item.ItemLineNumber;
worksheet.Cells[allRowNum, colNum++].Value = item.MaterialNumber;
worksheet.Cells[allRowNum, colNum++].Value = item.EANorUPCNumber;
worksheet.Cells[allRowNum, colNum++].Value = item.ItemQuantity;
worksheet.Cells[allRowNum, colNum++].Value = item.ItemUnitPrice;
worksheet.Cells[allRowNum, colNum++].Value = item.NetPrice;
worksheet.Cells[allRowNum, colNum++].Value = item.ItemUOM;
worksheet.Cells[allRowNum, colNum++].Value = item.ItemDescription;
worksheet.Cells[allRowNum, colNum++].Value = item.ItemCustomField1;
rowNum++;
allRowNum++;
}
}
}
var guid = Guid.NewGuid().ToString("N");
workbook.SaveAs($@"C:\Users\Fareoh\Desktop\对比\新建文件夹\{guid}.xlsx");
workbook.Close();
excelApp.Quit();
}
[TestMethod]
public void TestMethodSetXml()
{
var path = @"C:\Users\Fareoh\Desktop\对比\新建文件夹\LEXMK_Encode.LEXMK_SFTP_PRD.HUIWE_SFTP_PRD.ORDERSUTF8.PO202408080352.20240808035231.45840";
using (StreamReader sr = new StreamReader(path, Encoding.GetEncoding(65001)))
{
var xml2 = XmlUtils.LoadSecureXmlDocByReader(sr);
var purchase = XmlSerializerHelper.Deserialize<PurchaseOrderDoamin>(xml2.InnerXml);
}
var dateTIme = DateTime.Now.GetTimestamp();
var date = dateTIme.ToString("yyyyMMdd");
var xml = XmlUtils.LoadSecureXmlDocByFile(@"D:\Work\GateDge\VS\GateDge2023\00.未分类\UnitTestProject2\POSH_CB_PRODUCTCOSTREDUCTION.xml");
var xml = XmlUtils.LoadSecureXmlDocByFile(@"C:\Users\Fareoh\Desktop\对比\新建文件夹\LEXMK_Encode.LEXMK_SFTP_PRD.HUIWE_SFTP_PRD.ORDCHGUTF8.POC20240805134.20240805134419.9060.U");
var x2 = JsonUtil.Serialize("");
var x = XmlSerializerHelper.Deserialize<FormMetadata>(xml.InnerXml);
var fieldList = x.BusinessInfo.BusinessInfo.Elements.SysReportForm.SQLDataSource.SQLDataSource.FieldList;
@@ -193,27 +317,27 @@ namespace UnitTestProject2
[TestMethod]
public void ConvertHTMLtoWord()
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "Word|*.docx";
DialogResult result = dialog.ShowDialog();
if (result == DialogResult.OK)
{
string filepath = dialog.FileName;
//创建 Document 对象
Document document = new Document();
//OpenFileDialog dialog = new OpenFileDialog();
//dialog.Filter = "Word|*.docx";
//DialogResult result = dialog.ShowDialog();
//if (result == DialogResult.OK)
//{
// string filepath = dialog.FileName;
// //创建 Document 对象
// Document document = new Document();
document.LoadFromFile(filepath);
string fileExs = System.IO.Path.GetExtension(filepath);
string fileName = System.IO.Path.GetFileNameWithoutExtension(filepath);
string newFilePath = "";
//newFilePath = filepath.Replace(fileExs, ".html");
//document.SaveToFile(newFilePath, FileFormat.Html);
//document.Close();
newFilePath = filepath.Replace(fileExs, ".xml");
//document.LoadFromFile(newFilePath, FileFormat.Html);
document.SaveToFile(newFilePath, FileFormat.Xml);
document.Close();
}
// document.LoadFromFile(filepath);
// string fileExs = System.IO.Path.GetExtension(filepath);
// string fileName = System.IO.Path.GetFileNameWithoutExtension(filepath);
// string newFilePath = "";
// //newFilePath = filepath.Replace(fileExs, ".html");
// //document.SaveToFile(newFilePath, FileFormat.Html);
// //document.Close();
// newFilePath = filepath.Replace(fileExs, ".xml");
// //document.LoadFromFile(newFilePath, FileFormat.Html);
// document.SaveToFile(newFilePath, FileFormat.Xml);
// document.Close();
//}
}
}

View File

@@ -66,6 +66,11 @@
<Reference Include="Kingdee.K3.SCM.App.Stock.Report">
<HintPath>..\..\..\..\..\..\Program Files\SupportClient\ReceivedFiles\Kingdee.K3.SCM.App.Stock.Report.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Office.Interop.Excel.15.0.4795.1001\lib\net20\Microsoft.Office.Interop.Excel.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
<HintPath>..\..\packages\Microsoft.Office.Interop.Word.15.0.4797.1004\lib\net20\Microsoft.Office.Interop.Word.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
@@ -114,6 +119,10 @@
<Project>{d6a5e5a0-7529-4ffa-9f9d-b2c610919bf6}</Project>
<Name>HandleUtils</Name>
</ProjectReference>
<ProjectReference Include="..\..\03.珠海市汇威精密制造有限公司\HUIWEI.Lexmark.sftp.SDK\HUIWEI.Lexmark.sftp.SDK.csproj">
<Project>{1452970B-B4C7-4B42-803E-9DB6EE63ED91}</Project>
<Name>HUIWEI.Lexmark.sftp.SDK</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="OrderBySeq.xml" />

View File

@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.CSharp" version="4.0.0" targetFramework="net45" />
<package id="Microsoft.Office.Interop.Excel" version="15.0.4795.1001" targetFramework="net45" />
<package id="Microsoft.Office.Interop.Word" version="15.0.4797.1004" targetFramework="net45" />
<package id="MSTest.TestAdapter" version="2.2.10" targetFramework="net45" />
<package id="MSTest.TestFramework" version="2.2.10" targetFramework="net45" />