| | |
| | | { |
| | | throw new Exception("单据号不可为空!"); |
| | | } |
| | | if (model.AsnDetailNo == 0) |
| | | { |
| | | throw new Exception("单据明细不可为空!"); |
| | | } |
| | | //if (model.AsnDetailNo == 0) |
| | | //{ |
| | | // throw new Exception("单据明细不可为空!"); |
| | | //} |
| | | //根据单据号获取入库单总单 |
| | | notice = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.AsnNo && a.OrderCode == model.OrderCode); |
| | | notice = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.AsnNo); |
| | | //notice = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.AsnNo && a.OrderCode == model.OrderCode); |
| | | if (notice.Status != "0" && notice.Status != "1" && notice.Status != "2") |
| | | { |
| | | throw new Exception("该单据已关单!"); |
| | |
| | | throw new Exception("批次不能为空!"); |
| | | } |
| | | // 验证入库单明细是否存在 |
| | | detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailNo && m.ASNNo == model.AsnNo && m.LotNo == model.LotNo && m.SkuNo == model.SkuNo); |
| | | detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo && m.LotNo == model.LotNo && m.SkuNo == model.SkuNo); |
| | | //detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailNo && m.ASNNo == model.AsnNo && m.LotNo == model.LotNo && m.SkuNo == model.SkuNo); |
| | | if (detail == null) |
| | | { |
| | | throw new Exception("当前物料及批次与单据无关联,请核实!"); |
| | |
| | | #endregion |
| | | |
| | | //判断托盘绑定信息中是否有 |
| | | var bind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNDetailNo == model.AsnDetailNo && m.PalletNo == model.PalletNo && m.Status != "2"); |
| | | var bind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNDetailNo == detail.Id && m.PalletNo == model.PalletNo && m.Status != "2"); |
| | | var bindId = 0; |
| | | var boxQtyZong = model.Detail.Sum(m => m.Qty); |
| | | if (bind == null) |
| | | { |
| | | bind = new BllPalletBind |
| | | { |
| | | ASNNo = model.AsnNo, |
| | | ASNDetailNo = model.AsnDetailNo, |
| | | ASNNo = notice.ASNNo, |
| | | ASNDetailNo = detail.Id, |
| | | PalletNo = model.PalletNo, |
| | | PalletNo2 = "", |
| | | PalletNo3 = "", |
| | | Qty = model.Qty, |
| | | Qty = boxQtyZong, |
| | | FullQty = pNum, |
| | | Status = "0",//等待执行 |
| | | Type = model.Type, //托盘类型 0物料托 1空托盘托 |
| | |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("组盘信息重复"); |
| | | //throw new Exception("组盘信息重复"); |
| | | return; |
| | | } |
| | | |
| | | |
| | |
| | | { |
| | | var boxInfo = new BllBoxInfo() |
| | | { |
| | | ASNNo = model.AsnNo, |
| | | ASNDetailNo = model.AsnDetailNo, |
| | | ASNNo = notice.ASNNo, |
| | | ASNDetailNo = detail.Id, |
| | | OrderCode = box.OrderCode, |
| | | BindNo = bindId, |
| | | BoxNo = box.BoxNo, |
| | |
| | | } |
| | | else if (model.Type == "0")//物料托 |
| | | { |
| | | if (model.Detail.Count(m => m.OrderCode != detail.OrderDetailCode) > 0) |
| | | { |
| | | throw new Exception($"托盘绑定明细中,含有箱码生产工单不一致"); |
| | | } |
| | | //if (model.Detail.Count(m => m.OrderCode != detail.OrderDetailCode) > 0) |
| | | //{ |
| | | // throw new Exception($"托盘绑定明细中,含有箱码生产工单不一致"); |
| | | //} |
| | | if (model.Detail.Count(m => m.SkuNo != model.SkuNo || m.LotNo != model.LotNo) > 0) |
| | | { |
| | | throw new Exception($"托盘绑定明细中,含有箱码物料或批次不一致"); |
| | |
| | | boxFullQty += box.Qty; |
| | | var boxInfo = new BllBoxInfo() |
| | | { |
| | | ASNNo = model.AsnNo, |
| | | ASNDetailNo = model.AsnDetailNo, |
| | | ASNNo = detail.ASNNo, |
| | | ASNDetailNo = detail.Id, |
| | | OrderCode = box.OrderCode, |
| | | BindNo = bindId, |
| | | BoxNo = box.BoxNo, |
| | |
| | | Standard = box.Standard, |
| | | PackageStandard = box.PackageStandard, |
| | | StoreTime = box.StoreTime, |
| | | QtyCount = (int)box.QtyCount, |
| | | QtyOrd = (int)box.QtyOrd, |
| | | QtyCount = box.QtyCount.HasValue? (int)box.QtyCount : 0, |
| | | QtyOrd = box.QtyOrd.HasValue ? (int)box.QtyOrd : 0, |
| | | CreateUser = userId, |
| | | CreateTime = comTime, |
| | | }; |
| | |
| | | // 更改托盘使用状态 |
| | | var sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{model.PalletNo}';"; |
| | | //添加托盘记录表数据 |
| | | sqlStr += $"insert into LogPalletTrack values('{model.PalletNo}','{model.AsnNo}','组盘','0',getDate(),{userId},NULL,NULL);"; |
| | | sqlStr += $"insert into LogPalletTrack values('{model.PalletNo}','{notice.ASNNo}','组盘','0',getDate(),{userId},NULL,NULL);"; |
| | | Db.Ado.ExecuteCommand(sqlStr); |
| | | new OperationASNServer().AddLogOperationAsn("PDA模块", "托盘绑定", model.AsnNo, "添加", $"添加了托盘码为:{model.PalletNo}的组盘信息", userId); |
| | | new OperationASNServer().AddLogOperationAsn("PDA模块", "托盘绑定", notice.ASNNo, "添加", $"添加了托盘码为:{model.PalletNo}的组盘信息", userId); |
| | | |
| | | Db.CommitTran(); |
| | | } |
| | |
| | | .GroupBy((a, b) => new |
| | | { |
| | | a.PalletNo, |
| | | a.BindNo, |
| | | a.BoxNo, |
| | | a.SkuNo, |
| | | a.SkuName, |
| | |
| | | .Select((a, b) => new BoxInfoDto() |
| | | { |
| | | BoxNo = a.BoxNo, |
| | | BindNo = a.BindNo, |
| | | PalletNo = a.PalletNo, |
| | | Qty = SqlFunc.AggregateSum(a.Qty), |
| | | FullQty = a.FullQty, |
| | |
| | | /// <param name="boxNo">箱码</param> |
| | | /// <param name="boxNo3">支码</param> |
| | | /// <returns></returns> |
| | | public List<BoxInfoDto> GetBoxInfoByBoxNo(string boxNo, string boxNo3) |
| | | public List<BoxInfoDto> GetBoxInfoByBoxNo(string bindNo, string boxNo, string boxNo3) |
| | | { |
| | | Expression<Func<BllBoxInfo, bool>> item = Expressionable.Create<BllBoxInfo>() |
| | | .AndIF(!string.IsNullOrWhiteSpace(bindNo), it => it.BindNo == int.Parse(bindNo)) |
| | | .AndIF(!string.IsNullOrWhiteSpace(boxNo), it => it.BoxNo == boxNo.Trim()) |
| | | .AndIF(!string.IsNullOrWhiteSpace(boxNo3), it => it.BoxNo3.Contains(boxNo3.Trim())) |
| | | .And(m => m.IsDel == "0") |
| | |
| | | SkuName = boxInfo.SkuName, |
| | | Standard = sku.Standard, |
| | | ProductionTime = boxInfo.ProductionTime, |
| | | ExpirationTime = boxInfo.ExpirationTime, |
| | | SupplierLot = boxInfo.SupplierLot, |
| | | InspectStatus = boxInfo.InspectStatus, |
| | | InspectMark = boxInfo.InspectMark, |
| | |
| | | SkuName = demo.SkuName, |
| | | Standard = noticeDetail.Standard, |
| | | ProductionTime = demo.ProductionTime, |
| | | ExpirationTime = demo.ExpirationTime, |
| | | SupplierLot = demo.SupplierLot, |
| | | InspectStatus = demo.InspectStatus, |
| | | InspectMark = demo.InspectMark, |