zxx
2025-06-03 b5c7bedeaed734b8031711e2e96d730841d42777
HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/wms/ContainerHelper.cs
@@ -245,43 +245,43 @@
        /// <param name="batchNo"></param>
        /// <param name="qty"></param>
        /// <returns></returns>
        internal static bool BindCntrItem(Container cntr, string itemCode, string batchNo, float qty, string putawayNo)
        {
            var res = false;
            var db = new SqlHelper<object>().GetInstance();
            try
            {
                db.BeginTran();
                //1.查看是否有相同物料批次的信息,如果有要累加,不同批次的可以分开
                var cir = db.Queryable<CntrItemDetail>().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,it.S_CK }).ExecuteCommand();
                }
                else
                {
                    //2.插入新的容器物料信息(容器号不变)
                    cir = new CntrItemDetail { S_CNTR_CODE = cntr.S_CODE.Trim(), S_BATCH_NO = batchNo, F_QTY = qty, S_ITEM_CODE = itemCode, S_PUTAWAY_NO = putawayNo};
                    db.Insertable<CntrItemDetail>(cir).ExecuteCommand();
                }
                var count = db.Queryable<CntrItemDetail>().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, it.S_SRC }).ExecuteCommand();
                db.Updateable(cntr).UpdateColumns(it => new { it.N_DETAIL_COUNT, it.C_ENABLE }).ExecuteCommand();
        //internal static bool BindCntrItem(Container cntr, string itemCode, string batchNo, float qty, string putawayNo)
        //{
        //    var res = false;
        //    var db = new SqlHelper<object>().GetInstance();
        //    try
        //    {
        //        db.BeginTran();
        //        //1.查看是否有相同物料批次的信息,如果有要累加,不同批次的可以分开
        //        var cir = db.Queryable<CntrItemDetail>().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,it.S_CK }).ExecuteCommand();
        //        }
        //        else
        //        {
        //            //2.插入新的容器物料信息(容器号不变)
        //            cir = new CntrItemDetail { S_CNTR_CODE = cntr.S_CODE.Trim(), S_BATCH_NO = batchNo, F_QTY = qty, S_ITEM_CODE = itemCode, S_PUTAWAY_NO = putawayNo};
        //            db.Insertable<CntrItemDetail>(cir).ExecuteCommand();
        //        }
        //        var count = db.Queryable<CntrItemDetail>().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, it.S_SRC }).ExecuteCommand();
        //        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);
            }
        //        db.CommitTran();
        //        res = true;
        //    }
        //    catch (Exception ex)
        //    {
        //        db.RollbackTran();
        //        Console.WriteLine(ex.Message);
        //    }
            return res;
        }
        //    return res;
        //}
        ///// <summary>
        ///// 物料信息绑定到满容器上
@@ -559,16 +559,16 @@
                    if (db.Queryable<LocCntrRel>().Count(a => a.S_CNTR_CODE.Trim() == cntrCode) == 0)
                    {
                        var cir = new LocCntrRel { S_LOC_CODE = loc, S_CNTR_CODE = cntrCode};
                        var con = new Container { S_CODE = cntrCode,N_DETAIL_COUNT = 1,C_FULL="0" };
                        var con = new Container { S_CODE = cntrCode,N_DETAIL_COUNT = 1,C_FULL="2" };//默认满 主动绑定服务用
                        db.Insertable<LocCntrRel>(cir).ExecuteCommand();
                        db.Insertable<Container>(con).ExecuteCommand();
                        if (!string.IsNullOrEmpty(itemCode))
                        {
                            LogHelper.Info($"绑定容器参数:{JsonConvert.SerializeObject(con)}");
                            ContainerHelper.BindCntrItem(cntrCode, itemCode, itemName);
                            //有物料的话就是满的
                            con.C_FULL = "2";
                            db.Updateable(con).UpdateColumns(it => it.C_FULL).ExecuteCommand();
                            ////有物料的话就是满的
                            //con.C_FULL = "2";
                            //db.Updateable(con).UpdateColumns(it => it.C_FULL).ExecuteCommand();
                        }
                    }
                }
@@ -621,6 +621,7 @@
            var db = new SqlHelper<object>().GetInstance();
            try
            {
                LogHelper.Info($"BindCntrItem=============");
                db.BeginTran();
                var cir = new CntrItemDetail { S_CNTR_CODE = trayCode, S_ITEM_CODE = itemCode, S_ITEM_NAME = itemName};
                db.Insertable<CntrItemDetail>(cir).ExecuteCommand();
@@ -630,6 +631,7 @@
            }
            catch (Exception ex)
            {
                LogHelper.Error("BindCntrItem:" + ex.Message, ex);
                db.Ado.RollbackTran();
            }
            return res;