From ff75e9105bf51864192ecaf7d7c2749f128b8e00 Mon Sep 17 00:00:00 2001 From: cyf Date: Tue, 11 Nov 2025 02:38:35 +0000 Subject: [PATCH] SVN r1033 SVN-Revision: r1033 --- 插件库/Lskj.PubProductSysMge/FrmMain.cs | 170 ++++++++++++++---- .../Model/SysSetModel.cs | 28 +-- 2 files changed, 151 insertions(+), 47 deletions(-) diff --git a/插件库/Lskj.PubProductSysMge/FrmMain.cs b/插件库/Lskj.PubProductSysMge/FrmMain.cs index d5405d3..70a4f8b 100644 --- a/插件库/Lskj.PubProductSysMge/FrmMain.cs +++ b/插件库/Lskj.PubProductSysMge/FrmMain.cs @@ -113,6 +113,11 @@ namespace Lskj.PubProductSysMge /// 主表条件类 /// public MyControl SearchMainObj; + /// + /// 表名集合(pl_Top中控件对应保存到的表名) + /// + public Dictionary TableNameList = new Dictionary(); + /// /// 规格控件 /// @@ -551,6 +556,7 @@ namespace Lskj.PubProductSysMge }; this.ControlList.Clear(); + this.TableNameList.Clear(); try { if (projectComBoEdit.SelectedItem == "" || treeNode == null) return; @@ -558,7 +564,10 @@ namespace Lskj.PubProductSysMge if (treeNode != null && !string.IsNullOrEmpty(projectId)) { DataTable dataTable = new DataTable(); - string dataSourceSql = string.Format("select * from p_productsyssettab where groupid = '{0}' and ban = 0 order by orderid", projectId); + string dataSourceSql = string.Format(@"select a.*, b.xtTableName,b.hyTableName,b.IsYsZD from p_productsyssettab a + left join P_ProductsysFieldsSetTab b on a.modid = b.modid and a.SysName = b.DataFields + where a.groupid = '{0}' and a.ban = 0 + order by orderid", projectId); dataTable = MainImpl.GetDataTableResult(dataSourceSql); int x = 10; int y = 10; @@ -689,6 +698,17 @@ namespace Lskj.PubProductSysMge baseControl.ReadOnly = setModel.ProhibitEdited; this.pl_Top.Controls.Add(baseControl); this.ControlList.Add(setModel); + if (!this.TableNameList.ContainsKey(setModel.SaveModeCode)) + { + DataRow modelRow = MainImpl.GetSystemdllTab(setModel.SaveModeCode);//获取模块信息 + if (modelRow == null) + { + MessageUtil.Show("模块编号[" + setModel.SaveModeCode + "],配置错误!\r\n该模块信息未找到!"); + } + ModuleModel sysModel = new ModuleModel(modelRow);// 系统模块实体对象 + this.TableNameList.Add(setModel.SaveModeCode, sysModel.MenuTable); + } + if (x + baseControl.Width + 15 + baseControl.Width > this.splitMainContainer.Panel2.Width) { x = 10; @@ -1328,32 +1348,70 @@ namespace Lskj.PubProductSysMge DataTable tableColumns = BaseImpl.GetTableColumns(this.MainModuleObj.MenuTable); ControlModel model = this.MainControlObj._models.FirstOrDefault(x => x.FieldName == primaryKey); string parentValue = this.speciesNoEdit.Text;//this.treeLeftViewEx.TreeView.SelectedNode.Name; - //string newBillNo = BaseImpl.GetDefaultValue(model.Default, parentValue); - //sqlBuilder.Append(string.Format("delete from bom_BillTab where productid = '{0}'\r\n", newBillNo)); - //sqlBuilder.Append(string.Format("delete from bom_BillListTab where ParentProduct = '{0}'\r\n", newBillNo)); + + StringBuilder keyBuilder = new StringBuilder(); StringBuilder valueBuilder = new StringBuilder(); List keyList = new List() { "speciesno", "operatorname", "operatedate", "smartbmfa" }; - List modelControls = this.pl_Top.Controls.Cast().Where(n => !string.IsNullOrEmpty((n.Tag as SysSetModel).DbName)).OrderBy(n => (n.Tag as SysSetModel).OrderId).ToList(); - foreach (BaseUserControl item in modelControls) + + foreach (string modeCode in TableNameList.Keys) { - SysSetModel sysSetModel = item.Tag as SysSetModel; - string fxValue = ""; - try + StringBuilder keyBuilderFb = new StringBuilder(); + StringBuilder valueBuilderFb = new StringBuilder(); + List modelControls = this.pl_Top.Controls.Cast().Where(n => !string.IsNullOrEmpty((n.Tag as SysSetModel).DbName )&& modeCode.Equals((n.Tag as SysSetModel).SaveModeCode)).OrderBy(n => (n.Tag as SysSetModel).OrderId).ToList(); + foreach (BaseUserControl item in modelControls) { - string controlName = !string.IsNullOrWhiteSpace(sysSetModel.DbName) ? sysSetModel.DbName : sysSetModel.SysName; - fxValue = this.GetControlValue(controlName); + SysSetModel sysSetModel = item.Tag as SysSetModel; + string fxValue = ""; + try + { + string controlName = !string.IsNullOrWhiteSpace(sysSetModel.DbName) ? sysSetModel.DbName : sysSetModel.SysName; + fxValue = this.GetControlValue(controlName); + } + catch (Exception) + { + } + if (!keyList.Contains(sysSetModel.DbName.ToLower())) + { + keyList.Add(sysSetModel.DbName.ToLower()); + if (sysSetModel.SaveModeCode.Equals(MainModuleObj.ModeCode)) + { + //保存到主表里 + keyBuilder.Append(string.Format("{0},", sysSetModel.DbName)); + valueBuilder.Append(string.Format("N'{0}',", fxValue.Replace("'", "''"))); + } + else + { + keyBuilderFb.Append(string.Format("{0},", sysSetModel.DbName)); + valueBuilderFb.Append(string.Format("N'{0}',", fxValue.Replace("'", "''"))); + } + } } - catch (Exception) + + if (!string.IsNullOrWhiteSpace(keyBuilderFb+"")) { + string tablename = TableNameList[modeCode]; + string insertSqlFb = string.Format("insert into {0}({1}) values({2});", tablename, keyBuilderFb.ToString().TrimEnd(','), valueBuilderFb.ToString().TrimEnd(',')); + + BaseSaveModel saveModelFb = new BaseSaveModel + { + BaseSaveType = SaveType.Add, + BaseSql = insertSqlFb, + KeyField = primaryKey, + FieldValue = primaryValue, + MenuCode = modeCode, + TableName = tablename, + ComfirmFlag = 0, + NewVer = MainModuleObj.NewVer + }; + int resultFb = BaseModuleImpl.SaveBasePanelData(saveModelFb); } - if (!keyList.Contains(sysSetModel.DbName.ToLower())) - { - keyList.Add(sysSetModel.DbName.ToLower()); - keyBuilder.Append(string.Format("{0},", sysSetModel.DbName)); - valueBuilder.Append(string.Format("N'{0}',", fxValue.Replace("'", "''"))); - } + } + + + + foreach (ControlModel item in MainControlObj.ControlModels) { if (!item.IsSave || @@ -1470,27 +1528,63 @@ namespace Lskj.PubProductSysMge //string newBillNo = BaseImpl.GetDefaultValue(model.Default, parentValue); List keyList = new List() { "speciesno", "operatorname", "operatedate", "smartbmfa" }; StringBuilder sqlBuilder = new StringBuilder(); - //sqlBuilder.Append(string.Format("update p_producttab set spec = '{0}',model = '{1}',productid = '{2}',appellation = '{3}',productdescrip = '{4}',speciesno = '{5}',productunitname = '{6}',OperatorName = '{7}',Operatedate = '{8}',SmartBmFa = '{9}' where productid = '{10}'\r\n", - //SpecBaseControl != null ? SpecBaseControl.EditText : "", ModelBaseControl != null ? ModelBaseControl.EditText : "", newBillNo, NameBaseControl != null ? NameBaseControl.EditText : "", ZhSxBaseControl != null ? ZhSxBaseControl.EditText : "", parentValue, UnitBaseControl != null ? UnitBaseControl.EditText : "", ERPInfo.Instance.UserName, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), this.projectEdit.Tag, newBillNo)); - List modelControls = this.pl_Top.Controls.Cast().Where(n => !string.IsNullOrEmpty((n.Tag as SysSetModel).DbName)).OrderBy(n => (n.Tag as SysSetModel).OrderId).ToList(); - foreach (BaseUserControl item in modelControls) + + foreach (string modeCode in TableNameList.Keys) { - SysSetModel sysSetModel = item.Tag as SysSetModel; - string fxValue = ""; - try + StringBuilder sqlBuilderFb = new StringBuilder(); + + List modelControls = this.pl_Top.Controls.Cast().Where(n => !string.IsNullOrEmpty((n.Tag as SysSetModel).DbName) && modeCode.Equals((n.Tag as SysSetModel).SaveModeCode)).OrderBy(n => (n.Tag as SysSetModel).OrderId).ToList(); + foreach (BaseUserControl item in modelControls) { - string controlName = !string.IsNullOrWhiteSpace(sysSetModel.DbName) ? sysSetModel.DbName : sysSetModel.SysName; - fxValue = this.GetControlValue(controlName); + SysSetModel sysSetModel = item.Tag as SysSetModel; + string fxValue = ""; + try + { + string controlName = !string.IsNullOrWhiteSpace(sysSetModel.DbName) ? sysSetModel.DbName : sysSetModel.SysName; + fxValue = this.GetControlValue(controlName); + } + catch (Exception) + { + } + if (!sysSetModel.DbName.Equals(primaryKey, StringComparison.OrdinalIgnoreCase) && !sysSetModel.DbName.Equals("productid", StringComparison.OrdinalIgnoreCase)) + { + keyList.Add(sysSetModel.DbName.ToLower()); + if (sysSetModel.SaveModeCode.Equals(MainModuleObj.ModeCode)) + { + //保存到主表里 + sqlBuilder.Append(string.Format("{0} = N'{1}',", sysSetModel.DbName, fxValue.Replace("'", "''"))); + } + else + { + sqlBuilderFb.Append(string.Format("{0} = N'{1}',", sysSetModel.DbName, fxValue.Replace("'", "''"))); + } + } } - catch (Exception) + + if (!string.IsNullOrWhiteSpace(sqlBuilder + "")) { + string tablename = TableNameList[modeCode]; + string updateSql = string.Format("update {0} set {1} where {2}='{3}';", tablename, sqlBuilderFb.ToString().TrimEnd(','),primaryKey, newBillNo); + BaseSaveModel saveModelFb = new BaseSaveModel + { + BaseSaveType = SaveType.Update, + BaseSql = updateSql, + KeyField = primaryKey, + FieldValue = newBillNo, + MenuCode = modeCode, + TableName = tablename, + ComfirmFlag = 0, + NewVer = MainModuleObj.NewVer + }; + int resultFb = BaseModuleImpl.SaveBasePanelData(saveModelFb); } - if (!sysSetModel.DbName.Equals(primaryKey, StringComparison.OrdinalIgnoreCase) && !sysSetModel.DbName.Equals("productid", StringComparison.OrdinalIgnoreCase)) - { - keyList.Add(sysSetModel.DbName.ToLower()); - sqlBuilder.Append(string.Format("{0} = N'{1}',", sysSetModel.DbName, fxValue.Replace("'", "''"))); - } + } + + + + + foreach (ControlModel item in this.MainControlObj.ControlModels) { if (!item.IsSave || @@ -1622,9 +1716,11 @@ namespace Lskj.PubProductSysMge DataRow focusRow = this.gcMain.GridView.GetFocusedDataRow(); if (focusRow == null) return; string primaryVlaue = focusRow["productid"] + ""; - DataRow selectSource = MainImpl.GetDataRowResult(string.Format("select * from p_producttab where productid = '{0}'", primaryVlaue)); - string projectId = selectSource["SmartBmFa"] + ""; - string speciesNo = selectSource["speciesNo"] + ""; + //DataRow selectSource = MainImpl.GetDataRowResult(string.Format("select * from p_producttab where productid = '{0}'", primaryVlaue)); + //string projectId = selectSource["SmartBmFa"] + ""; + //string speciesNo = selectSource["speciesNo"] + ""; + string projectId = focusRow["SmartBmFa"] + ""; + string speciesNo = focusRow["speciesNo"] + ""; if (string.IsNullOrEmpty(projectId)) { MessageUtil.Show("该档案未通过智能编码生成,不支持智能编码修改"); @@ -1675,7 +1771,7 @@ namespace Lskj.PubProductSysMge foreach (BaseUserControl item in modelControls) { SysSetModel sysSetModel = item.Tag as SysSetModel; - string value = selectSource.Table.Columns.Contains(sysSetModel.DbName) ? selectSource[sysSetModel.DbName] + "" : ""; + string value = focusRow.Table.Columns.Contains(sysSetModel.DbName) ? focusRow[sysSetModel.DbName] + "" : ""; //double doubleValue; item.EditText = value; //if (double.TryParse(value, out doubleValue)) diff --git a/插件库/Lskj.PubProductSysMge/Model/SysSetModel.cs b/插件库/Lskj.PubProductSysMge/Model/SysSetModel.cs index 952dbdf..cc9f47d 100644 --- a/插件库/Lskj.PubProductSysMge/Model/SysSetModel.cs +++ b/插件库/Lskj.PubProductSysMge/Model/SysSetModel.cs @@ -200,11 +200,26 @@ namespace Lskj.PubProductSysMge.Model /// 前连接符 (反写材质) /// public string ConnectorStrCz { get; set; } - // + /// /// 后连接符 (反写材质) /// public string EndConnectorStrCz { get; set; } - + /// + /// 系统表 + /// + public string xtModeCode { get; set; } + /// + /// 行业表 + /// + public string hyModeCode { get; set; } + // + /// 是否映射 + /// + public bool IsYsZD { get; set; } + // + /// 具体对应的表 + /// + public string SaveModeCode { get; set; } public SysSetModel(DataRow rowItem) { @@ -266,11 +281,4 @@ namespace Lskj.PubProductSysMge.Model this.EndConnectorStrXh = rowItem.Table.Columns.Contains("EndConnectorStrXh") && !string.IsNullOrEmpty(rowItem["EndConnectorStrXh"] + "") ? rowItem["EndConnectorStrXh"] + "" : ""; this.ConnectorStrZhsx = rowItem.Table.Columns.Contains("ConnectorStrZhsx") && !string.IsNullOrEmpty(rowItem["ConnectorStrZhsx"] + "") ? rowItem["ConnectorStrZhsx"] + "" : ""; - this.EndConnectorStrZhsx = rowItem.Table.Columns.Contains("EndConnectorStrZhsx") && !string.IsNullOrEmpty(rowItem["EndConnectorStrZhsx"] + "") ? rowItem["EndConnectorStrZhsx"] + "" : ""; - - this.ConnectorStrCz = rowItem.Table.Columns.Contains("ConnectorStrCz") && !string.IsNullOrEmpty(rowItem["ConnectorStrCz"] + "") ? rowItem["ConnectorStrCz"] + "" : ""; - this.EndConnectorStrCz = rowItem.Table.Columns.Contains("EndConnectorStrCz") && !string.IsNullOrEmpty(rowItem["EndConnectorStrCz"] + "") ? rowItem["EndConnectorStrCz"] + "" : ""; - - } - } -} + this.EndConnectorStrZhsx = rowItem.Table.Columns.Contains("EndConnectorStrZhsx") && !string.I \ No newline at end of file