From 5707781039b9d902ce1d2d6727fba65bbab14574 Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期六, 13 九月 2025 17:02:06 +0800 Subject: [PATCH] 异常单回滚 --- WebApi/Gs.Wom/WorkService/MesBackFlashController.cs | 331 ++++++++++++++++++------------------------------------ 1 files changed, 112 insertions(+), 219 deletions(-) diff --git a/WebApi/Gs.Wom/WorkService/MesBackFlashController.cs b/WebApi/Gs.Wom/WorkService/MesBackFlashController.cs index 81d079c..287814d 100644 --- a/WebApi/Gs.Wom/WorkService/MesBackFlashController.cs +++ b/WebApi/Gs.Wom/WorkService/MesBackFlashController.cs @@ -1,5 +1,4 @@ 锘縰sing System.Data; -using System.Data.SqlClient; using System.Dynamic; using System.Text; using Gs.Toolbox; @@ -28,171 +27,138 @@ #region /// <summary> - /// 璇诲彇鍒楄〃锛屾敮鎸佸垎椤� + /// 璇诲彇鍒楄〃锛屾敮鎸佸垎椤� /// </summary> /// <param name="model"></param> /// <returns></returns> [RequestMethod(RequestMethods.POST)] - public ReturnDto<PageList<dynamic>> GetListPage([FromBody] dynamic model) + public ReturnDto<PageList<dynamic>> GetListPage([FromBody] PageQuery model) { int currentPage = model.currentPage; int everyPageSize = model.everyPageSize; - string sortName = model.sortName; + string sortName = string.IsNullOrEmpty(model.sortName) ? "org.FNumber" : model.sortName; string keyWhere = model.keyWhere; - SqlParameter[] parameters = + System.Text.StringBuilder _w = new StringBuilder(); + _w.Append(" from [dbo].[MES_BACK_FLASH] a"); + _w.Append(" left join MES_ITEMS i on a.ItemID=i.item_id "); + _w.Append(" left join MES_DEPOTS d on a.depotId=d.depot_id "); + _w.Append(" left join SYS_DEPARTMENT m on a.departmentId=m.departmentid "); + _w.Append(" left join SYS_ORGANIZATION org on i.FSubsidiary=org.FID"); + _w.Append(" where 1=1 " + keyWhere); + System.Text.StringBuilder sbSql = new StringBuilder(); + sbSql.Append("select * from "); + sbSql.Append("( "); + sbSql.Append("select top 100000 ROW_NUMBER() over(order by " + sortName + " " + model.sortOrder + ") as rowIndex,a.*,'('+org.FNumber+')'+org.NAME as orgName "); + sbSql.Append(",i.item_no as itemNo,i.item_name as itemName,i.item_model as itemModel,d.depot_name as depotName,m.departmentname as bmName"); + sbSql.Append(_w); + sbSql.Append(") as T "); + sbSql.Append(" where T.rowindex>(" + currentPage + "-1)*" + everyPageSize + " and T.rowindex<=" + currentPage + "*" + everyPageSize); + sbSql.Append(" order by rowindex asc "); + sbSql.Append(" select count(1) as intTotal "); + sbSql.Append(_w); + DataSet dset = new DataSet(); + try { - new("@inCurrentPage", currentPage), - new("@inEveryPageSize", everyPageSize), - new("@inSortName", sortName), - new("@inSortOrder", ""), - new("@inQueryWhere", keyWhere), - new("@inFid", ""), - new("@inP1", ""), - new("@inP2", ""), - new("@inP3", ""), - new("@inP4", "") - }; - var dset = new DataSet(); - var _pglist = new PageList<dynamic> + dset = Gs.Toolbox.DbHelperSQL.Query(sbSql.ToString()); + } + catch (Exception ex) + { + Gs.Toolbox.LogHelper.Debug(this.ToString(), "GetListPage error锛�" + ex.Message); + return ReturnDto<PageList<dynamic>>.QuickReturn(default(PageList<dynamic>), ReturnCode.Exception, "璇诲彇澶辫触"); + } + PageList<dynamic> _pglist = new PageList<dynamic> { total = 0, everyPageSize = 0, pages = 0, list = new List<dynamic>() }; - try + if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0)//鏈夋暟鎹� { - dset = DbHelperSQL.RunProcedure("prc_back_flash_lst", parameters, "0"); - if (dset != null && dset.Tables.Count > 0 && - dset.Tables[0].Rows.Count > 0) //鏈夋暟鎹� - { - var intTotal = - int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString()); - var pages = intTotal % everyPageSize != 0 - ? intTotal / everyPageSize + 1 - : intTotal / everyPageSize; - _pglist.total = intTotal; - _pglist.everyPageSize = everyPageSize; - _pglist.pages = pages; - var _dy = dset.Tables[0].TableToDynamicList(); - _pglist.list = _dy; - } + int intTotal = int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString()); + int pages = (intTotal % everyPageSize != 0) ? (intTotal / everyPageSize + 1) : (intTotal / everyPageSize); + _pglist.total = intTotal; + _pglist.everyPageSize = everyPageSize; + _pglist.pages = pages; + List<dynamic> _dy = dset.Tables[0].TableToDynamicList(); + _pglist.list = _dy; } - catch (Exception ex) - { - LogHelper.Debug(ToString(), ex.Message); - return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist, - ReturnCode.Exception, ex.Message); - } - return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist, - ReturnCode.Success, "璇诲彇鎴愬姛"); + return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist, ReturnCode.Success, "璇诲彇鎴愬姛"); } + /// <summary> - /// 璇诲彇 + /// 鍒犻櫎瀹炰綋 /// </summary> - /// <param name="guid"></param> + /// <param name="model"></param> /// <returns></returns> [RequestMethod(RequestMethods.POST)] - public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model) + public ReturnDto<int?> DeleteModel([FromBody] JArray guidList) { - string guid = model.guid.ToString(); - dynamic m = new ExpandoObject(); - m.list = new List<dynamic>(); - m.list2 = new List<dynamic>(); - SqlParameter[] parameters = - { - new("@inMainGuid", guid), - new("@inP1", ""), - new("@inP2", ""), - new("@inP3", ""), - new("@inP4", "") - }; - var dset = new DataSet(); + var intArray = guidList.ToObject<string[]>(); + string guid = intArray[0]; + int rtnInt = (int)ReturnCode.Default; + int cont = 0; try { - dset = DbHelperSQL.RunProcedure("[prc_back_flash_mx]", parameters, "0"); - if (dset != null && dset.Tables.Count > 0 && - dset.Tables[0].Rows.Count > 0) - { - var dr = dset.Tables[0].Rows[0]; - m = dr.RowToDynamic(); - } + cont = isChkOrUnChk(guid, 1); + if (cont > 0) + return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "鍒犻櫎澶辫触锛岃淇℃伅宸茶瀹℃牳锛�"); + StringBuilder strSql = new StringBuilder(); + strSql.Append(" delete from MES_BACK_FLASH "); + strSql.Append(" where guid='" + guid + "'"); + int rows = DbHelperSQL.ExecuteSql(strSql.ToString()); + rtnInt = rows; } catch (Exception ex) { - LogHelper.Debug(ToString(), ex.Message); + LogHelper.Debug(this.ToString(), "DeleteModel error锛�" + ex.Message); + rtnInt = (int)ReturnCode.Exception; + return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "鍒犻櫎澶辫触锛�" + ex.Message); } - - if (m != null) - return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, - "璇诲彇鎴愬姛锛�"); - return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "璇诲彇澶辫触锛�"); + if (rtnInt > 0) + return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success, "鎿嶄綔鎴愬姛锛屽叡鍒犻櫎" + rtnInt.ToString() + "鏉℃暟鎹紒"); + else + return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "鍒犻櫎澶辫触锛岃閲嶈瘯锛�"); } /// <summary> - /// 澧炲姞鎴栫紪杈戝疄浣� + /// 澧炲姞瀹炰綋 /// </summary> /// <param name="model"></param> /// <returns></returns> [RequestMethod(RequestMethods.POST)] public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model) { - Guid? guid = model.guid; //涓婚敭 string itemId = model.itemId; string departmentId = model.departmentId; string depotId = model.depotId; - string depotlocid = model.depotlocid; + int? rtnInt = (int)ReturnCode.Default; dynamic mObj = new ExpandoObject(); mObj.outMsg = ""; mObj.outSum = -1; mObj.outGuid = ""; mObj.outNo = ""; - using (var conn = new SqlConnection(DbHelperSQL.strConn)) + StringBuilder strSql = new StringBuilder(); + string guid = Guid.NewGuid().ToString(); + strSql.Append(" insert into MES_BACK_FLASH"); + strSql.Append(" ([guid] ,[ItemId] ,[departmentId] ,[depotId],createBy,createDate,checkStatus)"); + strSql.Append(" values("); + strSql.Append(" '" + guid + "','" + itemId + "','" + departmentId + "'," + depotId + ",'" + _userCode + "',getdate(),0)"); + try { - using (var cmd = new SqlCommand("[prc_back_flash_edt]", conn)) - { - try - { - conn.Open(); - cmd.CommandType = CommandType.StoredProcedure; - SqlParameter[] parameters = - { - new SqlParameter("@outMsg", SqlDbType.NVarChar, 300), - new SqlParameter("@outSum", SqlDbType.Int), - new SqlParameter("@outGuid", SqlDbType.UniqueIdentifier), - new SqlParameter("@outNo", SqlDbType.NVarChar, 300), - new SqlParameter("@inOrderGuid", CheckGuid(guid) ? guid : DBNull.Value), - new SqlParameter("@ItemId", string.IsNullOrEmpty(itemId) ? DBNull.Value : (object)long.Parse(itemId)), - new SqlParameter("@departmentId", string.IsNullOrEmpty(departmentId) ? DBNull.Value : (object)long.Parse(departmentId)), - new SqlParameter("@depotId", string.IsNullOrEmpty(depotId) ? DBNull.Value : (object)long.Parse(depotId)), - new SqlParameter("@remark", ""), - new SqlParameter("@inEdtUserGuid", _userGuid) - }; - parameters[0].Direction = ParameterDirection.Output; - parameters[1].Direction = ParameterDirection.Output; - parameters[2].Direction = ParameterDirection.Output; - parameters[3].Direction = ParameterDirection.Output; - foreach (var parameter in parameters) - cmd.Parameters.Add(parameter); - cmd.ExecuteNonQuery(); - mObj.outMsg = parameters[0].Value.ToString(); - mObj.outSum = int.Parse(parameters[1].Value.ToString()); - mObj.outGuid = parameters[2].Value.ToString(); - mObj.outNo = parameters[3].Value.ToString(); - } - catch (Exception ex) - { - LogHelper.Debug(ToString(), - "prc_back_flash_edt error锛�" + ex.Message); - mObj.outMsg = ex.Message; - mObj.outSum = -1; - } - finally - { - conn.Close(); - } - } + rtnInt = DbHelperSQL.ExecuteSql(strSql.ToString()); + mObj.outMsg = "鎿嶄綔鎴愬姛锛�"; + mObj.outSum = rtnInt; + mObj.outGuid = guid; + mObj.outNo = itemId; + } + catch (Exception ex) + { + LogHelper.Debug(this.ToString(), "EditModel error锛�" + ex.Message); + rtnInt = (int)ReturnCode.Exception; + mObj.outMsg = ex.Message; + mObj.outSum = -1; } if (mObj.outSum <= 0) return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg); @@ -200,121 +166,48 @@ } /// <summary> - /// 鍒犻櫎涓昏〃鎴栨槑缁� + /// 璇诲彇瀹炰綋 /// </summary> - /// <param name="model"></param> + /// <param name="guid"></param> /// <returns></returns> [RequestMethod(RequestMethods.POST)] - public ReturnDto<int?> DeleteModel([FromBody] dynamic model) + [AllowAnonymous] + public ReturnDto<System.Dynamic.ExpandoObject> GetModel([FromBody] dynamic model) { - int? rtnInt = (int)ReturnCode.Default; - Guid? guid = model.guid; //鍒拌揣鍗曚富閿� - var _outMsg = ""; - var _outSum = -1; - using (var conn = new SqlConnection(DbHelperSQL.strConn)) + dynamic m = new System.Dynamic.ExpandoObject(); + System.Text.StringBuilder sbSql = new StringBuilder(); + sbSql.Append("select top 1 a.*,org.FID as orgId ,i.item_no as itemNo,i.item_name as itemName,i.item_model as itemModel from MES_BACK_FLASH a left join MES_ITEMS i on a.ItemID=i.item_id left join SYS_ORGANIZATION org on i.FSubsidiary=org.FID where 1=1 and a.guid='" + model.guid.ToString() + "' "); + try { - using (var cmd = new SqlCommand("[prc_back_flash_del]", conn)) + DataSet dset = new DataSet(); + dset = DbHelperSQL.Query(sbSql.ToString()); + if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0) { - try - { - conn.Open(); - cmd.CommandType = CommandType.StoredProcedure; - SqlParameter[] parameters = - { - new("@outMsg", SqlDbType.NVarChar, 300), - new("@outSum", SqlDbType.Int), - new("@inOrderGuid", - CheckGuid(guid) - ? guid - : DBNull.Value), - new("@inEdtUserGuid", _userGuid) - }; - parameters[0].Direction = ParameterDirection.Output; - parameters[1].Direction = ParameterDirection.Output; - foreach (var parameter in parameters) - cmd.Parameters.Add(parameter); - - cmd.ExecuteNonQuery(); - _outMsg = parameters[0].Value.ToString(); - _outSum = int.Parse(parameters[1].Value.ToString()); - } - catch (Exception ex) - { - LogHelper.Debug(ToString(), - "prc_auto_rk_del error锛�" + ex.Message); - _outMsg = ex.Message; - _outSum = -1; - } - finally - { - conn.Close(); - } + System.Data.DataRow dr = dset.Tables[0].Rows[0]; + m = dr.RowToDynamic(); + return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "璇诲彇鎴愬姛锛�"); } + else + return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "璇诲彇澶辫触锛�"); } - - if (_outSum <= 0) - return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception, - _outMsg); - return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, _outMsg); + catch (Exception ex) + { + LogHelper.Debug(this.ToString(), "GetModel error:" + ex.Message); + return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "璇诲彇澶辫触锛�"); + } } - /// <summary> - /// 鎻愪氦妫�楠� + /// 鍒ゆ柇鏄惁瀹℃牳 /// </summary> - /// <param name="mode"></param> + /// <param name="guidList"></param> + /// <param name="status"></param> /// <returns></returns> - [RequestMethod(RequestMethods.POST)] - public ReturnDto<ExpandoObject> EditModelSubmit([FromBody] dynamic mode) + private int isChkOrUnChk(string guidList, int status) { - string _guid = mode.guid; - string _inFieldValue = mode.inFieldValue; - string _chkOut = mode.chkOut; - string _proName = "prc_back_flash_submit"; - dynamic m = new ExpandoObject(); - m.outSum = -1; - m.outMsg = ""; - using (var conn = new SqlConnection(DbHelperSQL.strConn)) - { - using (var cmd = new SqlCommand(_proName, conn)) - { - try - { - conn.Open(); - cmd.CommandType = CommandType.StoredProcedure; - SqlParameter[] parameters = - { - new("@outMsg", SqlDbType.NVarChar, 2500), - new("@outSum", SqlDbType.Int), - new("@inEdtUserGuid", _userGuid), - new("@inOrderGuid", _guid), - new("@inFieldValue", _inFieldValue), - new("@in1", _chkOut), - new("@in2", "") - }; - parameters[0].Direction = ParameterDirection.Output; - parameters[1].Direction = ParameterDirection.Output; - foreach (var parameter in parameters) - cmd.Parameters.Add(parameter); - cmd.ExecuteNonQuery(); - m.outMsg = parameters[0].Value.ToString(); - m.outSum = int.Parse(parameters[1].Value.ToString()); - } - catch (Exception ex) - { - LogHelper.Debug(ToString(), - "prc_auto_rk_submit error锛�" + ex.Message); - m.outMsg = ex.Message; - return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, - ex.Message); - } - finally - { - conn.Close(); - } - } - } - return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "鎿嶄綔鎴愬姛锛�"); + int cont = 0; + cont = int.Parse(DbHelperSQL.GetSingle("select count(1) from MES_BACK_FLASH where guid='" + guidList + "' and isnull(checkstatus,0)=" + status + "").ToString()); + return cont; } #endregion } -- Gitblit v1.9.3