杨前锦
2025-07-01 a93b0e99036c24b9bd58c79bf5e7364b1ba28bae
HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/wms/ContainerHelper.cs
@@ -18,20 +18,6 @@
            var date = DateTime.Now.ToString("yyMMdd");
            return $"TP{date}{id.ToString().PadLeft(4, '0')}";
        }
        /// <summary>
        /// TN_ContainerHelper.test("4L天然水箱装6入", 50, "335ml东方树叶15入", 30);
        /// </summary>
        /// <param name="item1"></param>
        /// <param name="qty1"></param>
        /// <param name="item2"></param>
        /// <param name="qty2"></param>
        //internal static void test(string item1, int qty1, string item2, int qty2) {
        //    var db = new SqlHelper<object>().GetInstance();
        //    var cntr = db.Queryable<TN_Container>().Includes(a => a.CntrItemRelList).
        //        Where(a => a.CntrItemRelList.Count(b => b.S_ITEM_CODE == item1 && int.Parse(b.F_QTY) > qty1) > 0
        //        && a.CntrItemRelList.Count(b => b.S_ITEM_CODE == item2 && int.Parse(b.F_QTY) > qty2) > 0).First();
        //}
        /// <summary>
        /// 判断容器是否有物料信息
@@ -44,27 +30,6 @@
            return db.Queryable<LocCntrRel>().Count(a => a.S_LOC_CODE.Trim() == cntr) == 0;
        }
        /*internal static bool AddCntr(string cntrCode, string itemCode) {
            var res = false;
            var db = new SqlHelper<object>().GetInstance();
            var TN_Container = new Container { S_CODE = cntrCode };
            var cntrItemRel = new CntrItemRel { S_CNTR_CODE = cntrCode, S_ITEM_CODE = itemCode };
            try {
                db.BeginTran();
                db.Insertable<Container>(TN_Container).ExecuteCommand();
                db.Insertable<CntrItemRel>(cntrItemRel).ExecuteCommand();
                db.CommitTran();
                res = true;
            }
            catch (Exception ex) {
                db.RollbackTran();
            }
            return res;
        }*/
        internal static bool AddCntr(string cntrCode ,int detallCount = 0)
        {
@@ -159,58 +124,11 @@
            return db.Updateable(cntrItem).ExecuteCommand()>0;
        }
        /// <summary>
        /// 物料信息绑定到满容器上
        /// </summary>
        /// <param name="cntrCode"></param>
        /// <param name="itemCode"></param>
        /// <param name="batchNo"></param>
        /// <param name="qty"></param>
        /// <returns></returns>
        internal static bool BindCntrItem(Container cntr, string itemCode, string batchNo, float qty) {
            var res = false;
            var db = new SqlHelper<object>().GetInstance();
            try {
                db.BeginTran();
                //1.查看是否有相同物料批次的信息,如果有要累加,不同批次的可以分开
                var cir = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntr.S_CODE && a.S_ITEM_CODE == itemCode && a.S_BATCH_NO == batchNo).First();
                if (cir != null) {
                    cir.F_QTY += qty;
                    db.Updateable(cir).UpdateColumns(it => new { it.F_QTY }).ExecuteCommand();
                }
                else {
                    //2.插入新的容器物料信息(容器号不变)
                    cir = new CntrItemRel { S_CNTR_CODE = cntr.S_CODE.Trim(), S_BATCH_NO = batchNo, F_QTY = qty, S_ITEM_CODE = itemCode };
                    db.Insertable<CntrItemRel>(cir).ExecuteCommand();
                }
                var count = db.Queryable<CntrItemRel>().Count(a => a.S_CNTR_CODE == cntr.S_CODE);
                cntr.N_DETAIL_COUNT = count;
                cntr.C_ENABLE = "N";//码盘后将托盘设置为不可用状态,入库后变成可用
                db.Updateable(cntr).UpdateColumns(it => new { it.N_DETAIL_COUNT, it.C_ENABLE}).ExecuteCommand();
                db.CommitTran();
                res = true;
            }
            catch (Exception ex) {
                db.RollbackTran();
                Console.WriteLine(ex.Message);
            }
            return res;
        }
        internal static bool UpdateCntr(Container container)
        {
            var db = new SqlHelper<object>().GetInstance();
            return db.Updateable(container).ExecuteCommand()>0;
        }
        /// <summary>
        ///