From db896a65c463ac90d73db4ab889c720c63cc160f Mon Sep 17 00:00:00 2001
From: cnf <3200815559@qq.com>
Date: 星期三, 23 七月 2025 11:16:54 +0800
Subject: [PATCH] 工序信息维护

---
 .gitignore                                     |    1 
 WebApi/Gs.Entity/Sys/MesProcInfo.cs            |  309 ++++++++++++++++
 WebApi/Gs.Wom/Service/MesProcInfoController.cs |  303 +++++++++++++++
 WebApi/Gs.Wom/Service/MesProdGx0Controller.cs  |  481 +++++++++++++++++++++++++
 4 files changed, 1,094 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore
index 1c38a68..94e26fa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -184,3 +184,4 @@
 
 # Microsoft Fakes
 FakesAssemblies/
+/WebApi/.vs/GsMesSolution/FileContentIndex
diff --git a/WebApi/Gs.Entity/Sys/MesProcInfo.cs b/WebApi/Gs.Entity/Sys/MesProcInfo.cs
new file mode 100644
index 0000000..adb373c
--- /dev/null
+++ b/WebApi/Gs.Entity/Sys/MesProcInfo.cs
@@ -0,0 +1,309 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Gs.Entity.Sys;
+
+/// <summary>
+/// 宸ュ簭淇℃伅琛� (SQLServer 鐗堟湰)
+/// </summary>
+[SugarTable("MES_PROC_INFO")]
+public class MesProcInfo
+    {
+        /// <summary>
+        /// 涓婚敭ID (GUID 绫诲瀷)
+        /// </summary>
+        [SugarColumn(ColumnName = "GUID", IsPrimaryKey = true)]
+        public Guid Guid { get; set; }
+
+        /// <summary>
+        /// 宸ュ簭鍙�
+        /// </summary>
+        [SugarColumn(ColumnName = "PROC_NO")]
+        public string ProcNo { get; set; }
+
+        /// <summary>
+        /// 宸ュ簭鍚嶇О
+        /// </summary>
+        [SugarColumn(ColumnName = "PROC_NAME")]
+        public string ProcName { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(ColumnName = "MEMO")]
+        public string Memo { get; set; }
+
+        /// <summary>
+        /// 鏄惁涓诲伐搴�(0鍚�1鏄紝涓烘槸鍒欏湪鍗曟澘鍩虹淇℃伅涓嚜鍔ㄧ敓鎴愬伐鑹鸿矾寰�)
+        /// </summary>
+        [SugarColumn(ColumnName = "PRIMARY_PROC")]
+        public int PrimaryProc { get; set; } 
+
+        /// <summary>
+        /// 濡傛灉鏄弻闈㈡澘,鏄惁涓ら潰閮借鍔犲伐(0鍚�1鏄�)
+        /// </summary>
+        [SugarColumn(ColumnName = "TWICE_SIDE")]
+        public int TwiceSide { get; set; } 
+
+        /// <summary>
+        /// 榛樿棣栨鏍囧噯鏁�(鑷姩鐢熸垚鍗曟澘宸ヨ壓璺緞淇℃伅浣跨敤)
+        /// </summary>
+        [SugarColumn(ColumnName = "FIRST_QC_QTY")]
+        public decimal? FirstQcQty { get; set; }
+
+        /// <summary>
+        /// 榛樿棣栨涓ラ噸缂洪櫡鏁�(鑷姩鐢熸垚鍗曟澘宸ヨ壓璺緞淇℃伅浣跨敤)
+        /// </summary>
+        [SugarColumn(ColumnName = "FQQ_AB_QTY")]
+        public decimal? FqqAbQty { get; set; }
+
+        /// <summary>
+        /// 榛樿棣栨杞诲井缂洪櫡鏁�(鑷姩鐢熸垚鍗曟澘宸ヨ壓璺緞淇℃伅浣跨敤)
+        /// </summary>
+        [SugarColumn(ColumnName = "FQQ_C_QTY")]
+        public decimal? FqqCQty { get; set; }
+
+        /// <summary>
+        /// 宸ュ簭椤哄簭鍙�
+        /// </summary>
+        [SugarColumn(ColumnName = "PROC_ORDER")]
+        public int? ProcOrder { get; set; }
+
+        /// <summary>
+        /// MRPII杞Щ灞炴��(0鍚�1鏄�)
+        /// </summary>
+        [SugarColumn(ColumnName = "MRP_ATTR")]
+        public int MrpAttr { get; set; } 
+
+        /// <summary>
+        /// 宸ュ簭杞Щ灞炴��(0鍚�1鏄�)
+        /// </summary>
+        [SugarColumn(ColumnName = "TRANSFER_ATTR")]
+        public int TransferAttr { get; set; } 
+
+        /// <summary>
+        /// 棣栨灞炴��(0鍚�1鏄�)
+        /// </summary>
+        [SugarColumn(ColumnName = "FIRST_CHK_ATTR")]
+        public int FirstChkAttr { get; set; } 
+
+        /// <summary>
+        /// 杩囩▼灞炴��(0鍚�1鏄�)
+        /// </summary>
+        [SugarColumn(ColumnName = "JOB_ATTR")]
+        public int JobAttr { get; set; }
+
+        /// <summary>
+        /// 璐ㄩ噺灞炴��(0鍚�1鏄�)
+        /// </summary>
+        [SugarColumn(ColumnName = "QUA_ATTR")]
+        public int QuaAttr { get; set; } 
+
+        /// <summary>
+        /// 杩囩▼閲囬泦宸ュ簭鍙�
+        /// </summary>
+        [SugarColumn(ColumnName = "COLLECTION_PROC")]
+        public string CollectionProc { get; set; }
+
+        /// <summary>
+        /// 棣栨鏂瑰紡(缂洪櫡鏁般�佸搧鏁�)
+        /// </summary>
+        [SugarColumn(ColumnName = "FIRST_CHK_TYPE")]
+        public string FirstChkType { get; set; }
+
+        /// <summary>
+        /// MRPII宸ュ簭杞Щ椤哄簭鍙�
+        /// </summary>
+        [SugarColumn(ColumnName = "MRP_ORDER")]
+        public string MrpOrder { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓浜�
+        /// </summary>
+        [SugarColumn(ColumnName = "CREATE_BY")]
+        public string CreateBy { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        [SugarColumn(ColumnName = "CREATE_DATE")]
+        public DateTime? CreateDate { get; set; }
+
+        /// <summary>
+        /// 鏇存柊浜�
+        /// </summary>
+        [SugarColumn(ColumnName = "LASTUPDATE_BY")]
+        public string LastupdateBy { get; set; }
+
+        /// <summary>
+        /// 鏇存柊鏃堕棿
+        /// </summary>
+        [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
+        public DateTime? LastupdateDate { get; set; }
+
+        /// <summary>
+        /// 鏄惁鍙備笌DPMO缁熻(0鍚�1鏄�)
+        /// </summary>
+        [SugarColumn(ColumnName = "DPMO_ATTR")]
+        public int DpmoAttr { get; set; }
+
+        /// <summary>
+        /// 鏄惁棰勮(0鍚�1鏄�)
+        /// </summary>
+        [SugarColumn(ColumnName = "PRECAUTION_ATTR")]
+        public int PrecautionAttr { get; set; }
+
+        /// <summary>
+        /// 鏍囧噯宸ュ簭鍙�
+        /// </summary>
+        [SugarColumn(ColumnName = "STANDARD_PROC_NO")]
+        public string StandardProcNo { get; set; }
+
+        /// <summary>
+        /// 宸ユ缂栫爜
+        /// </summary>
+        [SugarColumn(ColumnName = "WORKSHOP_SECTION_CODE")]
+        public string WorkshopSectionCode { get; set; }
+
+        /// <summary>
+        /// 鏈満绉嶅綋鍓嶅伐搴忕洿閫氱巼棰勮鍊硷紙灏忔暟浠h〃鐧惧垎姣旓級榛勭墝
+        /// </summary>
+        [SugarColumn(ColumnName = "ALARM_PASS_PERCENT")]
+        public decimal? AlarmPassPercent { get; set; }
+
+        /// <summary>
+        /// 鏈満绉嶅綋鍓嶅伐搴忕洿閫氱巼鍋滄満棰勮鍊硷紙灏忔暟浠h〃鐧惧垎姣旓級绾㈢墝
+        /// </summary>
+        [SugarColumn(ColumnName = "STOP_PASS_PERCENT")]
+        public decimal? StopPassPercent { get; set; }
+
+        /// <summary>
+        /// 鍚庣户宸ュ簭鏄惁鍙楁宸ュ簭鐨勫姞宸ユ暟閲忛檺鍒�(0鍚�1鏄�)
+        /// </summary>
+        [SugarColumn(ColumnName = "QTY_ATTR")]
+        public int QtyAttr { get; set; }
+
+        /// <summary>
+        /// 鍙岄潰鏉垮湪褰撳墠宸ュ簭鏄惁鍙互闅忔剰鍏堝姞宸闈㈡垨T闈�(0鍚�1鏄�)
+        /// </summary>
+        [SugarColumn(ColumnName = "AS_ORDER_FLAG")]
+        public int AsOrderFlag { get; set; }
+
+        /// <summary>
+        /// 鎶ュ簾鏍囩ず(0鍚�1鏄�)
+        /// </summary>
+        [SugarColumn(ColumnName = "WS_OS_FLAG")]
+        public int WsOsFlag { get; set; }
+
+        /// <summary>
+        /// 鎶ュ伐鏍囩ず(0鍚�1鏄�)
+        /// </summary>
+        [SugarColumn(ColumnName = "WS_CP_FLAG")]
+        public int WsCpFlag { get; set; }
+
+        /// <summary>
+        /// 璁板綍宸ュ簭灞炰簬鍝釜QC宸ユ
+        /// </summary>
+        [SugarColumn(ColumnName = "QC_SECTION_NO")]
+        public string QcSectionNo { get; set; }
+
+        /// <summary>
+        /// 鎺掍骇鏂瑰紡(鏍囧噯鑺傛媿,鍔犲伐鑺傛媿)
+        /// </summary>
+        [SugarColumn(ColumnName = "SCHEME_TYPE")]
+        public string SchemeType { get; set; }
+
+        /// <summary>
+        /// 鎺掍骇鏍囪瘑(0鍚�1鏄紝鎺掍骇宸ュ簭锛屽伐娈靛仠鐣欐椂闂翠娇鐢�)
+        /// </summary>
+        [SugarColumn(ColumnName = "SCHEME_FLAG")]
+        public int SchemeFlag { get; set; }
+
+        /// <summary>
+        /// 鎺掍骇鏄惁鍖哄垎鐝(0鍚�1鏄�)
+        /// </summary>
+        [SugarColumn(ColumnName = "SCHEME_CLASS_FLAG")]
+        public int SchemeClassFlag { get; set; }
+
+        /// <summary>
+        /// 瀵瑰簲灞炴��
+        /// </summary>
+        [SugarColumn(ColumnName = "COP_ATTR")]
+        public string CopAttr { get; set; } 
+
+        /// <summary>
+        /// 宸ヤ綔涓績缂栫爜
+        /// </summary>
+        [SugarColumn(ColumnName = "WORKSHOP_CENTER_CODE")]
+        public string WorkshopCenterCode { get; set; }
+
+        /// <summary>
+        /// 铏氭嫙鏉$爜閲囬泦(0鍚�1鏄�)
+        /// </summary>
+        [SugarColumn(ColumnName = "VIRTUAL_BARCODE_FLAG")]
+        public int VirtualBarcodeFlag { get; set; }
+
+        /// <summary>
+        /// 鍙傛暟鑼冨洿1
+        /// </summary>
+        [SugarColumn(ColumnName = "PR_1")]
+        public string Pr1 { get; set; }
+
+        /// <summary>
+        /// 鍙傛暟鑼冨洿2
+        /// </summary>
+        [SugarColumn(ColumnName = "PR_2")]
+        public string Pr2 { get; set; }
+
+        /// <summary>
+        /// 鍙傛暟鑼冨洿3
+        /// </summary>
+        [SugarColumn(ColumnName = "PR_3")]
+        public string Pr3 { get; set; }
+
+        /// <summary>
+        /// 鍙傛暟鑼冨洿4
+        /// </summary>
+        [SugarColumn(ColumnName = "PR_4")]
+        public string Pr4 { get; set; }
+
+        /// <summary>
+        /// 姝h礋鏋�
+        /// </summary>
+        [SugarColumn(ColumnName = "FPM_MARK")]
+        public string FpmMark { get; set; }
+
+        /// <summary>
+        /// 鏄惁鍏佽閲嶅鎶曟枡(0鍚�1鏄�)
+        /// </summary>
+        [SugarColumn(ColumnName = "SFCFTL")]
+        public int Sfcftl { get; set; }
+
+        /// <summary>
+        /// 鏄惁鎸夌収宸ュ崟鎶曟枡(0鍚�1鏄�)
+        /// </summary>
+        [SugarColumn(ColumnName = "IS_TASK_FALAG")]
+        public int IsTaskFalag { get; set; }
+
+        /// <summary>
+        /// 宸ュ巶
+        /// </summary>
+        [SugarColumn(ColumnName = "FACTORY")]
+        public string Factory { get; set; }
+
+        /// <summary>
+        /// 鍏徃
+        /// </summary>
+        [SugarColumn(ColumnName = "COMPANY")]
+        public string Company { get; set; }
+
+        /// <summary>
+        /// 璁′欢鏂瑰紡
+        /// </summary>
+        [SugarColumn(ColumnName = "SALARY_TYPE")]
+        public string SalaryType { get; set; }
+  }
diff --git a/WebApi/Gs.Wom/Service/MesProcInfoController.cs b/WebApi/Gs.Wom/Service/MesProcInfoController.cs
new file mode 100644
index 0000000..d636e1a
--- /dev/null
+++ b/WebApi/Gs.Wom/Service/MesProcInfoController.cs
@@ -0,0 +1,303 @@
+锘縰sing Gs.Toolbox.ApiCore.Common.Mvc;
+using Gs.Toolbox;
+using Gs.Toolbox.ApiCore.Group;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Dynamic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Gs.Toolbox.ApiCore.Abstract.Mvc;
+using static Gs.Toolbox.UtilityHelper;
+
+namespace Gs.Wom.Service
+{
+    [ApiGroup(ApiGroupNames.WOM)]
+    public class MesProcInfoController : IRomteService
+    {
+
+        private readonly IHttpContextAccessor _http;
+        private readonly string _userCode, _userGuid, _orgFids;
+
+        public MesProcInfoController(IHttpContextAccessor httpContextAccessor)
+        {
+            _http = httpContextAccessor;
+            (_userCode, _userGuid, _orgFids) =
+                GetUserGuidAndOrgGuid(_http);
+        }
+
+
+        /// <summary>
+        ///     璇诲彇鍒楄〃锛屾敮鎸佸垎椤�
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<PageList<dynamic>> GetListPage([FromBody] dynamic model)
+        {
+            int currentPage = model.currentPage;
+            int everyPageSize = model.everyPageSize;
+            string sortName = model.sortName;
+            string keyWhere = model.keyWhere;
+            SqlParameter[] parameters =
+            {
+            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>
+            {
+                total = 0,
+                everyPageSize = 0,
+                pages = 0,
+                list = new List<dynamic>()
+            };
+            try
+            {
+                dset = DbHelperSQL.RunProcedure("[prc_proc_info_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;
+                }
+            }
+            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, "璇诲彇鎴愬姛");
+        }
+
+        /// <summary>
+        ///     澧炲姞鎴栫紪杈戝疄浣�
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
+        {
+            // 涓婚敭澶勭悊
+            Guid? guid = model.guid; //涓婚敭
+            // 鍩烘湰瀛楁澶勭悊
+            string procOrder = model.procOrder;
+            string procNo = model.procNo;
+            string workshopCenterCode = model.workshopCenterCode;
+            string procName = model.procName;
+            string memo = model.memo;
+            string org = model.org;
+            string salaryType = model.salaryType;
+
+            //var _sb = new StringBuilder();
+            //var _split = "|";
+            //foreach (var m in model.list)
+            //{
+            //    string _guid = m.Guid.ToString();
+            //    var _line = m.ProcOrder + _split
+            //                            + m.ProcNo + _split
+            //                            + m.WorkshopCenterCode + _split
+            //                           + m.Memo + _split
+            //                            + (CheckGuid(_guid) ? _guid : Guid.Empty.ToString());
+            //    if (_sb.Length > 0)
+            //        _sb.Append("~");
+            //    _sb.Append(_line);
+            //}
+            //string memo = model.memo;
+            //string extDate = model.extDate;
+            ////
+            //string quantity = model.quantity;
+            //string psnQty_1 = model.psnQty_1;
+            //string iCount_1 = model.iCount_1;
+            dynamic mObj = new ExpandoObject();
+            mObj.outMsg = "";
+            mObj.outSum = -1;
+            mObj.outGuid = "";
+            mObj.outNo = "";
+            using (var conn = new SqlConnection(DbHelperSQL.strConn))
+            {
+                using (var cmd = new SqlCommand("[prc_proc_info_edt]", conn))
+                {
+                    try
+                    {
+                        conn.Open();
+                        cmd.CommandType = CommandType.StoredProcedure;
+                        SqlParameter[] parameters =
+                        {
+                        new("@outMsg", SqlDbType.NVarChar, 300),
+                        new("@outSum", SqlDbType.Int),
+                        new("@outGuid", SqlDbType.UniqueIdentifier),
+                        new("@outNo", SqlDbType.NVarChar, 300),
+                        new("@inOrderGuid", CheckGuid(guid) ? guid : DBNull.Value),
+                         new("@procOrder", procOrder),
+                         new("@procNo", procNo),
+                         new("@workshopCenterCode", workshopCenterCode),
+                         new("@procName", procName),
+                         new("@memo", memo),
+                         new("@org",org),
+                         new("@salaryType", salaryType),
+                         //new("@memo", memo),
+                         //new("@extDate", extDate),
+                         //new("@quantity", quantity),
+                         //new("@psnQty_1", psnQty_1),
+                         //new("@iCount_1", iCount_1),
+                         new("@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(),
+                            "box_edt error锛�" + ex.Message);
+                        mObj.outMsg = ex.Message;
+                        mObj.outSum = -1;
+                    }
+                    finally
+                    {
+                        conn.Close();
+                    }
+                }
+            }
+            if (mObj.outSum <= 0)
+                return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
+            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
+        }
+
+
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<int?> DeleteModel([FromBody] dynamic model)
+        {
+            int? rtnInt = (int)ReturnCode.Default;
+            Guid? guid = model.guid; //鍒拌揣鍗曚富閿�
+            //string mxGuid = model.mxGuid;
+            var _outMsg = "";
+            var _outSum = -1;
+            using (var conn = new SqlConnection(DbHelperSQL.strConn))
+            {
+                using (var cmd = new SqlCommand("[prc_proc_info_del]", conn))
+                {
+                    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),
+                        //new("@inMxGuid", mxGuid)
+                    };
+                        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_proc_info_del error锛�" + ex.Message);
+                        _outMsg = ex.Message;
+                        _outSum = -1;
+                    }
+                    finally
+                    {
+                        conn.Close();
+                    }
+                }
+            }
+
+            if (_outSum <= 0)
+                return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception,
+                    _outMsg);
+            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
+        }
+
+        /// <summary>
+        ///     璇诲彇
+        /// </summary>
+        /// <param name="guid"></param>
+        /// <returns></returns>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
+        {
+            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();
+            try
+            {
+                dset = DbHelperSQL.RunProcedure("[prc_proc_info_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();
+                    //var _tb = dset.Tables[1].TableToDynamicList();
+                    //m.list = _tb;
+                    //var _tb2 = dset.Tables[2].TableToDynamicList();
+                    //m.list2 = _tb2;
+                }
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Debug(ToString(), ex.Message);
+            }
+
+            if (m != null)
+                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
+                    "璇诲彇鎴愬姛锛�");
+            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "璇诲彇澶辫触锛�");
+        }
+
+    }
+}
diff --git a/WebApi/Gs.Wom/Service/MesProdGx0Controller.cs b/WebApi/Gs.Wom/Service/MesProdGx0Controller.cs
new file mode 100644
index 0000000..0eb7ba0
--- /dev/null
+++ b/WebApi/Gs.Wom/Service/MesProdGx0Controller.cs
@@ -0,0 +1,481 @@
+锘縰sing System.Data;
+using System.Data.SqlClient;
+using System.Dynamic;
+using System.Text;
+using Gs.Toolbox;
+using Gs.Toolbox.ApiCore.Abstract.Mvc;
+using Gs.Toolbox.ApiCore.Common.Mvc;
+using Gs.Toolbox.ApiCore.Group;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json.Linq;
+using static Gs.Toolbox.UtilityHelper;
+
+namespace Gs.Wom.Service
+{
+    [ApiGroup(ApiGroupNames.WOM)]
+    public class MesProdGx0Controller : IRomteService
+    {
+
+        private readonly IHttpContextAccessor _http;
+
+        private readonly string _userCode, _userGuid, _orgFids;
+        public MesProdGx0Controller(IHttpContextAccessor httpContextAccessor)
+        {
+            _http = httpContextAccessor;
+            (_userCode, _userGuid, _orgFids) =
+                GetUserGuidAndOrgGuid(_http);
+        }
+
+        /// <summary>
+        ///     璇诲彇鍒楄〃锛屾敮鎸佸垎椤�
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<PageList<dynamic>> GetListPage([FromBody] dynamic model)
+        {
+            int currentPage = model.currentPage;
+            int everyPageSize = model.everyPageSize;
+            string sortName = model.sortName;
+            string keyWhere = model.keyWhere;
+            SqlParameter[] parameters =
+            {
+            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>
+            {
+                total = 0,
+                everyPageSize = 0,
+                pages = 0,
+                list = new List<dynamic>()
+            };
+            try
+            {
+                dset = DbHelperSQL.RunProcedure("prc_prod_gx_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;
+                }
+            }
+            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, "璇诲彇鎴愬姛");
+        }
+
+        /// <summary>
+        ///     璇诲彇
+        /// </summary>
+        /// <param name="guid"></param>
+        /// <returns></returns>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<ExpandoObject> GetModel([FromBody] dynamic model)
+        {
+            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();
+            try
+            {
+                dset = DbHelperSQL.RunProcedure("[prc_item_tbl_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();
+                    var _tb = dset.Tables[1].TableToDynamicList();
+                    m.list = _tb;
+                    var _tb2 = dset.Tables[2].TableToDynamicList();
+                    m.list2 = _tb2;
+                }
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Debug(ToString(), ex.Message);
+            }
+
+            if (m != null)
+                return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Success,
+                    "璇诲彇鎴愬姛锛�");
+            return ReturnDto<dynamic>.QuickReturn(m, ReturnCode.Default, "璇诲彇澶辫触锛�");
+        }
+
+        /// <summary>
+        ///     澧炲姞鎴栫紪杈戝疄浣�
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<ExpandoObject> EditModel([FromBody] dynamic model)
+        {
+            Guid? guid = model.guid; //涓婚敭
+            string bz = model.bz; //澶囨敞
+            string yy = model.yy; //鍘熷洜
+            string inDaaGuid = model.inDaaGuid;//宸ュ崟
+            string inOrgId = model.inOrgId;//缁勭粐
+            var _sb = new StringBuilder();
+            var _split = "|";
+            foreach (var m in model.list)
+            {
+                string _guid = m.Guid.ToString();
+                var _line = m.AboutGuid + _split
+                                        + m.Sl + _split
+                                        + m.Remark + _split
+                                       + m.Bllb + _split
+                                        + (CheckGuid(_guid) ? _guid : Guid.Empty.ToString());
+                if (_sb.Length > 0)
+                    _sb.Append("~");
+                _sb.Append(_line);
+            }
+            dynamic mObj = new ExpandoObject();
+            mObj.outMsg = "";
+            mObj.outSum = -1;
+            mObj.outGuid = "";
+            mObj.outNo = "";
+            using (var conn = new SqlConnection(DbHelperSQL.strConn))
+            {
+                using (var cmd = new SqlCommand("[prc_item_tbl_edt]", conn))
+                {
+                    try
+                    {
+                        conn.Open();
+                        cmd.CommandType = CommandType.StoredProcedure;
+                        SqlParameter[] parameters =
+                        {
+                        new("@outMsg", SqlDbType.NVarChar, 300),
+                        new("@outSum", SqlDbType.Int),
+                        new("@outGuid", SqlDbType.UniqueIdentifier),
+                        new("@outNo", SqlDbType.NVarChar, 300),
+                        new("@inOrderGuid", CheckGuid(guid) ? guid : DBNull.Value),
+                        new("@inBz", bz),
+                        new("@inYy", yy),
+                        new("@inDaaGuid", inDaaGuid),
+                        new("@inOrgId", inOrgId),
+                        new("@inEdtUserGuid", _userGuid),
+                        new("@inLineList", _sb.ToString())
+                    };
+                        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_item_tbl_edt error锛�" + ex.Message);
+                        mObj.outMsg = ex.Message;
+                        mObj.outSum = -1;
+                    }
+                    finally
+                    {
+                        conn.Close();
+                    }
+                }
+            }
+            if (mObj.outSum <= 0)
+                return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Exception, mObj.outMsg);
+            return ReturnDto<dynamic>.QuickReturn(mObj, ReturnCode.Success, mObj.outMsg);
+        }
+
+
+        /// <summary>
+        ///     鏍规嵁渚涘簲鍟唅d 璇诲彇閫�璐х墿鏂�
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<PageList<dynamic>> SelectPba([FromBody] dynamic model)
+        {
+            int currentPage = model.currentPage;
+            int everyPageSize = model.everyPageSize;
+            string sortName = model.sortName;
+            string keyWhere = model.keyWhere;
+            string daaGuid = model.daaGuid;
+            var dset = new DataSet();
+            try
+            {
+                using (var conn = new SqlConnection(DbHelperSQL.strConn))
+                {
+                    using (var cmd = new SqlCommand("[prc_item_tbl_select]", conn))
+                    {
+                        conn.Open();
+                        cmd.CommandType = CommandType.StoredProcedure;
+                        SqlParameter[] parameters =
+                        {
+                        new("@inCurrentPage", currentPage),
+                        new("@inEveryPageSize", everyPageSize),
+                        new("@inSortName", sortName),
+                        new("@inSortOrder", ""),
+                        new("@inQueryWhere", keyWhere),
+                        new("@daaGuid", daaGuid),
+                        new("@inP1", ""),
+                        new("@inP2", "")
+                    };
+                        foreach (var parameter in parameters)
+                            cmd.Parameters.Add(parameter);
+                        using (var dt = new SqlDataAdapter(cmd))
+                        {
+                            dt.Fill(dset, "0");
+                        }
+                    }
+
+                    conn.Close();
+                }
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Debug(ToString(), "prc_item_tbl_select error锛�" + ex.Message);
+                return ReturnDto<PageList<dynamic>>.QuickReturn(
+                    default(PageList<dynamic>), ReturnCode.Exception, "璇诲彇澶辫触");
+            }
+
+            var _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) //鏈夋暟鎹�
+            {
+                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>
+        ///     鏍规嵁鐢ㄦ埛閫夋嫨鐨勯噰璐槑缁唃uid锛岃鍙栭渶瑕佷綔鍏ュ簱鍒拌揣鍗曠殑鏄庣粏
+        /// </summary>
+        /// <param name="query"></param>
+        /// <returns></returns>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<List<dynamic>> SelectPbaToView(
+            JArray guidList)
+        {
+            var intArray = guidList.ToObject<string[]>();
+            var sbLine = new StringBuilder();
+            foreach (var str in intArray)
+            {
+                if (sbLine.Length > 0)
+                    sbLine.Append(",");
+                sbLine.Append(str);
+            }
+
+            var lst = new List<dynamic>();
+            var dset = new DataSet();
+            using (var conn = new SqlConnection(DbHelperSQL.strConn))
+            {
+                using (var cmd =
+                       new SqlCommand("[prc_item_tbl_select_to_grid]", conn))
+                {
+                    try
+                    {
+                        conn.Open();
+                        cmd.CommandType = CommandType.StoredProcedure;
+                        SqlParameter[] parameters =
+                        {
+                        new("@inP1", sbLine.ToString())
+                    };
+                        foreach (var parameter in parameters)
+                            cmd.Parameters.Add(parameter);
+                        using (var dt = new SqlDataAdapter(cmd))
+                        {
+                            dt.Fill(dset, "0");
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                        LogHelper.Debug(ToString(),
+                            "prc_item_tbl_select_to_grid error锛�" + ex.Message);
+                    }
+                    finally
+                    {
+                        conn.Close();
+                    }
+                }
+            }
+
+            if (dset != null && dset.Tables.Count > 0 &&
+                dset.Tables[0].Rows.Count > 0) //鏈夋暟鎹�
+                lst = dset.Tables[0].TableToDynamicList();
+            return ReturnDto<List<dynamic>>.QuickReturn(lst, ReturnCode.Success,
+                "璇诲彇鎴愬姛锛�");
+        }
+
+
+        /// <summary>
+        ///     鍒犻櫎涓昏〃鎴栨槑缁�
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<int?> DeleteModelOrMx([FromBody] dynamic model)
+        {
+            int? rtnInt = (int)ReturnCode.Default;
+            Guid? guid = model.guid; //鍒拌揣鍗曚富閿�
+            string mxGuid = model.mxGuid;
+            var _outMsg = "";
+            var _outSum = -1;
+            using (var conn = new SqlConnection(DbHelperSQL.strConn))
+            {
+                using (var cmd = new SqlCommand("[prc_item_tbl_del]", conn))
+                {
+                    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),
+                        new("@inMxGuid", mxGuid)
+                    };
+                        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_item_tbl_del error锛�" + ex.Message);
+                        _outMsg = ex.Message;
+                        _outSum = -1;
+                    }
+                    finally
+                    {
+                        conn.Close();
+                    }
+                }
+            }
+
+            if (_outSum <= 0)
+                return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Exception,
+                    _outMsg);
+            return ReturnDto<int>.QuickReturn(rtnInt, ReturnCode.Success, _outMsg);
+        }
+
+
+        /// <summary>
+        ///     鎻愪氦妫�楠�
+        /// </summary>
+        /// <param name="mode"></param>
+        /// <returns></returns>
+        [RequestMethod(RequestMethods.POST)]
+        public ReturnDto<ExpandoObject> EditModelSubmit([FromBody] dynamic mode)
+        {
+            string _guid = mode.guid;
+            string _inFieldValue = mode.inFieldValue;
+            string _chkOut = mode.chkOut;
+            string _proName = "prc_item_tbl_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_item_tbl_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, "鎿嶄綔鎴愬姛锛�");
+        }
+
+    }
+}

--
Gitblit v1.9.3