| | |
| | | /// 获取未完成的调拨出库单号列表 |
| | | /// </summary> |
| | | /// <returns>未完成的调拨出库单号列表</returns> |
| | | public List<string> GetTransferOutNoList() |
| | | public List<string> GetTransferOutNoList(WarehouseQuery query, dynamic RequestInfo) |
| | | { |
| | | // 先从数据库获取Transfer_Out_ETAIL表的数据 |
| | | var transferOutDetails = Db.Queryable<MesDbckDetail>().ToList(); |
| | | var orgId = RequestInfo.OrgId; |
| | | |
| | | // 使用LINQ对获取的数据进行分组和筛选 |
| | | // 筛选条件:申请数量(sq)不等于已扫数量(ys)的记录 |
| | | var result = transferOutDetails |
| | | .GroupBy(x => x.Pid) |
| | | .Select(g => new |
| | | { |
| | | pid = g.Key, |
| | | sq = g.Sum(x => x.FQty), // 申请数量合计 |
| | | ys = g.Sum(x => x.SQty), // 调出已扫数量合计 |
| | | rs = g.Sum(x => x.RQty), // 调入已扫数量合计 |
| | | }) |
| | | .Where(x => !((x.sq ?? 0) == (x.ys ?? 0) && (x.sq ?? 0) == (x.rs ?? 0))) |
| | | .Select(x => x.pid) |
| | | .ToList(); |
| | | if (orgId == null) |
| | | throw new Exception("组织不存在!"); |
| | | |
| | | // 根据pid查询对应的出库单号 |
| | | var billNos = Db.Queryable<MesDbck>() |
| | | .Where(x => result.Contains(x.Id) && x.FApproveStatus == 1) |
| | | .OrderBy(x => x.FCreateDate) |
| | | .Select(x => x.FBillNo) |
| | | .ToList(); |
| | | |
| | | return billNos; |
| | | // 获取未完成的退料单号列表 |
| | | var parameters = new[] |
| | | { |
| | | new SugarParameter("@pi_orgId", orgId), |
| | | new SugarParameter("@inP1", null), |
| | | new SugarParameter("@inP2", null), |
| | | new SugarParameter("@inP3", null), |
| | | new SugarParameter("@inP4", null) |
| | | }; |
| | | try |
| | | { |
| | | // 返回单号字符串列表Get_Qt_ck_List |
| | | var list = Db.Ado.SqlQuery<string>( |
| | | "EXEC prc_pda_dbck_list @pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters); |
| | | return list; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception($"{ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | /// <param name="query">查询参数,包含单据号</param> |
| | | /// <returns>待处理的调拨出库明细列表</returns> |
| | | public ProductionPickDto GetTransferOutDetailListByBillNo( |
| | | public dynamic GetTransferOutDetailListByBillNo(WarehouseQuery query, dynamic RequestInfo) |
| | | { |
| | | if (string.IsNullOrEmpty(query.billNo)) |
| | | throw new Exception("请选单据号!"); |
| | | |
| | | if (query == null) |
| | | throw new ArgumentNullException(nameof(query), "参数对象不能为null"); |
| | | |
| | | if (string.IsNullOrEmpty(query.billNo?.ToString())) |
| | | throw new ArgumentException("单据号不能为空", nameof(query.billNo)); |
| | | |
| | | var orgId = RequestInfo.OrgId; |
| | | |
| | | if (orgId == null) |
| | | throw new Exception("组织不存在!"); |
| | | |
| | | // 获取未完成的发货通知单明细 |
| | | var parameters = new[] |
| | | { |
| | | new SugarParameter("@billNo", query.billNo), |
| | | new SugarParameter("@pi_orgId",orgId), |
| | | new SugarParameter("@inP1", null), |
| | | new SugarParameter("@inP2", null), |
| | | new SugarParameter("@inP3", null), |
| | | new SugarParameter("@inP4", null) |
| | | }; |
| | | try |
| | | { |
| | | List<dynamic>? blDetails = Db.Ado.SqlQuery<dynamic>( |
| | | "EXEC prc_pda_dbck_detailList @billNo,@pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters); |
| | | var items = blDetails.Where(x => x.DSQty > 0).ToList(); // 待扫物料 |
| | | var ysitems = blDetails.Where(x => x.SQty > 0).ToList(); // 已扫物料 |
| | | |
| | | return new |
| | | { |
| | | //tbBillList = result, |
| | | blDetails = blDetails.Where(x => x.DSQty > 0).ToList(), |
| | | ysDetails = blDetails.Where(x => x.SQty > 0).ToList(), |
| | | Count = items.Count + ysitems.Count |
| | | }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // 保留原有异常处理逻辑 |
| | | throw new Exception($"{ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 根据单据号获取待处理的调拨出库明细列表 |
| | | /// </summary> |
| | | /// <param name="query">查询参数,包含单据号</param> |
| | | /// <returns>待处理的调拨出库明细列表</returns> |
| | | public ProductionPickDto GetTransferInDetailListByBillNo( |
| | | WarehouseQuery query) |
| | | { |
| | | if (string.IsNullOrEmpty(query.billNo)) throw new Exception("调拨单号为空"); |
| | |
| | | |
| | | if (dbck.Count < 1) throw new Exception("调拨单号不存在或未审核!"); |
| | | |
| | | var sql2 = string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,b.FQty FQty,b.SQty SQty,b.FQty - b.SQty DSQty , |
| | | var sql2 = string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,b.FQty FQty,b.SQty SQty,b.RQty RQty,b.SQty - b.RQty DSQty , |
| | | dbo.F_QX_GETRECODEPOTSE(B.FMATERIALID,'','','') as RecoKw |
| | | FROM MES_DBCK_DETAIL B |
| | | LEFT JOIN MES_DBCK A ON A.ID = B.pid |
| | |
| | | |
| | | var DS_list = womdabs.Where(s => s.DSQty > 0).ToList(); |
| | | |
| | | var YS_list = womdabs.Where(s => s.SQty > 0).ToList(); |
| | | var YS_list = womdabs.Where(s => s.RQty > 0).ToList(); |
| | | |
| | | //var p_bill_no = query.billNo; |
| | | |
| | |
| | | .Where(x => x.ItemBarcode == p_item_barcode) |
| | | .First(); |
| | | |
| | | // 验证单据号 |
| | | if (string.IsNullOrEmpty(p_bill_no)) throw new Exception("请选取单据号!"); |
| | | |
| | | // 查询出库单并验证状态 |
| | | var transferOut = Db.Queryable<MesDbck>() |
| | | .Where(x => x.FBillNo == p_bill_no && x.FApproveStatus == 1) |
| | | .First(); |
| | | if (transferOut == null) throw new Exception("未找到调拨申请单或者调拨申请单没审核"); |
| | | //// 验证单据号 |
| | | //if (string.IsNullOrEmpty(p_bill_no)) throw new Exception("请选取单据号!"); |
| | | |
| | | //// 查询出库单并验证状态 |
| | | //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<MesDbckDetail>() |
| | |
| | | new("@outMsg", SqlDbType.NVarChar, 300), |
| | | new("@outSum", SqlDbType.NVarChar, 300), |
| | | new("@barcode_num", SqlDbType.NVarChar, 300), |
| | | new("@split_num", SqlDbType.NVarChar, 300), |
| | | new("@outBillNo", SqlDbType.NVarChar, 300), |
| | | new("@c_user", query.userName), |
| | | new("@p_bill_no", p_bill_no), |
| | | new("@p_item_barcode", p_item_barcode), |
| | |
| | | _intSum = parameters[1].Value.ToString(); |
| | | |
| | | var barcodeNum = parameters[2].Value.ToString(); |
| | | var splitNum = parameters[3].Value.ToString(); |
| | | var outBillNo = parameters[3].Value.ToString(); |
| | | |
| | | var result = Convert.ToInt32(_intSum); |
| | | if (result <= 0) throw new Exception(_strMsg); |
| | | |
| | | query.itemNo = item.ItemNo; |
| | | query.Num = Convert.ToDecimal(barcodeNum); |
| | | query.Fum = Convert.ToDecimal(splitNum); |
| | | //query.Fum = Convert.ToDecimal(splitNum); |
| | | query.billNo = outBillNo; |
| | | |
| | | // 返回更新后的表单和待处理明细 |
| | | return (query, GetDBCKDetal(query)); |