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 | 409 ++++++++++++++++++++++++++------------------------------- 1 files changed, 187 insertions(+), 222 deletions(-) diff --git a/WebApi/Gs.Wom/WorkService/MesBackFlashController.cs b/WebApi/Gs.Wom/WorkService/MesBackFlashController.cs index ab97204..287814d 100644 --- a/WebApi/Gs.Wom/WorkService/MesBackFlashController.cs +++ b/WebApi/Gs.Wom/WorkService/MesBackFlashController.cs @@ -11,239 +11,204 @@ using Newtonsoft.Json.Linq; using static Gs.Toolbox.UtilityHelper; -namespace Gs.Wom.WorkService; - -[ApiGroup(ApiGroupNames.WOM)] -public class MesBackFlashController : IRomteService +namespace Gs.Wom.WorkService { - private readonly IHttpContextAccessor _http; - private readonly string _userCode, _userGuid, _orgFids; - public MesBackFlashController(IHttpContextAccessor httpContextAccessor) + [ApiGroup(ApiGroupNames.WOM)] + public class MesBackFlashController : IRomteService { - _http = httpContextAccessor; - (_userCode, _userGuid, _orgFids) = GetUserGuidAndOrgGuid(_http); - } - - #region - - /// <summary> - /// 璇诲彇鍒楄〃锛屾敮鎸佸垎椤� - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - [RequestMethod(RequestMethods.POST)] - public ReturnDto<PageList<dynamic>> GetListPage([FromBody] PageQuery model) - { - var currentPage = model.currentPage; - var everyPageSize = model.everyPageSize; - var sortName = string.IsNullOrEmpty(model.sortName) - ? "org.FNumber" - : model.sortName; - var keyWhere = model.keyWhere; - var _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); - var 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); - var dset = new DataSet(); - try + private readonly IHttpContextAccessor _http; + private readonly string _userCode, _userGuid, _orgFids; + public MesBackFlashController(IHttpContextAccessor httpContextAccessor) { - dset = DbHelperSQL.Query(sbSql.ToString()); - } - catch (Exception ex) - { - LogHelper.Debug(ToString(), "GetListPage error锛�" + ex.Message); - return ReturnDto<PageList<dynamic>>.QuickReturn( - default(PageList<dynamic>), ReturnCode.Exception, "璇诲彇澶辫触"); + _http = httpContextAccessor; + (_userCode, _userGuid, _orgFids) = GetUserGuidAndOrgGuid(_http); } - var _pglist = new PageList<dynamic> + #region + /// <summary> + /// 璇诲彇鍒楄〃锛屾敮鎸佸垎椤� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [RequestMethod(RequestMethods.POST)] + public ReturnDto<PageList<dynamic>> GetListPage([FromBody] PageQuery model) { - total = 0, - everyPageSize = 0, - pages = 0, - list = new List<dynamic>() - }; - 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; - } - - return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist, - ReturnCode.Success, "璇诲彇鎴愬姛"); - } - - - /// <summary> - /// 鍒犻櫎瀹炰綋 - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - [RequestMethod(RequestMethods.POST)] - public ReturnDto<int?> DeleteModel([FromBody] JArray guidList) - { - var intArray = guidList.ToObject<string[]>(); - var guid = intArray[0]; - var rtnInt = (int)ReturnCode.Default; - var cont = 0; - try - { - cont = isChkOrUnChk(guid, 1); - if (cont > 0) - return ReturnDto<int>.QuickReturn(default(int?), - ReturnCode.Exception, "鍒犻櫎澶辫触锛岃淇℃伅宸茶瀹℃牳锛�"); - var strSql = new StringBuilder(); - strSql.Append(" delete from MES_BACK_FLASH "); - strSql.Append(" where guid='" + guid + "'"); - var rows = DbHelperSQL.ExecuteSql(strSql.ToString()); - rtnInt = rows; - } - catch (Exception ex) - { - LogHelper.Debug(ToString(), "DeleteModel error锛�" + ex.Message); - rtnInt = (int)ReturnCode.Exception; - return ReturnDto<int>.QuickReturn(default(int?), - ReturnCode.Exception, "鍒犻櫎澶辫触锛�" + ex.Message); - } - - if (rtnInt > 0) - return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success, - "鎿嶄綔鎴愬姛锛屽叡鍒犻櫎" + rtnInt + "鏉℃暟鎹紒"); - 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) - { - string itemId = model.itemId; - string departmentId = model.departmentId; - string depotId = model.depotId; - int? rtnInt = (int)ReturnCode.Default; - dynamic mObj = new ExpandoObject(); - mObj.outMsg = ""; - mObj.outSum = -1; - mObj.outGuid = ""; - mObj.outNo = ""; - var strSql = new StringBuilder(); - var 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 - { - rtnInt = DbHelperSQL.ExecuteSql(strSql.ToString()); - mObj.outMsg = "鎿嶄綔鎴愬姛锛�"; - mObj.outSum = rtnInt; - mObj.outGuid = guid; - mObj.outNo = itemId; - } - catch (Exception ex) - { - LogHelper.Debug(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); - return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, - mObj.outMsg); - } - - /// <summary> - /// 璇诲彇瀹炰綋 - /// </summary> - /// <param name="guid"></param> - /// <returns></returns> - [RequestMethod(RequestMethods.POST)] - [AllowAnonymous] - public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model) - { - dynamic m = new ExpandoObject(); - var 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 - { - var dset = new DataSet(); - dset = DbHelperSQL.Query(sbSql.ToString()); - if (dset != null && dset.Tables.Count > 0 && - dset.Tables[0].Rows.Count > 0) + int currentPage = model.currentPage; + int everyPageSize = model.everyPageSize; + string sortName = string.IsNullOrEmpty(model.sortName) ? "org.FNumber" : model.sortName; + string keyWhere = model.keyWhere; + 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 { - var dr = dset.Tables[0].Rows[0]; - m = dr.RowToDynamic(); - return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, - "璇诲彇鎴愬姛锛�"); + dset = Gs.Toolbox.DbHelperSQL.Query(sbSql.ToString()); } - - return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, - "璇诲彇澶辫触锛�"); + 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>() + }; + if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0)//鏈夋暟鎹� + { + 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; + } + return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist, ReturnCode.Success, "璇诲彇鎴愬姛"); } - catch (Exception ex) + + + /// <summary> + /// 鍒犻櫎瀹炰綋 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [RequestMethod(RequestMethods.POST)] + public ReturnDto<int?> DeleteModel([FromBody] JArray guidList) { - LogHelper.Debug(ToString(), "GetModel error:" + ex.Message); - return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, - "璇诲彇澶辫触锛�"); + var intArray = guidList.ToObject<string[]>(); + string guid = intArray[0]; + int rtnInt = (int)ReturnCode.Default; + int cont = 0; + try + { + 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(this.ToString(), "DeleteModel error锛�" + ex.Message); + rtnInt = (int)ReturnCode.Exception; + return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "鍒犻櫎澶辫触锛�" + ex.Message); + } + 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="guidList"></param> - /// <param name="status"></param> - /// <returns></returns> - private int isChkOrUnChk(string guidList, int status) - { - var 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; - } + /// <summary> + /// 澧炲姞瀹炰綋 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [RequestMethod(RequestMethods.POST)] + public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model) + { + string itemId = model.itemId; + string departmentId = model.departmentId; + string depotId = model.depotId; + int? rtnInt = (int)ReturnCode.Default; + dynamic mObj = new ExpandoObject(); + mObj.outMsg = ""; + mObj.outSum = -1; + mObj.outGuid = ""; + mObj.outNo = ""; + 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 + { + 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); + return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg); + } - #endregion -} \ No newline at end of file + /// <summary> + /// 璇诲彇瀹炰綋 + /// </summary> + /// <param name="guid"></param> + /// <returns></returns> + [RequestMethod(RequestMethods.POST)] + [AllowAnonymous] + public ReturnDto<System.Dynamic.ExpandoObject> GetModel([FromBody] dynamic model) + { + 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 + { + DataSet dset = new DataSet(); + dset = DbHelperSQL.Query(sbSql.ToString()); + if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0) + { + 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, "璇诲彇澶辫触锛�"); + } + catch (Exception ex) + { + LogHelper.Debug(this.ToString(), "GetModel error:" + ex.Message); + return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "璇诲彇澶辫触锛�"); + } + } + + /// <summary> + /// 鍒ゆ柇鏄惁瀹℃牳 + /// </summary> + /// <param name="guidList"></param> + /// <param name="status"></param> + /// <returns></returns> + private int isChkOrUnChk(string guidList, int status) + { + 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