From 0116b5d2ed16a0825da9e7474fc786ee06b2d60c Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期三, 04 九月 2024 08:40:31 +0800 Subject: [PATCH] 增加公布提示信息和状态 --- Tiger.Business.MES/LabelTemplate/BAS_LABEL_TEMP.cs | 82 ++++++++++++++++++++++++++++++++++++++--- 1 files changed, 76 insertions(+), 6 deletions(-) diff --git a/Tiger.Business.MES/LabelTemplate/BAS_LABEL_TEMP.cs b/Tiger.Business.MES/LabelTemplate/BAS_LABEL_TEMP.cs index 20e8339..919c5bc 100644 --- a/Tiger.Business.MES/LabelTemplate/BAS_LABEL_TEMP.cs +++ b/Tiger.Business.MES/LabelTemplate/BAS_LABEL_TEMP.cs @@ -13,6 +13,7 @@ using Microsoft.AspNetCore.Http; using Tiger.Model.Entitys.MES.BasLabelTemp; using System.Security.Cryptography; +using Tiger.Model.Entitys.MES.Position; namespace Tiger.Business.MES { @@ -46,6 +47,8 @@ var dbTran = db.UseTran(() => { db.Deleteable<BAS_LABEL_TEMP>().Where(x => x.ID == Id).ExecuteCommand(); + db.Deleteable<BAS_LABEL_VAR>().Where(x => x.LABEL_ID == Id).ExecuteCommand(); + db.Deleteable<BAS_LABEL_VAR_WO>().Where(x => x.LABEL_ID == Id).ExecuteCommand(); }); if (!dbTran.IsSuccess) { @@ -73,30 +76,36 @@ { BAS_LABEL_TEMP? prodTemp = null; BAS_LABEL_TEMP? prodCustTemp = null; + var ltemp = await Biz.Db.Queryable<BAS_LABEL_TEMP>().Where(x => x.LABEL_CODE == input.Label.LABEL_CODE).FirstAsync(); //濡傛灉浼犲叆鐨勬爣绛惧鎴风紪鐮佷笉涓虹┖ if (!input.Label.CUST_CODE.IsNullOrEmpty()) { //濡傛灉鏌ヤ笉鍒版爣绛惧苟涓斿鎴风紪鐮佷笉涓虹┖ - if (!Biz.Db.Queryable<BAS_LABEL_TEMP>().Any(x => x.LABEL_CODE == input.Label.LABEL_CODE)) + if (ltemp == null) { prodCustTemp = input.Label; prodTemp = input.Label.Clone(); prodTemp.CUST_CODE = ""; - prodTemp.LABEL_CODE = $"{input.Label.LABEL_CODE}_{DateTime.Now.ToString("yyyyMMddhhmmss")}"; + prodTemp.LABEL_CODE = GenerateCodeName(input.Label.LABEL_CODE, "_L"); } else { prodCustTemp = input.Label; - prodCustTemp.LABEL_CODE = $"{input.Label.LABEL_CODE}_{DateTime.Now.ToString("yyyyMMddhhmmss")}"; + if ((ltemp.PROD_CODE != input.Label.PROD_CODE && ltemp.CUST_CODE == input.Label.CUST_CODE) || + (ltemp.PROD_CODE != input.Label.PROD_CODE && ltemp.CUST_CODE != input.Label.CUST_CODE) || + (ltemp.PROD_CODE == input.Label.PROD_CODE && ltemp.CUST_CODE != input.Label.CUST_CODE)) + { + prodCustTemp.LABEL_CODE = GenerateCodeName(input.Label.LABEL_CODE, "_L"); + } } } else { //濡傛灉瀹㈡埛缂栫爜涓虹┖ prodTemp = input.Label; - if (Biz.Db.Queryable<BAS_LABEL_TEMP>().Any(x => x.LABEL_CODE == input.Label.LABEL_CODE && x.PROD_CODE != input.Label.PROD_CODE)) + if (ltemp != null && (ltemp.PROD_CODE.IsNullOrEmpty() || ltemp.PROD_CODE != input.Label.PROD_CODE)) { - prodTemp.LABEL_CODE = $"{input.Label.LABEL_CODE}_{DateTime.Now.ToString("yyyyMMddhhmmss")}"; + prodTemp.LABEL_CODE = GenerateCodeName(input.Label.LABEL_CODE, "_L"); } } var db = Biz.Db; @@ -146,8 +155,9 @@ item.LABEL_ID = temp.ID; } } + db.Deleteable<BAS_LABEL_VAR_WO>(false).Where(x => x.LABEL_ID == input.LabelVarWos[0].LABEL_ID).ExecuteCommand(); var o = db.Storageable(input.LabelVarWos) - .WhereColumns(t => new { t.LABEL_ID, t.VAR_NAME, t.GHOST_ROW }) + .WhereColumns(t => new { t.LABEL_ID, t.WORK_ORDER, t.VAR_NAME, t.GHOST_ROW }) .ToStorage(); o.AsInsertable.ExecuteCommand(); o.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); @@ -165,5 +175,65 @@ } return await Task.FromResult(result); } + + /// <summary> + /// 淇濆瓨鏍囩妯℃澘鍙橀噺 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + public async Task<ApiAction> SaveLabelTemplateVar(BasLabelTempInput input) + { + var result = new ApiAction(); + try + { + var db = Biz.Db; + var dbTran = db.UseTran(() => + { + if (input.LabelVars != null && input.LabelVars.Count > 0) + { + db.Deleteable<BAS_LABEL_VAR>(false).Where(x => x.LABEL_ID == input.LabelVars[0].LABEL_ID).ExecuteCommand(); + var z = db.Storageable(input.LabelVars) + .WhereColumns(t => new { t.LABEL_ID, t.VAR_NAME, t.GHOST_ROW }) + .ToStorage(); + z.AsInsertable.ExecuteCommand(); + z.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand(); + } + if (input.LabelVarWos != null && input.LabelVarWos.Count > 0) + { + db.Deleteable<BAS_LABEL_VAR_WO>(false).Where(x => x.LABEL_ID == input.LabelVarWos[0].LABEL_ID).ExecuteCommand(); + var o = db.Storageable(input.LabelVarWos) + .WhereColumns(t => new { t.LABEL_ID, t.WORK_ORDER, t.VAR_NAME, t.GHOST_ROW }) + .ToStorage(); + o.AsInsertable.ExecuteCommand(); + o.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> + /// 鏍规嵁鍒嗛殧绗︾敓鎴怌ode鍚� + /// </summary> + /// <param name="data"></param> + /// <param name="separator"></param> + /// <returns></returns> + private string GenerateCodeName(string data, string separator) + { + string result = string.Empty; + var strs = data.Split("_L"); + result = strs.Length > 1 ? data.Replace(strs[1], DateTime.Now.ToString("yyyyMMddhhmmss")) : $"{data}_L{DateTime.Now.ToString("yyyyMMddhhmmss")}"; + return result; + } + } } -- Gitblit v1.9.3