| | |
| | | console.log(obj); |
| | | if (obj.event === 'del') { |
| | | layer.confirm('确定撤销选中的分配信息吗?', function (index) { |
| | | var param = { |
| | | Id: parseInt(obj.data.Id) |
| | | }; |
| | | sendData(IP + "/BllSo/DelExportAllot", param, 'post', function (res) { |
| | | console.log(res); |
| | | if (res.code == 0) { //成功 |
| | | layer.msg(res.msg, { |
| | | icon: 1, |
| | | time: 1000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function () { |
| | | refreshTable(); |
| | | }); |
| | | } else { //不成功 |
| | | layer.msg(res.msg, { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function () { }); |
| | | } |
| | | }); |
| | | if (doing) { |
| | | doing = false; |
| | | |
| | | var param = { |
| | | Id: parseInt(obj.data.Id) |
| | | }; |
| | | sendData(IP + "/BllSo/DelExportAllot", param, 'post', function (res) { |
| | | console.log(res); |
| | | if (res.code == 0) { //成功 |
| | | layer.msg(res.msg, { |
| | | icon: 1, |
| | | time: 1000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function () { |
| | | refreshTable(); |
| | | doing = true; |
| | | }); |
| | | } else { //不成功 |
| | | layer.msg(res.msg, { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function () { |
| | | doing = true; |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | }); |
| | | } |
| | | }); |
| | |
| | | /// Nullable:True |
| | | /// </summary> |
| | | public string Demo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 储位深度 |
| | | /// </summary> |
| | | public int Dept { get; set; } |
| | | } |
| | | } |
| | |
| | | SupplierLot = supplierLot, |
| | | InspectMark = "0", |
| | | BitBoxMark = bNum > boxQty ? "1":"0", |
| | | InspectStatus = "", |
| | | InspectStatus = "0", |
| | | |
| | | ProductionTime = DateTime.Parse(productionTime), |
| | | StoreTime = DateTime.Parse(storeTime), |
| | |
| | | //修改出库分配信息 |
| | | allot.CompleteQty += pickQty; |
| | | allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; |
| | | allot.UpdateTime = DateTime.Now; |
| | | Db.Updateable(allot).ExecuteCommand(); |
| | | //删除库存明细 |
| | | Db.Deleteable(stockDetail).ExecuteCommand(); |
| | |
| | | //修改出库分配信息 |
| | | allot.CompleteQty += pickQty; |
| | | allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; |
| | | allot.UpdateTime = DateTime.Now; |
| | | if (allot.Status == "5") |
| | | { |
| | | //判断该托盘是否还存在物料 存在改为待回库 待回库完成后改为已完成 |
| | |
| | | //修改出库分配信息 |
| | | allot.CompleteQty += int.Parse(PickQty); |
| | | allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; |
| | | allot.UpdateTime = DateTime.Now; |
| | | Db.Updateable(allot).ExecuteCommand(); |
| | | |
| | | int isDel = 0; |
| | |
| | | OutMode = "",//出库口 |
| | | |
| | | CreateUser = userId, |
| | | UpdateTime = DateTime.Now |
| | | }; |
| | | |
| | | var fp = Db.Insertable(addAllot).ExecuteReturnEntity(); |
| | |
| | | //修改出库分配信息 |
| | | allot.CompleteQty += pickQty; |
| | | allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; |
| | | allot.UpdateTime = DateTime.Now; |
| | | if (allot.Status == "5") |
| | | { |
| | | //判断该托盘是否还存在物料 存在改为待回库 待回库完成后改为已完成 |
| | |
| | | OutMode = "",//出库口 |
| | | |
| | | CreateUser = userId, |
| | | UpdateTime = DateTime.Now |
| | | }; |
| | | |
| | | var fp = Db.Insertable(addAllot).ExecuteReturnEntity(); |
| | |
| | | //修改出库分配信息 |
| | | allot.CompleteQty += int.Parse(PickQty); |
| | | allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3"; |
| | | |
| | | allot.UpdateTime = DateTime.Now; |
| | | Db.Updateable(allot).ExecuteCommand(); |
| | | |
| | | int isDel = 0; |
| | |
| | | { |
| | | throw new Exception("未查到对应出库类型的物料"); |
| | | } |
| | | |
| | | if (type!="8") |
| | | { |
| | | skuList = skuList.Where(m => m != "100088").ToList(); |
| | | } |
| | | else |
| | | { |
| | | skuList = skuList.Where(m => m == "100088").ToList(); |
| | | } |
| | | //skuList = sku.Select(m => m.SkuNo).ToList(); |
| | | var stockRst = new StockServer(); |
| | | var stockDetailRst = new StockDetailServer(); |
| | |
| | | //库存明细 |
| | | var stockList = Db.Queryable<DataStockDetail>().Where(a => stockIds.Contains(a.Id)).ToList(); |
| | | |
| | | //分配信息 |
| | | var allots = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.SODetailNo == detail.Id && m.Status == "0").ToList(); |
| | | |
| | | //库存总表 |
| | | //var stockz = Db.Queryable<DataStock>().First(d => d.IsDel == "0" && d.SkuNo == detail.SkuNo && d.LotNo == detail.LotNo); |
| | |
| | | { |
| | | throw new Exception("操作失败,出库数量超出库存数量!"); |
| | | } |
| | | //添加分配表信息 |
| | | var allot = new BllExportAllot |
| | | { |
| | | SONo = notice.SONo, |
| | | WaveNo = "", |
| | | SODetailNo = detail.Id, |
| | | StockId = st.StockId, |
| | | LotNo = stock.LotNo, |
| | | LotText = stock.LotText, |
| | | SupplierLot = stock.SupplierLot, |
| | | SkuNo = stock.SkuNo, |
| | | SkuName = stock.SkuName, |
| | | Standard = stock.Standard, |
| | | PalletNo = stock.PalletNo, |
| | | IsBale = stock.IsBale, |
| | | IsBelt = stock.IsBelt, |
| | | Qty = st.Qty, |
| | | CompleteQty = 0, |
| | | Status = "0", |
| | | LogisticsId = notice.LogisticsId, |
| | | IsAdvance = "0", |
| | | OutMode = "",//出库口 |
| | | |
| | | CreateUser = userId, |
| | | CreateTime = DateTime.Now |
| | | }; |
| | | allotList.Add(allot); |
| | | var bl = allots.FirstOrDefault(m => m.StockId == st.StockId); |
| | | if (bl == null) |
| | | { |
| | | //添加分配表信息 |
| | | var allot = new BllExportAllot |
| | | { |
| | | SONo = notice.SONo, |
| | | WaveNo = "", |
| | | SODetailNo = detail.Id, |
| | | StockId = st.StockId, |
| | | LotNo = stock.LotNo, |
| | | LotText = stock.LotText, |
| | | SupplierLot = stock.SupplierLot, |
| | | SkuNo = stock.SkuNo, |
| | | SkuName = stock.SkuName, |
| | | Standard = stock.Standard, |
| | | PalletNo = stock.PalletNo, |
| | | IsBale = stock.IsBale, |
| | | IsBelt = stock.IsBelt, |
| | | Qty = st.Qty, |
| | | CompleteQty = 0, |
| | | Status = "0", |
| | | LogisticsId = notice.LogisticsId, |
| | | IsAdvance = "0", |
| | | OutMode = "",//出库口 |
| | | |
| | | CreateUser = userId, |
| | | CreateTime = DateTime.Now |
| | | }; |
| | | allotList.Add(allot); |
| | | } |
| | | else |
| | | { |
| | | bl.Qty += st.Qty; |
| | | Db.Updateable(bl).ExecuteCommand(); |
| | | } |
| | | |
| | | //库存明细 |
| | | stock.LockQty += st.Qty; |
| | | stock.Status = stock.LockQty == stock.Qty ? "2" : "1"; |
| | |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using Model.ModelDto.DataDto; |
| | | using SqlSugar; |
| | | using WMS.Entity.Context; |
| | | using WMS.Entity.DataEntity; |
| | | using WMS.Entity.SysEntity; |
| | |
| | | decimal qty = 0; //分配的总数量 |
| | | var ztNum = needQty / fullPalletQty;//需要整托数 |
| | | |
| | | var zps = palletList.Where(s => s.Qty >= fullPalletQty).ToList();//整托 |
| | | var sps = palletList.Where(s => s.Qty < fullPalletQty).ToList();//散托(有可能是被锁定了数量的) |
| | | var list = GetDataListOrderByDept(palletList); |
| | | |
| | | var zps = list.Where(s => s.Qty >= fullPalletQty).ToList();//整托 |
| | | var sps = list.Where(s => s.Qty < fullPalletQty).ToList();//散托(有可能是被锁定了数量的) |
| | | |
| | | if (allotSet == 0)//优先零箱(出完零箱出整箱) |
| | | { |
| | |
| | | |
| | | //-------------------------------------------------------------------------------------------------------------- |
| | | |
| | | #region MyRegion |
| | | |
| | | ///// <summary> |
| | | ///// 获得背包承重w,装货物o,从第k件向后考虑,得到的最大价值 |
| | |
| | | // return a > b ? a : b; |
| | | //} |
| | | |
| | | #endregion |
| | | |
| | | |
| | | private List<StockDetailDto> GetDataListOrderByDept(List<DataStockDetail> palletList) |
| | | { |
| | | try |
| | | { |
| | | var Db = DataContext.Db; |
| | | var data = new List<StockDetailDto>(); |
| | | |
| | | //库外托盘 |
| | | var detail1 = palletList.Where(m => string.IsNullOrWhiteSpace(m.LocatNo)).ToList(); |
| | | //平库内托盘 |
| | | var detail2 = palletList.Where(m => m.WareHouseNo == "W02").ToList(); |
| | | //立库内托盘 |
| | | var detail3 = palletList.Where(m => m.WareHouseNo == "W01").ToList(); |
| | | |
| | | var data1 = detail1.Select(m => new StockDetailDto()).ToList(); |
| | | var data2 = detail2.Select(m => new StockDetailDto()).ToList(); |
| | | var data3 = detail3.Select(m => new StockDetailDto()).ToList(); |
| | | foreach (var item in data2) |
| | | { |
| | | var dept = item.LocatNo.Substring(5,2); |
| | | |
| | | item.Dept = int.Parse(dept); |
| | | } |
| | | foreach (var item in data3) |
| | | { |
| | | var dept = item.LocatNo.Substring(6, 2); |
| | | |
| | | item.Dept = int.Parse(dept); |
| | | } |
| | | data.AddRange(data1); |
| | | data.AddRange(data2.OrderBy(m => m.Dept).ToList()); |
| | | data.AddRange(data3.OrderBy(m => m.Dept).ToList()); |
| | | |
| | | return data; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | throw new Exception(e.Message); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | } |