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