From 8caee486894a66a35ea0732ad575d7342589635f Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期五, 15 十一月 2024 10:26:40 +0800
Subject: [PATCH] 生成入库获取条码工单信息及包装信息

---
 Tiger.Controllers.MES/Controllers/MESController.BIZ_MES_WO.cs |   21 +++++++
 Tiger.IBusiness.MES/BIZ/IMES_WO.cs                            |    1 
 Tiger.Business.MES/iERP/U9C_MES.cs                            |    2 
 Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs            |   66 ++++++++++++++++++++++
 Tiger.Business.MES/BIZ/BIZ_MES_WO.cs                          |   60 ++++++++++++++++++++
 Tiger.Controllers.System/Controllers/Base/BaseController.cs   |    4 
 6 files changed, 151 insertions(+), 3 deletions(-)

diff --git a/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs b/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs
index 9052669..25765c6 100644
--- a/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs
+++ b/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs
@@ -19,6 +19,7 @@
 using System.Net.NetworkInformation;
 using Tiger.Model.MES.Yada;
 using static Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser;
+using Tiger.Model.Minsun;
 
 namespace Tiger.Business.MES
 {
@@ -662,5 +663,64 @@
             }
             return result;
         }
+
+        /// <summary>
+        /// 鐢熸垚鍏ュ簱鑾峰彇鏉$爜宸ュ崟淇℃伅鍙婂寘瑁呬俊鎭�
+        /// </summary>
+        /// <param name="code"></param>
+        /// <returns></returns>
+        public async Task<ApiAction<InStoreInfo>> GetErpProdInBth(string code)
+        {
+            var result = new ApiAction<InStoreInfo>();
+            try
+            {
+                //寰楀埌宸ュ崟鏉$爜璁板綍
+                var woSns = await Biz.Db.Queryable<BIZ_MES_WO_SN>().Where(q => q.OUTER_SN == code).ToListAsync();
+                if (woSns.Count == 0)
+                {
+                    result.IsSuccessed = false;
+                    result.LocaleMsg = new($"鏉$爜涓嶅瓨鍦紒");
+                    return result;
+                }
+                var wo = await Biz.Db.Queryable<BIZ_MES_WO>().Where(q => q.ORDER_NO == woSns[0].WORK_ORDER ).IncludesAllFirstLayer().FirstAsync();
+                if (wo == null)
+                {
+                    result.IsSuccessed = false;
+                    result.LocaleMsg = new($"鏉$爜瀵瑰簲鐨勫伐鍗曚笉瀛樺湪");
+                    return result;
+                }
+                InStoreInfo inStoreInfo = new() {
+                    ErpProdInBth= new() { 
+                        WORK_ORDER = wo.ORDER_NO,
+                        BATCH_NO = woSns[0].BATCH_NO,
+                        ITEM_CODE = wo.ITEM_CODE,
+                        ITEM_NAME = wo.ItemInfo?.ITEM_NAME,
+                        SCAN_QTY = woSns.Count
+                    },
+                    ProdInBatch = new()
+                    {
+                        WORK_ORDER = wo.ORDER_NO,
+                        BATCH_NO = woSns[0].BATCH_NO,
+                        ITEM_CODE = wo.ITEM_CODE,
+                        ITEM_NAME = wo.ItemInfo?.ITEM_NAME,
+                        PLAN_QTY = wo.PLAN_QTY,
+                        SCAN_QTY = woSns.Count
+                    },
+                    InStoreScanInfo = new() { 
+                        SN = code,
+                        WORK_ORDER = wo.ORDER_NO,
+                        BATCH_NO = woSns[0].BATCH_NO,
+                        SCAN_QTY = woSns.Count
+                    }
+                };
+                result.Data = inStoreInfo;
+                result.LocaleMsg = new($"鑾峰彇鏉$爜[{code}]宸ュ崟淇℃伅鍙婂寘瑁呬俊鎭垚鍔�");
+            }
+            catch (Exception ex)
+            {
+                result.CatchExceptionWithLog(ex, $"鑾峰彇鏉$爜[{code}]宸ュ崟淇℃伅鍙婂寘瑁呬俊鎭紓甯�");
+            }
+            return result;
+        }
     }
 }
diff --git a/Tiger.Business.MES/iERP/U9C_MES.cs b/Tiger.Business.MES/iERP/U9C_MES.cs
index 7f56288..b2a47eb 100644
--- a/Tiger.Business.MES/iERP/U9C_MES.cs
+++ b/Tiger.Business.MES/iERP/U9C_MES.cs
@@ -572,7 +572,7 @@
                             CUST_PREFIX = di["OutBarHead"] == null ? "" : di["OutBarHead"].ToString(),
                             SALES_CONTRACT = di["Contracts"] == null ? "" : di["Contracts"].ToString(),
                         };
-                        if (!Biz.Db.Queryable<BIZ_MES_WO>().Any(x => x.ORDER_NO == woItem.ORDER_NO && (x.STATUS > BIZ_MES_WO.STATUSs.Init.GetValue() || x.ROUTE_STATUS > BIZ_MES_WO.ROUTE_STATUSs.WaitSet.GetValue())))
+                        if (!Biz.Db.Queryable<BIZ_MES_WO>().Any(x => x.ORDER_NO == woItem.ORDER_NO && x.STATUS > BIZ_MES_WO.STATUSs.Imported.GetValue()))
                         {
                             items.Add(woItem);
                         }
diff --git a/Tiger.Controllers.MES/Controllers/MESController.BIZ_MES_WO.cs b/Tiger.Controllers.MES/Controllers/MESController.BIZ_MES_WO.cs
index a2dbdac..2860075 100644
--- a/Tiger.Controllers.MES/Controllers/MESController.BIZ_MES_WO.cs
+++ b/Tiger.Controllers.MES/Controllers/MESController.BIZ_MES_WO.cs
@@ -263,5 +263,26 @@
             }
             return Ok(response);
         }
+
+        /// <summary>
+        /// 鐢熸垚鍏ュ簱鑾峰彇鏉$爜宸ュ崟淇℃伅鍙婂寘瑁呬俊鎭�
+        /// </summary>
+        /// <param name="action"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("api/[controller]/[action]")]
+        public async Task<IActionResult> GetErpProdInBth([FromBody] ApiAction action)
+        {
+            ApiAction response = new();
+            try
+            {
+                response = response.GetResponse(await DI.Resolve<IBIZ_MES_WO>().GetErpProdInBth(action.Data?.ToString()));
+            }
+            catch (System.Exception ex)
+            {
+                response = response.GetResponse().CatchExceptionWithLog(ex);
+            }
+            return Ok(response);
+        }
     }
 }
diff --git a/Tiger.Controllers.System/Controllers/Base/BaseController.cs b/Tiger.Controllers.System/Controllers/Base/BaseController.cs
index 7783881..24899c1 100644
--- a/Tiger.Controllers.System/Controllers/Base/BaseController.cs
+++ b/Tiger.Controllers.System/Controllers/Base/BaseController.cs
@@ -569,8 +569,8 @@
             {
                 await file.CopyToAsync(stream);
             }
-
-            return Ok(new { file.FileName, file.ContentType, file.Length, url= $@"{BizConfig.Configuration["DownloadAddress"]}/"+ file.FileName });
+            var downloadAddress = entityName == "BAS_LABEL_TEMP" || entityName == "BAS_LABEL_VAR" ? "/Template" : "";
+            return Ok(new { file.FileName, file.ContentType, file.Length, url= $@"{BizConfig.Configuration["DownloadAddress"]}{downloadAddress}/"+ file.FileName });
         }
 
         #endregion
diff --git a/Tiger.IBusiness.MES/BIZ/IMES_WO.cs b/Tiger.IBusiness.MES/BIZ/IMES_WO.cs
index 00040e9..d0f4268 100644
--- a/Tiger.IBusiness.MES/BIZ/IMES_WO.cs
+++ b/Tiger.IBusiness.MES/BIZ/IMES_WO.cs
@@ -24,5 +24,6 @@
         public Task<ApiAction> GetShipList(string wo, string orgCode);
         public Task<ApiAction> SavePrintLabelInAct(string code);
         public Task<ApiAction> UnbindWipSnFromWO(UnbindWipSnInput input);
+        public Task<ApiAction<InStoreInfo>> GetErpProdInBth(string code);
     }
 }
diff --git a/Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs b/Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs
index 4eab884..38fdd85 100644
--- a/Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs
+++ b/Tiger.Model.Net/Entitys/WMS/BIZ_ERP_PROD_IN_BTH.cs
@@ -138,4 +138,70 @@
 		#endregion
 
 	}//endClass
+
+	public class ProdInBatch
+    {
+        /// <summary>
+		/// 入库单号
+		/// </summary>
+		[DisplayName("入库单号")]
+        public string ORDER_NO { get; set; }
+        /// <summary>
+        /// 工单批次号
+        /// </summary>
+        [DisplayName("工单批次号")]
+        public string BATCH_NO { get; set; }
+        /// <summary>
+        /// 工单号
+        /// </summary>
+        [DisplayName("工单号")]
+        public string WORK_ORDER { get; set; }
+        /// <summary>
+        /// 物料编码
+        /// </summary>
+        [DisplayName("物料编码")]
+        public string ITEM_CODE { get; set; }
+        /// <summary>
+        /// 物料名称
+        /// </summary>
+        [DisplayName("物料名称")]
+        public string ITEM_NAME { get; set; }
+        /// <summary>
+        /// 计划数量
+        /// </summary>
+        [DisplayName("计划数量")]
+        public double PLAN_QTY { get; set; }
+        /// <summary>
+        /// 已扫描数量
+        /// </summary>
+        [DisplayName("已扫描数量")]
+        public double SCAN_QTY { get; set; }
+    }
+
+	public class InStoreScanInfo
+    {
+        /// <summary>
+        /// 条码
+        /// </summary>
+        [DisplayName("条码")]
+        public string SN { get; set; }
+        [DisplayName("工单批次号")]
+        public string BATCH_NO { get; set; }
+        /// <summary>
+        /// 工单号
+        /// </summary>
+        [DisplayName("工单号")]
+        public string WORK_ORDER { get; set; }
+        /// <summary>
+        /// 已扫描数量
+        /// </summary>
+        [DisplayName("已扫描数量")]
+        public double SCAN_QTY { get; set; }
+    }
+
+	public class InStoreInfo { 
+		public BIZ_ERP_PROD_IN_BTH ErpProdInBth { get; set; }
+        public ProdInBatch ProdInBatch { get; set; }
+        public InStoreScanInfo InStoreScanInfo { get; set; }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3