diff --git a/.vscode/settings.json b/.vscode/settings.json
index 013007b..a6c2fdd 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,3 +1,4 @@
{
- "dotnet.preferCSharpExtension": true
+ "dotnet.preferCSharpExtension": true,
+ "python.analysis.typeCheckingMode": "off"
}
\ No newline at end of file
diff --git a/00.未分类/UnitTestProject2/AESHelp.cs b/00.未分类/UnitTestProject2/AESHelp.cs
new file mode 100644
index 0000000..f2419c4
--- /dev/null
+++ b/00.未分类/UnitTestProject2/AESHelp.cs
@@ -0,0 +1,210 @@
+using Microsoft.VisualBasic;
+using System;
+using System.IO;
+using System.Security.Cryptography;
+using System.Text;
+
+namespace RB_MES_API.Context
+{
+ ///
+ /// 密码管理
+ ///
+ public class AESHelp
+ {
+ private static string appkey = "RB@8636926";
+ ///
+ /// 加密
+ ///
+ /// 原文
+ /// 密文(Base64字符串)
+ public static string Encrypt(string sourceText)
+ {
+ return Encrypt(sourceText, appkey);
+ }
+ ///
+ /// 加密
+ /// Key和IV将被转换为MD5值
+ ///
+ /// 原文
+ /// 密匙
+ /// 密文(Base64字符串)
+ 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();
+ }
+
+
+ ///
+ /// 解密
+ ///
+ /// 密文
+ /// 原文
+ public static string Decrypt(string cipherText)
+ {
+ if (!string.IsNullOrEmpty(cipherText))
+ {
+ return Decrypt(cipherText, appkey);
+ }
+ else
+ {
+ return "";
+ }
+ }
+ ///
+ /// 解密
+ ///
+ /// 加密文本
+ /// 密匙
+ ///
+ 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);
+ }
+ ///
+ /// 32位MD5加密
+ ///
+ /// 要转为byte[]的文本
+ ///
+ 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();
+ }
+ ///
+ /// 金蝶K3、KIS系列用户解密。想要加密算法的,联系13823037922
+ ///
+ ///
+ ///
+ 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;
+ }
+
+ ///
+ /// AES 加密
+ ///
+ /// 明文(待加密)
+ /// 密文
+ ///
+ 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);
+ }
+
+ ///
+ /// AES 解密
+ ///
+ /// 明文(待解密)
+ /// 密文
+ ///
+ 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);
+ }
+ }
+}
diff --git a/00.未分类/UnitTestProject2/UnitTest1.cs b/00.未分类/UnitTestProject2/UnitTest1.cs
index ecefb42..0b8de57 100644
--- a/00.未分类/UnitTestProject2/UnitTest1.cs
+++ b/00.未分类/UnitTestProject2/UnitTest1.cs
@@ -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();
- var rowList2 = new List>();
- var aaa = rowList2.ToArray();
- Random rd = new Random();
- var r1 = rd.Next(200, 1000);
+ //var rowList = new List();
+ //var rowList2 = new List>();
+ //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(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(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(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();
+ //}
}
}
diff --git a/00.未分类/UnitTestProject2/UnitTestProject2.csproj b/00.未分类/UnitTestProject2/UnitTestProject2.csproj
index 440a259..8ae7c0a 100644
--- a/00.未分类/UnitTestProject2/UnitTestProject2.csproj
+++ b/00.未分类/UnitTestProject2/UnitTestProject2.csproj
@@ -66,6 +66,11 @@
..\..\..\..\..\..\Program Files\SupportClient\ReceivedFiles\Kingdee.K3.SCM.App.Stock.Report.dll
+
+
+ ..\..\packages\Microsoft.Office.Interop.Excel.15.0.4795.1001\lib\net20\Microsoft.Office.Interop.Excel.dll
+ True
+
..\..\packages\Microsoft.Office.Interop.Word.15.0.4797.1004\lib\net20\Microsoft.Office.Interop.Word.dll
True
@@ -114,6 +119,10 @@
{d6a5e5a0-7529-4ffa-9f9d-b2c610919bf6}
HandleUtils
+
+ {1452970B-B4C7-4B42-803E-9DB6EE63ED91}
+ HUIWEI.Lexmark.sftp.SDK
+
diff --git a/00.未分类/UnitTestProject2/packages.config b/00.未分类/UnitTestProject2/packages.config
index 9603563..e73c552 100644
--- a/00.未分类/UnitTestProject2/packages.config
+++ b/00.未分类/UnitTestProject2/packages.config
@@ -1,5 +1,7 @@
+
+
diff --git a/01.扩展/HandleUtils/HandleUtils.csproj b/01.扩展/HandleUtils/HandleUtils.csproj
index 8d8cbd3..5f0c2e9 100644
--- a/01.扩展/HandleUtils/HandleUtils.csproj
+++ b/01.扩展/HandleUtils/HandleUtils.csproj
@@ -64,6 +64,7 @@
+
diff --git a/01.扩展/HandleUtils/SFTPHelper.cs b/01.扩展/HandleUtils/SFTPHelper.cs
index 761a8ac..6af4cf3 100644
--- a/01.扩展/HandleUtils/SFTPHelper.cs
+++ b/01.扩展/HandleUtils/SFTPHelper.cs
@@ -154,6 +154,9 @@ namespace HandleUtils
var result = new List();
foreach (var file in files)
{
+ if (file.Name.Contains("%LEXMK_SFTP_PRD%HUIWE_SFTP_PRD%BINARY%"))
+ continue;
+
using (var fs = File.OpenWrite(localPath + file.Name))
{
result.Add(file.Name);
diff --git a/01.扩展/HandleUtils/sql/批号来源.sql b/01.扩展/HandleUtils/sql/批号来源.sql
new file mode 100644
index 0000000..7998ff7
--- /dev/null
+++ b/01.扩展/HandleUtils/sql/批号来源.sql
@@ -0,0 +1,7 @@
+SELECT t0.FLOTID,t0.FLOTSTATUS,t0.FNUMBER
+ ,t1.FBILLDATE,t1.FINSTOCKDATETMP,t1.FORDERTYPE,t1.FBILLFORMID
+FROM T_BD_LOTMASTER t0
+ INNER JOIN T_BD_LOTMASTERBILLTRACE t1 on t0.FLOTID = t1.FLOTID
+WHERE t1.FSTOCKDIRECT = 1
+ --AND t0.FLOTID in (9078222,9139693)
+ORDER BY t0.FLOTID,t1.FBILLDATE DESC
\ No newline at end of file
diff --git a/01.扩展/HandleUtils/sql/查询字段所在表.sql b/01.扩展/HandleUtils/sql/查询字段所在表.sql
index d610d22..f79fe06 100644
--- a/01.扩展/HandleUtils/sql/查询字段所在表.sql
+++ b/01.扩展/HandleUtils/sql/查询字段所在表.sql
@@ -6,7 +6,7 @@ FROM
syscolumns b
WHERE
a.id= b.id
- AND (b.name LIKE '%appSecret'
+ AND (b.name LIKE '%FALLAMOUNT_D%'
--OR b.name LIKE '%appid'
)
AND a.type= 'U'
diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI.Lexmark.sftp.SDK/ASN/BillEventPlugInEx.cs b/03.珠海市汇威精密制造有限公司/HUIWEI.Lexmark.sftp.SDK/ASN/BillEventPlugInEx.cs
index e48ce8f..4de3632 100644
--- a/03.珠海市汇威精密制造有限公司/HUIWEI.Lexmark.sftp.SDK/ASN/BillEventPlugInEx.cs
+++ b/03.珠海市汇威精密制造有限公司/HUIWEI.Lexmark.sftp.SDK/ASN/BillEventPlugInEx.cs
@@ -1,9 +1,13 @@
using Kingdee.BOS.App;
using Kingdee.BOS.Contracts;
+using Kingdee.BOS.Core.CommonFilter;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
+using Kingdee.BOS.Util;
+using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -11,7 +15,7 @@ using System.Text;
namespace HUIWEI.Lexmark.sftp.SDK.ASN
{
- public class BillEventPlugInEx : AbstractOperationServicePlugIn
+ public class BillEventPlugInEx : AbstractDynamicFormPlugIn
{
@@ -29,10 +33,24 @@ namespace HUIWEI.Lexmark.sftp.SDK.ASN
ISaveService saveService = ServiceHelper.GetService();
//获取加载数据服务
-
IViewService viewService = ServiceHelper.GetService();
+ var showParameter = new FilterShowParameter();
+ showParameter.FormId = "POSH_CB_PROCOSTRESULTREC_FILTER";
+ showParameter.ParentPageId = this.View.PageId;
+ showParameter.CustomComplexParams.Add("", "");
+ //showParameter.FilterSchemeId
+ this.View.ShowForm(showParameter, result =>
+ {
+
+ });
+ /*JsonUtil.Serialize*/
+ //MainWorker.QuequeTask(Action(setData), Action[AsynResult](showRslt));
+ var t = new List();
+ //t.AddRange
+ var ttt = this.View.GetControl("FBatchFilterGrid");
+ var jobj = JsonUtil.DeserializeObject("");
//获取物料元数据
FormMetadata materialMetadata = metadataService.Load(this.Context, "ora_SftpOperationRecord") as FormMetadata;
@@ -46,6 +64,8 @@ namespace HUIWEI.Lexmark.sftp.SDK.ASN
//保存id为10001的物料
saveService.Save(this.Context, materialMetadata.BusinessInfo, objs);
+ //this.View.ShowMessage();
+
}
}
}
diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI.Lexmark.sftp.SDK/Domain/PurchaseOrderDoamin.cs b/03.珠海市汇威精密制造有限公司/HUIWEI.Lexmark.sftp.SDK/Domain/PurchaseOrderDoamin.cs
index 46a44d4..4bf441f 100644
--- a/03.珠海市汇威精密制造有限公司/HUIWEI.Lexmark.sftp.SDK/Domain/PurchaseOrderDoamin.cs
+++ b/03.珠海市汇威精密制造有限公司/HUIWEI.Lexmark.sftp.SDK/Domain/PurchaseOrderDoamin.cs
@@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Xml.Serialization;
-namespace HUIWEI.Lexmark.sftp.SDK.Doamin
+namespace HUIWEI.Lexmark.sftp.SDK.Domain
{
[Serializable()]
[DesignerCategory("code")]
diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI.Lexmark.sftp.SDK/HUIWEI.Lexmark.sftp.SDK.csproj b/03.珠海市汇威精密制造有限公司/HUIWEI.Lexmark.sftp.SDK/HUIWEI.Lexmark.sftp.SDK.csproj
index 0ad2a84..c9e0852 100644
--- a/03.珠海市汇威精密制造有限公司/HUIWEI.Lexmark.sftp.SDK/HUIWEI.Lexmark.sftp.SDK.csproj
+++ b/03.珠海市汇威精密制造有限公司/HUIWEI.Lexmark.sftp.SDK/HUIWEI.Lexmark.sftp.SDK.csproj
@@ -110,5 +110,10 @@
Settings.Designer.cs
+
+
+
+
+
\ No newline at end of file
diff --git a/03.珠海市汇威精密制造有限公司/HUIWEI.Lexmark.sftp.SDK/PO/GetPurchaseOrderFromSFTP.cs b/03.珠海市汇威精密制造有限公司/HUIWEI.Lexmark.sftp.SDK/PO/GetPurchaseOrderFromSFTP.cs
index dccdd3d..8eef4ed 100644
--- a/03.珠海市汇威精密制造有限公司/HUIWEI.Lexmark.sftp.SDK/PO/GetPurchaseOrderFromSFTP.cs
+++ b/03.珠海市汇威精密制造有限公司/HUIWEI.Lexmark.sftp.SDK/PO/GetPurchaseOrderFromSFTP.cs
@@ -1,5 +1,5 @@
using HandleUtils;
-using HUIWEI.Lexmark.sftp.SDK.Doamin;
+using HUIWEI.Lexmark.sftp.SDK.Domain;
using Kingdee.BOS;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Core;
@@ -18,9 +18,11 @@ using Newtonsoft.Json;
using System.Data;
using System.IO;
using System.ComponentModel;
-using HUIWEI.Lexmark.sftp.SDK.Domain;
using Kingdee.BOS.WebApi.DataEntities;
using Kingdee.BOS.Core.Metadata;
+using Kingdee.BOS.Core.DynamicForm;
+using Kingdee.BOS.App;
+using Kingdee.BOS.Orm;
namespace HUIWEI.Lexmark.sftp.SDK.PO
{
@@ -46,6 +48,7 @@ SELECT t0.FID,t0.FNUMBER,t0.FSALEORGID
,t0.FSFTPUSER,t0.FSFTPCLIENT,t0.FSFTPPASSWORD,t0.FSFTPLINKPATH,t0.FSFTPPORT
,t0.FSFTPPUTPATH,t0.FSFTPGETPATH
,t0.FSFTPBEFORESAVEPATH,t0.FSFTPAFTERSAVEPATH
+ ,t0.FEncoding
,t1.FNUMBER AS 'OrgNumber'
,t2.FNUMBER AS 'CustNumber'
,t3.FNUMBER AS 'DeliveryWay'
@@ -94,11 +97,21 @@ WHERE 1=1
//文件接收地址
var receivePath = row["FSFTPBEFORESAVEPATH"].ToString() + "/RECEIVE/";
+ var encoding = row["FEncoding"].Long2Int();
+
+ //设置上下文组织
+ ctx.CurrentOrganizationInfo = new OrganizationInfo();
+ ctx.CurrentOrganizationInfo.ID = row["FSALEORGID"].Long2Int();
+
+ if (encoding == 0)
+ encoding = 65001;
+ //encoding = 1252;
+
if (!Directory.Exists(receivePath))
Directory.CreateDirectory(receivePath);
SFTPHelper helper = new SFTPHelper(FSFTPLinkPath, FSFTPUser, FSFTPPassword, FSFTPPort);
-
+ //%LEXMK_SFTP_PRD%HUIWE_SFTP_PRD%BINARY%
helper.Mget(FSFTPGetPath, receivePath, (List fileNames) =>
{
var diInfos = new DirectoryInfo(receivePath);
@@ -106,12 +119,10 @@ WHERE 1=1
foreach (var fileInfo in fileInfos)
{
-
var fileName = fileInfo.Name;
var result = false;
var orderTypePath = "";
-
var moveReceivePath = "";
var poNo = "";
var billNo = "";
@@ -119,7 +130,7 @@ WHERE 1=1
var resMsg = "";
try
{
- using (StreamReader sr = new StreamReader(receivePath + fileName, Encoding.GetEncoding(1252)))
+ using (StreamReader sr = new StreamReader(receivePath + fileName, Encoding.GetEncoding(encoding)))
{
var xml = XmlUtils.LoadSecureXmlDocByReader(sr);
@@ -153,7 +164,11 @@ WHERE 1=1
Logger.Error($"服务器插件:{schedule.Name}", ex.Message, ex);
}
- ReceiveLog(ctx, fileName, moveReceivePath, poNo, billNo, billId, orderTypePath, result ? "1" : "-1", resMsg);
+ var receiveResult = ReceiveLog(ctx, fileName, moveReceivePath, poNo, billNo, billId, orderTypePath, result ? "1" : "-1", resMsg);
+ if (receiveResult != null && !receiveResult.IsSuccess)
+ {
+ Logger.Info($"服务器插件:{schedule.Name},日志记录", JsonUtil.Serialize(receiveResult));
+ }
}
return true;
@@ -176,36 +191,64 @@ WHERE 1=1
BillNo = "";
BillId = 0;
- var sqlL = $@"/*dialect*/
-SELECT t0.FID,t0f.FENTRYID AS FINID,t0e.FENTRYID,t0e.FCPOITEMNO,t0.FHeadPO
-FROM T_SAL_ORDER t0
- INNER JOIN T_SAL_ORDERFIN t0f on t0f.FID = t0.FID
- INNER JOIN T_SAL_ORDERENTRY t0e on t0e.FID = t0.FID
-WHERE t0.FHeadPO = '{purchaseOrder.Header.PurchaseOrderNumber}'
-";
-
- // sqlL = $@"/*dialect*/
- //SELECT * FROM TMP_SALEORDER_20240628 t0
- //WHERE t0.FHeadPO = '{header.PurchaseOrderNumber}'
+ // var sqlL = $@"/*dialect*/
+ //SELECT t0.FID,t0f.FENTRYID AS FINID,t0e.FENTRYID,t0e.FCPOITEMNO,t0.FHeadPO
+ // ,t0.FDOCUMENTSTATUS
+ //FROM T_SAL_ORDER t0
+ // INNER JOIN T_SAL_ORDERFIN t0f on t0f.FID = t0.FID
+ // INNER JOIN T_SAL_ORDERENTRY t0e on t0e.FID = t0.FID
+ //WHERE t0.FHeadPO = '{purchaseOrder.Header.PurchaseOrderNumber}'
//";
+
+ var sqlL = $@"/*dialect*/
+EXEC PROC_SELECT_SAL_ORDER_BY_LEX '{purchaseOrder.Header.PurchaseOrderNumber}'
+";
var dbSet = DBServiceHelper.ExecuteDynamicObject(ctx, sqlL);
string result = string.Empty;
-
+ //Logger.Info("AAAAAA", purchaseOrder.Header.OrderType);
if (purchaseOrder.Header.OrderType.Equals("ORDERS"))
{
if (dbSet == null || dbSet.Count == 0)
result = Add(ctx, purchaseOrder, sftpBaseInfo);
}
- else if (purchaseOrder.Header.OrderType.Equals("ORDCHG"))
+ else
{
- result = Update(ctx, purchaseOrder, sftpBaseInfo, dbSet);
+ if (dbSet != null && dbSet.Count > 0)
+ {
+ var data = dbSet[0];
+ var documentStatus = data["FDOCUMENTSTATUS"] == null ? "" : data["FDOCUMENTSTATUS"].ToString();
+ var doUnAudit = data["DoUnAudit"] == null ? "" : data["DoUnAudit"].ToString();
+
+ //如果但是是审核状态先反审核
+ if (doUnAudit.Equals("Y") && (documentStatus.Equals("C")))
+ {
+ //审核\反审核id为10001的物料数据
+ //获取单据状态转换服务
+ ISetStatusService setStatusService = ServiceHelper.GetService();
+ //获取元数据服务
+ IMetaDataService metaDataService = ServiceHelper.GetService();
+ //构建id为10001的数据集合
+ List> lstKeyValuePairs = new List>();
+ KeyValuePair