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