From 6f0a6b40e86e2024c218d1d38cbdc5515fb95209 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期日, 22 九月 2024 19:03:57 +0800
Subject: [PATCH] 获取工单模板变量

---
 Tiger.Api/Controllers/MES/MESController.BIZ_MES_WO.cs            |   42 ++++++++++++++
 Tiger.IBusiness/MES/BIZ/IMES_WO.cs                               |    2 
 Tiger.Business.MES/BIZ/BIZ_MES_WO.cs                             |   73 ++++++++++++++++++++++++
 Tiger.Model.Net/Entitys/MES/ParameterEntity/BizMesWoParameter.cs |   11 +++
 4 files changed, 128 insertions(+), 0 deletions(-)

diff --git a/Tiger.Api/Controllers/MES/MESController.BIZ_MES_WO.cs b/Tiger.Api/Controllers/MES/MESController.BIZ_MES_WO.cs
index ab34030..3b4ac77 100644
--- a/Tiger.Api/Controllers/MES/MESController.BIZ_MES_WO.cs
+++ b/Tiger.Api/Controllers/MES/MESController.BIZ_MES_WO.cs
@@ -115,5 +115,47 @@
             }
             return Ok(response);
         }
+
+        /// <summary>
+        /// 鏇存柊宸ュ崟妯℃澘鍙橀噺
+        /// </summary>
+        /// <param name="action"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("api/[controller]/[action]")]
+        public async Task<IActionResult> AddOrEditLabelVarByWorkOrder([FromBody] ApiAction<BAS_LABEL_VAR_WO> action)
+        {
+            ApiAction response = new();
+            try
+            {
+                response = response.GetResponse(await DI.Resolve<IBIZ_MES_WO>().AddOrEditLabelVarByWorkOrder(action.Data));
+            }
+            catch (System.Exception ex)
+            {
+                response = response.GetResponse().CatchExceptionWithLog(ex);
+            }
+            return Ok(response);
+        }
+
+        /// <summary>
+        /// 鑾峰彇宸ュ崟妯℃澘鍙橀噺
+        /// </summary>
+        /// <param name="action"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("api/[controller]/[action]")]
+        public async Task<IActionResult> GetLabelVarByWorkOrder([FromBody] ApiAction<BizLabelVarWoInput> action)
+        {
+            ApiAction response = new();
+            try
+            {
+                response = response.GetResponse(await DI.Resolve<IBIZ_MES_WO>().GetLabelVarByWorkOrder(action.Data));
+            }
+            catch (System.Exception ex)
+            {
+                response = response.GetResponse().CatchExceptionWithLog(ex);
+            }
+            return Ok(response);
+        }
     }
 }
diff --git a/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs b/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs
index 6d8a48e..dfdfed4 100644
--- a/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs
+++ b/Tiger.Business.MES/BIZ/BIZ_MES_WO.cs
@@ -254,5 +254,78 @@
             }
             return result;
         }
+
+        /// <summary>
+        /// 宸ュ崟妯℃澘鍙橀噺淇敼
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        public async Task<ApiAction> AddOrEditLabelVarByWorkOrder(BAS_LABEL_VAR_WO input)
+        {
+            var result = new ApiAction();
+            try
+            {
+                //淇濆瓨鍓嶇殑鍒ゆ柇
+                if (input.WORK_ORDER.IsNullOrEmpty())
+                {
+                    result.IsSuccessed = false;
+                    result.LocaleMsg = new($"宸ュ崟鍙蜂笉鑳戒负绌猴紒");
+                    return result;
+                }
+
+                var db = Biz.Db;
+                var dbTran = db.UseTran(() =>
+                {
+                    var y = db.Storageable(input)
+                       .WhereColumns(t => new { t.LABEL_ID, t.WORK_ORDER, t.VAR_NAME, t.GHOST_ROW })
+                       .ToStorage();
+                    y.AsInsertable.ExecuteCommand();
+                    y.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand();
+                });
+                if (!dbTran.IsSuccess)
+                {
+                    result.IsSuccessed = false;
+                    result.LocaleMsg = new($"鏇存柊宸ュ崟妯℃澘鍙橀噺寮傚父");
+                }
+            }
+            catch (Exception ex)
+            {
+                result.CatchExceptionWithLog(ex, "鏇存柊宸ュ崟妯℃澘鍙橀噺寮傚父");
+            }
+            return await Task.FromResult(result);
+        }
+
+        /// <summary>
+        /// 鑾峰彇宸ュ崟妯℃澘鍙橀噺
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        public async Task<ApiAction<QueryAble<BAS_LABEL_VAR_WO>>> GetLabelVarByWorkOrder(BizLabelVarWoInput input)
+        {
+            var result = new ApiAction<QueryAble<BAS_LABEL_VAR_WO>>();
+            try
+            {
+                QueryAble<BAS_LABEL_VAR_WO> query = new();
+                if (input.WorkOrder.IsNullOrEmpty())
+                {
+                    result.IsSuccessed = false;
+                    result.LocaleMsg = new($"宸ュ崟鍙蜂笉鑳戒负绌猴紒");
+                    return result;
+                }
+                query.page = await Biz.Db.Queryable<BAS_LABEL_VAR_WO>().Where(q=>q.WORK_ORDER.Equals(input.WorkOrder) && q.LABEL_ID.Equals(input.LabelId)).ToPageAsync(input.pageIndex, input.pageSize);
+                query.Items = query.page.data;
+                //濡傛灉涓嶅瓨鍦紝鍒欒繑鍥炲垵濮嬫暟鎹�
+                if (query.page.totals == 0) {
+                    query.page = await Biz.Db.Queryable<BAS_LABEL_VAR_WO>().Where(q => SqlFunc.IsNullOrEmpty(q.WORK_ORDER) && q.LABEL_ID.Equals(input.LabelId)).ToPageAsync(input.pageIndex, input.pageSize);
+                    query.Items = query.page.data;
+                }
+                result.Data = query;
+            }
+            catch (Exception ex)
+            {
+                result.CatchExceptionWithLog(ex, "鑾峰彇宸ュ崟妯℃澘鍙橀噺寮傚父");
+            }
+            return result;
+        }
     }
 }
diff --git a/Tiger.IBusiness/MES/BIZ/IMES_WO.cs b/Tiger.IBusiness/MES/BIZ/IMES_WO.cs
index 2fad67a..a88660d 100644
--- a/Tiger.IBusiness/MES/BIZ/IMES_WO.cs
+++ b/Tiger.IBusiness/MES/BIZ/IMES_WO.cs
@@ -18,5 +18,7 @@
         public Task<ApiAction> SaveMesBatchWo(SaveWoBatchInput input);
         public Task<ApiAction> UpdateWoStatus(BizMesWoInput input);
         public Task<ApiAction> UpdateWoBatchStatus(BizMesWoInput input);
+        public Task<ApiAction> AddOrEditLabelVarByWorkOrder(BAS_LABEL_VAR_WO input);
+        public Task<ApiAction<QueryAble<BAS_LABEL_VAR_WO>>> GetLabelVarByWorkOrder(BizLabelVarWoInput input);
     }
 }
diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/BizMesWoParameter.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/BizMesWoParameter.cs
index 053cf7d..94463ba 100644
--- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/BizMesWoParameter.cs
+++ b/Tiger.Model.Net/Entitys/MES/ParameterEntity/BizMesWoParameter.cs
@@ -14,4 +14,15 @@
         public int Status { get; set; }
         public int RouteStatus { get; set; }
     }
+
+    public class BizLabelVarWoInput
+    {
+        public string WorkOrder { get; set; }
+        public string LabelId { get; set; }
+        public int draw { get; set; }
+
+        public int pageIndex { get; set; }
+
+        public int pageSize { get; set; }
+    }
 }

--
Gitblit v1.9.3