From 8745fb2b4824979aad955a9835decdb849fe278d Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期日, 03 十一月 2024 22:24:01 +0800
Subject: [PATCH] 更新箱号,获取箱号

---
 Tiger.Business.MES/BIZ/BizBasRule.cs |   50 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 37 insertions(+), 13 deletions(-)

diff --git a/Tiger.Business.MES/BIZ/BizBasRule.cs b/Tiger.Business.MES/BIZ/BizBasRule.cs
index 6be57a4..39a2754 100644
--- a/Tiger.Business.MES/BIZ/BizBasRule.cs
+++ b/Tiger.Business.MES/BIZ/BizBasRule.cs
@@ -14,6 +14,7 @@
 using Tiger.Model.Entitys.MES.BizMesWoBatch;
 using Tiger.Model.Entitys.MES.BizMesWo;
 using Tiger.Model.Entitys.MES.BizBasPkgRule;
+using Tiger.Model.Entitys.MES.Position;
 
 namespace Tiger.Business.MES
 {
@@ -29,11 +30,17 @@
             var result = new ApiAction();
             try
             {
-                var ItemCusts = input.ItemCusts.Select(q => q.ID).ToList();
-                List<BAS_ITEM_CUST> list = await Biz.Db.Queryable<BAS_ITEM_CUST>().Where(q => !SqlFunc.ContainsArray(ItemCusts, q.ID)).ToListAsync();
+                var ItemCustIds = input.ItemCusts.Select(q => q.ID).ToList();
+                List<BAS_ITEM_CUST> list = ItemCustIds.Count>0? await Biz.Db.Queryable<BAS_ITEM_CUST>()
+                    .Where(q => !SqlFunc.ContainsArray(ItemCustIds, q.ID) && input.ItemCusts[0].ITEM_ID == q.ITEM_ID)
+                    .ToListAsync() : new();
                 var db = Biz.Db;
                 var dbTran = db.UseTran(() =>
                 {
+                    if (input.Item != null)
+                    {
+                        db.Updateable(input.Item).UpdateColumns(q => q.RULE_CODE).ExecuteCommand();
+                    }
                     var z = db.Storageable(input.ItemCusts)
                        .WhereColumns(t => new { t.ID, t.GHOST_ROW })
                        .ToStorage();
@@ -66,19 +73,16 @@
             try
             {
                 var pkgProds = input.PkgProd.Select(q => q.ID).ToList();
-                List<BAS_PKG_PROD> listPrd = await Biz.Db.Queryable<BAS_PKG_PROD>().Where(q => !SqlFunc.ContainsArray(pkgProds, q.ID)).ToListAsync();
+                List<BAS_PKG_PROD> listPrd = pkgProds.Count > 0 ? await Biz.Db.Queryable<BAS_PKG_PROD>()
+                    .Where(q => !SqlFunc.ContainsArray(pkgProds, q.ID) && q.PKG_RULE_ID == input.PkgProd[0].PKG_RULE_ID)
+                    .ToListAsync() : new();
+                var pkgDtl = input.PkgDtl.Select(q => q.ID).ToList();
+                List<BAS_PKG_DTL> listDtl = pkgDtl.Count > 0 ? await Biz.Db.Queryable<BAS_PKG_DTL>()
+                    .Where(q => !SqlFunc.ContainsArray(pkgDtl, q.ID) && q.PKG_RULE_ID == input.PkgDtl[0].PKG_RULE_ID)
+                    .ToListAsync() : new();
                 var db = Biz.Db;
                 var dbTran = db.UseTran(() =>
                 {
-                    //if (input.PkgRule!=null)
-                    //{
-                    //    var y = db.Storageable(input.PkgRule)
-                    //       .WhereColumns(t => new { t.ID, t.GHOST_ROW })
-                    //       .ToStorage();
-                    //    y.AsInsertable.ExecuteCommand();
-                    //    y.AsUpdateable.ExecuteCommand();
-                    //}
-
                     var z = db.Storageable(input.PkgDtl)
                        .WhereColumns(t => new { t.ID, t.GHOST_ROW })
                        .ToStorage();
@@ -92,11 +96,12 @@
                     o.AsUpdateable.ExecuteCommand();
 
                     db.Deleteable(listPrd).ExecuteCommand();
+                    db.Deleteable(listDtl).ExecuteCommand();
                 });
                 if (!dbTran.IsSuccess)
                 {
                     result.IsSuccessed = false;
-                    result.Message = $"淇濆瓨鍖呰瑙勫垯寮傚父";
+                    result.LocaleMsg = new($"淇濆瓨鍖呰瑙勫垯寮傚父");
                 }
             }
             catch (Exception ex)
@@ -105,5 +110,24 @@
             }
             return result;
         }
+
+        /// <summary>
+        /// 鑾峰彇绠卞彿
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        public async Task<ApiAction> GetCardOrBoxCode(GetCodeInput input)
+        {
+            var result = new ApiAction();
+            try
+            {
+                result.Data = Biz.CodeRule[input.Code]?.Generate(input.Prefix, $"{input.BatchNo}-{input.Qty}-").Data.ToString() ?? "";
+            }
+            catch (Exception ex)
+            {
+                result.CatchExceptionWithLog(ex, "鑾峰彇绠卞彿寮傚父");
+            }
+            return result;
+        }
     }
 }

--
Gitblit v1.9.3