hudong
2025-06-04 5dc410803c593d1166b73f2b4a4a2e2b515ef09c
1.所有入库接口 增加最大库存判断逻辑
2.空托出入库 半托 先进先出
2个文件已修改
98 ■■■■ 已修改文件
api/ApiModel.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/WmsSpaHelper.cs 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/ApiModel.cs
@@ -103,7 +103,18 @@
            public string resultMsg { get; set; }
            public List<object> result { get; set; } = new List<object>();
        }
        /// <summary>
        /// mobox 接口返回
        /// </summary>
        public class SimpleResults
        {
            public int resultCode { get; set; }
            public string WLPZBH { get; set; }
            public string WLPZND { get; set; }
            public string resultMsg { get; set; }
            public List<object> result { get; set; } = new List<object>();
        }
        /// <summary>
        /// 测试接收
        /// </summary>
api/WmsSpaHelper.cs
@@ -451,17 +451,17 @@
                            }
                            foreach (var item in items.ITEM)
                            {
                              //bool v=  MaterPanduan(item.WLBM, item.SL);
                              //  if (!v)
                              //  {
                              //      result.resultMsg = "失败";
                              //      result.WLPZBH = items.HEAD.WLPZH;
                              //      result.resultCode = 1;
                              //      result.WLPZND = items.HEAD.WLPZND;
                              //      result.resultMsg = $"物料{item.WLBM}数量超过 库存总数";
                              //      simpleResults.Add(result);
                              //      continue;
                              //  }
                                bool v = MaterPanduan(item.WLBM, item.SL);
                                if (!v)
                                {
                                    result.resultMsg = "失败";
                                    result.WLPZBH = items.HEAD.WLPZH;
                                    result.resultCode = 1;
                                    result.WLPZND = items.HEAD.WLPZND;
                                    result.resultMsg = $"物料{item.WLBM}数量超过 库存总数";
                                    simpleResults.Add(result);
                                    continue;
                                }
                                ///判断是否都有冲销凭证编号
                                if (string.IsNullOrEmpty(item.CXPZH))
                                {
@@ -1224,9 +1224,20 @@
                            po.Details = new List<TN_Inbound_Detail>();
                            if (itemwlpz.ITEM.Count > 0)
                            {
                                itemwlpz.ITEM.ForEach(a =>
                                {
                                foreach (var a in itemwlpz.ITEM)
                                {
                                    bool v = MaterPanduan(a.WLBM, a.SL);
                                    if (!v)
                                    {
                                        result.resultMsg = "失败";
                                        result.WLPZBH = itemwlpz.HEAD.WLPZH;
                                        result.resultCode = 1;
                                        result.WLPZND = itemwlpz.HEAD.ND;
                                        result.resultMsg = $"物料{a.WLBM}数量超过 库存总数";
                                        simpleResults.Add(result);
                                        continue;
                                    }
                                    po.Details.Add(new TN_Inbound_Detail
                                    {
                                        S_IO_NO = itemwlpz.HEAD.WLPZH,
@@ -1248,7 +1259,7 @@
                                    });
                                    //}
                                });
                                }
                                db.Insertable<TN_Inbound_Order>(po).ExecuteCommand();
                                db.Insertable<TN_Inbound_Detail>(po.Details).ExecuteCommand();
                                db.CommitTran();
@@ -1262,8 +1273,19 @@
                            var Details = new List<TN_Inbound_Detail>();
                            if (itemwlpz.ITEM.Count > 0)
                            {
                                itemwlpz.ITEM.ForEach(a =>
                                foreach (var a in itemwlpz.ITEM)
                                {
                                    bool v = MaterPanduan(a.WLBM, a.SL);
                                    if (!v)
                                    {
                                        result.resultMsg = "失败";
                                        result.WLPZBH = itemwlpz.HEAD.WLPZH;
                                        result.resultCode = 1;
                                        result.WLPZND = itemwlpz.HEAD.ND;
                                        result.resultMsg = $"物料{a.WLBM}数量超过 库存总数";
                                        simpleResults.Add(result);
                                        continue;
                                    }
                                    if (po.Details.Where(s => s.S_ITEM_CODE == a.WLBM).Count() > 0)
                                    {
                                        var poq = po.Details.Where(s => s.S_ITEM_CODE == a.WLBM).FirstOrDefault();
@@ -1292,7 +1314,7 @@
                                        });
                                    }
                                });
                                }
                                db.Insertable<TN_Inbound_Detail>(Details).ExecuteCommand();
                                db.CommitTran();
@@ -1371,8 +1393,20 @@
                                po.Details = new List<TN_Inbound_Detail>();
                                if (itemwlpz.ITEM.Count > 0)
                                {
                                    itemwlpz.ITEM.ForEach(a =>
                                    foreach (var a in itemwlpz.ITEM)
                                    {
                                        bool v = MaterPanduan(a.WLBH, a.SL);
                                        if (!v)
                                        {
                                            result.resultMsg = "失败";
                                            result.WLPZBH = itemwlpz.HEAD.WLPZBH;
                                            result.resultCode = 1;
                                            result.WLPZND = itemwlpz.HEAD.WLPZNF;
                                            result.resultMsg = $"物料{a.WLBH}数量超过 库存总数";
                                            simples.Add(result);
                                            continue;
                                        }
                                        #region 不需要
                                        //if (a.ITEM1.Select(s => s.XLH).Count() > 0)//判断序列号是否为多个
                                        //{
@@ -1424,7 +1458,7 @@
                                        });
                                        //}
                                    });
                                    }
                                    db.Insertable<TN_Inbound_Order>(po).ExecuteCommand();
                                    db.Insertable<TN_Inbound_Detail>(po.Details).ExecuteCommand();
                                    db.CommitTran();
@@ -1436,8 +1470,20 @@
                                var Details = new List<TN_Inbound_Detail>();
                                if (itemwlpz.ITEM.Count > 0)
                                {
                                    itemwlpz.ITEM.ForEach(a =>
                                    foreach (var a in itemwlpz.ITEM)
                                    {
                                        bool v = MaterPanduan(a.WLBH, a.SL);
                                        if (!v)
                                        {
                                            result.resultMsg = "失败";
                                            result.WLPZBH = itemwlpz.HEAD.WLPZBH;
                                            result.resultCode = 1;
                                            result.WLPZND = itemwlpz.HEAD.WLPZNF;
                                            result.resultMsg = $"物料{a.WLBH}数量超过 库存总数";
                                            simples.Add(result);
                                            continue;
                                        }
                                        if (po.Details.Where(s => s.S_ITEM_CODE == a.WLBH).Count() > 0)
                                        {
                                            var poq = po.Details.Where(s => s.S_ITEM_CODE == a.WLBH).FirstOrDefault();
@@ -1471,7 +1517,7 @@
                                            });
                                        }
                                    });
                                    }
                                    db.Insertable<TN_Inbound_Detail>(Details).ExecuteCommand();
                                    db.CommitTran();
@@ -1931,6 +1977,7 @@
                                   .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]
                        }