hudong
2025-06-04 a9b773182cbae218f87bbebb0b88871180677a63
api/WmsSpaHelper.cs
@@ -45,6 +45,34 @@
        }
        public static bool MaterPanduan(string ItemCode,double count) {
            bool panduan = true;
            var db = new SqlHelper<object>().GetInstance();
            var po = db.Queryable<TN_Material_KC>().Where(a => a.S_ITEM_CODE == ItemCode).First();
            var po1 = db.Queryable<CntrItemRel>().Where(a => a.S_ITEM_CODE == ItemCode).First();
            if (po != null)
            {
                if (po1!=null)
                {
                    double sl= po1.F_QTY + count;
                    if (sl>po.N_COUNT)
                    {
                        panduan = false;
                    }
                }
                if (count > po.N_COUNT)
                {
                    panduan = false;
                }
            }
            else
            {
                panduan = false;
            }
            return panduan;
        }
        /// <summary>
        /// 数据
        /// </summary>
@@ -1185,9 +1213,10 @@
                            po.Details = new List<TN_Inbound_Detail>();
                            if (itemwlpz.ITEM.Count > 0)
                            {
                                itemwlpz.ITEM.ForEach(a =>
                                foreach (var a in itemwlpz.ITEM)
                                {
                                    po.Details.Add(new TN_Inbound_Detail
                                    {
                                        S_IO_NO = itemwlpz.HEAD.WLPZH,
@@ -1209,7 +1238,7 @@
                                    });
                                    //}
                                });
                                }
                                db.Insertable<TN_Inbound_Order>(po).ExecuteCommand();
                                db.Insertable<TN_Inbound_Detail>(po.Details).ExecuteCommand();
                                db.CommitTran();
@@ -1223,7 +1252,7 @@
                            var Details = new List<TN_Inbound_Detail>();
                            if (itemwlpz.ITEM.Count > 0)
                            {
                                itemwlpz.ITEM.ForEach(a =>
                                foreach (var a in itemwlpz.ITEM)
                                {
                                    if (po.Details.Where(s => s.S_ITEM_CODE == a.WLBM).Count() > 0)
                                    {
@@ -1253,7 +1282,7 @@
                                        });
                                    }
                                });
                                }
                                db.Insertable<TN_Inbound_Detail>(Details).ExecuteCommand();
                                db.CommitTran();
@@ -1332,8 +1361,10 @@
                                po.Details = new List<TN_Inbound_Detail>();
                                if (itemwlpz.ITEM.Count > 0)
                                {
                                    itemwlpz.ITEM.ForEach(a =>
                                    foreach (var a in itemwlpz.ITEM)
                                    {
                                        #region 不需要
                                        //if (a.ITEM1.Select(s => s.XLH).Count() > 0)//判断序列号是否为多个
                                        //{
@@ -1385,7 +1416,7 @@
                                        });
                                        //}
                                    });
                                    }
                                    db.Insertable<TN_Inbound_Order>(po).ExecuteCommand();
                                    db.Insertable<TN_Inbound_Detail>(po.Details).ExecuteCommand();
                                    db.CommitTran();
@@ -1397,7 +1428,8 @@
                                var Details = new List<TN_Inbound_Detail>();
                                if (itemwlpz.ITEM.Count > 0)
                                {
                                    itemwlpz.ITEM.ForEach(a =>
                                    foreach (var a in itemwlpz.ITEM)
                                    {
                                        if (po.Details.Where(s => s.S_ITEM_CODE == a.WLBH).Count() > 0)
                                        {
@@ -1432,7 +1464,7 @@
                                            });
                                        }
                                    });
                                    }
                                    db.Insertable<TN_Inbound_Detail>(Details).ExecuteCommand();
                                    db.CommitTran();
@@ -1732,6 +1764,15 @@
        internal static SimpleResult InboundOrderSorting(MPSorting model)
        {
            var result = new SimpleResult();
            foreach (var a in model.MaterList)
            {
                bool v = MaterPanduan(a.item_code, a.qty);
                if (v)
                {
                    result.resultMsg = $"物料{a.item_code}数量超过 库存总数";
                    return result;
                }
            }
            //判断起始库位是否锁定
            // var db = new SqlHelper<object>().GetInstance();
            using (var db = new SqlHelper<object>().GetInstance())
@@ -1854,13 +1895,17 @@
                        return result;
                    }
                    //判断托盘是否已经生成任务,如果没有则生成
                    var wmsTaskcs = WMSHelper.GetWmsTaskByCntr(model.cntr_code);
                    if (wmsTaskcs != null)
                    if (!string.IsNullOrEmpty(model.cntr_code))
                    {
                        result.resultCode = 3;
                        result.resultMsg = $"起点{model.start} 托盘{model.cntr_code}已经创建任务,请勿重复申请";
                        return result;
                        var wmsTaskcs = WMSHelper.GetWmsTaskByCntr(model.cntr_code);
                        if (wmsTaskcs != null)
                        {
                            result.resultCode = 3;
                            result.resultMsg = $"起点{model.start} 托盘{model.cntr_code}已经创建任务,请勿重复申请";
                            return result;
                        }
                    }
                    //出库
                    if (model.Type==2)
                    {
@@ -1881,6 +1926,16 @@
                            {
                                start= db.Queryable<Location>().Where(it => it.S_CODE == loc.S_LOC_CODE).First();
                            }
                        }
                        else if (!string.IsNullOrEmpty(model.item_code))
                        {
                            start = db.Queryable<LocCntrRel>()
                                   .LeftJoin<CntrItemRel>((lcr, cir) => lcr.S_CNTR_CODE == cir.S_CNTR_CODE&&cir.S_CNTR_TYPE=="半托")
                                   .Where((lcr, cir) => cir.S_CNTR_CODE != null)
                                   .LeftJoin<Location>((lcr, cir, loc) => lcr.S_LOC_CODE == loc.S_CODE && loc.S_AREA_CODE == "HJQ")
                                    .OrderBy((lcr, cir) => cir.T_CREATE)
                                   .Select((lcr, cir, loc) => loc).ToList()  // 返回 Location 对象
                                   .FirstOrDefault();  // 或者 Take(1).ToList()[0]
                        }
                        else
                        {
@@ -1908,7 +1963,7 @@
                            start = db.Queryable<LocCntrRel>()
                                    .LeftJoin<CntrItemRel>((lcr, cir) => lcr.S_CNTR_CODE == cir.S_CNTR_CODE)
                                    .Where((lcr, cir) => cir.S_CNTR_CODE == null)  // 找出未被占用的容器
                                    .LeftJoin<Location>((lcr, cir, loc) => lcr.S_LOC_CODE == loc.S_CODE&&loc.S_AREA_CODE== "HJQ")
                                    .LeftJoin<Location>((lcr, cir, loc) => lcr.S_LOC_CODE == loc.S_CODE && loc.S_AREA_CODE == "HJQ")
                                    .Select((lcr, cir, loc) => loc).ToList()  // 返回 Location 对象
                                    .FirstOrDefault();  // 或者 Take(1).ToList()[0]
                        }
@@ -1952,6 +2007,7 @@
                        Location end = new Location();
                        if (!string.IsNullOrEmpty(model.cntr_code))
                        {
                            #region MyRegion
                            //var list = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToArray();
                            //var S_LOC_CODElist =   db.Queryable<LocCntrRel>().Where(s=>!list.Contains(s.S_CNTR_CODE)).Select(s=>s.S_LOC_CODE).ToArray();
@@ -3088,7 +3144,7 @@
        [ApiExplorerSettings(IgnoreApi = true)]
        public static SimpleResult AddInboundOrder(List<Mater> MaterList, string cntr_code,string S_CNTR_TYPE)
        {
            var result = new SimpleResult();
            var result = new SimpleResult();
            //  var db = new SqlHelper<object>().GetInstance();
            using (var db = new SqlHelper<object>().GetInstance())
            {