| | |
| | | using Masuit.Tools; |
| | | using System.Data; |
| | | using System.Data.SqlClient; |
| | | using System.Text; |
| | | using NewPdaSqlServer.DB; |
| | | using NewPdaSqlServer.Dto.service; |
| | | using NewPdaSqlServer.entity; |
| | | using NewPdaSqlServer.entity.Base; |
| | | using NewPdaSqlServer.util; |
| | | using SqlSugar; |
| | | using System.Data; |
| | | using System.Text; |
| | | using System.Data.SqlClient; |
| | | using DbType = System.Data.DbType; |
| | | |
| | | namespace NewPdaSqlServer.service.Warehouse; |
| | | |
| | |
| | | new("@type", query.type), |
| | | new("@dateTime", query.dateTime == "" ? null : query.dateTime), |
| | | new("@lineNo", query.lineNo) |
| | | |
| | | }; |
| | | var sql2 = new StringBuilder("exec prc_pda_itemBl_billNoList @type,@orgId,@dateTime,@lineNo"); |
| | | var sql2 = new StringBuilder( |
| | | "exec prc_pda_itemBl_billNoList @type,@orgId,@dateTime,@lineNo"); |
| | | |
| | | var LineInfo = Db.Ado.SqlQuery<dynamic>(sql2.ToString(), sqlParams); |
| | | |
| | |
| | | |
| | | // 检查补料单是否存在且为生产补料类型 |
| | | var mesItemBl = Db.Queryable<MesItemBl>() |
| | | .Where(a => a.BlNo == query.billNo && a.Bl008 == query.Type && a.Bl018 == true) |
| | | .Where(a => |
| | | a.BlNo == query.billNo && a.Bl008 == query.Type && |
| | | a.Bl018 == true) |
| | | .First(); |
| | | |
| | | if (mesItemBl == null) |
| | |
| | | // .ToList(); |
| | | |
| | | //return (mesItemBl.Bl001, blDetails); |
| | | var sql = string.Format(@"SELECT c.id as ItemId,c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,A.BLD007 FQty,A.BLD008 SQty,A.BLD007 - A.BLD008 DSQty, |
| | | var sql = string.Format( |
| | | @"SELECT c.id as ItemId,c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,A.BLD007 FQty,A.BLD008 SQty,A.BLD007 - A.BLD008 DSQty, |
| | | dbo.F_QX_GETRECODEPOTSE(A.bld012,'','','') as RecoKw,D.daa001 |
| | | fROM MES_ITEM_BL_DETAIL A |
| | | LEFT JOIN MES_ITEM_BL B ON A.MID = B.ID |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 生产工单补料扫码 |
| | | /// 生产工单补料扫码 |
| | | /// 扫描条码 prc_rf_pda_scan_zout_barcode3 |
| | | /// </summary> |
| | | /// <param name="query">查询参数</param> |
| | |
| | | throw new Exception("申请单号不能为空!"); |
| | | |
| | | // 准备调用存储过程的参数 |
| | | string outMsg = ""; |
| | | int outSum = -1; |
| | | var outMsg = ""; |
| | | var outSum = -1; |
| | | decimal barcodeNum = 0; |
| | | decimal splitNum = 0; |
| | | |
| | | try |
| | | { |
| | | // 调用存储过程 |
| | | var parameters = new SqlParameter[] |
| | | var parameters = new[] |
| | | { |
| | | new SqlParameter("@C_USER", SqlDbType.NVarChar, 100) { Value = query.userName ?? string.Empty }, |
| | | new SqlParameter("@P_BILL_NO", SqlDbType.NVarChar, 50) { Value = query.billNo ?? string.Empty }, |
| | | new SqlParameter("@P_ITEM_BARCODE", SqlDbType.NVarChar, 100) { Value = query.barcode ?? string.Empty }, |
| | | new SqlParameter("@P_BL_NO", SqlDbType.NVarChar, 100) { Value = query.blNo ?? string.Empty }, |
| | | new SqlParameter("@P_TYPE", SqlDbType.NVarChar, 20) { Value = query.Type ?? string.Empty }, |
| | | new SqlParameter("@OUT_MSG", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output }, |
| | | new SqlParameter("@OUT_SUM", SqlDbType.Int) { Direction = ParameterDirection.Output }, |
| | | new SqlParameter("@BARCODE_NUM", SqlDbType.Decimal) { |
| | | Direction = ParameterDirection.Output, |
| | | Precision = 18, |
| | | Scale = 10 |
| | | }, |
| | | new SqlParameter("@SPLIT_NUM", SqlDbType.Decimal) { |
| | | Direction = ParameterDirection.Output, |
| | | Precision = 18, |
| | | Scale = 10 |
| | | } |
| | | new SqlParameter("@C_USER", SqlDbType.NVarChar, 100) |
| | | { Value = query.userName ?? string.Empty }, |
| | | new SqlParameter("@P_BILL_NO", SqlDbType.NVarChar, 50) |
| | | { Value = query.billNo ?? string.Empty }, |
| | | new SqlParameter("@P_ITEM_BARCODE", SqlDbType.NVarChar, 100) |
| | | { Value = query.barcode ?? string.Empty }, |
| | | new SqlParameter("@P_BL_NO", SqlDbType.NVarChar, 100) |
| | | { Value = query.blNo ?? string.Empty }, |
| | | new SqlParameter("@P_TYPE", SqlDbType.NVarChar, 20) |
| | | { Value = query.Type ?? string.Empty }, |
| | | new SqlParameter("@OUT_MSG", SqlDbType.NVarChar, 2000) |
| | | { Direction = ParameterDirection.Output }, |
| | | new SqlParameter("@OUT_SUM", SqlDbType.Int) |
| | | { Direction = ParameterDirection.Output }, |
| | | new SqlParameter("@BARCODE_NUM", SqlDbType.Decimal) |
| | | { |
| | | Direction = ParameterDirection.Output, |
| | | Precision = 18, |
| | | Scale = 10 |
| | | }, |
| | | new SqlParameter("@SPLIT_NUM", SqlDbType.Decimal) |
| | | { |
| | | Direction = ParameterDirection.Output, |
| | | Precision = 18, |
| | | Scale = 10 |
| | | } |
| | | }; |
| | | |
| | | // 执行存储过程 |
| | | string procedureName = "PRC_PDA_SCBLCL"; |
| | | int res = DbHelperSQL.RunProcedure_NonQuery(procedureName, parameters); |
| | | var procedureName = "PRC_PDA_SCBLCL"; |
| | | var res = |
| | | DbHelperSQL.RunProcedure_NonQuery(procedureName, parameters); |
| | | |
| | | // 获取输出参数 |
| | | outMsg = parameters[5].Value?.ToString() ?? ""; |
| | | outSum = parameters[6].Value as int? ?? 0; // 默认值根据需求调整 |
| | | outSum = parameters[6].Value as int? ?? 0; // 默认值根据需求调整 |
| | | barcodeNum = parameters[7].Value as decimal? ?? 0m; |
| | | splitNum = parameters[8].Value as decimal? ?? 0m; |
| | | |
| | |
| | | query.Num = barcodeNum; |
| | | |
| | | // 获取待发料明细列表 |
| | | var pendingList = Db.Queryable<MesItemBl, MesItemBlDetail>((a, b) => |
| | | var pendingList = Db |
| | | .Queryable<MesItemBl, MesItemBlDetail>((a, b) => |
| | | new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) |
| | | .Where((a, b) => a.BlNo == query.blNo |
| | | && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) |
| | | && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) |
| | | .Select((a, b) => new MesItemBlDetail |
| | | { |
| | | Bld012 = b.Bld012, |
| | |
| | | |
| | | return (query, pendingList); |
| | | } |
| | | else if (outSum == -1) // 处理失败 |
| | | { |
| | | |
| | | if (outSum == -1) // 处理失败 |
| | | throw new Exception(outMsg); |
| | | } |
| | | else if (outSum == 1) // 处理成功 |
| | | |
| | | if (outSum == 1) // 处理成功 |
| | | { |
| | | // 获取最终的待发料明细列表 |
| | | var finalPendingList = Db.Queryable<MesItemBl, MesItemBlDetail>( |
| | | (a, b) => new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) |
| | | var finalPendingList = Db |
| | | .Queryable<MesItemBl, MesItemBlDetail>((a, b) => |
| | | new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) |
| | | .Where((a, b) => a.BlNo == query.blNo |
| | | && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) |
| | | && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) |
| | | .Select((a, b) => new MesItemBlDetail |
| | | { |
| | | Bld012 = b.Bld012, |
| | |
| | | query.message = outMsg; |
| | | return (query, finalPendingList); |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("未知的处理结果状态"); |
| | | } |
| | | |
| | | throw new Exception("未知的处理结果状态"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | public ProductionPickDto SplitBarcode( |
| | | WarehouseQuery query) |
| | | { |
| | | |
| | | // Validate input parameters |
| | | if (string.IsNullOrEmpty(query.userName)) |
| | | throw new Exception("用户名不能为空!"); |
| | |
| | | |
| | | // Prepare parameters for the stored procedure |
| | | var parameters = new List<SugarParameter> |
| | | { |
| | | new SugarParameter("@C_USER", query.userName), |
| | | new SugarParameter("@P_BILL_NO", query.billNo), |
| | | new SugarParameter("@P_ITEM_BARCODE", query.barcode), |
| | | new SugarParameter("@P_BL_NO", query.blNo), |
| | | new SugarParameter("@P_TYPE", query.Type), |
| | | new SugarParameter("@NUM", query.Num), |
| | | new SugarParameter("@OUT_MSG", "", System.Data.DbType.String, ParameterDirection.Output), |
| | | new SugarParameter("@OUT_SUM", 0, System.Data.DbType.Int32, ParameterDirection.Output), |
| | | new SugarParameter("@OUT_CF_BAR", "", System.Data.DbType.String, ParameterDirection.Output) |
| | | }; |
| | | { |
| | | new("@C_USER", query.userName), |
| | | new("@P_BILL_NO", query.billNo), |
| | | new("@P_ITEM_BARCODE", query.barcode), |
| | | new("@P_BL_NO", query.blNo), |
| | | new("@P_TYPE", query.Type), |
| | | new("@NUM", query.Num), |
| | | new("@OUT_MSG", "", DbType.String, ParameterDirection.Output), |
| | | new("@OUT_SUM", 0, DbType.Int32, ParameterDirection.Output), |
| | | new("@OUT_CF_BAR", "", DbType.String, ParameterDirection.Output) |
| | | }; |
| | | |
| | | // Execute the stored procedure |
| | | Db.Ado.UseStoredProcedure().ExecuteCommand("PRC_PDA_SCBLCL_CF", parameters); |
| | | Db.Ado.UseStoredProcedure() |
| | | .ExecuteCommand("PRC_PDA_SCBLCL_CF", parameters); |
| | | |
| | | // Get output parameters |
| | | var outMsg = parameters.FirstOrDefault(p => p.ParameterName == "@OUT_MSG")?.Value?.ToString(); |
| | | var outSum = Convert.ToInt32(parameters.FirstOrDefault(p => p.ParameterName == "@OUT_SUM")?.Value ?? -1); |
| | | var outCfBar = parameters.FirstOrDefault(p => p.ParameterName == "@OUT_CF_BAR")?.Value?.ToString(); |
| | | var outMsg = parameters |
| | | .FirstOrDefault(p => p.ParameterName == "@OUT_MSG")?.Value |
| | | ?.ToString(); |
| | | var outSum = Convert.ToInt32(parameters |
| | | .FirstOrDefault(p => p.ParameterName == "@OUT_SUM")?.Value ?? -1); |
| | | var outCfBar = parameters |
| | | .FirstOrDefault(p => p.ParameterName == "@OUT_CF_BAR")?.Value |
| | | ?.ToString(); |
| | | |
| | | // Handle the result |
| | | if (outSum == -1) |
| | | { |
| | | throw new Exception(outMsg ?? "操作失败"); |
| | | } |
| | | if (outSum == -1) throw new Exception(outMsg ?? "操作失败"); |
| | | |
| | | // Get pending list for the supplement order |
| | | var pendingList = Db.Queryable<MesItemBl, MesItemBlDetail>((a, b) => |
| | |
| | | var dto = new ProductionPickDto |
| | | { |
| | | daa001 = query.billNo, |
| | | barcode = query.barcode,//原条码 |
| | | cfBarcode = outCfBar//拆分后条码 |
| | | barcode = query.barcode, //原条码 |
| | | cfBarcode = outCfBar //拆分后条码 |
| | | }; |
| | | |
| | | return dto; |
| | |
| | | |
| | | return LineInfo; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 生产超领 |
| | |
| | | ErpAutoid = womdab.Erpid, |
| | | PbillNo = query.billNo, |
| | | ItemId = blDetail.Bld012, |
| | | DepotId = stockBarcode.DepotId.ToString(), |
| | | DepotId = stockBarcode.DepotId.ToString() |
| | | // Unit = blDetail.Bld009, |
| | | // DepotId = stockBarcode.DepotsId |
| | | }).IgnoreColumns(true).ExecuteCommand(); |
| | |
| | | ItemId = blDetail.Bld012, |
| | | Unit = blDetail.Bld009, |
| | | DepotId = (int)stockBarcode.DepotId, |
| | | Dabid = womdab.Guid, |
| | | Dabid = womdab.Guid |
| | | }).IgnoreColumns(true).ExecuteCommand(); |
| | | |
| | | // 插入业务流水 |
| | |
| | | }); |
| | | |
| | | // 获取最终的待处理列表 |
| | | var finalPendingList = Db.Queryable<MesItemBl, MesItemBlDetail>( |
| | | (a, b) => |
| | | new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) |
| | | var finalPendingList = Db |
| | | .Queryable<MesItemBl, MesItemBlDetail>((a, b) => |
| | | new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) |
| | | .Where((a, b) => a.BlNo == query.blNo |
| | | && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0) |
| | | .Select((a, b) => new MesItemBlDetail |
| | |
| | | |
| | | // 检查补料单是否存在且为生产补料类型 |
| | | var mesItemBl = Db.Queryable<MesItemBl>() |
| | | .Where(a => a.BlNo == query.billNo && a.Bl008 == query.Type && a.Bl018 == true) |
| | | .Where(a => |
| | | a.BlNo == query.billNo && a.Bl008 == query.Type && |
| | | a.Bl018 == true) |
| | | .First(); |
| | | |
| | | if (mesItemBl == null) |
| | |
| | | // .ToList(); |
| | | |
| | | //return (mesItemBl.Bl001, blDetails); |
| | | var sql = string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,A.BLD007 FQty,A.BLD008 SQty,A.BLD007 - A.BLD008 DSQty, |
| | | var sql = string.Format( |
| | | @"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,A.BLD007 FQty,A.BLD008 SQty,A.BLD007 - A.BLD008 DSQty, |
| | | dbo.F_QX_GETRECODEPOTSE(A.bld012,'','','') as RecoKw,D.daa001 |
| | | fROM MES_ITEM_BL_DETAIL A |
| | | LEFT JOIN MES_ITEM_BL B ON A.MID = B.ID |