From 5707781039b9d902ce1d2d6727fba65bbab14574 Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期六, 13 九月 2025 17:02:06 +0800 Subject: [PATCH] 异常单回滚 --- WebApi/Gs.BaseInfo/Services/MesItemsManager.cs | 159 +++++++++++++++++++++------------------------------- 1 files changed, 65 insertions(+), 94 deletions(-) diff --git a/WebApi/Gs.BaseInfo/Services/MesItemsManager.cs b/WebApi/Gs.BaseInfo/Services/MesItemsManager.cs index d84b0a7..dd4f9b6 100644 --- a/WebApi/Gs.BaseInfo/Services/MesItemsManager.cs +++ b/WebApi/Gs.BaseInfo/Services/MesItemsManager.cs @@ -1,8 +1,4 @@ -锘縰sing System.Data; -using System.Data.SqlClient; -using System.Dynamic; -using System.Text; -using Gs.BaseInfo.Models; +锘縰sing Gs.BaseInfo.Models; using Gs.Entity.BaseInfo; using Gs.Entity.Sys; using Gs.Toolbox; @@ -12,6 +8,10 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using SqlSugar; +using System.Data; +using System.Data.SqlClient; +using System.Dynamic; +using System.Text; using SqlDataAdapter = System.Data.SqlClient.SqlDataAdapter; namespace Gs.BaseInfo.Services; @@ -42,25 +42,24 @@ try { var _sbWhere = new StringBuilder(" 1=1" + query.keyWhere); - var _sbBy = - new StringBuilder(query.sortName + " " + query.sortOrder); + var _sbBy = new StringBuilder(query.sortName + " " + query.sortOrder); var totalCount = 0; var itemsList = Db .Queryable<MesItems, SysOrganization, MesUnit, MesUnit, MesUnit, - MesUnit, MesUnit, MesUnit, MesDepots, MesItemType>((a, org, - c, d, e, f, g, h, m, n) => new object[] - { - JoinType.Left, a.FSubsidiary == org.Fid, - JoinType.Left, a.ItemUnit == c.Id.ToString(), - JoinType.Left, a.Fpurchaseunitid == d.Id.ToString(), - JoinType.Left, a.Saleunit == e.Id.ToString(), - JoinType.Left, a.Storeunit == f.Id.ToString(), - JoinType.Left, a.SubconUnit == g.Id.ToString(), - JoinType.Left, a.ProduceUnit == h.Id.ToString(), - JoinType.Left, a.DepotCode == m.DepotId.ToString(), - JoinType.Left, a.Fmaterialgroup == n.Id.ToString() - }) - .Select((a, org, c, d, e, f, g, h, m, n) => new MesItems + MesUnit, MesUnit, MesUnit, MesDepots, MesItemType>( + (a, org, c, d, e, f, g, h, m,n) => new object[] + { + JoinType.Left, a.FSubsidiary == org.Fid, + JoinType.Left, a.ItemUnit == c.Id.ToString(), + JoinType.Left, a.Fpurchaseunitid == d.Id.ToString(), + JoinType.Left, a.Saleunit == e.Id.ToString(), + JoinType.Left, a.Storeunit == f.Id.ToString(), + JoinType.Left, a.SubconUnit == g.Id.ToString(), + JoinType.Left, a.ProduceUnit == h.Id.ToString(), + JoinType.Left, a.DepotCode == m.DepotId.ToString(), + JoinType.Left, a.Fmaterialgroup == n.Id.ToString() + }) + .Select((a, org, c, d, e, f, g, h, m,n) => new MesItems { chkInt = false, FSubsidiary = "(" + org.FNumber + ")" + org.Name, @@ -71,21 +70,15 @@ SubconUnit = g.Fname, ProduceUnit = h.Fname, DepotCode = m.DepotName, - Fmaterialgroup = n.Tname, - Fforbidstatus = a.Fforbidstatus + ":" + - (a.Fforbidstatus == "A" ? "姝e父" : "绂佺敤"), + Fmaterialgroup=n.Tname, + Fforbidstatus = a.Fforbidstatus + ":" + (a.Fforbidstatus == "A" ? "姝e父" : "绂佺敤"), DataType = a.DataType + ":" - + SqlFunc.IF(a.DataType == "Z") - .Return("鏆傚瓨") - .ElseIF(a.DataType == "A") - .Return("鍒涘缓") - .ElseIF(a.DataType == "B") - .Return("瀹℃牳涓�") - .ElseIF(a.DataType == "C") - .Return("宸插鏍�") - .ElseIF(a.DataType == "D") - .Return("閲嶆柊瀹℃牳") - .End(a.DataType) + + SqlFunc.IF(a.DataType == "Z").Return("鏆傚瓨") + .ElseIF(a.DataType == "A").Return("鍒涘缓") + .ElseIF(a.DataType == "B").Return("瀹℃牳涓�") + .ElseIF(a.DataType == "C").Return("宸插鏍�") + .ElseIF(a.DataType == "D").Return("閲嶆柊瀹℃牳") + .End(a.DataType) }, true) .Where(_sbWhere.ToString()) .OrderBy(_sbBy.ToString()) @@ -117,13 +110,12 @@ dynamic m = new ExpandoObject(); SqlParameter[] parameters = { - new("@inMainGuid", guid) + new("@inMainGuid", guid), }; var dset = new DataSet(); try { - dset = DbHelperSQL.RunProcedure("[prc_item_detail]", parameters, - "0"); + dset = DbHelperSQL.RunProcedure("[prc_item_detail]", parameters, "0"); if (dset != null && dset.Tables.Count > 0 && dset.Tables[0].Rows.Count > 0) { @@ -143,6 +135,7 @@ } /// <summary> + /// /// </summary> /// <param name="model"></param> /// <returns></returns> @@ -155,30 +148,25 @@ SqlParameter[] parameters = { new("@inItemNo", itemNo), - new("@inOrgId", orgId) + new("@inOrgId", orgId), }; var dset = new DataSet(); try { - dset = DbHelperSQL.RunProcedure("[prc_item_detailByOrg]", - parameters, "0"); + dset = DbHelperSQL.RunProcedure("[prc_item_detailByOrg]", 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(); - return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, - "璇诲彇鎴愬姛锛�"); + return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success, "璇诲彇鎴愬姛锛�"); } - - return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, - "璇诲彇澶辫触锛屾壘涓嶅埌璇ョ墿鏂欙紒"); + return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "璇诲彇澶辫触锛屾壘涓嶅埌璇ョ墿鏂欙紒"); } catch (Exception ex) { LogHelper.Debug(ToString(), ex.Message); - return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, - "璇诲彇澶辫触锛�" + ex.Message); + return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "璇诲彇澶辫触锛�" + ex.Message.ToString()); } } @@ -196,7 +184,7 @@ string sortName = model.sortName; string keyWhere = model.keyWhere; string keyType = model.keyType; - string keyWord = model.keyWord; //杩欎釜pguid锛屼綔涓烘柟妗堢殑涓婚敭 + string keyWord = model.keyWord; //杩欎釜pguid锛屼綔涓烘柟妗堢殑涓婚敭 var dset = new DataSet(); try { @@ -213,8 +201,7 @@ new("@inSortName", sortName), new("@inSortOrder", ""), new("@inQueryWhere", keyWhere), - new("@inP1", - keyType), //褰撲负锛氭楠岄」鐩紝iqc,ipqc,fqc鏃讹紝鍏嶆鏃� 鐗瑰埆鍔犱笂杩囨护鏉′欢 + new("@inP1",keyType),//褰撲负锛氭楠岄」鐩紝iqc,ipqc,fqc鏃讹紝鍏嶆鏃� 鐗瑰埆鍔犱笂杩囨护鏉′欢 new("@inP2", keyWord) //杩欎釜pguid锛屼綔涓烘柟妗堢殑涓婚敭 }; foreach (var parameter in parameters) @@ -224,15 +211,13 @@ dt.Fill(dset, "0"); } } - conn.Close(); } } catch (Exception ex) { LogHelper.Debug(ToString(), "GetListPage error锛�" + ex.Message); - return ReturnDto<PageList<dynamic>>.QuickReturn( - default(PageList<dynamic>), ReturnCode.Exception, "璇诲彇澶辫触"); + return ReturnDto<PageList<dynamic>>.QuickReturn(default(PageList<dynamic>), ReturnCode.Exception, "璇诲彇澶辫触"); } var _pglist = new PageList<dynamic> @@ -260,6 +245,7 @@ return ReturnDto<PageList<dynamic>>.QuickReturn(_pglist, ReturnCode.Success, "璇诲彇鎴愬姛"); } + /// <summary> @@ -272,36 +258,29 @@ { var currentPage = model.currentPage; var everyPageSize = model.everyPageSize; - var sortName = string.IsNullOrEmpty(model.sortName) - ? "a.staff_no" - : model.sortName; + var sortName = string.IsNullOrEmpty(model.sortName) ? "a.staff_no" : model.sortName; var keyWhere = model.keyWhere; - var keyType = model.keyType; - var sbJoin = new StringBuilder(); + string keyType = model.keyType; + System.Text.StringBuilder sbJoin = new StringBuilder(); sbJoin.Append(" FROM MES_ITEMS [a]"); - sbJoin.Append( - " Left JOIN [SYS_ORGANIZATION] [Org] ON ( [a].[FSubsidiary] = [Org].[FID] )"); - sbJoin.Append(" left join SYS_USER_BIND b on (b.userGuid='" + keyType + - "' and b.aboutGuid=a.item_id and b.fType='鐗╂枡鍒嗗尯')"); + sbJoin.Append(" Left JOIN [SYS_ORGANIZATION] [Org] ON ( [a].[FSubsidiary] = [Org].[FID] )"); + sbJoin.Append(" left join SYS_USER_BIND b on (b.userGuid='" + keyType + "' and b.aboutGuid=a.item_id and b.fType='鐗╂枡鍒嗗尯')"); sbJoin.Append(" where 1=1 "); sbJoin.Append(keyWhere); var sbSql = new StringBuilder(); sbSql.Append(" SELECT * FROM "); - sbSql.Append( - " (SELECT N'(' +[Org].[FNumber] + N')' +[Org].[NAME] AS [FSubsidiary2]"); - sbSql.Append( - " ,a.item_id,a.item_no,a.item_name,a.item_model,a.guid,ROW_NUMBER() OVER(ORDER BY org.FNumber asc ,a.item_no asc) AS RowIndex "); + sbSql.Append(" (SELECT N'(' +[Org].[FNumber] + N')' +[Org].[NAME] AS [FSubsidiary2]"); + sbSql.Append(" ,a.item_id,a.item_no,a.item_name,a.item_model,a.guid,ROW_NUMBER() OVER(ORDER BY org.FNumber asc ,a.item_no asc) AS RowIndex "); //濡傛灉鏃犲叧閿瓧锛屾棤闇�鎵炬煡缁戝畾 if (string.IsNullOrEmpty(keyType)) + { sbSql.Append(",cast(0 as bit) as chkInt"); + } else - sbSql.Append( - ",cast( (case when b.guid is null then 0 else 1 end) as bit) as chkInt "); + sbSql.Append(",cast( (case when b.guid is null then 0 else 1 end) as bit) as chkInt "); sbSql.Append(sbJoin); sbSql.Append(") T"); - sbSql.Append(" where T.rowindex>(" + currentPage + "-1)*" + - everyPageSize + " and T.rowindex<=" + currentPage + "*" + - everyPageSize); + sbSql.Append(" where T.rowindex>(" + currentPage + "-1)*" + everyPageSize + " and T.rowindex<=" + currentPage + "*" + everyPageSize); sbSql.Append(" select count(1) as intTotal "); sbSql.Append(sbJoin); var dset = new DataSet(); @@ -312,10 +291,8 @@ catch (Exception ex) { LogHelper.Debug(ToString(), "GetListPage2 error锛�" + ex.Message); - return ReturnDto<PageList<dynamic>>.QuickReturn( - default(PageList<dynamic>), ReturnCode.Exception, "璇诲彇澶辫触"); + return ReturnDto<PageList<dynamic>>.QuickReturn(default(PageList<dynamic>), ReturnCode.Exception, "璇诲彇澶辫触"); } - var _pglist = new PageList<dynamic> { total = 0, @@ -326,8 +303,7 @@ 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 intTotal = int.Parse(dset.Tables[1].Rows[0]["intTotal"].ToString()); var pages = intTotal % everyPageSize != 0 ? intTotal / everyPageSize + 1 : intTotal / everyPageSize; @@ -337,14 +313,13 @@ 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> @@ -354,29 +329,25 @@ string guidList = model.guidList; string bz10 = model.bz10; string percent = model.percent; - var rtnInt = (int)ReturnCode.Default; + int rtnInt = (int)ReturnCode.Default; try { - var strSql = new StringBuilder(); - strSql.Append(" update MES_ITEMS set bz10=" + bz10.Trim() + " ," + - "loss_percent = " + percent.Trim() + " "); - strSql.Append(" where guid in (select line from dbo.fn_split('" + - guidList + "',','))"); - var rows = DbHelperSQL.ExecuteSql(strSql.ToString()); + StringBuilder strSql = new StringBuilder(); + strSql.Append(" update MES_ITEMS set bz10=" + bz10.Trim() + " ," + "loss_percent = " + percent.Trim() + " "); + strSql.Append(" where guid in (select line from dbo.fn_split('" + guidList + "',','))"); + int rows = DbHelperSQL.ExecuteSql(strSql.ToString()); rtnInt = rows; } catch (Exception ex) { - LogHelper.Debug(ToString(), "SetDays error锛�" + ex.Message); + LogHelper.Debug(this.ToString(), "SetDays error锛�" + ex.Message); rtnInt = (int)ReturnCode.Exception; - return ReturnDto<int>.QuickReturn(default(int?), - ReturnCode.Exception, "鎿嶄綔澶辫触锛�" + ex.Message); + return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "鎿嶄綔澶辫触锛�" + ex.Message); } - if (rtnInt > 0) - return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success, - "鎿嶄綔鎴愬姛锛�"); - return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, - "鎿嶄綔澶辫触锛岃閲嶈瘯锛�"); + return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Success, "鎿嶄綔鎴愬姛锛�"); + else + return ReturnDto<int>.QuickReturn(default(int?), ReturnCode.Exception, "鎿嶄綔澶辫触锛岃閲嶈瘯锛�"); } + } \ No newline at end of file -- Gitblit v1.9.3