From 17ede350f6cc2be9059a08a90e21de79c296648c Mon Sep 17 00:00:00 2001 From: cnf <3200815559@qq.com> Date: 星期四, 14 八月 2025 17:35:03 +0800 Subject: [PATCH] Merge branch 'master' of http://git.gs-mes.com:8080/r/~kyy/LW_PdaService --- service/Warehouse/MesItemBlManager.cs | 114 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 57 insertions(+), 57 deletions(-) diff --git a/service/Warehouse/MesItemBlManager.cs b/service/Warehouse/MesItemBlManager.cs index c9b5ff5..93e4d24 100644 --- a/service/Warehouse/MesItemBlManager.cs +++ b/service/Warehouse/MesItemBlManager.cs @@ -132,29 +132,36 @@ try { // 璋冪敤瀛樺偍杩囩▼ - var parameters = new List<SqlParameter> - { - new SqlParameter("@c_user", query.userName), - new SqlParameter("@p_bill_no", query.billNo ?? string.Empty), - new SqlParameter("@p_item_barcode", query.barcode), - new SqlParameter("@p_bl_no", query.blNo), - new SqlParameter("@p_type", query.Type), - new SqlParameter("@outMsg", SqlDbType.NVarChar, 2000) { Direction = ParameterDirection.Output }, - new SqlParameter("@outSum", SqlDbType.Int) { Direction = ParameterDirection.Output }, - new SqlParameter("@barcode_num", SqlDbType.Decimal) { Direction = ParameterDirection.Output }, - new SqlParameter("@split_num", SqlDbType.Decimal) { Direction = ParameterDirection.Output } - }; + var parameters = new SqlParameter[] + { + 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 + } + }; // 鎵ц瀛樺偍杩囩▼ - Db.Ado.ExecuteCommand( - "EXEC PRC_PDA_SCBLCL @c_user, @p_bill_no, @p_item_barcode, @p_bl_no, @p_type, @outMsg OUTPUT, @outSum OUTPUT, @barcode_num OUTPUT, @split_num OUTPUT", - parameters.ToArray()); + string procedureName = "PRC_PDA_SCBLCL"; + int res = DbHelperSQL.RunProcedure_NonQuery(procedureName, parameters); // 鑾峰彇杈撳嚭鍙傛暟 outMsg = parameters[5].Value?.ToString() ?? ""; - outSum = Convert.ToInt32(parameters[6].Value); - barcodeNum = Convert.ToDecimal(parameters[7].Value); - splitNum = Convert.ToDecimal(parameters[8].Value); + outSum = parameters[6].Value as int? ?? 0; // 榛樿鍊兼牴鎹渶姹傝皟鏁� + barcodeNum = parameters[7].Value as decimal? ?? 0m; + splitNum = parameters[8].Value as decimal? ?? 0m; // 澶勭悊瀛樺偍杩囩▼杩斿洖鐨勭粨鏋� if (outSum == 2) // 闇�瑕佹媶鍒� @@ -598,7 +605,7 @@ WarehouseQuery query) { - // 杈撳叆鍙傛暟楠岃瘉锛堜繚鎸佷笉鍙橈級 + // Validate input parameters if (string.IsNullOrEmpty(query.userName)) throw new Exception("鐢ㄦ埛鍚嶄笉鑳戒负绌猴紒"); @@ -614,47 +621,41 @@ if (string.IsNullOrEmpty(query.blNo)) throw new Exception("琛ユ枡鍗曞彿涓嶈兘涓虹┖锛�"); - // 鍑嗗瀛樺偍杩囩▼鍙傛暟 - var outMsg = ""; - var outSum = -1; - var outCfBar = ""; + // 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) +}; - try + // Execute the stored procedure + 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(); + + // Handle the result + if (outSum == -1) { - // 璋冪敤瀛樺偍杩囩▼ - 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", null, true), // 杈撳嚭娑堟伅 - new SugarParameter("@OUT_SUM", null, true), // 鎵ц缁撴灉(1鎴愬姛,-1澶辫触) - new SugarParameter("@OUT_CF_BAR", null, true) // 杈撳嚭鏂版潯鐮佺紪鍙� - }; - - // 鎵ц瀛樺偍杩囩▼ - Db.Ado.UseStoredProcedure().ExecuteCommand("PRC_PDA_SCBLCL_CF", parameters); - - // 鑾峰彇杈撳嚭鍙傛暟 - outMsg = parameters.First(p => p.ParameterName == "@OUT_MSG").Value?.ToString(); - outSum = Convert.ToInt32(parameters.First(p => p.ParameterName == "@OUT_SUM").Value); - outCfBar = parameters.First(p => p.ParameterName == "@OUT_CF_BAR").Value?.ToString(); - - // 澶勭悊瀛樺偍杩囩▼杩斿洖缁撴灉 - if (outSum != 1) - { - throw new Exception(outMsg ?? "鎿嶄綔澶辫触"); - } - } - catch (Exception ex) - { - throw new Exception(outMsg ?? ex.Message); + throw new Exception(outMsg ?? "鎿嶄綔澶辫触"); } - // 鑾峰彇寰呭彂鏂欐槑缁嗗垪琛紙淇濇寔涓嶅彉锛� + if (outSum == 2) + { + // Handle case where barcode needs to be split + // You might want to return the new barcode to the client + } + + // Get pending list for the supplement order var pendingList = Db.Queryable<MesItemBl, MesItemBlDetail>((a, b) => new JoinQueryInfos(JoinType.Left, a.Id == b.Mid)) .Where((a, b) => a.BlNo == query.blNo @@ -670,7 +671,6 @@ }) .ToList(); - // 杩斿洖缁撴灉锛堟垚鍔熺姸鎬佸拰寰呭彂鏂欏垪琛級 return (outSum == 1, pendingList); //if (string.IsNullOrEmpty(query.userName)) -- Gitblit v1.9.3