From 9b0d356ba4c4a02180ddad85bd38312fc7dc404b Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期二, 29 十月 2024 19:57:42 +0800
Subject: [PATCH] Merge branch 'master' of http://47.115.28.255:8110/r/TigerClouds-Tech/Server/TigerApi6_2024

---
 Tiger.Business.MES/iERP/U9C_MES.cs                             |    8 +
 Tiger.IBusiness/Service/IInterfaceService.cs                   |    1 
 Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs                   |   15 +
 Tiger.Business/Services/Base/InterfaceService.cs               |    5 
 Tiger.Controllers.MES/Controllers/MESController.MES_U9C.cs     |   38 +++++
 Tiger.Model.Net/Tiger.Model.Net.csproj                         |    1 
 Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustSn.cs               |   13 +
 Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustomer.cs             |   15 +
 Tiger.Business.MES/Task/Jobs.U9C_ME_GetSupplier.cs             |   13 +
 Tiger.Business.MES/iERP/MES_U9C.cs                             |  102 ++++++++++++++
 Tiger.Business/Services/Base/TigerJobBase.cs                   |   14 +-
 Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs    |   84 ++++++++++++
 Tiger.Business/Services/Base/InterfaceServiceNew.cs            |   41 +++++
 Tiger.Controllers.System/Controllers/TSK/TskController.Base.cs |   21 +++
 Tiger.IBusiness.MES/iERP/IMES_U9C.cs                           |   17 ++
 Tiger.Business.MES/Task/Jobs.U9C_ME_GetItem.cs                 |   13 +
 16 files changed, 372 insertions(+), 29 deletions(-)

diff --git a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustSn.cs b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustSn.cs
index 0458c8f..843bef0 100644
--- a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustSn.cs
+++ b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustSn.cs
@@ -30,11 +30,13 @@
 
         public void Execute()
         {
-            Logger.Scheduler.Info($"杩涘叆璁″垝璋冨害(鍚嶇О:{Name})...\r\n");
+            #region 鍥哄畾鍐欐硶
+            Logger.Scheduler.Info($"/**\r\n *杩涘叆璁″垝璋冨害(鍚嶇О: {Name} )....\r\n */\r\n"); //鍥哄畾鍐欐硶
+            Schedule = JobManager.GetSchedule(Name); //鍥哄畾鍐欐硶
+            StartTime = DateTime.Now; //鍥哄畾鍐欐硶
+            #endregion
             try
             {
-                Schedule = JobManager.GetSchedule(Name);
-                StartTime = DateTime.Now;
                 string msg = "";
                 string status = "Successed";
                 GetJob(typeof(U9C_ME_GetCustSn).Name);
@@ -51,7 +53,9 @@
                     else
                     {
                         msg = $"浠嶶9C鑾峰彇瀹㈡埛鏉$爜淇℃伅鎴愬姛:{result.Message}";
-                        Trig.LastRunTime = (tskJobInput.input.endTime.ToDateTime() - DateTime.Now).TotalMinutes > 0 ? Trig.LastRunTime : tskJobInput.input.endTime.ToDateTime();
+                        //鍥哄畾鍐欐硶
+                        Trig.LastRunTime = tskJobInput.input.endTime.ToDateTime();
+                        Trig.NextRunTime = Schedule.NextRun;
                     }
                 }
                 SaveFluentSchedulerLog(status, $"{msg}");
@@ -62,6 +66,7 @@
                 Logger.Scheduler.Fatal(ex, "鑾峰彇瀹㈡埛鏉$爜淇℃伅寮傚父");
                 SaveFluentSchedulerLog("Failed", ex.Message);
             }
+            Logger.Scheduler.Info($"/* 璁″垝璋冨害(鍚嶇О:{Name})缁撴潫 */\r\n"); //鍥哄畾鍐欐硶
         }
     }
 }
diff --git a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustomer.cs b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustomer.cs
index 5aeef52..f9c9a72 100644
--- a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustomer.cs
+++ b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetCustomer.cs
@@ -30,11 +30,13 @@
 
         public void Execute()
         {
-            Logger.Scheduler.Info($"杩涘叆璁″垝璋冨害(鍚嶇О:{Name})...\r\n");
+            #region 鍥哄畾鍐欐硶
+            Logger.Scheduler.Info($"/**\r\n *杩涘叆璁″垝璋冨害(鍚嶇О: {Name} )....\r\n */\r\n"); //鍥哄畾鍐欐硶
+            Schedule = JobManager.GetSchedule(Name); //鍥哄畾鍐欐硶
+            StartTime = DateTime.Now; //鍥哄畾鍐欐硶
+            #endregion
             try
             {
-                Schedule = JobManager.GetSchedule(Name);
-                StartTime = DateTime.Now;
                 string msg = "";
                 string status = "Successed";
                 GetJob(typeof(U9C_MES_GetCustomer).Name);
@@ -51,17 +53,20 @@
                     else
                     {
                         msg = $"浠嶶9C鑾峰彇瀹㈡埛淇℃伅鎴愬姛:{result.Message}";
-                        Trig.LastRunTime = (tskJobInput.input.endTime.ToDateTime() - DateTime.Now).TotalMinutes > 0 ? Trig.LastRunTime : tskJobInput.input.endTime.ToDateTime();
+                        //鍥哄畾鍐欐硶
+                        Trig.LastRunTime = tskJobInput.input.endTime.ToDateTime();
+                        Trig.NextRunTime = Schedule.NextRun;
                     }
                 }
                 SaveFluentSchedulerLog(status, $"{msg}");
-                Logger.Scheduler.Info($"璁″垝璋冨害(鍚嶇О:{Name})瀹屾垚锛岃繑鍥炰俊鎭�:{msg}\r\n");
+                Logger.Scheduler.Info($"璁″垝璋冨害(鍚嶇О:{Name})瀹屾垚锛岃繑鍥炰俊鎭�:{msg}\r\n"); 
             }
             catch (System.Exception ex)
             {
                 Logger.Scheduler.Fatal(ex, "鑾峰彇瀹㈡埛淇℃伅寮傚父");
                 SaveFluentSchedulerLog("Failed", ex.Message);
             }
+            Logger.Scheduler.Info($"/* 璁″垝璋冨害(鍚嶇О:{Name})缁撴潫 */\r\n"); //鍥哄畾鍐欐硶
         }
     }
 }
diff --git a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetItem.cs b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetItem.cs
index d6e6081..f9019d4 100644
--- a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetItem.cs
+++ b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetItem.cs
@@ -31,11 +31,13 @@
 
         public void Execute()
         {
-            Logger.Scheduler.Info($"杩涘叆璁″垝璋冨害(鍚嶇О:{Name})...\r\n");
+            #region 鍥哄畾鍐欐硶
+            Logger.Scheduler.Info($"/**\r\n *杩涘叆璁″垝璋冨害(鍚嶇О: {Name} )....\r\n */\r\n"); //鍥哄畾鍐欐硶
+            Schedule = JobManager.GetSchedule(Name); //鍥哄畾鍐欐硶
+            StartTime = DateTime.Now; //鍥哄畾鍐欐硶
+            #endregion
             try
             {
-                Schedule = JobManager.GetSchedule(Name);
-                StartTime = DateTime.Now;
                 string msg = "";
                 string status = "Successed";
                 GetJob(typeof(U9C_MES_GetItem).Name);
@@ -52,7 +54,9 @@
                     else
                     {
                         msg = $"浠嶶9C鑾峰彇鐗╂枡淇℃伅鎴愬姛:{result.Message}";
-                        Trig.LastRunTime = (tskJobInput.input.endTime.ToDateTime() - DateTime.Now).TotalMinutes > 0 ? Trig.LastRunTime : tskJobInput.input.endTime.ToDateTime();
+                        //鍥哄畾鍐欐硶
+                        Trig.LastRunTime = tskJobInput.input.endTime.ToDateTime();
+                        Trig.NextRunTime = Schedule.NextRun;
                     }
                 }
                 SaveFluentSchedulerLog(status, $"{msg}");
@@ -63,6 +67,7 @@
                 Logger.Scheduler.Fatal(ex, "鑾峰彇鐗╂枡淇℃伅寮傚父");
                 SaveFluentSchedulerLog("Failed", ex.Message);
             }
+            Logger.Scheduler.Info($"/* 璁″垝璋冨害(鍚嶇О:{Name})缁撴潫 */\r\n"); //鍥哄畾鍐欐硶
         }
     }
 }
diff --git a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetSupplier.cs b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetSupplier.cs
index 5619878..d5a5f65 100644
--- a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetSupplier.cs
+++ b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetSupplier.cs
@@ -32,11 +32,13 @@
 
         public void Execute()
         {
-            Logger.Scheduler.Info($"杩涘叆璁″垝璋冨害(鍚嶇О:{Name})...\r\n");
+            #region 鍥哄畾鍐欐硶
+            Logger.Scheduler.Info($"/**\r\n *杩涘叆璁″垝璋冨害(鍚嶇О: {Name} )....\r\n */\r\n"); //鍥哄畾鍐欐硶
+            Schedule = JobManager.GetSchedule(Name); //鍥哄畾鍐欐硶
+            StartTime = DateTime.Now; //鍥哄畾鍐欐硶
+            #endregion
             try
             {
-                Schedule = JobManager.GetSchedule(Name);
-                StartTime = DateTime.Now;
                 string msg = "";
                 string status = "Successed";
                 GetJob(typeof(U9C_ME_GetSupplier).Name);
@@ -53,7 +55,9 @@
                     else
                     {
                         msg = $"浠嶶9C鑾峰彇渚涘簲鍟嗕俊鎭垚鍔�:{result.Message}";
-                        Trig.LastRunTime = (tskJobInput.input.endTime.ToDateTime() - DateTime.Now).TotalMinutes > 0 ? Trig.LastRunTime : tskJobInput.input.endTime.ToDateTime();
+                        //鍥哄畾鍐欐硶
+                        Trig.LastRunTime = tskJobInput.input.endTime.ToDateTime();
+                        Trig.NextRunTime = Schedule.NextRun;
                     }
                 }
                 SaveFluentSchedulerLog(status, $"{msg}");
@@ -64,6 +68,7 @@
                 Logger.Scheduler.Fatal(ex, "鑾峰彇渚涘簲鍟嗕俊鎭紓甯�");
                 SaveFluentSchedulerLog("Failed", ex.Message);
             }
+            Logger.Scheduler.Info($"/* 璁″垝璋冨害(鍚嶇О:{Name})缁撴潫 */\r\n"); //鍥哄畾鍐欐硶
         }
     }
 }
diff --git a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs
index 0188002..f684dce 100644
--- a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs
+++ b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs
@@ -80,11 +80,13 @@
 
         public void Execute()
         {
-            Logger.Scheduler.Info($"杩涘叆璁″垝璋冨害(鍚嶇О:{Name})...\r\n");
+            #region 鍥哄畾鍐欐硶
+            Logger.Scheduler.Info($"/**\r\n *杩涘叆璁″垝璋冨害(鍚嶇О: {Name} )....\r\n */\r\n"); //鍥哄畾鍐欐硶
+            Schedule = JobManager.GetSchedule(Name); //鍥哄畾鍐欐硶
+            StartTime = DateTime.Now; //鍥哄畾鍐欐硶
+            #endregion
             try
             {
-                Schedule = JobManager.GetSchedule(Name);
-                StartTime = DateTime.Now;
                 string msg = "";
                 string status = "Successed";
                 GetJob(typeof(fU9C_MES_GetWo).Name);
@@ -101,17 +103,20 @@
                     else
                     {
                         msg = $"浠嶶9C鑾峰彇宸ュ崟淇℃伅鎴愬姛:{result.Message}";
-                        Trig.LastRunTime = (tskJobInput.input.endTime.ToDateTime() - DateTime.Now).TotalMinutes > 0 ? Trig.LastRunTime : tskJobInput.input.endTime.ToDateTime();
+                        //鍥哄畾鍐欐硶
+                        Trig.LastRunTime = tskJobInput.input.endTime.ToDateTime();
+                        Trig.NextRunTime = Schedule.NextRun;
                     }
                 }
                 SaveFluentSchedulerLog(status, $"{msg}");
-                Logger.Scheduler.Info($"璁″垝璋冨害(鍚嶇О:{Name})瀹屾垚锛岃繑鍥炰俊鎭�:{msg}\r\n");
+                Logger.Scheduler.Info($"璁″垝璋冨害(鍚嶇О: {Name} )瀹屾垚锛岃繑鍥炰俊鎭�: {msg} \r\n");
             }
             catch (System.Exception ex)
             {
                 Logger.Scheduler.Fatal(ex, "鑾峰彇宸ュ崟淇℃伅寮傚父");
                 SaveFluentSchedulerLog("Failed", ex.Message);
             }
+            Logger.Scheduler.Info($"/* 璁″垝璋冨害(鍚嶇О:{Name})缁撴潫 */\r\n"); //鍥哄畾鍐欐硶
         }
     }//endClass
 
diff --git a/Tiger.Business.MES/iERP/MES_U9C.cs b/Tiger.Business.MES/iERP/MES_U9C.cs
new file mode 100644
index 0000000..9635204
--- /dev/null
+++ b/Tiger.Business.MES/iERP/MES_U9C.cs
@@ -0,0 +1,102 @@
+锘縰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.MES
+{
+    public partial class MES_U9C : IMES_U9C
+    {
+        public static string U9CAuthLoginUrl { get; set; } = "http://172.16.80.20/U9C/webapi/OAuth2/AuthLogin?";
+        public static string secret = "&entcode=02&orgcode=101&clientid=mes&clientsecret=12c8ee7e9bb74ad2a6a0fb3315c8af20";
+        public static string RcvRptDocCreateUrl
+        { get; set; } = "http://172.16.80.20/u9C/webapi/RcvRptDoc/Create";
+
+        /// <summary>
+        /// 鍏ュ簱鍗曟帴鍙�
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        public async Task<ApiAction> RcvRptDocCreate(RcvRptDocCreateInput input)
+        {
+            Logger.Interface.Info($"/**\r\n *杩涘叆鍏ュ簱鍗曟帴鍙�....\r\n */\r\n"); //鍥哄畾鍐欐硶
+            var action = new ApiAction();
+            try
+            {
+                List<RcvRptDocCreateParam> param = new List<RcvRptDocCreateParam>();
+                param.Add(new RcvRptDocCreateParam
+                {
+                    CompleteList = new List<CompleteList> { new CompleteList
+                    {
+                        MOKey = new MOKey { DocNo = input.WorkOrder },
+                        Wh = new Wh { Code = input.WhCode },
+                        DescFlexField = new DescFlexField { PrivateDescSeg1 = input.PkgQty.ToString() },
+                        Item = new Item { Code = input.ItemCode },
+                        CompleteQty = input.CompleteQty,
+                        OutputType = input.OutputType,
+                        StorageType = input.StorageType,
+                        DocState = input.DocState,
+                    } }
+                });
+
+                var u9CLoginResult = await HttpHelper.GetAsync<U9CLoginResult>($"{U9CAuthLoginUrl}userCode=admin{secret}");
+                if (u9CLoginResult.Success)
+                {
+                    var token = u9CLoginResult.Data;
+                    Logger.Interface.Info($"U9C鐧诲綍token: {token}");
+                    var response = await HttpHelper.PostAsync(RcvRptDocCreateUrl, JsonConvert.SerializeObject(param), new Dictionary<string, string>() { { "token", token } });
+                    var result = JsonConvert.DeserializeObject<U9CResult>(response.Message);
+                    if (result != null)
+                    {
+                        if (result.Success)
+                        {
+                            Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曟帴鍙f彁浜son: {JsonConvert.SerializeObject(param)}锛岃繑鍥濲son: {response.Message}");
+                            var db = Biz.Db;
+                            var dbTran = db.UseTran(() =>
+                            {
+
+                            });
+                            if (!dbTran.IsSuccess)
+                            {
+                                action.CatchExceptionWithLog(dbTran.ErrorException, $"鏁版嵁澶勭悊澶辫触");
+                                Logger.Interface.Error(action.Message);
+                            }
+                            Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曟垚鍔�");
+                        }
+                        else
+                        {
+                            action.IsSuccessed = false;
+                            action.LocaleMsg = new($"{result.Data[0].m_errorMsg}");
+                            Logger.Interface.Info($"鐢熸垚鍏ュ簱鍗曞け璐�:{result.Data[0].m_errorMsg}");
+                        }
+                    }
+                }
+            }
+            catch (System.Exception ex)
+            {
+                action.CatchExceptionWithLog(ex, "鐢熸垚鍏ュ簱鍗曞紓甯�");
+            }
+            Logger.Interface.Info($"/* 鍏ュ簱鍗曟帴鍙g粨鏉� */\r\n"); //鍥哄畾鍐欐硶
+            return action;
+        }
+    }
+}
diff --git a/Tiger.Business.MES/iERP/U9C_MES.cs b/Tiger.Business.MES/iERP/U9C_MES.cs
index ba786d4..7f56288 100644
--- a/Tiger.Business.MES/iERP/U9C_MES.cs
+++ b/Tiger.Business.MES/iERP/U9C_MES.cs
@@ -84,6 +84,7 @@
                 }
             }
             Logger.Scheduler.Info($"鐗╂枡淇℃伅瀛樺叆瀹炰綋涓紝鎬绘暟锛歔{items.Count}]");
+            db = Biz.Db;
             var dbTran = db.UseTran(() =>
             {
                 if (items.Any())
@@ -136,6 +137,7 @@
                 Logger.Scheduler.Error(action.Message);
             }
             Logger.Scheduler.Info($"鐗╂枡淇℃伅瀛樺叆鏁版嵁搴擄紝鎬绘暟锛歔{items.Count}]");
+            action.Message = $"鐗╂枡淇℃伅瀛樺叆鏁版嵁搴擄紝鎬绘暟锛歔{items.Count}]";
             return action;
         }
 
@@ -340,6 +342,7 @@
                 }
             }
             Logger.Scheduler.Info($"瀹㈡埛淇℃伅瀛樺叆瀹炰綋涓紝鎬绘暟锛歔{items.Count}]");
+            db = Biz.Db;
             var dbTran = db.UseTran(() =>
                 {
                     if (items.Any())
@@ -372,6 +375,7 @@
                 Logger.Scheduler.Error(action.Message);
             }
             Logger.Scheduler.Info($"瀹㈡埛淇℃伅瀛樺叆鏁版嵁搴擄紝鎬绘暟锛歔{items.Count}]");
+            action.Message = $"瀹㈡埛淇℃伅瀛樺叆鏁版嵁搴擄紝鎬绘暟锛歔{items.Count}]";
             return action;
         }
 
@@ -412,6 +416,7 @@
                 }
             }
             Logger.Scheduler.Info($"渚涘簲鍟嗕俊鎭瓨鍏ュ疄浣撲腑锛屾�绘暟锛歔{items.Count}]");
+            db = Biz.Db;
             var dbTran = db.UseTran(() =>
             {
                 if (items.Any())
@@ -444,6 +449,7 @@
                 Logger.Scheduler.Error(action.Message);
             }
             Logger.Scheduler.Info($"渚涘簲鍟嗕俊鎭瓨鍏ユ暟鎹簱锛屾�绘暟锛歔{items.Count}]");
+            action.Message = $"渚涘簲鍟嗕俊鎭瓨鍏ユ暟鎹簱锛屾�绘暟锛歔{items.Count}]";
             return action;
         }
 
@@ -489,6 +495,7 @@
                 }
             }
             Logger.Scheduler.Info($"瀹㈡埛鏉$爜淇℃伅瀛樺叆瀹炰綋涓紝鎬绘暟锛歔{items.Count}]");
+            db = Biz.Db;
             var dbTran = db.UseTran(() =>
             {
                 if (items.Any())
@@ -521,6 +528,7 @@
                 Logger.Scheduler.Error(action.Message);
             }
             Logger.Scheduler.Info($"瀹㈡埛鏉$爜淇℃伅瀛樺叆鏁版嵁搴擄紝鎬绘暟锛歔{items.Count}]");
+            action.Message = $"瀹㈡埛鏉$爜淇℃伅瀛樺叆鏁版嵁搴擄紝鎬绘暟锛歔{items.Count}]";
             return action;
         }
 
diff --git a/Tiger.Business/Services/Base/InterfaceService.cs b/Tiger.Business/Services/Base/InterfaceService.cs
index 0dfcd20..b904103 100644
--- a/Tiger.Business/Services/Base/InterfaceService.cs
+++ b/Tiger.Business/Services/Base/InterfaceService.cs
@@ -185,5 +185,10 @@
         {
             throw new NotImplementedException();
         }
+
+        ApiAction IInterfaceService.ImmediateRun<TJob>(TJob newEntity, string jobname)
+        {
+            throw new NotImplementedException();
+        }
     }
 }
diff --git a/Tiger.Business/Services/Base/InterfaceServiceNew.cs b/Tiger.Business/Services/Base/InterfaceServiceNew.cs
index 5b362a3..bec31f0 100644
--- a/Tiger.Business/Services/Base/InterfaceServiceNew.cs
+++ b/Tiger.Business/Services/Base/InterfaceServiceNew.cs
@@ -541,6 +541,47 @@
         }
 
         /// <summary>
+        /// 绔嬪嵆杩愯
+        /// </summary>
+        /// <param name="jobname"></param>
+        public ApiAction ImmediateRun<TJob>(TJob newEntity, string jobname) where TJob : class, ITJob
+        {
+            ApiAction apiAction = new();
+            try
+            {
+                if (JobManager.AllSchedules.Any(q => q.Name == jobname))
+                {
+                    JobManager.RemoveJob(jobname);
+                    string guid = Guid.NewGuid().ToString("N");
+                    TSK_JOB job = Biz.Db.Queryable<TSK_JOB>().Where(x => x.JobName == jobname).IncludesAllFirstLayer().First();
+                    var trigger = job.Triggers[0];
+                    TrigArgs args = JsonConvert.DeserializeObject<TrigArgs>(job.Triggers[0].Args);
+                    args.runType = RunType.ToRunNow;
+                    JobManager.AddJob<TJob>((s) => GenerateSchedule(args, s.WithName(jobname)));
+                    trigger.Status = TSK_TRIG.Statuss.Running.GetValue();
+                    trigger.Args = JsonConvert.SerializeObject(args);
+
+                    var db = Biz.Db;
+                    //淇濆瓨鍒版暟鎹簱
+                    var dbTran = db.UseTran(() =>
+                    {
+                        db.Updateable(trigger, "system_ImmediateRun_job").UpdateColumns(q => new { q.Status, q.Args, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand();
+                    });
+                    if (!dbTran.IsSuccess)
+                    {
+                        Logger.Scheduler.Fatal(dbTran.ErrorException, $"绔嬪嵆杩愯宸ヤ綔浠诲姟鏃朵繚瀛樼姸鎬佸埌鏁版嵁搴撳紓甯�");
+                    }
+                    apiAction.LocaleMsg = new($"绔嬪嵆杩愯宸ヤ綔浠诲姟鎴愬姛");
+                }
+            }
+            catch (System.Exception ex)
+            {
+                apiAction.CatchExceptionWithLog(ex);
+            }
+            return apiAction;
+        }
+
+        /// <summary>
         /// 鍋滄鏈嶅姟
         /// </summary>
         public void Stop()
diff --git a/Tiger.Business/Services/Base/TigerJobBase.cs b/Tiger.Business/Services/Base/TigerJobBase.cs
index af7a6f8..f2fc093 100644
--- a/Tiger.Business/Services/Base/TigerJobBase.cs
+++ b/Tiger.Business/Services/Base/TigerJobBase.cs
@@ -14,10 +14,10 @@
     /// </summary>
     public class TigerJobBase
     {
-        public static Schedule Schedule;
-        public static TSK_JOB Job = new TSK_JOB();
-        public static TSK_TRIG Trig = new TSK_TRIG();
-        public static TrigArgs Args = new TrigArgs();
+        public Schedule Schedule;
+        public TSK_JOB Job = new TSK_JOB();
+        public TSK_TRIG Trig = new TSK_TRIG();
+        public TrigArgs Args = new TrigArgs();
         /// <summary>
         /// 寮�濮嬫椂闂�
         /// </summary>
@@ -63,7 +63,7 @@
         /// <param name="JobName"></param>
         /// <param name="remark"></param>
         /// <returns></returns>
-        public static ApiAction SaveFluentSchedulerLog(string status, string remark)
+        public ApiAction SaveFluentSchedulerLog(string status, string remark)
         {
             ApiAction action = new ApiAction();
             if (Trig != null)
@@ -110,7 +110,7 @@
         /// <summary>
         /// 鑾峰彇浠诲姟
         /// </summary>
-        public static void GetJob(string jobType)
+        public void GetJob(string jobType)
         {
             Job = Biz.Db.Queryable<TSK_JOB>().Where(q => q.JobType == jobType).IncludesAllFirstLayer().First();
             Args = JsonConvert.DeserializeObject<TrigArgs>(Job.Triggers[0].Args);
@@ -121,7 +121,7 @@
         /// 鍒ゆ柇鏃堕棿锛岃繑鍥炴槸鍚﹀彲浠ョ户缁伐浣滀换鍔�
         /// </summary>
         /// <returns></returns>
-        public static TskJobInput CheckIFCanGo()
+        public TskJobInput CheckIFCanGo()
         {
             TskJobInput tskJobInput = new TskJobInput();
             var dateTime = DateTime.Now;
diff --git a/Tiger.Controllers.MES/Controllers/MESController.MES_U9C.cs b/Tiger.Controllers.MES/Controllers/MESController.MES_U9C.cs
new file mode 100644
index 0000000..016f505
--- /dev/null
+++ b/Tiger.Controllers.MES/Controllers/MESController.MES_U9C.cs
@@ -0,0 +1,38 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using Rhea.Common;
+using SqlSugar;
+using System.Threading.Tasks;
+using Tiger.IBusiness;
+using Tiger.Model;
+using Tiger.Model.Entitys.MES.BizMesWo;
+using Tiger.Model.Entitys.MES.BizMesWoBatch;
+using Tiger.Api.iBiz;
+using Tiger.Model.Entitys.MES.U9C;
+
+namespace Tiger.Api.Controllers.MES
+{
+    public partial class MESController : ControllerBase
+    {
+
+        /// <summary>
+        /// 鍏ュ簱鍗曟帴鍙�
+        /// </summary>
+        /// <param name="action"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("api/[controller]/[action]")]
+        public async Task<IActionResult> RcvRptDocCreate([FromBody] ApiAction<RcvRptDocCreateInput> action)
+        {
+            ApiAction response = new();
+            try
+            {
+                response = response.GetResponse(await DI.Resolve<IMES_U9C>().RcvRptDocCreate(action.Data));
+            }
+            catch (System.Exception ex)
+            {
+                response = response.GetResponse().CatchExceptionWithLog(ex);
+            }
+            return Ok(response);
+        }
+    }
+}
diff --git a/Tiger.Controllers.System/Controllers/TSK/TskController.Base.cs b/Tiger.Controllers.System/Controllers/TSK/TskController.Base.cs
index 358e6d6..889ee9a 100644
--- a/Tiger.Controllers.System/Controllers/TSK/TskController.Base.cs
+++ b/Tiger.Controllers.System/Controllers/TSK/TskController.Base.cs
@@ -194,6 +194,27 @@
         }
 
         /// <summary>
+        /// 绔嬪嵆杩愯浠诲姟
+        /// </summary>
+        /// <param name="action"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("api/[controller]/[action]")]
+        public async Task<IActionResult> ImmediateRun(ApiAction action)
+        {
+            ApiAction response = new();
+            try
+            {
+                response = response.GetResponse(DI.Resolve<IBizContext>().GetInterfaceService()?.ImmediateRun(action.NewDataEntity(), action.Data?.ToString()) ?? new ApiAction($"浠诲姟鏈惎鐢�", false));
+            }
+            catch (System.Exception ex)
+            {
+                response = response.GetResponse().CatchExceptionWithLog(ex);
+            }
+            return Ok(response);
+        }
+
+        /// <summary>
         /// 鍒犻櫎浣滀笟
         /// </summary>
         /// <param name="action"></param>
diff --git a/Tiger.IBusiness.MES/iERP/IMES_U9C.cs b/Tiger.IBusiness.MES/iERP/IMES_U9C.cs
new file mode 100644
index 0000000..03c4ef2
--- /dev/null
+++ b/Tiger.IBusiness.MES/iERP/IMES_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 IMES_U9C
+    {
+        public Task<ApiAction> RcvRptDocCreate(RcvRptDocCreateInput input);
+    }
+}
diff --git a/Tiger.IBusiness/Service/IInterfaceService.cs b/Tiger.IBusiness/Service/IInterfaceService.cs
index 52e71df..cb0a794 100644
--- a/Tiger.IBusiness/Service/IInterfaceService.cs
+++ b/Tiger.IBusiness/Service/IInterfaceService.cs
@@ -15,6 +15,7 @@
         public void SetSchedulerFactory(Sundial.ISchedulerFactory schedulerFactory);
         public ApiAction AddJob<TJob>(TJob newEntity, TskJobParam jobParam) where TJob : class, Sundial.IJob;
         public ApiAction AddTskJob<TJob>(TJob newEntity, FluentJobParam jobParam) where TJob : class, ITJob;
+        public ApiAction ImmediateRun<TJob>(TJob newEntity, string jobname) where TJob : class, ITJob;
         public ApiAction AddJob<TJob>(string jobname, params Sundial.TriggerBuilder[] triggerBuilders) where TJob : class, Sundial.IJob;
         public ApiAction UpdateJob(TSK_JOB job);
         public void StartAllJob();
diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs
new file mode 100644
index 0000000..20fecd6
--- /dev/null
+++ b/Tiger.Model.Net/Entitys/MES/ParameterEntity/U9CParameter.cs
@@ -0,0 +1,84 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tiger.Model.Entitys.MES.U9C
+{
+    public class U9CBaseResult
+    {
+        public int ResCode { get; set; }
+        public bool Success { get; set; }
+        public string ResMsg { get; set; }
+    }
+    public class U9CResult : U9CBaseResult
+    {
+        public List<U9CReturnData> Data { get; set; }
+    }
+
+    public class U9CLoginResult : U9CBaseResult
+    {
+        public string Data { get; set; }
+    }
+
+    public class U9CReturnData
+    {
+        public string u9c_version { get; set; }
+        public bool m_isSucess { get; set; }
+        public string m_otherID { get; set; }
+        public string m_iD { get; set; }
+        public string m_code { get; set; }
+        public string m_errorMsg { get; set; }
+        public string m_datas { get; set; }
+    }
+
+    /// <summary>
+    /// 鍏ュ簱鍗曟帴鍙d紶鍏ュ弬鏁�
+    /// </summary>
+    public class RcvRptDocCreateInput
+    {
+        public string WorkOrder { get; set; }
+        public string ItemCode { get; set; }
+        public string WhCode { get; set; } = "10105";
+        public int PkgQty { get; set; }
+        public int CompleteQty { get; set; }
+        public int OutputType { get; set; } = 0;
+        public int StorageType { get; set; } = 4;
+        public int DocState { get; set; } = 1;
+    }
+
+    public class RcvRptDocCreateParam
+    {
+       public List<CompleteList> CompleteList { get; set; }
+    }
+
+    public class CompleteList
+    {
+        public MOKey MOKey { get; set; }
+        public Wh Wh { get; set; }
+        public Item Item { get; set; }
+        public DescFlexField DescFlexField { get; set; }
+        public int CompleteQty { get; set; }
+        public int OutputType { get; set; } = 0;
+        public int StorageType { get; set; } = 4;
+        public int DocState { get; set; } = 1;
+    }
+
+    public class MOKey
+    {
+        public string DocNo { get; set; }
+    }
+    public class Wh
+    {
+        public string Code { get; set; }
+    }
+    public class Item
+    {
+        public string Code { get; set; }
+    }
+    public class DescFlexField
+    {
+        public string PrivateDescSeg1 { get; set; }
+    }
+}
diff --git a/Tiger.Model.Net/Tiger.Model.Net.csproj b/Tiger.Model.Net/Tiger.Model.Net.csproj
index c8a8462..7aff1bd 100644
--- a/Tiger.Model.Net/Tiger.Model.Net.csproj
+++ b/Tiger.Model.Net/Tiger.Model.Net.csproj
@@ -162,6 +162,7 @@
     <Compile Include="Entitys\MES\node.cs" />
     <Compile Include="Entitys\MES\ParameterEntity\BizMesWoBatchParameter.cs" />
     <Compile Include="Entitys\MES\ParameterEntity\BizBasPkgRuleParameter.cs" />
+    <Compile Include="Entitys\MES\ParameterEntity\U9CParameter.cs" />
     <Compile Include="Entitys\MES\ParameterEntity\DoUnPackParameter.cs" />
     <Compile Include="Entitys\MES\ParameterEntity\CodeVerificationParameter.cs" />
     <Compile Include="Entitys\MES\ParameterEntity\BizMesWoParameter.cs" />

--
Gitblit v1.9.3