| | |
| | | using NewPdaSqlServer.DB; |
| | | using NewPdaSqlServer.Dto.service; |
| | | using NewPdaSqlServer.entity; |
| | | using NewPdaSqlServer.entity.Base; |
| | | using SqlSugar; |
| | | |
| | | namespace NewPdaSqlServer.service.Warehouse; |
| | |
| | | /// </summary> |
| | | /// <param name="query">查询参数,包含单据号</param> |
| | | /// <returns>待处理的调拨出库明细列表</returns> |
| | | public List<TransferOutDetailModel> GetTransferOutDetailListByBillNo( |
| | | public List<ItemDetailModel> GetTransferOutDetailListByBillNo( |
| | | WarehouseQuery query) |
| | | { |
| | | var p_bill_no = query.billNo; |
| | |
| | | && a.FBillNo == p_bill_no // 匹配单据号 |
| | | && a.FApproveStatus == 1) // 单据已审核 |
| | | .OrderBy((b, a, s) => s.ItemNo) |
| | | .Select((b, a, s) => new TransferOutDetailModel |
| | | .Select((b, a, s) => new ItemDetailModel |
| | | { |
| | | ItemNo = s.ItemNo, |
| | | ItemName = s.ItemName, |
| | |
| | | return result; |
| | | } |
| | | |
| | | public List<TransferOutDetailModel> GetDBCKDetal( |
| | | public List<ItemDetailModel> GetDBCKDetal( |
| | | WarehouseQuery query) |
| | | { |
| | | var p_bill_no = query.billNo; |
| | |
| | | JoinType.Left, b.Pid == a.Id, |
| | | JoinType.Left, b.FMaterialId == s.Id.ToString())) |
| | | .Where((b, a, s) => |
| | | (b.FQty ?? 0) - (b.SQty ?? 0) > 0 // 未完成数量大于0 |
| | | !((b.FQty ?? 0) == (b.SQty ?? 0) && (b.FQty ?? 0) == (b.RQty ?? 0)) // 未完成数量大于0 |
| | | && a.FBillNo == p_bill_no // 匹配单据号 |
| | | && a.FApproveStatus == 1) // 单据已审核 |
| | | .OrderBy((b, a, s) => s.ItemNo) |
| | | .Select((b, a, s) => new TransferOutDetailModel |
| | | .Select((b, a, s) => new ItemDetailModel |
| | | { |
| | | ItemNo = s.ItemNo, |
| | | ItemName = s.ItemName, |
| | | ItemModel = s.ItemModel, |
| | | FQty = b.FQty, // 申请数量 |
| | | SQty = b.SQty, // 已扫数量 |
| | | RQty = b.RQty, |
| | | // 保留其他必要字段... |
| | | Pid = b.Pid.ToString(), |
| | | FMaterialId = b.FMaterialId, |
| | |
| | | /// </summary> |
| | | /// <param name="query">包含单据号、用户名和条码信息的查询参数</param> |
| | | /// <returns>处理后的表单和待处理明细列表</returns> |
| | | public (WarehouseQuery form, List<TransferOutDetailModel> items) |
| | | public (WarehouseQuery form, List<ItemDetailModel> items) |
| | | ScanMoveBarcode(WarehouseQuery query) |
| | | { |
| | | var p_bill_no = query.billNo; |
| | |
| | | /// </summary> |
| | | /// <param name="query">包含单据号、用户名和条码信息的查询参数</param> |
| | | /// <returns>处理后的表单和待处理明细列表</returns> |
| | | public (WarehouseQuery form, List<TransferOutDetailModel> items) |
| | | public (WarehouseQuery form, List<ItemDetailModel> items) |
| | | ScanReceiveBarcode(WarehouseQuery query) |
| | | { |
| | | var p_bill_no = query.billNo; |
| | | var p_item_barcode = query.barcode; |
| | | |
| | | var barinfo = Db.Queryable<MesInvItemStocks>() |
| | | .Where(x => x.ItemBarcode == p_item_barcode) |
| | | .First(); |
| | | |
| | | // 验证单据号 |
| | | if (string.IsNullOrEmpty(p_bill_no)) throw new Exception("请选取单据号!"); |
| | | |
| | | // 查询出库单并验证状态 |
| | | var transferOut = Db.Queryable<TransferOut>() |
| | | .Where(x => x.BillNo == p_bill_no && x.Status == 1) |
| | | var transferOut = Db.Queryable<MesDbck>() |
| | | .Where(x => x.FBillNo == p_bill_no && x.FApproveStatus == 1) |
| | | .First(); |
| | | if (transferOut == null) throw new Exception("未找到调拨申请单或者调拨申请单没审核"); |
| | | |
| | | // 查询条码库存信息并验证 |
| | | var stock = Db.Queryable<MesInvItemStocks>() |
| | | .Where(x => x.ItemBarcode == p_item_barcode |
| | | && x.Quantity > 0 |
| | | && !string.IsNullOrEmpty(x.DepotsCode)) |
| | | var stock = Db.Queryable<MesDbckDetail>() |
| | | .Where(x => x.FMaterialId == barinfo.ItemId.ToString() |
| | | && x.FQty > 0 |
| | | && !string.IsNullOrEmpty(x.FStockInId) |
| | | && !string.IsNullOrEmpty(x.FOwnerInId)) |
| | | .First(); |
| | | if (stock == null) throw new Exception($"库存中无此条码,请核对!{p_item_barcode}"); |
| | | if (stock == null) throw new Exception($"调拨明细中 【物料】或 【调入仓库】或【调入货主】信息不存在,请核对!{p_item_barcode}"); |
| | | |
| | | // 查询物料信息 |
| | | var item = Db.Queryable<MesItems>() |
| | | .Where(x => x.Id == stock.ItemId) |
| | | .Where(x => x.Id.ToString() == stock.FMaterialId) |
| | | .First(); |
| | | if (item == null) throw new Exception("未找到物料"); |
| | | |