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