using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Pub_Control; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Text; using System.Web; using System.Web.Http; using WebAPI.Models; namespace WebAPI.Controllers.BaseSet { public class Xt_grdAlignment_WMESController : ApiController { private json objJsonResult = new json(); public DataSet ds = new DataSet(); public WebServer webserver = new WebServer(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); grdAlignment omdelMian = new grdAlignment(); List omdelsub = new List(); #region 隐藏列设置 列表 [Route("Xt_grdAlignment_WMES/grdAlignmentWMESList")] [HttpGet] public object grdAlignmentWMESList(string HModName, string user) { try { List columnNameList = new List(); //定义声明变量 ,把通过 new List()创建的 实例,赋值给变量 ds = oCN.RunProcReturn("select * from Xt_grdAlignment_WMES where HModName='" + HModName + "' and HUserName='" + user + "'", "Xt_grdAlignment_WMES"); if (ds.Tables[0].Rows.Count == 0) { ds = oCN.RunProcReturn("select * from Xt_grdAlignment_WMES where HModName='" + HModName + "' and (HUserName='admin' or HUserName='Admin')", "Xt_grdAlignment_WMES"); if (ds.Tables[0].Rows.Count != 0) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } foreach (DataColumn col in ds.Tables[0].Columns)//遍历ds中第一个表(Tables[0])的所有列(Columns)每次循环中,col变量会持有当前列的引用 { Type dataType = col.DataType; //获取当前数据类型传入 自定义变量datadataType string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; //字符串拼接 // 将列名和数据类型信息拼接成一个JSON格式的字符串 columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0];//代码将第一个DataTable(索引为0)赋值给objJsonResult的data属性 objJsonResult.list = columnNameList;//将columnNameList赋值给objJsonResult的list属性 return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 隐藏列设置 添加/修改 public class grdAlignment { public string HFixCols; public string HFontSize; public string HHeadTextHeight; public string HTextHeight; public string HSortFlag; public string HSelTotal; public string HColumnWidth; public string HPageSize; } public class grdAlignmentSub { public string ColumnName; public bool IsHide; public string Alignment; public string ColumnWidth; public string ColumnName_Other; public bool IsTotalRow; } [Route("Xt_grdAlignment_WMES/AddgrdAlignmentWMES")] [HttpPost] public object AddgrdAlignmentWMES([FromBody] JObject sMainSub) { var _value = sMainSub["sMainSub"].ToString(); string msg1 = _value.ToString(); oCN.BeginTran(); //保存主表 objJsonResult = AddBillMain(msg1); if (objJsonResult.code == "0") { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = objJsonResult.Message; objJsonResult.data = null; return objJsonResult; } oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "新增单据成功!"; objJsonResult.data = null; return objJsonResult; } public json AddBillMain(string msg1) { string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); string msg3 = sArray[1].ToString(); string HModName = sArray[2].ToString(); int OperationType = int.Parse(sArray[3].ToString());//数据类型 1添加 3修改 string user = sArray[4].ToString(); try { omdelMian = Newtonsoft.Json.JsonConvert.DeserializeObject(msg2); omdelsub = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg3); var HGridString = ""; for (int i = 0; i < omdelsub.Count; i++) { var width = omdelsub[i].ColumnWidth; if (string.IsNullOrEmpty(width) || DBUtility.ClsPub.isLong(width) == 0) width = "120"; var ColumnName_Other = (omdelsub[i].ColumnName_Other == null || omdelsub[i].ColumnName_Other.Trim() == "") ? omdelsub[i].ColumnName : omdelsub[i].ColumnName_Other; HGridString += $"{(i + 1)}|{(omdelsub[i].IsHide == true ? 1 : 0)}|{omdelsub[i].Alignment}|{width}|{ColumnName_Other}|{omdelsub[i].ColumnName}|{(omdelsub[i].IsTotalRow == true ? 1 : 0)},"; } HGridString = HGridString.Substring(0, HGridString.Length - 1); oCN.RunProc("Delete from Xt_grdAlignment_WMES where HUserName='" + user + "' and HModName='" + HModName + "' "); string sql = "insert into Xt_grdAlignment_WMES (HUserName,HModName,HGridString,HFixCols" + ",HFontSize,HHeadTextHeight,HTextHeight,HSortFlag,HSelTotal,HColumnWidth,HPageSize" + ") values('" + user + "','" + HModName + "','" + HGridString + "'," + (omdelMian.HFixCols == "" ? "0" : omdelMian.HFixCols) + "," + (omdelMian.HFontSize == "" ? "0" : omdelMian.HFontSize) + ",0" + ",0,'" + omdelMian.HSortFlag + "','" + omdelMian.HSelTotal + "'" + "," + (omdelMian.HColumnWidth == "" ? "0" : omdelMian.HColumnWidth) + "," + ((omdelMian.HPageSize == null || omdelMian.HPageSize == "") ? "0" : omdelMian.HPageSize) + ")"; oCN.RunProc(sql); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = null; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 新隐藏列设置(添加列名保存控制序号位置) 添加/修改 [Route("Xt_grdAlignment_WMES/AddgrdAlignmentWMESNew")] [HttpPost] public object AddgrdAlignmentWMESNew([FromBody] JObject sMainSub) { var _value = sMainSub["sMainSub"].ToString(); string msg1 = _value.ToString(); oCN.BeginTran(); //保存主表 objJsonResult = AddBillMainNew(msg1); if (objJsonResult.code == "0") { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = objJsonResult.Message; objJsonResult.data = null; return objJsonResult; } oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "新增单据成功!"; objJsonResult.data = null; return objJsonResult; } public json AddBillMainNew(string msg1) { string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); string msg3 = sArray[1].ToString(); string HModName = sArray[2].ToString(); int OperationType = int.Parse(sArray[3].ToString());//数据类型 1添加 3修改 string user = sArray[4].ToString(); try { omdelMian = Newtonsoft.Json.JsonConvert.DeserializeObject(msg2); omdelsub = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg3); var HGridString = ""; for (int i = 0; i < omdelsub.Count; i++) { var width = omdelsub[i].ColumnWidth; if (string.IsNullOrEmpty(width) || DBUtility.ClsPub.isLong(width) == 0) width = "120"; var ColumnName_Other = (omdelsub[i].ColumnName_Other == null || omdelsub[i].ColumnName_Other.Trim() == "") ? omdelsub[i].ColumnName : omdelsub[i].ColumnName_Other; HGridString += $"{(i + 1)}|{(omdelsub[i].IsHide == true ? 1 : 0)}|{omdelsub[i].Alignment}|{width}|{ColumnName_Other}|{omdelsub[i].ColumnName}|{(omdelsub[i].IsTotalRow == true ? 1 : 0)},"; } HGridString = HGridString.Substring(0, HGridString.Length - 1); oCN.RunProc("Delete from Xt_grdAlignment_WMES where HUserName='" + user + "' and HModName='" + HModName + "' "); string sql = "insert into Xt_grdAlignment_WMES (HUserName,HModName,HGridString,HFixCols" + ",HFontSize,HHeadTextHeight,HTextHeight,HSortFlag,HSelTotal,HColumnWidth,HPageSize" + ") values('" + user + "','" + HModName + "','" + HGridString + "'," + (omdelMian.HFixCols == "" ? "0" : omdelMian.HFixCols) + "," + (omdelMian.HFontSize == "" ? "0" : omdelMian.HFontSize) + ",0" + ",0,'" + omdelMian.HSortFlag + "','" + omdelMian.HSelTotal + "'" + "," + (omdelMian.HColumnWidth == "" ? "0" : omdelMian.HColumnWidth) + "," + ((omdelMian.HPageSize == null || omdelMian.HPageSize == "") ? "0" : omdelMian.HPageSize) + ")"; oCN.RunProc(sql); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = null; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 隐藏列设置 删除 [Route("Xt_grdAlignment_WMES/DelgrdAlignmentWMES")] [HttpGet] public object DelgrdAlignmentWMES(string HModName, string user) { try { ds = oCN.RunProcReturn("select * from Xt_grdAlignment_WMES where HModName='" + HModName + "' and HUserName='" + user + "'", "Xt_grdAlignment_WMES"); if (ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此人无模块数据!"; objJsonResult.data = null; return objJsonResult; } oCN.BeginTran(); oCN.RunProc("delete from Xt_grdAlignment_WMES where HModName='" + HModName + "' and HUserName='" + user + "'"); oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "删除成功!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 按钮设置 列表 [Route("Xt_ModuleButtonSet_WMES/moduleButtonSetWMESList")] [HttpGet] public object moduleButtonSetWMESList(string HModName, string HBillType, string HUserName) { try { ds = oCN.RunProcReturn("select * from Xt_ModuleButtonSet where HModuleName='" + HModName + "' and HBillType='" + HBillType + "' and HUserName='" + HUserName + "' order by HOrder", "Xt_ModuleButtonSet"); if (ds.Tables[0].Rows.Count == 0) { ds = oCN.RunProcReturn("select * from Xt_ModuleButtonSet where HModuleName='" + HModName + "' and HBillType='" + HBillType + "' and HUserName='" + "admin" + "' order by HOrder", "Xt_ModuleButtonSet"); if (ds.Tables[0].Rows.Count != 0) { objJsonResult.code = "1"; objJsonResult.count = ds.Tables[0].Rows.Count; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } objJsonResult.code = "1"; objJsonResult.count = ds.Tables[0].Rows.Count; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 按钮设置 添加/修改 public class moduleButtonSet { public string BtnID; public string BtnName; public bool IsHide; public string HOtherName; } public class noEditList { public string HBillType; public string HModuleName; public string HButtonID; public string HButtonName; public int HOrder; public bool HHideFlag; public bool HEditFlag; public string HOtherName; } [Route("Xt_ModuleButtonSet_WMES/AddModuleButtonSetWMES")] [HttpPost] public object AddModuleButtonSetWMES([FromBody] JObject sMainSub) { var _value = sMainSub["sMainSub"].ToString(); string msg1 = _value.ToString(); oCN.BeginTran(); //保存主表 objJsonResult = AddButtonMain(msg1); if (objJsonResult.code == "0") { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = objJsonResult.Message; objJsonResult.data = null; return objJsonResult; } oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "保存成功!"; objJsonResult.data = null; return objJsonResult; } public json AddButtonMain(string msg1) { string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string sTableData = sArray[0].ToString(); string HButtonIDList = sArray[1].ToString(); string HButtonNameList = sArray[2].ToString(); string HOrderList = sArray[3].ToString(); string HModuleName = sArray[4].ToString(); string HBillType = sArray[5].ToString(); string NoEditList = sArray[6].ToString(); string HUserName = sArray[7].ToString(); try { List button = Newtonsoft.Json.JsonConvert.DeserializeObject>(sTableData); List HButtonIDLists = Newtonsoft.Json.JsonConvert.DeserializeObject>(HButtonIDList); List HButtonNameLists = Newtonsoft.Json.JsonConvert.DeserializeObject>(HButtonNameList); List HOrderLists = Newtonsoft.Json.JsonConvert.DeserializeObject>(HOrderList); List noEditLists= Newtonsoft.Json.JsonConvert.DeserializeObject>(NoEditList); //插入可编辑按钮的信息记录 oCN.RunProc("delete from Xt_ModuleButtonSet where HModuleName= '" + HModuleName + "' and HBillType='" + HBillType + "' and HUserName= '" + HUserName + "'"); for (int i = 0; i < button.Count; i++) { for(int j = 0; j < HButtonIDLists.Count; j++) { if (button[i].BtnID == HButtonIDLists[j]) { int HHideFlag = 0; int HEditFlag = 1; string HButtonID = HButtonIDLists[j].ToString(); string HButtonName = HButtonNameLists[j].ToString(); int HOrder = HOrderLists[j]; string HOtherName = button[i].HOtherName; if (button[i].IsHide) { HHideFlag = 1; } if(button[i].BtnID== "HideButton") //用户进行第一次设置时,设置 按钮设置 按钮为不可编辑且不隐藏 { HEditFlag = 0; HHideFlag = 0; } string sql = "exec h_p_Xt_ModuleButtonSet '" + HBillType + "','" + HModuleName + "','" + HButtonID + "','" + HButtonName + "'," + HOrder + "," + HHideFlag + "," + HEditFlag + ",'" + HUserName + "','" + HOtherName + "'"; oCN.RunProc(sql); } } } //重新插入不可编辑按钮的信息记录 for (int i = 0; i < noEditLists.Count; i++) { for (int j = 0; j < HButtonIDLists.Count; j++) { if (noEditLists[i].HButtonID == HButtonIDLists[j]) { int HHideFlag = noEditLists[i].HHideFlag?1:0; int HEditFlag = 0; string HButtonID = noEditLists[i].HButtonID; string HButtonName = noEditLists[i].HButtonName; int HOrder = HOrderLists[j]; string HOtherName = noEditLists[i].HOtherName; string sql = "exec h_p_Xt_ModuleButtonSet '" + HBillType + "','" + HModuleName + "','" + HButtonID + "','" + HButtonName + "'," + HOrder + "," + HHideFlag + "," + HEditFlag + ",'" + HUserName + "','" + HOtherName + "'"; oCN.RunProc(sql); } } } objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = null; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 高级过滤 方案查询 public class TreeModel { public string id { get; set; } public string title { get; set; } public List children = new List(); } [Route("Xt_grdAlignment_WMES/Gy_QueryConditionList_F_A")] [HttpGet] public object Gy_QueryConditionList_F_A(string HModName, string user) { try { ds = oCN.RunProcReturn("Select HInterID,HName from xt_ICSchemeMain Where HName='默认方案' and HBillName='" + HModName + "'and HUserCode='" + user + "'", "xt_ICSchemeMain"); List treeModels = new List(); if (ds.Tables[0].Rows.Count > 0) { TreeModel Second = new TreeModel(); Second.id = ds.Tables[0].Rows[0]["HInterID"].ToString(); Second.title = ds.Tables[0].Rows[0]["HName"].ToString(); treeModels.Add(Second); ds = oCN.RunProcReturn("Select HInterID,HName from xt_ICSchemeMain Where HName!='默认方案' and HBillName='" + HModName + "'and HUserCode='" + user + "' order by HInterID", "xt_ICSchemeMain"); foreach (DataRow row in ds.Tables[0].Rows) { TreeModel Three = new TreeModel(); Three.id = row["HInterID"].ToString(); Three.title = row["HName"].ToString(); treeModels.Add(Three); } } else { TreeModel first = new TreeModel(); first.id = "0"; first.title = "默认方案"; treeModels.Add(first); } objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = Newtonsoft.Json.JsonConvert.SerializeObject(treeModels); return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 高级过滤 字段过滤条件查询 [Route("Xt_grdAlignment_WMES/Gy_QueryCondition_Z_D_select")] [HttpGet] public object Gy_QueryCondition_Z_D_select(string sWhere, string user, string Organization) { try { List columnNameList = new List(); ////编辑权限 //if (!DBUtility.ClsPub.Security_Log_second("Gy_Material", 1, false, user)) //{ // objJsonResult.code = "0"; // objJsonResult.count = 0; // objJsonResult.Message = "无查看权限!"; // objJsonResult.data = null; // return objJsonResult; //} string sql1 = string.Format(@"select * from Xt_grdCondition where 1=1 "); string sql = sql1 + sWhere; ds = oCN.RunProcReturn(sql, "Xt_grdCondition"); //添加列名 foreach (DataColumn col in ds.Tables[0].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.list = columnNameList; objJsonResult.data = ds.Tables[0]; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 高级过滤 方案 过滤条件 删除 [Route("Xt_grdAlignment_WMES/Del_Gy_QueryConditionList_F_A")] [HttpGet] public object Del_Gy_QueryConditionList_F_A(string HModName, string ID, string user) { try { oCN.BeginTran(); //删除方案主表 oCN.RunProc("Delete From xt_ICSchemeMain where HInterID=" + ID.ToString()); //删除 过滤条件 oCN.RunProc("Delete From Xt_grdCondition where HInterID=" + ID.ToString()); oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "删除成功!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 高级过滤 方案 过滤条件 保存 public class xt_ICScheme { public string HFieldNameCol; public string HControlCol; public string HConditionCol; public string HRelationCol; } public class data { public string id; public string title; } [Route("Xt_grdAlignment_WMES/Add_Gy_QueryConditionList_F_A")] [HttpPost] public object Add_Gy_QueryConditionList_F_A([FromBody] JObject sMainSub) { try { var _value = sMainSub["sMainSub"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string TableData = sArray[0].ToString();//字段过滤条件 string F_A = sArray[1].ToString();//方案 string HModName = sArray[2].ToString();//模块 string HUserName = sArray[3].ToString();//用户 List ListTableData = Newtonsoft.Json.JsonConvert.DeserializeObject>(TableData); data listF_A = Newtonsoft.Json.JsonConvert.DeserializeObject(F_A); oCN.BeginTran(); if (listF_A.id != "0") { //删除主表 oCN.RunProc("Delete From xt_ICSchemeMain where HInterID=" + listF_A.id.ToString()); } else { listF_A.id = Pub_Class.ClsPub.CreateBillID("0001", ref Pub_Class.ClsPub.sExeReturnInfo).ToString(); ; } //添加方案主表 oCN.RunProc("Insert Into xt_ICSchemeMain " + "(HBillType,HInterID,HName,HUserCode" + ",HBillName,HStopflag" + ") " + " values('0001'," + listF_A.id.ToString() + ",'" + listF_A.title + "','" + HUserName + "'" + ",'" + HModName.ToString() + "',0" + ") "); //删除字段表数据 oCN.RunProc("delete Xt_grdCondition where HInterID=" + listF_A.id.ToString()); ds = oCN.RunProcReturn("select column_name,data_type from information_schema.columns where table_name ='" + HModName + "' order by ORDINAL_POSITION", "information"); //添加过滤字段表 for (int i = 0; i < ListTableData.Count; i++) { for (int j = 0; j < ds.Tables[0].Rows.Count; j++) { if (ListTableData[i].HFieldNameCol == ds.Tables[0].Rows[j]["column_name"].ToString()) { oCN.RunProc("Insert Into Xt_grdCondition " + "(HInterID,HUserID,HBillName,HRow,HIDCol,HBracketLCol,HFieldNameCol,HControlCol" + ",HConditionCol,HBracketRCol,HRelationCol" + ") " + " values(" + listF_A.id.ToString() + ",'" + HUserName + "','" + HModName.Trim() + "'," + i + ",'" + Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[j]["column_name"].ToString()) + "'" + ",''" + ",'" + Pub_Class.ClsPub.isStrNull(ListTableData[i].HFieldNameCol) + "'" + ",'" + Pub_Class.ClsPub.isStrNull(ListTableData[i].HControlCol) + "'" + ",'" + Pub_Class.ClsPub.isStrNull(ListTableData[i].HConditionCol).Replace("'", "''") + "'" + ",''" + ",'" + Pub_Class.ClsPub.isStrNull(ListTableData[i].HRelationCol) + "')"); break; } } } oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "保存成功!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 基础资料 获取数据 [Route("Gy_GetBaseData/Gy_GetBaseData")] [HttpGet] public object Gy_GetBaseData(string sql,string tableView, string user) { try { List columnNameList = new List(); ds = oCN.RunProcReturn(sql, tableView); //添加列名 foreach (DataColumn col in ds.Tables[0].Columns) { Type dataType = col.DataType; string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名 } objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; objJsonResult.list = columnNameList; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 单据翻译 初始化 查询 [Route("Xt_grdAlignment_WMES/SelectMESLanguage")] [HttpGet] public object SelectMESLanguage(string sWhere) { try { //获取公共数据的数量 int count = 0; DataSet dataSet = oCN.RunProcReturn("select * from h_v_Xt_LanModuleList where 1=1 and HModuleCode in('GYModel')", "h_v_Xt_LanModuleList"); if (dataSet.Tables[0].Rows.Count > 0) { count = dataSet.Tables[0].Rows.Count; } //根据单据模块名称 和 翻译类型 去 模块表里查询 如果没有数据 就新增,如果有数据就不保存 ds = oCN.RunProcReturn("select * from h_v_Xt_LanModuleList where 1=1 " + sWhere, "h_v_Xt_LanModuleList"); objJsonResult.code = "1"; objJsonResult.count = count; objJsonResult.Message = ""; objJsonResult.data = ds.Tables[0]; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 单据翻译 初始化 保存 [Route("Xt_grdAlignment_WMES/SaveMESLanguage")] [HttpPost] public object SaveMESLanguage([FromBody] JObject sMainSub) { try { var _value = sMainSub["sMainSub"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0]; string HModName = sArray[1]; //如果没有数据 就新增,如果有数据就不保存 //通过,进行分组 string[] data = msg2.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); oCN.BeginTran(); string HBillType = "3033"; long HInterID = DBUtility.ClsPub.CreateBillID(HBillType, ref DBUtility.ClsPub.sExeReturnInfo); //定义一个空集合 去 判断是否有重复的id string[] list = new string[data.Length]; //判断是否跟公共字段重复 ds = oCN.RunProcReturn(" select * from h_v_Xt_LanModuleList where HModuleCode='GYModel'", "h_v_Xt_LanModuleList"); string[] Datalist = new string[ds.Tables[0].Rows.Count]; if (ds.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { Datalist[i] = ds.Tables[0].Rows[i]["HFieldCode"].ToString() + ds.Tables[0].Rows[i]["HFieldName"].ToString(); } } //定义一个 num 去定义 当前的索引 int num = 0; for (int i = 0; i < data.Length; i++) { string[] Lable = data[i].Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries); if (Lable.Length == 3) { string HFieldCode = Lable[0]; string HFieldName = Lable[1]; string HFieldModelType = Lable[2]; if (!list.Contains(HFieldCode + HFieldName) && !Datalist.Contains(HFieldCode + HFieldName)) { list[num] = HFieldCode + HFieldName; num += 1; oCN.RunProc("insert into Xt_LanModuleSub(HInterID,HEntryID,HFieldModelType,HFieldCode,HFieldName)" + "values(" + HInterID + "," + num + ",'" + HFieldModelType + "','" + HFieldCode + "','" + HFieldName + "')"); } } } oCN.RunProc("insert into Xt_LanModuleMain(HInterID,HBillType,HModuleName,HModuleCode)" + "values(" + HInterID + ",'" + HBillType + "','','" + HModName + "')"); oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 报错信息 查询 [Route("Xt_grdAlignment_WMES/SelectMessageError")] [HttpGet] public object SelectMessageError(string ErrorCode) { try { ds = oCN.RunProcReturn("select * from Xt_MessageError where HErrorCode='" + ErrorCode + "'", "Xt_MessageError"); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = ""; objJsonResult.data = ds.Tables[0]; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 单据翻译 映射 JSON文件 internal Dictionary LanguageDictionary = new Dictionary { { "zh-Hans", "HFieldName"}, { "zh-Hant", "HFieldName"}, { "en", "HTranslationText_English"}, { "es", "HTranslationText_Spain"} }; /// /// /// /// 语言 /// 是否强制更新 /// [Route("Xt_grdAlignment_WMES/SelectMESLanguage_JSON")] [HttpGet] public object SelectMESLanguage_JSON(string language, bool forceUpdate) { try { // 获取项目根目录 string path = HttpContext.Current.Server.MapPath($"~/LanguagePack"); ; string lang; bool langSuccess = LanguageDictionary.TryGetValue(language, out lang); if(langSuccess == false) { // 设置默认语言为中文 language = "zh-Hans"; lang = "HFieldName"; } ds = oCN.RunProcReturn("select * from h_v_Xt_LanModuleList where 1=1", "h_v_Xt_LanModuleList"); // 如果目录不存在则创建目录 if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } // 如果语言包不存在则创建新语言包 if(File.Exists($@"{path}\{language}.json") == false) { File.WriteAllText($@"{path}\{language}.json", "{}"); } LogService.Write("语言包地址: " + Path.Combine(path, $"{language}.json")); string JsonStr1 = ""; using (StreamReader sr = new StreamReader(Path.Combine(path, $"{language}.json"), Encoding.UTF8)) { string lines; while ((lines = sr.ReadLine()) != null)//一行一行去读,如果读取这一行赋值lines,并且lines= null证明读取完了 { JsonStr1 += lines; } } JObject languagePack = JObject.Parse(JsonStr1); // 判断版本号 现在MSSQL对应表中 无版本号字段 使用数据条目数替代 if(languagePack["_Version"] == null) { languagePack["_Version"] = 0; } LogService.Write("语言包中数据条数: " + languagePack["_Version"].ToString() + "\n数据库中数据条数: " + ds.Tables[0].Rows.Count.ToString()); if (languagePack["_Version"].Value() != ds.Tables[0].Rows.Count || forceUpdate == true) { // 更新版本号(数据条目数) languagePack["_Version"] = ds.Tables[0].Rows.Count; // 统计每个字符模块中 字段码出现的次数 如果出现多次,则映射为JArray类型 Dictionary HFieldCodeDict = ds.Tables[0].AsEnumerable() .GroupBy(row => new { HModuleCode = row.Field("HModuleCode"), HFieldCode = row.Field("HFieldCode") }) .Select(group => new { HModuleCode = group.Key.HModuleCode, HFieldCode = group.Key.HFieldCode, rowNum = group.Count() }).ToDictionary( keySelector: p => $@"{p.HModuleCode}_{p.HFieldCode}", elementSelector: p => p.rowNum ); // 版本号不一致 则读取数据库中的字段,将字段写入到json对象中 foreach (DataRow row in ds.Tables[0].Rows) { // 获取所在模块字符串 string HModuleCode = row["HModuleCode"].ToString(); // 没有模块对象的话,则新建一个模块对象 if(languagePack[HModuleCode] == null) { languagePack[HModuleCode] = new JObject(); } string HFieldCode = row["HFieldCode"].ToString(); int rowNum = 1; HFieldCodeDict.TryGetValue($@"{row["HModuleCode"]}_{row["HFieldCode"]}", out rowNum); // 判断字段码映射中,模块对应的字段码 是否 唯一 if (rowNum == 1) { languagePack[HModuleCode][HFieldCode] = row[lang].ToString(); }else { if(languagePack[HModuleCode][HFieldCode] == null) { languagePack[HModuleCode][HFieldCode] = new JArray(); } var targetJArray = (JArray)languagePack[HModuleCode][HFieldCode]; targetJArray.Add(row[lang].ToString()); } } // 全量写入到json文件中 File.WriteAllText($"{path}/{language}.json", languagePack.ToString(), System.Text.Encoding.UTF8); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Success!"; objJsonResult.data = languagePack.ToString(); return objJsonResult; } else { // 版本号一致, 则直接返回读取的Json字符串 objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Success!"; objJsonResult.data = JsonStr1; return objJsonResult; } } catch(Exception e) { LogService.Write("Exception!" + e.ToString()); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.Message.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion } }