From 709959f7739b733b22b0be8557593b59f1b7ecd8 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期三, 05 三月 2025 21:35:37 +0800 Subject: [PATCH] 雅达-更新数据库连接字符串,新增收货单相关类和方法 --- Tiger.Business.WMS/ERP/U9C_WMS.cs | 2 Tiger.Business.MES/iERP/U9C_MES.cs | 2 Tiger.IBusiness.WMS/iERP/IWMS_U9C.cs | 17 ++ Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs | 148 ++++++++++++++++++++++++ Tiger.Api/BizSettings.json | 6 Tiger.Business/Services/Base/InterfaceServiceNew.cs | 1 Tiger.Business.WMS/ERP/WMS_U9C.cs | 159 ++++++++++++++++++++++++++ 7 files changed, 328 insertions(+), 7 deletions(-) diff --git a/Tiger.Api/BizSettings.json b/Tiger.Api/BizSettings.json index 53e972a..36fe355 100644 --- a/Tiger.Api/BizSettings.json +++ b/Tiger.Api/BizSettings.json @@ -26,6 +26,7 @@ "Main": { "DbType": "SqlServer", //"ConnectionString": "server=172.18.8.57;uid=sa;pwd=bmsEia9IS4VByWJr;database=SharetronicWmsDb_DGSC;", + //"ConnectionString": "server=192.169.1.241;uid=sa;pwd=Yada2019;database=HongHuDb;Encrypt=True;TrustServerCertificate=True;" //"ConnectionString": "server=172.16.80.40;uid=sa;pwd=Yada@321654;database=MES;Encrypt=True;TrustServerCertificate=True;" //"ConnectionString": "server=localhost;uid=sa;pwd=p@ssw0rd;database=MES;Encrypt=True;TrustServerCertificate=True;" //"ConnectionString": "server=(localdb)\\ProjectsV13;uid=sa;pwd=p@ssw0rd;database=MES;Encrypt=True;TrustServerCertificate=True;", @@ -45,8 +46,9 @@ }, "YadaU9C": { "DbType": "SqlServer", + "ConnectionString": "server=172.16.80.13;uid=Mes_View;pwd=Mes110**3493810;database=YADA;Encrypt=True;TrustServerCertificate=True;" //"ConnectionString": "server=172.16.80.20;uid=Mes_View;pwd=yd@123456;database=20240703;Encrypt=True;TrustServerCertificate=True;" - "ConnectionString": "server=47.115.28.255;uid=sa;pwd=p@ssw0rd;database=YadaU9C;Encrypt=True;TrustServerCertificate=True;" + //"ConnectionString": "server=47.115.28.255;uid=sa;pwd=p@ssw0rd;database=YadaU9C;Encrypt=True;TrustServerCertificate=True;" //"ConnectionString": "server=172.18.8.55;database=wms;uid=root;pwd=Share@123;charset='utf8';SslMode=None;AllowLoadLocalInfile=true;" }, "Test": { @@ -94,7 +96,7 @@ "CurrentProject": "MqBarcode", "JuDian": "XCSJ", "IsTestServer": false, - "IsUseDbCache": true, + "IsUseDbCache": false, "UploadAddress": "D:\\nginx-1.26.0\\html", "DownloadAddress": "http://localhost:8800/files" } \ No newline at end of file diff --git a/Tiger.Business.MES/iERP/U9C_MES.cs b/Tiger.Business.MES/iERP/U9C_MES.cs index cb09fa4..6c832de 100644 --- a/Tiger.Business.MES/iERP/U9C_MES.cs +++ b/Tiger.Business.MES/iERP/U9C_MES.cs @@ -491,7 +491,7 @@ CREATE_TIME = di["CreatedOn"].ToDateTime(), UPDATE_TIME = di["ModifiedOn"].ToDateTime(), AUTH_ORG = _MES_WO?.AUTH_ORG, - CREATE_USER = "U9C" + CREATE_USER = "U9C" //鍚屾椂缁機REATE_USER鍜孋REATE_TIME璧嬪�硷紝鍒欎笉浼氳鏇存柊锛屼繚鐣欐墍璧嬬殑鍊� }; items.Add(snItem); } diff --git a/Tiger.Business.WMS/ERP/U9C_WMS.cs b/Tiger.Business.WMS/ERP/U9C_WMS.cs index c5abd07..d62b012 100644 --- a/Tiger.Business.WMS/ERP/U9C_WMS.cs +++ b/Tiger.Business.WMS/ERP/U9C_WMS.cs @@ -77,5 +77,7 @@ } return action; } + + } } diff --git a/Tiger.Business.WMS/ERP/WMS_U9C.cs b/Tiger.Business.WMS/ERP/WMS_U9C.cs new file mode 100644 index 0000000..fe07018 --- /dev/null +++ b/Tiger.Business.WMS/ERP/WMS_U9C.cs @@ -0,0 +1,159 @@ +锘縰sing Tiger.Model; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Text; +using System.Threading.Tasks; +using Rhea.Common; +using System.Net; +using System.Linq; +using Newtonsoft.Json; +using Tiger.IBusiness; +using Microsoft.AspNetCore.Http; +using Tiger.Model.Minsun; +using Org.BouncyCastle.Asn1.Tsp; +using Tiger.Model.Entitys.MES.Position; +using Apache.NMS.ActiveMQ.Commands; +using System.Security.Cryptography; +using System.Diagnostics; +using Tiger.Model.Entitys.MES.U9C; +using Newtonsoft.Json.Linq; +using System.Security.Policy; +using NetTaste; + +namespace Tiger.Business.WMS +{ + public partial class WMS_U9C : IWMS_U9C + { + public static string U9CAuthLoginUrl { get; set; } = ApiConfig.IsTestServer ? Cache.SysParam["U9CAuthLoginUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["U9CAuthLoginUrl", "U9CUrl"].PARAM_VALUE; // "http://172.16.80.20/U9C/webapi/OAuth2/AuthLogin?"; 娴嬭瘯 + //public static string U9CAuthLoginUrl { get; set; } = Cache.SysParam["U9CAuthLoginUrl", "U9CUrl"].PARAM_VALUE; //姝e紡 + public static string secret = "&entcode=02&orgcode=101&clientid=mes&clientsecret=12c8ee7e9bb74ad2a6a0fb3315c8af20"; + public static string CreateRcvBySrcASNUrl + { get; set; } = ApiConfig.IsTestServer ? Cache.SysParam["CreateRcvBySrcASNUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateRcvBySrcASNUrl", "U9CUrl"].PARAM_VALUE; //"http://172.16.80.20/U9C/webapi/Receivement/CreateRcvBySrcASN"; 娴嬭瘯 + public static string CreateReceivementUrl + { get; set; } = ApiConfig.IsTestServer ? Cache.SysParam["CreateReceivementUrl_Test", "U9CUrl"].PARAM_VALUE : Cache.SysParam["CreateReceivementUrl", "U9CUrl"].PARAM_VALUE; //"http://172.16.80.20/U9C/webapi/Receivement/CreateReceivement"; 娴嬭瘯 + + /// <summary> + /// 鏂板鏀惰揣鍗�-鏉ユ簮ASN鍗曟帴鍙� + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public async Task<ApiAction<CreateRcvBySrcASNInput>> CreateRcvBySrcASN(CreateRcvBySrcASNInput input) + { + Logger.Interface.Info($"/**\r\n *杩涘叆鏂板鏀惰揣鍗�-鏉ユ簮ASN鍗曟帴鍙�....\r\n */\r\n"); //鍥哄畾鍐欐硶 + var action = new ApiAction<CreateRcvBySrcASNInput>(); + try + { + if (input.IsLogin) + { + var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={input.userId}{secret}"); + if (u9CLoginResult.Success) + { + input.token = u9CLoginResult.Data; + Logger.Interface.Info($"U9C鐧诲綍token: {input.token}"); + } + } + List<CreateRcvBySrcASNParam> param = new() { + new() { + aSNToRcvTransDTOs = new(){ + new(){ + TransQty=new() { + m_amount1= input.CurRevQty, + m_uOM1 = new() { + UOMMain = "1002212260110007", + UOMMain_SKey=new(){ + ID="1002212260110007", + }, + UOMSub_SKey = new(){ + ID="1002212260110007", + } + }, + }, + ASNLineKey=input.ASNLineKey, + } + } + } + }; + var response = await HttpHelper.PostAsync(CreateRcvBySrcASNUrl, JsonConvert.SerializeObject(param), new Dictionary<string, string>() { { "token", input.token } }); + var result = JsonConvert.DeserializeObject<U9CResult2>(response.Message); + if (result != null) + { + if (result.Success && result.Data[0].IsSucess) + { + Logger.Interface.Info($"鏂板鏀惰揣鍗�-鏉ユ簮ASN鍗曟帴鍙f彁浜son: {JsonConvert.SerializeObject(param)}锛岃繑鍥濲son: {response.Message}"); + } + else + { + action.IsSuccessed = false; + action.LocaleMsg = new($"{action.Message}; {result.Data[0].ErrorMsg}"); + Logger.Interface.Info($"鏂板鏀惰揣鍗�-鏉ユ簮ASN鍗曞け璐�:{result.Data[0].ErrorMsg}"); + } + } + } + catch (System.Exception ex) + { + action.CatchExceptionWithLog(ex, "鏂板鏀惰揣鍗�-鏉ユ簮ASN鍗曞紓甯�"); + } + Logger.Interface.Info($"/* 鏂板鏀惰揣鍗�-鏉ユ簮ASN鍗曟帴鍙g粨鏉� */\r\n"); //鍥哄畾鍐欐硶 + return action; + } + + public async Task<ApiAction<CreateReceivementInput>> CreateReceivement(CreateReceivementInput input) + { + Logger.Interface.Info($"/**\r\n *杩涘叆鏂板鏀惰揣鍗�-鏃犳潵婧愭帴鍙�....\r\n */\r\n"); //鍥哄畾鍐欐硶 + var action = new ApiAction<CreateReceivementInput>(); + try + { + if (input.IsLogin) + { + var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode={input.userId}{secret}"); + if (u9CLoginResult.Success) + { + input.token = u9CLoginResult.Data; + Logger.Interface.Info($"U9C鐧诲綍token: {input.token}"); + } + } + CreateReceivementParam param = new() + { + rcvDTO = new() + { + BusinessDate = DateTime.Now, + Supplier = new() { m_code = "C.9999" }, + RcvDocType = new() { m_code = "RCV01" }, + RcvLines= new() { + + }, + IsRcvByChangeable =true, + IsPriceListChangeable = true, + IsConfirmTermChangeable = true, + IsPaymentTermChangeable = true, + IsLineApprove= true, + }, + OtherID = "WMS" + }; + var response = await HttpHelper.PostAsync(CreateReceivementUrl, JsonConvert.SerializeObject(param), new Dictionary<string, string>() { { "token", input.token } }); + var result = JsonConvert.DeserializeObject<U9CResult2>(response.Message); + if (result != null) + { + if (result.Success && result.Data[0].IsSucess) + { + Logger.Interface.Info($"鏂板鏀惰揣鍗�-鏃犳潵婧愭帴鍙f彁浜son: {JsonConvert.SerializeObject(param)}锛岃繑鍥濲son: {response.Message}"); + } + else + { + action.IsSuccessed = false; + action.LocaleMsg = new($"{action.Message}; {result.Data[0].ErrorMsg}"); + Logger.Interface.Info($"鏂板鏀惰揣-鍗曟棤鏉ユ簮澶辫触:{result.Data[0].ErrorMsg}"); + } + } + } + catch (System.Exception ex) + { + action.CatchExceptionWithLog(ex, "鏂板鏀惰揣鍗�-鏃犳潵婧愬紓甯�"); + } + Logger.Interface.Info($"/* 鏂板鏀惰揣鍗�-鏃犳潵婧愭帴鍙g粨鏉� */\r\n"); //鍥哄畾鍐欐硶 + return action; + } + } +} diff --git a/Tiger.Business/Services/Base/InterfaceServiceNew.cs b/Tiger.Business/Services/Base/InterfaceServiceNew.cs index 527f07a..d67e481 100644 --- a/Tiger.Business/Services/Base/InterfaceServiceNew.cs +++ b/Tiger.Business/Services/Base/InterfaceServiceNew.cs @@ -291,6 +291,7 @@ trig = Biz.Db.Queryable<TSK_TRIG>().Where(q => q.JobId == job.ID).First(); trig.Status = TSK_TRIG.Statuss.Running.GetValue(); trig.StartTime = DateTime.Now; + trig.NextRunTime = schedule.NextRun; listTrig.Add(trig); } } diff --git a/Tiger.IBusiness.WMS/iERP/IWMS_U9C.cs b/Tiger.IBusiness.WMS/iERP/IWMS_U9C.cs new file mode 100644 index 0000000..497c16a --- /dev/null +++ b/Tiger.IBusiness.WMS/iERP/IWMS_U9C.cs @@ -0,0 +1,17 @@ +锘縰sing Rhea.Common; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tiger.Model; +using Tiger.Model.Entitys.MES.U9C; + +namespace Tiger.IBusiness +{ + public interface IWMS_U9C + { + public Task<ApiAction<CreateRcvBySrcASNInput>> CreateRcvBySrcASN(CreateRcvBySrcASNInput input); + } +} diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs index 2098cf9..20d8787 100644 --- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs +++ b/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs @@ -16,6 +16,10 @@ { public List<U9CReturnData> Data { get; set; } } + public class U9CResult2 : U9CBaseResult + { + public List<U9CReturnData2> Data { get; set; } + } public class U9CLoginResult : U9CBaseResult { @@ -32,7 +36,24 @@ public string m_errorMsg { get; set; } public string m_datas { get; set; } } + public class U9CReturnData2 + { + public string U9CVersion { get; set; } + public bool IsSucess { get; set; } + public string OtherID { get; set; } + public string ID { get; set; } + public string Code { get; set; } + public string ErrorMsg { get; set; } + } + public class U9CBaseInput + { + public string userId { get; set; } + public string token { get; set; } + public bool IsLogin { get; set; } + } + + #region 鍏ュ簱鍗曟帴鍙� /// <summary> /// 鍏ュ簱鍗曟帴鍙d紶鍏ュ弬鏁� /// </summary> @@ -97,13 +118,10 @@ public int DocState { get; set; } = 1; } - public class BarcodeCreateInput + public class BarcodeCreateInput: U9CBaseInput { public string RevDocId { get; set; } public string RevDocLineId { get; set; } - public string userId { get; set; } - public string token { get; set; } - public bool IsLogin { get; set; } } public class BarcodeCreateParam @@ -120,7 +138,9 @@ public string ID { get; set; } public string EntityType { get; set; } } + #endregion + #region 鍗婃垚鍝佹潯鐮佺敓鎴� public class BarcodeCreateByAssignQtyInput: BarcodeCreateInput { /// <summary> @@ -182,4 +202,124 @@ { public string PrivateDescSeg1 { get; set; } } + #endregion + + #region 鏂板鏀惰揣鍗曟帴鍙� + public class CreateRcvBySrcASNParam + { + public List<ASNToRcvTransDTO> aSNToRcvTransDTOs { get; set; } + public string OtherID { get; set; } = "WMS"; + } + + public class ASNToRcvTransDTO { + public TransQty TransQty { get; set; } + public string ASNLineKey { get; set; } + } + + public class TransQty + { + public string m_amount1 { get; set; } + public m_uOM1 m_uOM1 { get; set; } + } + + public class m_uOM1 + { + public UOMMain_SKey UOMMain_SKey { get; set; } + public string UOMMain { get; set; } + public UOMSub_SKey UOMSub_SKey { get; set; } + } + + public class UOMMain_SKey + { + public string ID { get; set; } + } + + public class UOMSub_SKey + { + public string ID { get; set; } + } + + /// <summary> + /// 鏂板鏀惰揣鍗曟帴鍙�-浼犲叆鍙傛暟 + /// </summary> + public class CreateRcvBySrcASNInput: U9CBaseInput + { + /// <summary> + /// 褰撳墠鏀惰揣鏁伴噺 - m_amount1 + /// </summary> + public string CurRevQty { get; set; } + /// <summary> + /// ASN鍗曡ID + /// </summary> + public string ASNLineKey { get; set; } + } + + #region 鏃犳潵婧� + public class CreateReceivementParam + { + public RcvDTO rcvDTO { get; set; } + public string OtherID { get; set; } = "WMS"; + } + + public class CreateReceivementInput : U9CBaseInput + { + + } + + public class RcvDTO { + public DateTime BusinessDate { get; set; } + public Supplier Supplier { get; set; } + public RcvDocType RcvDocType { get; set; } + public List<RcvLine> RcvLines { get; set; } + public bool IsRcvByChangeable { get; set; } + public bool IsPriceListChangeable { get; set; } + public bool IsConfirmTermChangeable { get; set; } + public bool IsPaymentTermChangeable { get; set; } + public bool IsLineApprove { get; set; } + } + public class Supplier { + public string m_code { get; set; } + } + public class RcvDocType + { + public string m_code { get; set; } + } + public class RcvLine + { + public bool IsPresent { get; set; } + public ItemInfo ItemInfo { get; set; } + public Wh2 Wh { get; set; } + public List<RcvLineLocation> RcvLineLocations { get; set; } + public double ArriveQtyTU { get; set; } + public double ArriveQtyPU { get; set; } + public double RcvQtyTU { get; set; } + public double RcvQtyPU { get; set; } + public double EyeballingQtyTU { get; set; } + public double RcvProcedure { get; set; } + public double StorageType { get; set; } + public string RcvLotCode { get; set; } + public string InvLotCode { get; set; } + } + + public class ItemInfo + { + public string m_itemCode { get; set; } + } + public class Wh2 + { + public string m_code { get; set; } + } + public class Location + { + public string m_code { get; set; } + } + + public class RcvLineLocation + { + public Location Location { get; set; } + public double LocationQtyTU { get; set; } + } + #endregion + + #endregion } -- Gitblit v1.9.3