Administrator
2024-03-06 35592940d7f7d0cce32fe7fbb0fc0c661ba5d292
Merge branch 'master' of https://gitee.com/liudongl/jc24-wms
1个文件已修改
68 ■■■■ 已修改文件
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -2404,7 +2404,7 @@
                }
                if (notice.Status != "0" && notice.Status != "1")
                {
                    throw new Exception("参数异常,请检查状态是否为等待执行或部分分配或来源是否是WMS");
                    throw new Exception("参数异常,请检查状态是否为等待执行或部分分配;");
                }
                //出库单明细
                var detailList = Db.Queryable<BllExportNoticeDetail>().Where(m => m.IsDel == "0" && m.SONo == soNo && (m.AllotQty - m.Qty) <= 0).ToList();
@@ -2439,32 +2439,46 @@
                        //判断单号是否指定批次
                        if (!string.IsNullOrWhiteSpace(detail.LotNo))
                        {
                            stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && m.LotNo == detail.LotNo && m.IsDel == "0").ToList();
                            if (detail.LotNo.Contains(";"))
                            {
                                var lotNoList = detail.LotNo.Split(";");
                                var lotNoList2 = new List<string>();
                                foreach (var lotNoItem in lotNoList)
                                {
                                    lotNoList2.Add(lotNoItem);
                                }
                                stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && lotNoList2.Contains(m.LotNo) && m.IsDel == "0").ToList();
                            }
                            else
                            {
                                stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && m.LotNo == detail.LotNo && m.IsDel == "0").ToList();
                            }
                        }
                        else
                        {
                            stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && string.IsNullOrWhiteSpace(m.LotNo) && m.IsDel == "0").ToList();
                            stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo  && m.IsDel == "0").ToList(); //&& string.IsNullOrWhiteSpace(m.LotNo)
                        }
                        if (stockDetail.Count < 1)
                        {
                            throw new Exception("库存不足,无可出库库存");
                        }
                        //if (notice.Type == "0" || notice.Type == "1")//成品、原辅料出库
                        //{
                        stockDetail = stockDetail.Where(m => m.InspectStatus == "1").ToList();
                        //}
                        //else if (notice.Type == "2" || notice.Type == "3")//成品、原辅料出库(不合格)
                        //{
                        //    stockDetail = stockDetail.Where(m => m.InspectStatus == "2").ToList();
                        //}
                        //else if (notice.Type == "4")//取样出库
                        //{
                        //    stockDetail = stockDetail.Where(m => m.InspectStatus == "0").ToList();
                        //}
                        //将库存明细按深度进行排序 深度1在前 深度2在后
                        //stockDetail = stockDetail.OrderBy(d => int.Parse(d.LocatNo.Substring(6, 2))).ToList();
                        //0:成品出库、1:领料出库、2:抽检出库、3:物料取样出库、4:不合格品出库、5:中间品出库、6:代储出库、7:其他出库、8:寄存出库
                        if (notice.Type == "0" || notice.Type == "1" || notice.Type == "2" || notice.Type == "5")//成品、原辅料出库
                        {
                            stockDetail = stockDetail.Where(m => m.InspectStatus == "1").ToList();
                        }
                        else if (notice.Type == "3" || notice.Type == "6" || notice.Type == "7" || notice.Type == "8")//取样出库
                        {
                            stockDetail = stockDetail.Where(m => m.InspectStatus == "0").ToList();
                        }
                        else if (notice.Type == "4")//不合格出库
                        {
                            stockDetail = stockDetail.Where(m => m.InspectStatus == "2").ToList();
                        }
                        #region 包装信息
                        var pack = packList.FirstOrDefault(p => p.PackagNo == detail.PackagNo);
@@ -2556,6 +2570,22 @@
                            }
                            var sd = Db.Updateable(s).UpdateColumns(it => new { it.LockQty, it.Status }).ExecuteCommand();
                            if (notice.Type == "1" || notice.Type == "5" || notice.Type == "6" || notice.Type == "7" || notice.Type == "8")//1:领料出库、
                            {
                                if (string.IsNullOrWhiteSpace(detail.LotNo))
                                {
                                    detail.LotNo = s.LotNo;
                                }
                                else
                                {
                                    if (!detail.LotNo.Contains(s.LotNo))
                                    {
                                        detail.LotNo += ";" + s.LotNo;
                                    }
                                }
                            }
                        }
                        detail.AllotQty += qty;
                        detail.UpdateUser = userId;
@@ -2564,7 +2594,7 @@
                        {
                            detail.Status = "1";
                        }
                        //库存总表
                        //var stock = Db.Queryable<DataStock>().First(d => d.IsDel == "0" && d.SkuNo == detail.SkuNo && d.LotNo == detail.LotNo);
                        //stock.LockQty += qty;