From ee9f4215d0750a15031bfb89f0f347dadc8c1b70 Mon Sep 17 00:00:00 2001 From: 王 垚 <1402714037@qq.com> Date: 星期三, 07 十二月 2022 13:10:46 +0800 Subject: [PATCH] 提交 --- WebAPI/Controllers/BaseSet/Gy_UnitController.cs | 5 + WebAPI/Controllers/SCGL/日计划管理/DataHelper.cs | 79 +++++++++++++++++++ Pub_Class/CustomerCls/ClsSqlHelper.cs | 72 ++++++++++++----- WebAPI/WebAPI.csproj.user | 2 WebAPI/Controllers/BaseSet/Gy_WorkDayController.cs | 16 ++- WebAPI/Models/基础资料/WorkDay.cs | 4 + WebAPI/Controllers/BaseSet/Gy_WarehouseController.cs | 12 ++- WebAPI/Models/基础资料/Warehouse.cs | 3 8 files changed, 155 insertions(+), 38 deletions(-) diff --git a/Pub_Class/CustomerCls/ClsSqlHelper.cs b/Pub_Class/CustomerCls/ClsSqlHelper.cs index 2420e00..1e8b508 100644 --- a/Pub_Class/CustomerCls/ClsSqlHelper.cs +++ b/Pub_Class/CustomerCls/ClsSqlHelper.cs @@ -7,23 +7,23 @@ namespace Pub_Class { - public class ClsSqlHelper:IDisposable + public class ClsSqlHelper : IDisposable { private SqlConnection MainCn;//鍒涘缓杩炴帴瀵硅薄 public string strCon; SqlTransaction MainTran; public string sServer; - public string sDataBase ; + public string sDataBase; public string sUser; public string sPassword; //public string sTextBox = "HXErp_Test.ini"; public string sTextBox = "HXErp.ini"; //寮�濮嬩簨鍔� - public void BeginTran() + public void BeginTran() { if (!this.CnOpen()) return; - MainTran=MainCn.BeginTransaction(); + MainTran = MainCn.BeginTransaction(); } //缁撴潫浜嬪姟 public void Commit() @@ -45,7 +45,7 @@ ClsPub.AppPath = System.Environment.CurrentDirectory; //ClsPub.AppPath = @"C:\Windows\System32"; } - sServer = ClsIni.ReadIni("Erp", "Server", ClsPub.AppPath + @"\"+sTextBox); + sServer = ClsIni.ReadIni("Erp", "Server", ClsPub.AppPath + @"\" + sTextBox); sDataBase = ClsIni.ReadIni("Erp", "DataBase", ClsPub.AppPath + @"\" + sTextBox); sUser = ClsIni.ReadIni("Erp", "UserName", ClsPub.AppPath + @"\" + sTextBox); sPassword = ClsIni.ReadIni("Erp", "PassWord", ClsPub.AppPath + @"\" + sTextBox); @@ -54,13 +54,13 @@ public bool CheckOpen() { - if (sServer == "" || sServer == "娌℃湁鎵惧埌锛�" ) + if (sServer == "" || sServer == "娌℃湁鎵惧埌锛�") { throw new Exception("閿欒鐨勬湇鍔″櫒鍚�!!" + System.Environment.CurrentDirectory); } if (sDataBase == "" || sDataBase == "娌℃湁鎵惧埌锛�") { - throw new Exception("閿欒鐨勬暟鎹簱鍚�!!" +System.Environment.CurrentDirectory); + throw new Exception("閿欒鐨勬暟鎹簱鍚�!!" + System.Environment.CurrentDirectory); } SqlConnection oCn = new SqlConnection("Data Source=" + sServer + ";DataBase=master;User ID=" + sUser + ";PWD=" + sPassword + ";max pool size=32767"); try @@ -78,7 +78,7 @@ } } - private bool CnOpen()//OPEN鏁版嵁搴撹繛鎺� + private bool CnOpen()//OPEN鏁版嵁搴撹繛鎺� { if (sServer == "" || sServer == "娌℃湁鎵惧埌锛�") { @@ -88,7 +88,7 @@ { throw new Exception("閿欒鐨勬暟鎹簱鍚�!"); } - if (MainCn==null) + if (MainCn == null) { MainCn = new SqlConnection("Data Source=" + sServer + ";DataBase=" + sDataBase + ";User ID=" + sUser + ";PWD=" + sPassword + ";max pool size=32767"); } @@ -117,10 +117,10 @@ public void CnDispose()//閲婃斁璧勬簮 { - if(MainCn!=null) - { + if (MainCn != null) + { MainCn.Dispose(); - MainCn=null; + MainCn = null; } } /// <summary> @@ -133,7 +133,7 @@ /// <returns>鏂扮殑 parameter 瀵硅薄</returns> public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value) { - return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value); + return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value); } /// <summary> /// 鍒濆鍖栧弬鏁板�� @@ -192,13 +192,13 @@ /// <param name="procName"></param> /// <param name="sErrMessage"></param> /// <returns></returns> - public void RunProc(string procName,ref string sErr) + public void RunProc(string procName, ref string sErr) { if (!this.CnOpen()) { sErr = "杩炴帴鏁版嵁搴撳け璐ワ紒"; return; - + } try { @@ -211,7 +211,7 @@ } catch (Exception e) { - sErr =e.Message; + sErr = e.Message; ClsPub.sErrInfo = e.Message; throw (e); //return; @@ -226,7 +226,7 @@ /// <param name="tbName">琛ㄥ悕</param> /// <param name="sErrMessage">寮傚父淇℃伅</param> /// <returns></returns> - public DataSet RunProcReturn(string procName, SqlParameter[] prams, string tbName ) + public DataSet RunProcReturn(string procName, SqlParameter[] prams, string tbName) { SqlDataAdapter dap = CreateDataAdaper(procName, prams); if (dap == null) @@ -252,7 +252,7 @@ /// <param name="tbName">琛ㄥ悕</param> /// <param name="sErrMessage">寮傚父淇℃伅</param> /// <returns></returns> - public DataSet RunProcReturn(string procName, string tbName ) + public DataSet RunProcReturn(string procName, string tbName) { SqlDataAdapter dap = CreateDataAdaper(procName, null); DataSet ds = new DataSet(); @@ -276,7 +276,7 @@ /// <param name="tbName">琛ㄥ悕</param> /// <param name="sErrMessage">寮傚父淇℃伅</param> /// <returns></returns> - public DataSet RunProcReturn(string procName, string tbName,ref string sErr) + public DataSet RunProcReturn(string procName, string tbName, ref string sErr) { SqlDataAdapter dap = CreateDataAdaper(procName, null); DataSet ds = new DataSet(); @@ -366,7 +366,7 @@ } - public SqlDataReader RunReader(string sSQL,string tbName,ref string sErr) + public SqlDataReader RunReader(string sSQL, string tbName, ref string sErr) { if (!this.CnOpen()) { @@ -384,12 +384,42 @@ catch (Exception e) { ClsPub.sErrInfo = e.Message; - sErr = e.Message; + sErr = e.Message; return null; } } + /// <summary> + /// 鎵归噺鎻掑叆鏁版嵁搴� + /// </summary> + /// <param name="TableName">鐩爣琛�</param> + /// <param name="dt">婧愭暟鎹�</param> + public bool SqlBulkCopyByDatatable(string TableName, DataTable dt) + { + string connectionString = $"Data Source={sServer};DataBase={sDataBase};User ID={sUser};PWD={sPassword}"; + using (SqlConnection conn = new SqlConnection(connectionString)) + { + using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction)) + { + try + { + sqlbulkcopy.DestinationTableName = TableName; + for (int i = 0; i < dt.Columns.Count; i++) + { + sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName); + } + sqlbulkcopy.WriteToServer(dt); + return true; + } + catch (System.Exception ex) + { + //ex.Message; + return false; + } + } + } + } #region IDisposable 鎴愬憳 public void Dispose() diff --git a/WebAPI/Controllers/BaseSet/Gy_UnitController.cs b/WebAPI/Controllers/BaseSet/Gy_UnitController.cs index fb7252d..dba24d0 100644 --- a/WebAPI/Controllers/BaseSet/Gy_UnitController.cs +++ b/WebAPI/Controllers/BaseSet/Gy_UnitController.cs @@ -1,5 +1,7 @@ -锘縰sing Newtonsoft.Json; +锘縰sing Model; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; +using NPOI.SS.Formula.Functions; using Pub_Class; using System; using System.Collections; @@ -7,6 +9,7 @@ using System.Data; using System.Data.SqlClient; using System.Web.Http; +using WebAPI.Controllers.SCGL.鏃ヨ鍒掔鐞�; using WebAPI.Models; using WebAPI.Service; diff --git a/WebAPI/Controllers/BaseSet/Gy_WarehouseController.cs b/WebAPI/Controllers/BaseSet/Gy_WarehouseController.cs index dff852c..4cfa986 100644 --- a/WebAPI/Controllers/BaseSet/Gy_WarehouseController.cs +++ b/WebAPI/Controllers/BaseSet/Gy_WarehouseController.cs @@ -1,4 +1,5 @@ -锘縰sing Newtonsoft.Json; +锘縰sing Model; +using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Pub_Class; using System; @@ -7,6 +8,7 @@ using System.Data; using System.Data.SqlClient; using System.Web.Http; +using WebAPI.Controllers.SCGL.鏃ヨ鍒掔鐞�; using WebAPI.Models; namespace WebAPI.Controllers { @@ -221,7 +223,7 @@ long HParentID = list[0].HParentID; long HLevel = list[0].HLevel; bool HEndFlag = list[0].HEndFlag; - bool HStopflag = list[0].HStopflag; + bool HStopflag = list[0].HStopFlag; string HRemark = list[0].HRemark; string HBarCode = list[0].HBarCode; long HEmpID = list[0].HEmpID; @@ -304,7 +306,7 @@ long HParentID = list[0].HParentID; long HLevel = list[0].HLevel; bool HEndFlag = list[0].HEndFlag; - bool HStopflag = list[0].HStopflag; + bool HStopflag = list[0].HStopFlag; string HRemark = list[0].HRemark; string HBarCode = list[0].HBarCode; long HEmpID = list[0].HEmpID; @@ -411,6 +413,8 @@ _value = "[" + _value.ToString() + "]"; List<Warehouse> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Warehouse>>(_value); string sql = string.Empty; + //DataTable dt = DataHelper.ListToDataTable<Warehouse>(list); + //oCN.SqlBulkCopyByDatatable("Gy_Warehouse", dt); //淇濆瓨 oCN.BeginTran(); sql = $"delete Gy_Warehouse where HItemID = {list[0].HItemID}"; @@ -421,7 +425,7 @@ " (HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID" + ",HLevel,HEndFlag,HStopflag,HRemark,HEmpID,HAddress,HPhone,HUSEORGID) " + " Values('" + list[0].HItemID + "','" + list[0].HNumber + "','" +list[0].HName + "','" + list[0].HHelpCode + "','" + list[0].HShortNumber + "'," + list[0].HParentID.ToString() + - "," + list[0].HLevel.ToString() + "," + Convert.ToString(list[0].HEndFlag ? 1 : 0) + "," + Convert.ToString(list[0].HStopflag ? 1 : 0) + ",'" + list[0].HRemark + "'," + list[0].HEmpID.ToString() + ",'" + list[0].HAddress + "','" + list[0].HPhone + "','" + list[0].HUSEORGID + "')", ref DBUtility.ClsPub.sExeReturnInfo); + "," + list[0].HLevel.ToString() + "," + Convert.ToString(list[0].HEndFlag ? 1 : 0) + "," + Convert.ToString(list[0].HStopFlag ? 1 : 0) + ",'" + list[0].HRemark + "'," + list[0].HEmpID.ToString() + ",'" + list[0].HAddress + "','" + list[0].HPhone + "','" + list[0].HUSEORGID + "')", ref DBUtility.ClsPub.sExeReturnInfo); //淇敼涓婄骇涓洪潪鏈骇浠g爜 sql = "set identity_insert Gy_Warehouse off"; oCN.RunProc(sql); diff --git a/WebAPI/Controllers/BaseSet/Gy_WorkDayController.cs b/WebAPI/Controllers/BaseSet/Gy_WorkDayController.cs index 2ccd2ff..a0fd6b2 100644 --- a/WebAPI/Controllers/BaseSet/Gy_WorkDayController.cs +++ b/WebAPI/Controllers/BaseSet/Gy_WorkDayController.cs @@ -95,16 +95,14 @@ //鍙嶅簭鍒楀寲 msg2 = "[" + msg2.ToString() + "]"; List<WorkDay> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<WorkDay>>(msg2); - long HItemID = list[0].HItemID; - //淇濆瓨 //淇濆瓨瀹屾瘯鍚庡鐞� if (HItemID == 0) { oCN.BeginTran(); - string sql = string.Format(@"insert into Gy_WorkDay (HDate,HWorkBegin,HWorkEnd,HNoonbreakBegin,HNoonbreakEnd,HNightbreakBegin,HNightbreakEnd) -values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}')", list[0].HDate, list[0].HWorkBegin, list[0].HWorkEnd, list[0].HNoonbreakBegin, list[0].HNoonbreakEnd, list[0].HNightbreakBegin, list[0].HNightbreakEnd); + string sql = string.Format(@"insert into Gy_WorkDay (HDate,HWorkBegin,HWorkEnd,HNoonbreakBegin,HNoonbreakEnd,HNightbreakBegin,HNightbreakEnd,HNoonbreakBegin2,HNoonbreakEnd2,HNightbreakBegin2,HNightbreakEnd2) +values ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}')", list[0].HDate, list[0].HWorkBegin, list[0].HWorkEnd, list[0].HNoonbreakBegin, list[0].HNoonbreakEnd, list[0].HNightbreakBegin, list[0].HNightbreakEnd, list[0].HNoonbreakBegin2, list[0].HNoonbreakEnd2, list[0].HNightbreakBegin2, list[0].HNightbreakEnd2); oCN.RunProc(sql); oCN.Commit(); } @@ -118,9 +116,13 @@ ",HWorkBegin='" + list[0].HWorkBegin + "'" + ",HWorkEnd='" + list[0].HWorkEnd + "'" + ",HNoonbreakBegin='" + list[0].HNoonbreakBegin + "'" + - ",HNoonbreakEnd=" + list[0].HNoonbreakEnd + - ",HNightbreakBegin=" + list[0].HNightbreakBegin + - ",HNightbreakEnd=" + list[0].HNightbreakEnd + + ",HNoonbreakEnd='" + list[0].HNoonbreakEnd + "'" + + ",HNightbreakBegin='" + list[0].HNightbreakBegin + "'" + + ",HNightbreakEnd='" + list[0].HNightbreakEnd + "'" + + ",HNoonbreakBegin2='" + list[0].HNoonbreakBegin2 + "'" + + ",HNoonbreakEnd2='" + list[0].HNoonbreakEnd2 + "'" + + ",HNightbreakBegin2='" + list[0].HNightbreakBegin2 + "'" + + ",HNightbreakEnd2='" + list[0].HNightbreakEnd2 + "'" + " Where HItemID=" + HItemID, ref DBUtility.ClsPub.sExeReturnInfo); // oCN.Commit(); diff --git "a/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/DataHelper.cs" "b/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/DataHelper.cs" index b9adbec..ed0e600 100644 --- "a/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/DataHelper.cs" +++ "b/WebAPI/Controllers/SCGL/\346\227\245\350\256\241\345\210\222\347\256\241\347\220\206/DataHelper.cs" @@ -1,5 +1,8 @@ -锘縰sing System; +锘縰sing Newtonsoft.Json; +using System; +using System.Collections; using System.Collections.Generic; +using System.ComponentModel; using System.Data; using System.Linq; using System.Reflection; @@ -19,7 +22,7 @@ List<T> list = new List<T>(); if (ds.Tables[0].Rows.Count > 0) { - foreach (DataRow row in ds.Tables[0].Rows) + foreach (DataRow row in ds.Tables[0].Rows) { list.Add(row.Put(new T())); } @@ -167,5 +170,77 @@ } return $"update {table} set {strSet} where 1=1 {condition}"; } + + + + + /// <summary> + /// 灏哃ist杞崲鎴怐ataTable + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="data"></param> + /// <returns></returns> + public static DataTable ToDataTable<T>(this IList<T> data) + { + PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T)); + DataTable dt = new DataTable(); + for (int i = 0; i < properties.Count; i++) + { + PropertyDescriptor property = properties[i]; + dt.Columns.Add(property.Name, property.PropertyType); + } + object[] values = new object[properties.Count]; + foreach (T item in data) + { + for (int i = 0; i < values.Length; i++) + { + values[i] = properties[i].GetValue(item); + } + dt.Rows.Add(values); + } + return dt; + } + + + /// <summary> + /// 灏哃ist杞崲涓篋ataTable + /// </summary> + /// <param name="list">璇锋眰鏁版嵁</param> + /// <returns></returns> + public static DataTable ListToDataTable<T>(List<T> list) + { + //鍒涘缓涓�涓悕涓�"tableName"鐨勭┖琛� + DataTable dt = new DataTable("tableName"); + + //鍒涘缓浼犲叆瀵硅薄鍚嶇О鐨勫垪 + foreach (var item in list.FirstOrDefault().GetType().GetProperties()) + { + dt.Columns.Add(item.Name); + } + //寰幆瀛樺偍 + foreach (var item in list) + { + //鏂板姞琛� + DataRow value = dt.NewRow(); + //鏍规嵁DataTable涓殑鍊硷紝杩涜瀵瑰簲鐨勮祴鍊� + foreach (DataColumn dtColumn in dt.Columns) + { + int i = dt.Columns.IndexOf(dtColumn); + //鍩哄厓鍏冪礌锛岀洿鎺ュ鍒讹紝瀵硅薄绫诲瀷绛夛紝杩涜搴忓垪鍖� + if (value.GetType().IsPrimitive) + { + value[i] = item.GetType().GetProperty(dtColumn.ColumnName).GetValue(item); + } + else + { + value[i] = JsonConvert.SerializeObject(item.GetType().GetProperty(dtColumn.ColumnName).GetValue(item)); + } + } + dt.Rows.Add(value); + } + return dt; + } + } + } diff --git "a/WebAPI/Models/\345\237\272\347\241\200\350\265\204\346\226\231/Warehouse.cs" "b/WebAPI/Models/\345\237\272\347\241\200\350\265\204\346\226\231/Warehouse.cs" index 813b237..f0af683 100644 --- "a/WebAPI/Models/\345\237\272\347\241\200\350\265\204\346\226\231/Warehouse.cs" +++ "b/WebAPI/Models/\345\237\272\347\241\200\350\265\204\346\226\231/Warehouse.cs" @@ -16,12 +16,11 @@ public long HParentID { get; set; } public string HRemark { get; set; } public string HShortNumber { get; set; } - public bool HStopflag { get; set; } + public bool HStopFlag { get; set; } public string HUseFlag { get; set; } public Int64 HEmpID { get; set; } public string HAddress { get; set; } public string HPhone { get; set; } - public bool HIsStockMgr { get; set; } public Int64 HSPGroupID { get; set; } public string HBarCode { get; set; } public Int64 HUSEORGID { get; set; } diff --git "a/WebAPI/Models/\345\237\272\347\241\200\350\265\204\346\226\231/WorkDay.cs" "b/WebAPI/Models/\345\237\272\347\241\200\350\265\204\346\226\231/WorkDay.cs" index 36320f9..00eb1e4 100644 --- "a/WebAPI/Models/\345\237\272\347\241\200\350\265\204\346\226\231/WorkDay.cs" +++ "b/WebAPI/Models/\345\237\272\347\241\200\350\265\204\346\226\231/WorkDay.cs" @@ -15,5 +15,9 @@ public DateTime HNoonbreakEnd { get; set; } public DateTime HNightbreakBegin { get; set; } public DateTime HNightbreakEnd { get; set; } + public DateTime HNoonbreakBegin2 { get; set; } + public DateTime HNoonbreakEnd2 { get; set; } + public DateTime HNightbreakBegin2 { get; set; } + public DateTime HNightbreakEnd2 { get; set; } } } \ No newline at end of file diff --git a/WebAPI/WebAPI.csproj.user b/WebAPI/WebAPI.csproj.user index b5bf336..d152f2c 100644 --- a/WebAPI/WebAPI.csproj.user +++ b/WebAPI/WebAPI.csproj.user @@ -18,7 +18,7 @@ <IISExpressWindowsAuthentication /> <IISExpressUseClassicPipelineMode /> <UseGlobalApplicationHostFile /> - <ProjectView>ShowAllFiles</ProjectView> + <ProjectView>ProjectFiles</ProjectView> <Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID> <Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath> </PropertyGroup> -- Gitblit v1.9.1