From dfeb2f6efe1aafe644d69d0f9c6fce701b624221 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期二, 29 八月 2023 17:50:36 +0800
Subject: [PATCH] 同步erp计量单位信息 编写计量单位查询、新增、修改、删除接口

---
 VueWebCoreApi/ApiGroup/OpenApiGroup.cs              |    8 
 VueWebCoreApi/Controllers/ErpSyncMesController.cs   |   38 ++
 VueWebCoreApi/DLL/BLL/ErpSyncMesBLL.cs              |   20 +
 VueWebCoreApi/Tools/SeachEncodeJob.cs               |    2 
 VueWebCoreApi/Models/UnitMaterial/Unit.cs           |   26 +
 VueWebCoreApi/DLL/DAL/ProductModelDAL.cs            |  485 ++++++++++++++++++++++++++++++++++
 VueWebCoreApi/Controllers/ProductModelController.cs |  123 ++++++++
 VueWebCoreApi/DLL/DAL/ErpSyncMesDAL.cs              |   59 ++++
 VueWebCoreApi/DLL/BLL/ProductModelBLL.cs            |   49 +++
 9 files changed, 807 insertions(+), 3 deletions(-)

diff --git a/VueWebCoreApi/ApiGroup/OpenApiGroup.cs b/VueWebCoreApi/ApiGroup/OpenApiGroup.cs
index 411f24d..6b53905 100644
--- a/VueWebCoreApi/ApiGroup/OpenApiGroup.cs
+++ b/VueWebCoreApi/ApiGroup/OpenApiGroup.cs
@@ -11,13 +11,17 @@
         [Description("鐧诲綍淇℃伅")]
         鐧诲綍淇℃伅 = 1,
         [Description("鍩虹璁剧疆")]
-        鍩虹璁剧疆 = 4,
+        鍩虹璁剧疆 = 2,
+        [Description("鐗╂枡绠$悊")]
+        鐗╂枡绠$悊 = 3,
         [Description("鍛ㄦ湡浠诲姟")]
         鍛ㄦ湡浠诲姟 = 9,
         [Description("绯荤粺璁剧疆")]
         绯荤粺璁剧疆 = 10,
         [Description("閫氱敤鍩虹璧勬枡")]
-        閫氱敤鍩虹璧勬枡 = 11
+        閫氱敤鍩虹璧勬枡 = 11,
+        [Description("鐣呮嵎閫欵RP鍩虹鏁版嵁鍚屾")]
+        鐣呮嵎閫欵RP鍩虹鏁版嵁鍚屾 = 12
 
 
     }
diff --git a/VueWebCoreApi/Controllers/ErpSyncMesController.cs b/VueWebCoreApi/Controllers/ErpSyncMesController.cs
new file mode 100644
index 0000000..c08fa71
--- /dev/null
+++ b/VueWebCoreApi/Controllers/ErpSyncMesController.cs
@@ -0,0 +1,38 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using VueWebCoreApi.DLL.BLL;
+using VueWebCoreApi.Models;
+using VueWebCoreApi.Tools;
+
+namespace VueWebCoreApi.Controllers
+{
+    [ApiExplorerSettings(GroupName = "鐣呮嵎閫欵RP鍩虹鏁版嵁鍚屾")]
+    [ApiController]
+    [Route("api/[controller]")]
+    [ChannelActionFilter]
+    public class ErpSyncMesController : Controller
+    {
+        //瀹氫箟鍏ㄥ眬淇℃伅杩斿洖鍙橀噺
+        ToMessage mes = new ToMessage();
+        RedisHelper redis = new RedisHelper();
+
+        #region[鐗╂枡绠$悊锛氳閲忓崟浣嶅悓姝
+        /// <summary>
+        /// 鐗╂枡绠$悊锛氳閲忓崟浣嶅悓姝�
+        /// </summary>
+        /// <returns></returns>
+        [Route(template: "SaveSearchUnit")]
+        [HttpPost]
+        public JsonResult SaveSearchUnit()
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            mes = ErpSyncMesBLL.SaveSearchUnit(us);
+            return Json(mes);
+        }
+        #endregion
+    }
+}
diff --git a/VueWebCoreApi/Controllers/ProductModelController.cs b/VueWebCoreApi/Controllers/ProductModelController.cs
new file mode 100644
index 0000000..eb24bba
--- /dev/null
+++ b/VueWebCoreApi/Controllers/ProductModelController.cs
@@ -0,0 +1,123 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using VueWebCoreApi.DLL.BLL;
+using VueWebCoreApi.Models;
+using VueWebCoreApi.Models.UnitMaterial;
+using VueWebCoreApi.Tools;
+
+namespace VueWebCoreApi.Controllers
+{
+    [ApiExplorerSettings(GroupName = "鐗╂枡绠$悊")]
+    [ApiController]
+    [Route("api/[controller]")]
+    [ChannelActionFilter]
+    public class ProductModelController : Controller
+    {
+        //瀹氫箟鍏ㄥ眬淇℃伅杩斿洖鍙橀噺
+        ToMessage mes = new ToMessage();
+        RedisHelper redis = new RedisHelper();
+
+        #region[璁¢噺鍗曚綅缁勪俊鎭痌
+        /// <summary>
+        /// 璁¢噺鍗曚綅缁勪俊鎭�
+        /// </summary>
+        /// <returns></returns>
+        [Route(template: "TUnitGroup")]
+        [HttpGet]
+        public JsonResult TUnitGroup()
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            mes = ProductModelBLL.TUnitGroup();
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁¢噺鍗曚綅淇℃伅鍒楄〃]
+        /// <summary>
+        /// 璁¢噺鍗曚綅淇℃伅鍒楄〃
+        /// </summary>
+        /// <param name="tunittype">鍗曡閲�(S)  澶氳閲�(M)</param>
+        /// <param name="tunitgroupcode">璁¢噺鍗曚綅缁勭紪鐮�</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "TUnitData")]
+        [HttpGet]
+        public JsonResult TUnitData(string tunittype,string tunitgroupcode, int page = 0, int rows = 0, string prop = null, string order = null)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = ProductModelBLL.TUnitData(tunittype,tunitgroupcode, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁¢噺鍗曚綅缂栬緫鑾峰彇缁勬槑缁哴
+        /// <summary>
+        /// 璁¢噺鍗曚綅缂栬緫鑾峰彇缁勬槑缁�
+        /// </summary>
+        /// <param name="unitcode">璁¢噺鍗曚綅缂栫爜</param>
+        /// <param name="isgroup">鏄惁璁¢噺缁�:0(鍚�)1(鏄�)</param>
+        /// <returns></returns>
+        [Route(template: "TUnitGroupProject")]
+        [HttpGet]
+        public JsonResult TUnitGroupProject(string unitcode,string isgroup)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            mes = ProductModelBLL.TUnitGroupProject(unitcode,isgroup,us);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁¢噺鍗曚綅鏂板銆佺紪杈戜繚瀛榏
+        /// <summary>
+        /// 璁¢噺鍗曚綅鏂板銆佺紪杈戜繚瀛�
+        /// </summary>
+        /// <param name="data_sources">鏁版嵁鏉ユ簮:ERP/MES</param>
+        /// <param name="tunittype">鍗曡閲�(S)  澶氳閲�(M)</param>
+        /// <param name="tunitgroupcode">璁¢噺鍗曚綅缁勭紪鐮�</param>
+        /// <param name="OperType">鎿嶄綔绫诲瀷:Add/Update</param>
+        /// <param name="listjson">鎻愪氦鏁版嵁</param>
+        /// <returns></returns>
+        [Route(template: "AddUpdateTUnit")]
+        [HttpPost]
+        public JsonResult AddUpdateTUnit(string data_sources, string tunittype,string tunitgroupcode,string OperType, List<Unit> listjson)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            var menucode = HttpContext.Request.Headers["Menucode"].ToString(); //鑿滃崟缂栫爜
+            mes = ProductModelBLL.AddUpdateTUnit(menucode, data_sources,tunittype, tunitgroupcode, OperType, listjson, us);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璁¢噺鍗曚綅鍒犻櫎]
+        /// <summary>
+        /// 璁¢噺鍗曚綅鍒犻櫎
+        /// </summary>
+        /// <param name="data_sources">鏁版嵁鏉ユ簮:ERP/MES</param>
+        /// <param name="tunittype">鍗曡閲�(S)  澶氳閲�(M)</param>
+        /// <param name="tunitgroupcode">璁¢噺鍗曚綅缁勭紪鐮�</param>
+        /// <param name="tunitcode">璁¢噺鍗曚綅缂栫爜</param>
+        /// <returns></returns>
+        [Route(template: "DeleteTUnit")]
+        [HttpPost]
+        public JsonResult DeleteTUnit(string data_sources, string tunittype, string tunitgroupcode, string tunitcode)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            mes = ProductModelBLL.DeleteTUnit(data_sources, tunittype, tunitgroupcode, tunitcode, us);
+            return Json(mes);
+        }
+        #endregion
+    }
+}
diff --git a/VueWebCoreApi/DLL/BLL/ErpSyncMesBLL.cs b/VueWebCoreApi/DLL/BLL/ErpSyncMesBLL.cs
new file mode 100644
index 0000000..c130cf7
--- /dev/null
+++ b/VueWebCoreApi/DLL/BLL/ErpSyncMesBLL.cs
@@ -0,0 +1,20 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using VueWebCoreApi.DLL.DAL;
+using VueWebCoreApi.Models;
+using VueWebCoreApi.Tools;
+
+namespace VueWebCoreApi.DLL.BLL
+{
+    public class ErpSyncMesBLL
+    {
+        #region[鐗╂枡绠$悊锛氳閲忓崟浣嶅悓姝
+        public static ToMessage SaveSearchUnit(User us)
+        {
+            return ErpSyncMesDAL.SaveSearchUnit(us);
+        }
+        #endregion
+    }
+}
diff --git a/VueWebCoreApi/DLL/BLL/ProductModelBLL.cs b/VueWebCoreApi/DLL/BLL/ProductModelBLL.cs
new file mode 100644
index 0000000..03cbf61
--- /dev/null
+++ b/VueWebCoreApi/DLL/BLL/ProductModelBLL.cs
@@ -0,0 +1,49 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using VueWebCoreApi.DLL.DAL;
+using VueWebCoreApi.Models;
+using VueWebCoreApi.Models.UnitMaterial;
+using VueWebCoreApi.Tools;
+
+namespace VueWebCoreApi.DLL.BLL
+{
+    public class ProductModelBLL
+    {
+        #region[璁¢噺鍗曚綅缁勪俊鎭痌
+        public static ToMessage TUnitGroup()
+        {
+            return ProductModelDAL.TUnitGroup();
+        }
+        #endregion
+
+        #region[璁¢噺鍗曚綅淇℃伅鍒楄〃]
+        public static ToMessage TUnitData(string tunittype, string tunitgroupcode, int startNum, int endNum, string prop, string order)
+        {
+            return ProductModelDAL.TUnitData(tunittype, tunitgroupcode, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[璁¢噺鍗曚綅缂栬緫鑾峰彇缁勬槑缁哴
+        public static ToMessage TUnitGroupProject(string unitcode, string isgroup, User us)
+        {
+            return ProductModelDAL.TUnitGroupProject(unitcode,isgroup,us);
+        }
+        #endregion
+
+        #region[璁¢噺鍗曚綅鏂板銆佺紪杈戜繚瀛榏
+        public static ToMessage AddUpdateTUnit(string menucode,string data_sources, string tunittype, string tunitgroupcode, string OperType, List<Unit> listjson, User us)
+        {
+            return ProductModelDAL.AddUpdateTUnit(menucode, data_sources,tunittype, tunitgroupcode, OperType, listjson, us);
+        }
+        #endregion
+
+        #region[璁¢噺鍗曚綅鍒犻櫎]
+        public static ToMessage DeleteTUnit(string data_sources, string tunittype, string tunitgroupcode, string tunitcode, User us)
+        {
+            return ProductModelDAL.DeleteTUnit(data_sources, tunittype, tunitgroupcode, tunitcode, us);
+        }
+        #endregion
+    }
+}
diff --git a/VueWebCoreApi/DLL/DAL/ErpSyncMesDAL.cs b/VueWebCoreApi/DLL/DAL/ErpSyncMesDAL.cs
new file mode 100644
index 0000000..df8a8ea
--- /dev/null
+++ b/VueWebCoreApi/DLL/DAL/ErpSyncMesDAL.cs
@@ -0,0 +1,59 @@
+锘縰sing Dapper;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Threading.Tasks;
+using VueWebCoreApi.Models;
+using VueWebCoreApi.Tools;
+
+namespace VueWebCoreApi.DLL.DAL
+{
+    public class ErpSyncMesDAL
+    {
+        public static DataTable dt;    //瀹氫箟鍏ㄥ眬鍙橀噺dt
+        public static bool res;       //瀹氫箟鍏ㄥ眬鍙橀噺dt
+        public static ToMessage mes = new ToMessage(); //瀹氫箟鍏ㄥ眬杩斿洖淇℃伅瀵硅薄
+        public static string strProcName = ""; //瀹氫箟鍏ㄥ眬sql鍙橀噺
+        public static List<SqlParameter> listStr = new List<SqlParameter>(); //瀹氫箟鍏ㄥ眬鍙傛暟闆嗗悎
+        public static SqlParameter[] parameters; //瀹氫箟鍏ㄥ眬SqlParameter鍙傛暟鏁扮粍
+
+        #region[鐗╂枡绠$悊锛氳閲忓崟浣嶅悓姝
+        public static ToMessage SaveSearchUnit(User us)
+        {
+            var sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //瀛樺偍杩囩▼鍚�
+                sql = @"h_p_IFCLD_ERPUnit";
+                dynamicParams.Add("@username", us.usercode);
+                bool a = DapperHelper.IsProcedure(sql, dynamicParams);
+                if (a)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "鍚屾璁¢噺鍗曚綅鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鍚屾璁¢噺鍗曚綅鎴愬姛!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+    }
+}
diff --git a/VueWebCoreApi/DLL/DAL/ProductModelDAL.cs b/VueWebCoreApi/DLL/DAL/ProductModelDAL.cs
new file mode 100644
index 0000000..f7c504d
--- /dev/null
+++ b/VueWebCoreApi/DLL/DAL/ProductModelDAL.cs
@@ -0,0 +1,485 @@
+锘縰sing Dapper;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Threading.Tasks;
+using VueWebCoreApi.Models;
+using VueWebCoreApi.Models.UnitMaterial;
+using VueWebCoreApi.Tools;
+
+namespace VueWebCoreApi.DLL.DAL
+{
+    public class ProductModelDAL
+    {
+        public static DataTable dt;    //瀹氫箟鍏ㄥ眬鍙橀噺dt
+        public static bool res;       //瀹氫箟鍏ㄥ眬鍙橀噺dt
+        public static ToMessage mes = new ToMessage(); //瀹氫箟鍏ㄥ眬杩斿洖淇℃伅瀵硅薄
+        public static string strProcName = ""; //瀹氫箟鍏ㄥ眬sql鍙橀噺
+        public static List<SqlParameter> listStr = new List<SqlParameter>(); //瀹氫箟鍏ㄥ眬鍙傛暟闆嗗悎
+        public static SqlParameter[] parameters; //瀹氫箟鍏ㄥ眬SqlParameter鍙傛暟鏁扮粍
+
+
+        #region[璁¢噺鍗曚綅缁勪俊鎭痌
+        public static ToMessage TUnitGroup()
+        {
+            string sql = "";
+            try
+            {
+                //鑾峰彇璁¢噺鍗曚綅缁勪俊鎭�
+                sql = @"select code,name,'1' as isGroup,data_sources from TUnitGroup ";
+                var data = DapperHelper.selecttable(sql);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.data = data;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[璁¢噺鍗曚綅淇℃伅鍒楄〃]
+        public static ToMessage TUnitData(string tunittype, string tunitgroupcode, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string sql = "";
+            IEnumerable<object> data;
+            try
+            {
+                if (tunittype == "" || tunittype == null)
+                {
+                    sql = @"select code,name,lm_user,lm_date,isGroup,idunitgroup,data_sources   
+                             from TUnit  T where T.isGroup='0'
+                             union all
+                             select code,name,lm_user,lm_date,'1' as isGroup,code as idunitgroup,data_sources         
+                             from TUnitGroup ";
+                }
+                if (tunittype == "S") //鍗曡閲�
+                {
+                    sql = @"select code,name,lm_user,lm_date,isGroup,idunitgroup,data_sources  from TUnit where isSingleUnit='1' and isGroup='0'";
+                }
+                if (tunittype == "M" && (tunitgroupcode == "" || tunitgroupcode == null)) //澶氳閲�,涓斿璁¢噺缁勭紪鐮佷负绌�
+                {
+                    sql = @"select code,name,lm_user,lm_date,'1' as isGroup,code as idunitgroup,data_sources   from TUnitGroup";
+                }
+                if (tunittype == "M" && (tunitgroupcode != "" && tunitgroupcode != null)) //澶氳閲�,涓斿璁¢噺缁勭紪鐮佷笉涓虹┖
+                {
+                    sql = @"select code,name,isMainUnit,changeRate,rateDescription,lm_user,lm_date,isGroup,idunitgroup,data_sources  
+                            from TUnit where isSingleUnit='0' and isGroup='1' and idunitgroup=@tunitgroupcode";
+                    dynamicParams.Add("@tunitgroupcode", tunitgroupcode);
+                }
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.count = total;
+                mes.data = data.ToList();
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[璁¢噺鍗曚綅缂栬緫鑾峰彇缁勬槑缁哴
+        public static ToMessage TUnitGroupProject(string unitcode, string isgroup, User us)
+        {
+            var dynamicParams = new DynamicParameters();
+            string sql = "";
+            try
+            {
+                //鑾峰彇璁¢噺鍗曚綅缁勫搴旂殑璁¢噺鍗曚綅淇℃伅
+                sql = @"select code,name,isMainUnit,changeRate,rateDescription,lm_user,lm_date,data_sources  
+                        from TUnit where isSingleUnit='0' and isGroup=@isgroup and idunitgroup=@tunitgroupcode ";
+                dynamicParams.Add("@isGroup", isgroup);
+                dynamicParams.Add("@tunitgroupcode", unitcode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.data = data;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[璁¢噺鍗曚綅鏂板銆佺紪杈戜繚瀛榏
+        public static ToMessage AddUpdateTUnit(string menucode, string data_sources, string tunittype, string tunitgroupcode, string OperType, List<Unit> listjson, User us)
+        {
+            string sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                if (OperType == "Add")
+                {
+                    //鑾峰彇璁¢噺鍗曚綅缂栫爜
+                    mes = SeachEncodeJob.EncodingSeach(menucode);
+                    if (mes.code == "300")
+                    {
+                        return mes;
+                    }
+                    if (tunittype == "S") //鍗曡閲�
+                    {
+                        sql = @"select *  from TUnit where isGroup='0' and name=@name";
+                        dynamicParams.Add("@name", listjson[0].unitname);
+                        var data = DapperHelper.selectdata(sql, dynamicParams);
+                        if (data.Rows.Count > 0)
+                        {
+                            mes.code = "300";
+                            mes.count = 0;
+                            mes.Message = "璁¢噺鍗曚綅鐨勫悕绉颁笉鑳介噸澶�,璇烽噸鏂拌緭鍏�!";
+                            mes.data = null;
+                            return mes;
+                        }
+                    }
+                    if (tunittype == "M")//澶氳閲�
+                    {
+                        sql = @"select *  from TUnitGroup where name=@name";
+                        dynamicParams.Add("@name", listjson[0].unitname);
+                        var data = DapperHelper.selectdata(sql, dynamicParams);
+                        if (data.Rows.Count > 0)
+                        {
+                            mes.code = "300";
+                            mes.count = 0;
+                            mes.Message = "璁¢噺鍗曚綅缁勭殑鍚嶇О涓嶈兘閲嶅,璇烽噸鏂拌緭鍏�!";
+                            mes.data = null;
+                            return mes;
+                        }
+                        //鍐欏叆璁¢噺鍗曚綅缁�
+                        sql = @"insert into TUnitGroup(code,name,lm_user,lm_date,data_sources) 
+                            values(@code,@name,@lm_user,@lm_date,@data_sources)";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                code = ((List<string>)mes.data)[0].ToString(),
+                                name = listjson[0].unitname,
+                                data_sources = data_sources,
+                                lm_user = us.usercode,
+                                lm_date = DateTime.Now.ToString()
+                            }
+                        });
+                    }
+                    for (int i = 0; i < listjson[0].children.Count; i++)
+                    {
+                        //鍐欏叆璁¢噺鍗曚綅
+                        sql = @"insert into TUnit(code,name,isMainUnit,changeRate,rateDescription,isSingleUnit,disabled,idunitgroup,isGroup,data_sources,lm_user,lm_date) 
+                            values(@code,@name,@isMainUnit,@changeRate,@rateDescription,@isSingleUnit,@disabled,@idunitgroup,@isGroup,@data_sources,@lm_user,@lm_date)";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                code = tunittype == "S" ? ((List<string>)mes.data)[0].ToString() : listjson[0].children[i].unitcode,
+                                name = listjson[0].children[i].unitname,
+                                isMainUnit = listjson[0].children[i].isMainUnit,
+                                changeRate = listjson[0].children[i].changeRate,
+                                rateDescription = listjson[0].children[i].rateDescription,
+                                isSingleUnit = listjson[0].children[i].isSingleUnit,
+                                disabled = listjson[0].children[i].disabled,
+                                idunitgroup = ((List<string>)mes.data)[0].ToString(),
+                                isGroup = listjson[0].children[i].isGroup,
+                                data_sources = data_sources,
+                                lm_user = us.usercode,
+                                lm_date = DateTime.Now.ToString()
+                            }
+                        });
+                    }
+                    //鍥炲啓缂栫爜瑙勫垯琛�
+                    list.AddRange(SeachEncodeJob.StrEncodingUpdate(menucode, ((List<string>)mes.data)[1].ToString()));
+                    bool aa = DapperHelper.DoTransaction(list);
+                    if (aa)
+                    {
+                        //鍐欏叆鎿嶄綔璁板綍琛�
+                        LogHelper.DbOperateLog(us.usercode, "鏂板", "鏂板浜嗚閲忓崟浣�", us.usertype);
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.Message = "鏂板鎿嶄綔鎴愬姛!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "鏂板鎿嶄綔澶辫触!";
+                        mes.data = null;
+                    }
+                }
+                if (OperType == "Update")
+                {
+                    if (tunittype == "S") //鍗曡閲�
+                    {
+                        sql = @"select *  from TUnit where isGroup='0' and name=@name";
+                        dynamicParams.Add("@name", listjson[0].unitname);
+                        var data = DapperHelper.selectdata(sql, dynamicParams);
+                        if (data.Rows.Count > 0)
+                        {
+                            mes.code = "300";
+                            mes.count = 0;
+                            mes.Message = "璁¢噺鍗曚綅鐨勫悕绉颁笉鑳介噸澶�,璇烽噸鏂拌緭鍏�!";
+                            mes.data = null;
+                            return mes;
+                        }
+
+                        //鏇存柊璁¢噺鍗曚綅(鍗曡閲�)
+                        sql = @"update TUnit set name=@name,lm_user=@lm_user,lm_date=@lm_date
+                                where code=@code and isSingleUnit=@isSingleUnit and isGroup=@isGroup";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                code = listjson[0].children[0].unitcode,
+                                name = listjson[0].children[0].unitname,
+                                isSingleUnit = listjson[0].children[0].isSingleUnit,
+                                isGroup = listjson[0].children[0].isGroup,
+                                lm_user = us.usercode,
+                                lm_date = DateTime.Now.ToString()
+                            }
+                        });
+
+                    }
+                    if (tunittype == "M")//澶氳閲�
+                    {
+                        sql = @"select *  from TUnitGroup where name=@name";
+                        dynamicParams.Add("@name", listjson[0].unitname);
+                        var data = DapperHelper.selectdata(sql, dynamicParams);
+                        if (data.Rows.Count > 0)
+                        {
+                            mes.code = "300";
+                            mes.count = 0;
+                            mes.Message = "璁¢噺鍗曚綅缁勭殑鍚嶇О涓嶈兘閲嶅,璇烽噸鏂拌緭鍏�!";
+                            mes.data = null;
+                            return mes;
+                        }
+                        //淇敼璁¢噺鍗曚綅缁�
+                        sql = @"update TUnitGroup set name=@name,lm_user=@lm_user,lm_date=@lm_date where code=@code";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                code = listjson[0].unitcode,
+                                name = listjson[0].unitname,
+                                lm_user = us.usercode,
+                                lm_date = DateTime.Now.ToString()
+                            }
+                        });
+                        //鍒犻櫎璁¢噺鍗曚綅缁勬槑缁�(浠庤閲忓崟浣嶈〃鍒犻櫎)
+                        sql = @"delete TUnit where idunitgroup=@idunitgroup";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                idunitgroup = tunitgroupcode
+                            }
+                        });
+                        for (int i = 0; i < listjson[0].children.Count; i++)
+                        {
+                            //鍐欏叆璁¢噺鍗曚綅
+                            sql = @"insert into TUnit(code,name,isMainUnit,changeRate,rateDescription,isSingleUnit,disabled,idunitgroup,isGroup,data_sources,lm_user,lm_date) 
+                            values(@code,@name,@isMainUnit,@changeRate,@rateDescription,@isSingleUnit,@disabled,@idunitgroup,@isGroup,@data_sources,@lm_user,@lm_date)";
+                            list.Add(new
+                            {
+                                str = sql,
+                                parm = new
+                                {
+                                    code = listjson[0].children[i].unitcode,
+                                    name = listjson[0].children[i].unitname,
+                                    isMainUnit = listjson[0].children[i].isMainUnit,
+                                    changeRate = listjson[0].children[i].changeRate,
+                                    rateDescription = listjson[0].children[i].rateDescription,
+                                    isSingleUnit = listjson[0].children[i].isSingleUnit,
+                                    disabled = listjson[0].children[i].disabled,
+                                    idunitgroup = listjson[0].children[i].idunitgroup,
+                                    isGroup = listjson[0].children[i].isGroup,
+                                    data_sources = data_sources,
+                                    lm_user = us.usercode,
+                                    lm_date = DateTime.Now.ToString()
+                                }
+                            });
+                        }
+                    }
+
+                    bool aa = DapperHelper.DoTransaction(list);
+                    if (aa)
+                    {
+                        //鍐欏叆鎿嶄綔璁板綍琛�
+                        LogHelper.DbOperateLog(us.usercode, "淇敼", "淇敼浜嗚閲忓崟浣�", us.usertype);
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.Message = "淇敼鎿嶄綔鎴愬姛!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "淇敼鎿嶄綔澶辫触!";
+                        mes.data = null;
+                    }
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[璁¢噺鍗曚綅鍒犻櫎]
+        public static ToMessage DeleteTUnit(string data_sources, string tunittype, string tunitgroupcode, string tunitcode, User us)
+        {
+            string sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                if (tunittype == "S") //鍗曡閲�
+                {
+                    sql = @"select *  from TMateriel_Info where isSingleUnit='1' and idunit=@idunit";
+                    dynamicParams.Add("@idunit", tunitgroupcode);
+                    var data = DapperHelper.selectdata(sql, dynamicParams);
+                    if (data.Rows.Count > 0)
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "鍗曡閲忓崟浣嶅凡琚娇鐢�,涓嶅厑璁稿垹闄�!";
+                        mes.data = null;
+                        return mes;
+                    }
+                    //鍒犻櫎璁¢噺鍗曚綅
+                    sql = @"delete TUnit where isSingleUnit='1' and isGroup='0' and code=@code and data_sources=@data_sources";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            code = tunitcode,
+                            data_sources = data_sources
+                        }
+                    });
+                }
+                if (tunittype == "M" && (tunitgroupcode == "" || tunitgroupcode == null)) //澶氳閲�,涓斿璁¢噺缁勭紪鐮佷负绌�
+                {
+                    sql = @"select *   from TUnit T
+                            inner join TMateriel_Info M on T.idunitgroup=M.idunitgroup and T.code=M.idunit
+                            where T.isSingleUnit='0'  and T.idunitgroup=@idunitgroup";
+                    dynamicParams.Add("@idunitgroup", tunitgroupcode);
+                    var data = DapperHelper.selectdata(sql, dynamicParams);
+                    if (data.Rows.Count > 0)
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "澶氳閲忓崟浣嶇粍涓湁璁¢噺鍗曚綅琚娇鐢�,涓嶅厑璁稿垹闄�!";
+                        mes.data = null;
+                        return mes;
+                    }
+                    //鍒犻櫎澶氳閲忓崟浣嶇粍
+                    sql = @"delete TUnitGroup where code=@code and data_sources=@data_sources";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            code = tunitgroupcode,
+                            data_sources = data_sources
+                        }
+                    });
+                    //鍒犻櫎澶氳閲忓崟浣嶇粍涓嬫墍鏈夎閲忓崟浣�
+                    sql = @"delete TUnit where isSingleUnit='0' and isGroup='1' where idunitgroup=@idunitgroup and data_sources=@data_sources";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            idunitgroup= tunitgroupcode,
+                            data_sources = data_sources
+                        }
+                    });
+                }
+                if (tunittype == "M" && (tunitgroupcode != "" && tunitgroupcode != null)) //澶氳閲�,涓斿璁¢噺缁勭紪鐮佷笉涓虹┖
+                {
+                    sql = @"select *   from TUnit T
+                            inner join TMateriel_Info M on T.idunitgroup=M.idunitgroup and T.code=M.idunit
+                            where T.isSingleUnit='0' and M.isSingleUnit='0' and T.idunitgroup=@idunitgroup and T.code=@idunit";
+                    dynamicParams.Add("@idunitgroup", tunitgroupcode);
+                    dynamicParams.Add("@idunit", tunitcode);
+                    var data = DapperHelper.selectdata(sql, dynamicParams);
+                    if (data.Rows.Count > 0)
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "澶氳閲忓崟浣嶅凡琚娇鐢�,涓嶅厑璁稿垹闄�!";
+                        mes.data = null;
+                        return mes;
+                    }
+                    //鍒犻櫎澶氳閲忓崟浣嶇粍涓嬫寚瀹氳閲忓崟浣�
+                    sql = @"delete TUnit where isSingleUnit='0' and isGroup='1' where idunitgroup=@idunitgroup and code=@code and data_sources=@data_sources";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            idunitgroup = tunitgroupcode,
+                            code = tunitcode,
+                            data_sources = data_sources
+                        }
+                    });
+                }
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    //鍐欏叆鎿嶄綔璁板綍琛�
+                    LogHelper.DbOperateLog(us.usercode, "鍒犻櫎", "鍒犻櫎浜嗚閲忓崟浣�", us.usertype);
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "鏂板鎿嶄綔鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鏂板鎿嶄綔澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+    }
+}
diff --git a/VueWebCoreApi/Models/UnitMaterial/Unit.cs b/VueWebCoreApi/Models/UnitMaterial/Unit.cs
new file mode 100644
index 0000000..4114f0a
--- /dev/null
+++ b/VueWebCoreApi/Models/UnitMaterial/Unit.cs
@@ -0,0 +1,26 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace VueWebCoreApi.Models.UnitMaterial
+{
+    public class Unit
+    {
+        public string unitcode { get; set; }
+        public string unitname { get; set; }
+        public List<unitporject> children { get; set; }
+    }
+    public class unitporject
+    {
+        public string unitcode { get; set; }
+        public string unitname { get; set; }
+        public string isMainUnit { get; set; }
+        public decimal changeRate { get; set; }
+        public string isSingleUnit { get; set; }
+        public string disabled { get; set; }
+        public string isGroup { get; set; }
+        public string rateDescription { get; set; }
+        public string idunitgroup { get; set; }
+    }
+}
diff --git a/VueWebCoreApi/Tools/SeachEncodeJob.cs b/VueWebCoreApi/Tools/SeachEncodeJob.cs
index 392c2b7..7c645e8 100644
--- a/VueWebCoreApi/Tools/SeachEncodeJob.cs
+++ b/VueWebCoreApi/Tools/SeachEncodeJob.cs
@@ -257,7 +257,7 @@
             List<object> list = new List<object>();
             list.Clear();
             string sql = @"update TCodeRules set value=@cunm2,incbit=@incbit  where menucode=@rightcode";
-            list.Add(new { str = sql, parm = new { rightcode = rightcode, cunm2 = Convert.ToInt32(incbit), incbit = incbit.Length } });
+            list.Add(new { str = sql, parm = new { rightcode = rightcode, cunm2 = incbit, incbit = incbit.Length } });
             return list;
         }
         #endregion

--
Gitblit v1.9.3