mh_sms/APT.MicroApi/APT.OP.WebApi/Controllers/Api/TenantVersionController.cs
2024-04-12 16:50:28 +08:00

3652 lines
274 KiB
C#

using APT.BaseData.Domain.ApiModel.FM;
using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Entities.OP;
using APT.BaseData.Domain.Entities.PF;
using APT.BaseData.Domain.Enums;
using APT.Infrastructure.Core;
using APT.Migrations;
using APT.Utility;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace APT.OP.WebApi.Controllers.Api
{
[Route("api/OP/TenantVersion")]
public class TenantVersionController : AuthorizeApiController<T_OP_VERSION>
{
[HttpPost, Route("Update")]
public JsonActionResult<bool> Update([FromBody] T_OP_VERSION version)
{
return SafeExecute<bool>(() =>
{
var orgFilter = new BaseFilter();
orgFilter.IgnoreOrgRule = true;
#region OPT信息
//var filter = new BaseFilter(version.TEMPLATE_ID);//OPT创建的菜单,表单等
//filter.Level = -1;
//filter.IsParentData = true;
#region
//List<T_PF_PARAM_ITEM> optParamItems = this.GetEntities<T_PF_PARAM_ITEM>(null, filter).ToList();
//List<T_PF_PARAM_SCHEME> optParamSchemes = this.GetEntities<T_PF_PARAM_SCHEME>(null, filter).ToList();
//List<T_PF_PARAM_SCHEME_DETAIL> optParamSchemeDetails = this.GetEntities<T_PF_PARAM_SCHEME_DETAIL>(null, filter).ToList();
#endregion
#region
//var optForms = this.GetEntities<T_PF_FORM>(x => x.ORG_ID == filter.OrgId, filter);
//var optFormRelations = this.GetEntities<T_PF_FORM_RELATION>(x => x.ORG_ID == filter.OrgId, filter);//表单关联
//var optPageTable = this.GetEntities<T_PF_PAGE_TABLE>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optTablePanels = this.GetEntities<T_PF_PAGE_TABLE_PANEL>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optTableParams = this.GetEntities<T_PF_TABLE_PARAMS>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optPageEdit = this.GetEntities<T_PF_PAGE_EDIT>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optEditPanels = this.GetEntities<T_PF_PAGE_EDIT_PANEL>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optEditColumns = this.GetEntities<T_PF_EDIT_COLUMN>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optEditColumnFilters = this.GetEntities<T_PF_EDIT_COLUMN_FILTER>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optEditColumnFillMaps = this.GetEntities<T_PF_EDIT_COLUMN_FILL_MAP>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optEditColumnFillMapDs = this.GetEntities<T_PF_EDIT_COLUMN_FILL_MAP_D>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optPageTree = this.GetEntities<T_PF_PAGE_TREE>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optTreeColumns = this.GetEntities<T_PF_TREE_COLUMN>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optPageChart = this.GetEntities<T_PF_PAGE_CHART>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optChartParams = this.GetEntities<T_PF_PAGE_CHART_PARAM>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optPageCustom = this.GetEntities<T_PF_PAGE_CUSTOM>(x => x.ORG_ID == filter.OrgId, filter).ToList();
#endregion
//var optMenusTree = this.GetTreeOrderEntities<T_PF_MENU>(x => x.ENABLE_STATUS == (int)FMEnableStatusEnum.启用, filter);
//var optMenus = this.GetEntities<T_PF_MENU>(x => x.ENABLE_STATUS == (int)FMEnableStatusEnum.启用, filter);
//var optColumFilters = this.GetEntities<T_PF_COLUMN_FILTER>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optQuerys = this.GetEntities<T_PF_QUERY>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optFormQuerys = this.GetEntities<T_PF_FORM_QUERY>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optCodeRules = this.GetEntities<T_PF_CODE_RULE>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optSyncTasks = this.GetEntities<T_FM_SYNC_TASK>(x => x.ORG_ID == filter.OrgId, filter).ToList();
//var optVersions = this.GetEntities<T_PF_VERSION_MANAGE>(x => x.ORG_ID == filter.OrgId, filter).ToList();
#endregion
#region
IEnumerable<TreeNode<T_PF_MENU>> srcMenuTrees = null;
List<T_PF_MENU> srcMenus = null;
List<T_PF_MENU> srcEcpMenus = null;
List<T_PF_FORM> srcForms = null;
List<T_PF_FORM_RELATION> srcFormRelations = null;
List<T_PF_PAGE_TABLE> srcPageTables = null;
List<T_PF_PAGE_EDIT> srcPageEdits = null;
List<T_PF_PAGE_TREE> srcPageTrees = null;
List<T_PF_PAGE_CHART> srcPageCharts = null;
List<T_PF_PAGE_CUSTOM> srcPageCustoms = null;
List<T_PF_BTN> srcBtns = null;
List<T_PF_COLUMN> srcColumns = null;
List<T_PF_PAGE_TABLE_PANEL> srcPageTablePanels = null;
List<T_PF_TABLE_PARAMS> srcTableParams = null;
List<T_PF_PAGE_EDIT_PANEL> srcPageEditPanels = null;
List<T_PF_EDIT_COLUMN> srcEditColumns = null;
List<T_PF_EDIT_COLUMN_FILTER> srcEditColumnFilters = null;
List<T_PF_EDIT_COLUMN_FILL_MAP> srcEditColumnFillMaps = null;
List<T_PF_EDIT_COLUMN_FILL_MAP_D> srcEditColumnFillMapDs = null;
List<T_PF_TREE_COLUMN> srcTreeColumns = null;
List<T_PF_PAGE_CHART_PARAM> srcPageChartParams = null;
List<T_PF_COLUMN_FILTER> srcColumnFilters = null;
List<T_PF_QUERY> srcQuerys = null;
List<T_PF_FORM_QUERY> srcFormQuerys = null;
List<T_PF_CODE_RULE> srcCodeRules = null;
List<T_FM_SYNC_TASK> srcSyncTasks = null;
List<T_PF_PARAM_ITEM> srcParamItems = null;
List<T_PF_PARAM_SCHEME> srcParamSchemes = null;
List<T_PF_PARAM_SCHEME_DETAIL> srcParamSchemeDetails = null;
List<T_PF_VERSION_MANAGE> srcVersionManages = null;
var srcTemplateConnect = string.Empty;
var tenantTemplate = this.GetEntities<T_OP_TENANT>(x => x.ID == version.TEMPLATE_ID, orgFilter).FirstOrDefault();
var srcDB = this.GetEntities<T_OP_TENANT_DB_CONN>(x => x.ID == tenantTemplate.DB_CONN_ID, orgFilter).FirstOrDefault();
if (srcDB != null && !string.IsNullOrEmpty(srcDB.DB_CONN))
{
//var Conn = srcDB.DB_CONN;
srcTemplateConnect = srcDB.DB_CONN;
using (var context = new MigrationContext(srcTemplateConnect))
{
#region
var srcfilter = new BaseFilter();
srcfilter.IgnoreOrgRule = true;
srcfilter.Level = -1;
srcfilter.IsParentData = true;
List<T_PF_MENU> reslist = new List<T_PF_MENU>();
srcMenuTrees = context.GetTreeOrderEntities<T_PF_MENU>(x => x.ORG_ID == version.TEMPLATE_ID && x.ENABLE_STATUS == (int)FMEnableStatusEnum., srcfilter, null, out reslist, false);
srcMenus = context.GetEntities<T_PF_MENU>(x => x.ORG_ID == version.TEMPLATE_ID && x.ENABLE_STATUS == (int)FMEnableStatusEnum., null, false).ToList();//能管菜单
srcEcpMenus = context.GetEntities<T_PF_MENU>(x => x.ORG_ID == version.TEMPLATE_ID && x.ENABLE_STATUS == (int)FMEnableStatusEnum. && x.PLATFORM_CATEGORY == 1, null, false).ToList();//企业平台菜单
srcForms = context.GetEntities<T_PF_FORM>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();//租户表单
srcFormRelations = context.GetEntities<T_PF_FORM_RELATION>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();//表单关联
srcPageTables = context.GetEntities<T_PF_PAGE_TABLE>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcPageEdits = context.GetEntities<T_PF_PAGE_EDIT>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcPageTrees = context.GetEntities<T_PF_PAGE_TREE>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcPageCharts = context.GetEntities<T_PF_PAGE_CHART>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcPageCustoms = context.GetEntities<T_PF_PAGE_CUSTOM>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcBtns = context.GetEntities<T_PF_BTN>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcColumns = context.GetEntities<T_PF_COLUMN>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcPageTablePanels = context.GetEntities<T_PF_PAGE_TABLE_PANEL>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcTableParams = context.GetEntities<T_PF_TABLE_PARAMS>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList(); ;
srcPageEditPanels = context.GetEntities<T_PF_PAGE_EDIT_PANEL>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcEditColumns = context.GetEntities<T_PF_EDIT_COLUMN>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcEditColumnFilters = context.GetEntities<T_PF_EDIT_COLUMN_FILTER>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcEditColumnFillMaps = context.GetEntities<T_PF_EDIT_COLUMN_FILL_MAP>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcEditColumnFillMapDs = context.GetEntities<T_PF_EDIT_COLUMN_FILL_MAP_D>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcTreeColumns = context.GetEntities<T_PF_TREE_COLUMN>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcPageChartParams = context.GetEntities<T_PF_PAGE_CHART_PARAM>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcColumnFilters = context.GetEntities<T_PF_COLUMN_FILTER>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcQuerys = context.GetEntities<T_PF_QUERY>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcFormQuerys = context.GetEntities<T_PF_FORM_QUERY>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcCodeRules = context.GetEntities<T_PF_CODE_RULE>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcSyncTasks = context.GetEntities<T_FM_SYNC_TASK>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcParamItems = context.GetEntities<T_PF_PARAM_ITEM>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcParamSchemes = context.GetEntities<T_PF_PARAM_SCHEME>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcParamSchemeDetails = context.GetEntities<T_PF_PARAM_SCHEME_DETAIL>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
srcVersionManages = context.GetEntities<T_PF_VERSION_MANAGE>(x => x.ORG_ID == version.TEMPLATE_ID, null, false).ToList();
#endregion
}
}
#endregion
TenantInfo srcInfo = new TenantInfo();
srcInfo.FormRelations = srcFormRelations;
srcInfo.Forms = srcForms;
srcInfo.PageTables = srcPageTables;
srcInfo.PageEdits = srcPageEdits;
srcInfo.PageTrees = srcPageTrees;
srcInfo.PageCharts = srcPageCharts;
srcInfo.PageCustoms = srcPageCustoms;
srcInfo.Btns = srcBtns;
srcInfo.Columns = srcColumns;
srcInfo.TablePanels = srcPageTablePanels;
srcInfo.TableParams = srcTableParams;
srcInfo.EditPanels = srcPageEditPanels;
srcInfo.EditColumns = srcEditColumns;
srcInfo.EditColumnFilters = srcEditColumnFilters;
srcInfo.EditColumnFillMaps = srcEditColumnFillMaps;
srcInfo.EditColumnFillMapDs = srcEditColumnFillMapDs;
srcInfo.TreeColumns = srcTreeColumns;
srcInfo.ChartParams = srcPageChartParams;
srcInfo.ColumnFilters = srcColumnFilters;
srcInfo.Querys = srcQuerys;
srcInfo.FormQuerys = srcFormQuerys;
srcInfo.DicPageTable = new Dictionary<string, object>();
srcInfo.DicPageTableRelation = new Dictionary<string, string>();
srcInfo.DicForm = new Dictionary<string, string>();
if (version.CheckMenuKeys.Count > 0 && version.CheckTenantKeys.Count > 0)
{
var VersionMenu = this.GetEntities<T_OP_VERSION_MENU>(x => x.VERSION_ID == version.ID, orgFilter).ToList();
var versionTenants = this.GetEntities<T_OP_VERSION_TENANT>(x => x.VERSION_ID == version.ID, orgFilter).ToList();
if (!(VersionMenu.Any() && versionTenants.Any()))//升级
{
foreach (var versionTenant in version.CheckTenantKeys)//租户升级
{
#region
var saveVersionMenu = new List<T_OP_VERSION_MENU>();
var saveVersionTenant = new List<T_OP_VERSION_TENANT>();
var savePermPFMenu = new List<T_PF_MENU>();
var addPermPFMenu = new List<T_PF_MENU>();//暂时不处理
var savePermPFForm = new List<T_PF_FORM>();
var savePermPFFormRelation = new List<T_PF_FORM_RELATION>();
var savePermPageTable = new List<T_PF_PAGE_TABLE>();
var savePermPageEdit = new List<T_PF_PAGE_EDIT>();
var savePermPageTree = new List<T_PF_PAGE_TREE>();
var savePermPageChart = new List<T_PF_PAGE_CHART>();
var savePermPageCustom = new List<T_PF_PAGE_CUSTOM>();
var savePermBtn = new List<T_PF_BTN>();
var savePermCloumn = new List<T_PF_COLUMN>();
var saveTablePanels = new List<T_PF_PAGE_TABLE_PANEL>();
var saveTableParams = new List<T_PF_TABLE_PARAMS>();
var saveEditPanels = new List<T_PF_PAGE_EDIT_PANEL>();
var saveEditColumns = new List<T_PF_EDIT_COLUMN>();
var saveEditColumnFilters = new List<T_PF_EDIT_COLUMN_FILTER>();
var saveEditColumnFillMaps = new List<T_PF_EDIT_COLUMN_FILL_MAP>();
var saveEditColumnFillMapDs = new List<T_PF_EDIT_COLUMN_FILL_MAP_D>();
var saveTreeColumns = new List<T_PF_TREE_COLUMN>();
var saveChartParams = new List<T_PF_PAGE_CHART_PARAM>();
var saveColumFilters = new List<T_PF_COLUMN_FILTER>();
var saveQuerys = new List<T_PF_QUERY>();
var saveFormQuerys = new List<T_PF_FORM_QUERY>();
var saveCodeRules = new List<T_PF_CODE_RULE>();
var saveSyncTasks = new List<T_FM_SYNC_TASK>();
var saveVersions = new List<T_PF_VERSION_MANAGE>();
var saveParamItems = new List<T_PF_PARAM_ITEM>();
var saveParamSchemes = new List<T_PF_PARAM_SCHEME>();
var saveParamSchemeDetails = new List<T_PF_PARAM_SCHEME_DETAIL>();
var addSyncTasks = new List<T_FM_SYNC_TASK>();
var addCodeRules = new List<T_PF_CODE_RULE>();
var addParamItems = new List<T_PF_PARAM_ITEM>();
var addParamSchemes = new List<T_PF_PARAM_SCHEME>();
var addParamSchemeDetails = new List<T_PF_PARAM_SCHEME_DETAIL>();
#endregion
Dictionary<string, object> relationMenu = new Dictionary<string, object>();//id.pid
Dictionary<string, string> newRelationMenu = new Dictionary<string, string>();//id.newid
Dictionary<Guid, Guid> MenuFormRelation = new Dictionary<Guid, Guid>();//id.newid
Dictionary<Guid, Guid> newItems = new Dictionary<Guid, Guid>();//id.newid
Dictionary<Guid, Guid> newSchemes = new Dictionary<Guid, Guid>();//id.newid
Dictionary<Guid, Guid> newSchemeDetails = new Dictionary<Guid, Guid>();//id.newid
Dictionary<Guid, Guid> newTablePanels = new Dictionary<Guid, Guid>();//id.newid
Dictionary<Guid, Guid> newCodeRules = new Dictionary<Guid, Guid>();//id.newid
Dictionary<Guid, Guid> newEditPanels = new Dictionary<Guid, Guid>();
#region
IEnumerable<TreeNode<T_PF_MENU>> tenantMenuTrees = null;
List<T_PF_MENU> tenantMenus = null;
List<T_PF_FORM> tenantForms = null;
List<T_PF_FORM_RELATION> tenantFormRelations = null;
List<T_PF_PAGE_TABLE> tenantPageTables = null;
List<T_PF_PAGE_EDIT> tenantPageEdits = null;
List<T_PF_PAGE_TREE> tenantPageTrees = null;
List<T_PF_PAGE_CHART> tenantPageCharts = null;
List<T_PF_PAGE_CUSTOM> tenantPageCustoms = null;
List<T_PF_BTN> tenantBtns = null;
List<T_PF_COLUMN> tenantColumns = null;
List<T_PF_PAGE_TABLE_PANEL> tenantPageTablePanels = null;
List<T_PF_TABLE_PARAMS> tenantTableParams = null;
List<T_PF_PAGE_EDIT_PANEL> tenantPageEditPanels = null;
List<T_PF_EDIT_COLUMN> tenantEditColumns = null;
List<T_PF_EDIT_COLUMN_FILTER> tenantEditColumnFilters = null;
List<T_PF_EDIT_COLUMN_FILL_MAP> tenantEditColumnFillMaps = null;
List<T_PF_EDIT_COLUMN_FILL_MAP_D> tenantEditColumnFillMapDs = null;
List<T_PF_TREE_COLUMN> tenantTreeColumns = null;
List<T_PF_PAGE_CHART_PARAM> tenantPageChartParams = null;
List<T_PF_COLUMN_FILTER> tenantColumnFilters = null;
List<T_PF_QUERY> tenantQuerys = null;
List<T_PF_FORM_QUERY> tenantFormQuerys = null;
List<T_PF_CODE_RULE> tenantCodeRules = null;
List<T_FM_SYNC_TASK> tenantSyncTasks = null;
List<T_PF_PARAM_ITEM> tenantParamItems = null;
List<T_PF_PARAM_SCHEME> tenantParamSchemes = null;
List<T_PF_PARAM_SCHEME_DETAIL> tenantParamSchemeDetails = null;
List<T_PF_VERSION_MANAGE> tenantVersionManages = null;
List<T_FM_USER> tenantUser = null;
List<T_FM_ROLE> tenantRole = null;
List<T_FM_USER_BELONG_ROLE> tenantUserBelongRole = null;
#endregion
var dicMenu = new Dictionary<Guid, object>();
List<Guid> existForm = new List<Guid>();
List<Guid> existTable = new List<Guid>();
List<Guid> existPermForm = new List<Guid>();
var tenantConnect = this.GetEntities<T_OP_TENANT>(x => x.ID == new Guid(versionTenant), orgFilter).FirstOrDefault();
var tenantDB = this.GetEntities<T_OP_TENANT_DB_CONN>(x => x.ID == tenantConnect.DB_CONN_ID, orgFilter).FirstOrDefault();
if (tenantDB != null && !string.IsNullOrEmpty(tenantDB.DB_CONN))
{
var Conn = tenantDB.DB_CONN;
using (var context = new MigrationContext(Conn))
{
List<T_PF_MENU> reslist = new List<T_PF_MENU>();
#region
tenantMenus = context.GetEntities<T_PF_MENU>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();//租户菜单
tenantForms = context.GetEntities<T_PF_FORM>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();//租户表单
tenantFormRelations = context.GetEntities<T_PF_FORM_RELATION>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();//表单关联
tenantPageTables = context.GetEntities<T_PF_PAGE_TABLE>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantPageEdits = context.GetEntities<T_PF_PAGE_EDIT>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantPageTrees = context.GetEntities<T_PF_PAGE_TREE>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantPageCharts = context.GetEntities<T_PF_PAGE_CHART>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantPageCustoms = context.GetEntities<T_PF_PAGE_CUSTOM>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantBtns = context.GetEntities<T_PF_BTN>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantColumns = context.GetEntities<T_PF_COLUMN>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantPageTablePanels = context.GetEntities<T_PF_PAGE_TABLE_PANEL>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantTableParams = context.GetEntities<T_PF_TABLE_PARAMS>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList(); ;
tenantPageEditPanels = context.GetEntities<T_PF_PAGE_EDIT_PANEL>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantEditColumns = context.GetEntities<T_PF_EDIT_COLUMN>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantEditColumnFilters = context.GetEntities<T_PF_EDIT_COLUMN_FILTER>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantEditColumnFillMaps = context.GetEntities<T_PF_EDIT_COLUMN_FILL_MAP>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantEditColumnFillMapDs = context.GetEntities<T_PF_EDIT_COLUMN_FILL_MAP_D>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantTreeColumns = context.GetEntities<T_PF_TREE_COLUMN>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantPageChartParams = context.GetEntities<T_PF_PAGE_CHART_PARAM>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantColumnFilters = context.GetEntities<T_PF_COLUMN_FILTER>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantQuerys = context.GetEntities<T_PF_QUERY>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantFormQuerys = context.GetEntities<T_PF_FORM_QUERY>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantCodeRules = context.GetEntities<T_PF_CODE_RULE>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantSyncTasks = context.GetEntities<T_FM_SYNC_TASK>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantParamItems = context.GetEntities<T_PF_PARAM_ITEM>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantParamSchemes = context.GetEntities<T_PF_PARAM_SCHEME>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantParamSchemeDetails = context.GetEntities<T_PF_PARAM_SCHEME_DETAIL>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantVersionManages = context.GetEntities<T_PF_VERSION_MANAGE>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantUser = context.GetEntities<T_FM_USER>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantRole = context.GetEntities<T_FM_ROLE>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
tenantUserBelongRole = context.GetEntities<T_FM_USER_BELONG_ROLE>(x => x.ORG_ID ==new Guid(versionTenant), null).ToList();
#endregion
}
#region
TenantInfo tenantInfo = new TenantInfo();
tenantInfo.FormRelations = tenantFormRelations;
tenantInfo.Forms = tenantForms;
tenantInfo.PageTables = tenantPageTables;
tenantInfo.PageEdits = tenantPageEdits;
tenantInfo.PageTrees = tenantPageTrees;
tenantInfo.PageCharts = tenantPageCharts;
tenantInfo.PageCustoms = tenantPageCustoms;
tenantInfo.Btns = tenantBtns;
tenantInfo.Columns = tenantColumns;
tenantInfo.TablePanels = tenantPageTablePanels;
tenantInfo.TableParams = tenantTableParams;
tenantInfo.EditPanels = tenantPageEditPanels;
tenantInfo.EditColumns = tenantEditColumns;
tenantInfo.EditColumnFilters = tenantEditColumnFilters;
tenantInfo.EditColumnFillMaps = tenantEditColumnFillMaps;
tenantInfo.EditColumnFillMapDs = tenantEditColumnFillMapDs;
tenantInfo.TreeColumns = tenantTreeColumns;
tenantInfo.ChartParams = tenantPageChartParams;
tenantInfo.ColumnFilters = tenantColumnFilters;
tenantInfo.Querys = tenantQuerys;
tenantInfo.FormQuerys = tenantFormQuerys;
tenantInfo.DicPageTable = new Dictionary<string, object>();
tenantInfo.DicPageTableRelation = new Dictionary<string, string>();
tenantInfo.DicForm = new Dictionary<string, string>();
#endregion
#region addInfo()
TenantInfo addEntity = new TenantInfo();
addEntity.FormRelations = new List<T_PF_FORM_RELATION>();
addEntity.Forms = new List<T_PF_FORM>();
addEntity.PageTables = new List<T_PF_PAGE_TABLE>();
addEntity.PageEdits = new List<T_PF_PAGE_EDIT>();
addEntity.PageTrees = new List<T_PF_PAGE_TREE>();
addEntity.PageCharts = new List<T_PF_PAGE_CHART>();
addEntity.PageCustoms = new List<T_PF_PAGE_CUSTOM>();
addEntity.Btns = new List<T_PF_BTN>();
addEntity.Columns = new List<T_PF_COLUMN>();
addEntity.TablePanels = new List<T_PF_PAGE_TABLE_PANEL>();
addEntity.TableParams = new List<T_PF_TABLE_PARAMS>();
addEntity.EditPanels = new List<T_PF_PAGE_EDIT_PANEL>();
addEntity.EditColumns = new List<T_PF_EDIT_COLUMN>();
addEntity.EditColumnFilters = new List<T_PF_EDIT_COLUMN_FILTER>();
addEntity.EditColumnFillMaps = new List<T_PF_EDIT_COLUMN_FILL_MAP>();
addEntity.EditColumnFillMapDs = new List<T_PF_EDIT_COLUMN_FILL_MAP_D>();
addEntity.TreeColumns = new List<T_PF_TREE_COLUMN>();
addEntity.ChartParams = new List<T_PF_PAGE_CHART_PARAM>();
addEntity.ColumnFilters = new List<T_PF_COLUMN_FILTER>();
addEntity.Querys = new List<T_PF_QUERY>();
addEntity.FormQuerys = new List<T_PF_FORM_QUERY>();
addEntity.DicPageTable = new Dictionary<string, object>();
addEntity.DicPageTableRelation = new Dictionary<string, string>();
addEntity.DicForm = new Dictionary<string, string>();
#endregion
#region
// var tenantParamItems = this.GetEntities<T_PF_PARAM_ITEM>(x => x.ORG_ID == tenantFilter.OrgId, tenantFilter);
foreach (var item in srcParamItems)
{
T_PF_PARAM_ITEM parmItem = item;
if (tenantParamItems.Any(x => x.SRC_ID == item.ID))//修改
{
var tenantItem = tenantParamItems.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldItenID = parmItem.ID;
parmItem.SRC_ID = parmItem.ID;
parmItem.ID = tenantItem.ID;
parmItem.ORG_ID = tenantItem.ORG_ID;
newItems.Add(oldItenID, tenantItem.ID);
saveParamItems.Add(parmItem);//添加到对应租户
}
else//新增
{
var newItemID = Guid.NewGuid();
var oldItenID = parmItem.ID;
parmItem.SRC_ID = parmItem.ID;
parmItem.ID = newItemID;
parmItem.ORG_ID = new Guid(versionTenant);
newItems.Add(oldItenID, newItemID);
addParamItems.Add(parmItem);
}
}
//var tenantParamSchemes = this.GetEntities<T_PF_PARAM_SCHEME>(x => x.ORG_ID == tenantFilter.OrgId, tenantFilter);
foreach (var item in srcParamSchemes)
{
T_PF_PARAM_SCHEME paramScheme = item;
if (tenantParamSchemes.Any(x => x.SRC_ID == item.ID))//修改
{
var tenantSchemes = tenantParamSchemes.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldSchemeID = paramScheme.ID;
paramScheme.SRC_ID = paramScheme.ID;
paramScheme.ID = tenantSchemes.ID;
paramScheme.ORG_ID = tenantSchemes.ORG_ID;
newSchemes.Add(oldSchemeID, tenantSchemes.ID);
saveParamSchemes.Add(paramScheme);//添加到对应租户
}
else//新增
{
var newSchemesID = Guid.NewGuid();
var oldSchemeID = paramScheme.ID;
paramScheme.SRC_ID = paramScheme.ID;
paramScheme.ID = newSchemesID;
paramScheme.ORG_ID = new Guid(versionTenant);
newSchemes.Add(oldSchemeID, newSchemesID);
addParamSchemes.Add(paramScheme);
}
}
// var tenantParamSchemeDetails = this.GetEntities<T_PF_PARAM_SCHEME_DETAIL>(x => x.ORG_ID == tenantFilter.OrgId, tenantFilter);
foreach (var item in srcParamSchemeDetails)
{
T_PF_PARAM_SCHEME_DETAIL paramSchemeDetail = item;
if (tenantParamSchemeDetails.Any(x => x.SRC_ID == item.ID))//修改
{
var tenantSchemes = tenantParamSchemeDetails.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldSchemeDetailID = paramSchemeDetail.ID;
var scheneId = newSchemes[item.PARAM_SCHEME_ID];
var ItemId = newItems[item.PARAM_ITEM_ID];
paramSchemeDetail.SRC_ID = paramSchemeDetail.ID;
paramSchemeDetail.ID = tenantSchemes.ID;
paramSchemeDetail.ORG_ID = tenantSchemes.ORG_ID;
paramSchemeDetail.PARAM_SCHEME_ID = scheneId;
paramSchemeDetail.PARAM_ITEM_ID = ItemId;
newSchemeDetails.Add(oldSchemeDetailID, tenantSchemes.ID);
saveParamSchemeDetails.Add(paramSchemeDetail);//添加到对应租户
}
else//新增
{
var newSchemeDetailID = Guid.NewGuid();
var oldSchemeDetailID = paramSchemeDetail.ID;
var scheneId = newSchemes[item.PARAM_SCHEME_ID];
var ItemId = newItems[item.PARAM_ITEM_ID];
paramSchemeDetail.SRC_ID = paramSchemeDetail.ID;
paramSchemeDetail.ID = newSchemeDetailID;
paramSchemeDetail.ORG_ID = new Guid(versionTenant);
paramSchemeDetail.PARAM_SCHEME_ID = scheneId;
paramSchemeDetail.PARAM_ITEM_ID = ItemId;
newSchemeDetails.Add(oldSchemeDetailID, newSchemeDetailID);
addParamSchemeDetails.Add(paramSchemeDetail);
}
}
#endregion
#region
// var tenantCodeRules = this.GetEntities<T_PF_CODE_RULE>(x => x.ORG_ID == tenantFilter.OrgId, tenantFilter);
foreach (var item in srcCodeRules)
{
T_PF_CODE_RULE codeRule = item;
if (tenantCodeRules.Any(x => x.SRC_ID == item.ID))
{
var tenantCodeRule = tenantCodeRules.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldCodeRuleID = item.ID;
codeRule.SRC_ID = codeRule.ID;
codeRule.ID = tenantCodeRule.ID;
codeRule.ORG_ID = tenantCodeRule.ORG_ID;
newCodeRules.Add(oldCodeRuleID, tenantCodeRule.ID);
saveCodeRules.Add(codeRule);//添加到对应租户
}
else
{
var newCodeRuleID = Guid.NewGuid();
var oldCodeRuleID = item.ID;
codeRule.SRC_ID = codeRule.ID;
codeRule.ID = newCodeRuleID;
codeRule.ORG_ID = new Guid(versionTenant);
newCodeRules.Add(oldCodeRuleID, newCodeRuleID);
addCodeRules.Add(codeRule);
}
}
#endregion
#region T_FM_SYNC_TASK
// var tenantSyncTasks = this.GetEntities<T_FM_SYNC_TASK>(x => x.ORG_ID == tenantFilter.OrgId, tenantFilter);
foreach (var item in srcSyncTasks)
{
T_FM_SYNC_TASK syncTask = item;
if (tenantSyncTasks.Any(x => x.SRC_ID == item.ID))
{
var tenantSyncTask = tenantSyncTasks.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldCodeRuleID = item.ID;
syncTask.SRC_ID = syncTask.ID;
syncTask.ID = tenantSyncTask.ID;
syncTask.ORG_ID = tenantSyncTask.ORG_ID;
saveSyncTasks.Add(syncTask);//添加到对应租户
}
else
{
var newSyncTaskID = Guid.NewGuid();
var oldCodeRuleID = item.ID;
syncTask.SRC_ID = syncTask.ID;
syncTask.ID = newSyncTaskID;
syncTask.ORG_ID = new Guid(versionTenant);
addSyncTasks.Add(syncTask);
}
}
#endregion
foreach (var CheckKey in version.CheckMenuKeys)
{
var checkMenu = srcMenuTrees.FirstOrDefault(x => x.Node.ID == new Guid(CheckKey));
if (checkMenu == null)
{
foreach (var item in srcMenuTrees)
{
checkMenu = selectNode(item, CheckKey);
if (checkMenu != null)
break;
}
}
if (checkMenu != null)
{
saveVersionMenu.Add(new T_OP_VERSION_MENU()
{
VERSION_ID = version.ID,
MENU_ID = new Guid(CheckKey),
ORG_ID = version.ORG_ID
});
if (checkMenu.IsLeaf && checkMenu.Node.MENU_FORM_ID != null)//叶子节点
{
dicMenu.Add(new Guid(CheckKey), checkMenu.Node.MENU_FORM_ID);
//T_PF_FORM t_PF_FORM = this.GetEntities<T_PF_FORM>(x => x.ORG_ID == filter.OrgId, filter).FirstOrDefault(x => x.ID == checkMenu.Node.MENU_FORM_ID);//OPT
//T_PF_MENU t_PF_MENU = this.GetEntities<T_PF_MENU>(x => x.ORG_ID == filter.OrgId, filter).Where(x => x.ID == new Guid(CheckKey)).FirstOrDefault();
T_PF_FORM t_PF_FORM = srcForms.FirstOrDefault(x => x.ID == checkMenu.Node.MENU_FORM_ID);
T_PF_MENU t_PF_MENU = srcMenus.FirstOrDefault(x => x.ID == new Guid(CheckKey));
if (tenantMenus.Any(x => x.SRC_ID == new Guid(CheckKey)))//存在
{
#region
// var tanentForm = this.GetEntities<T_PF_FORM>(x => x.ORG_ID == tenantFilter.OrgId, tenantFilter).FirstOrDefault(x => x.SRC_ID == checkMenu.Node.MENU_FORM_ID);
var tanentForm = tenantForms.FirstOrDefault(x => x.SRC_ID == checkMenu.Node.MENU_FORM_ID);
if (tanentForm != null)
{
if (t_PF_FORM != null)//再次点击相同表单数据已更新
{
if (!existForm.Contains(t_PF_FORM.ID) && !savePermPFForm.Any(x => x.CODE == t_PF_FORM.CODE) && !addEntity.Forms.Any(x => x.CODE == t_PF_FORM.CODE))
{
AddTable(srcInfo, t_PF_FORM, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps, saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, new Guid(versionTenant), tanentForm.ID, existForm, existTable, tenantInfo, addEntity);
t_PF_FORM.SRC_ID = checkMenu.Node.MENU_FORM_ID;
t_PF_FORM.ID = tanentForm.ID;
t_PF_FORM.ORG_ID = new Guid(versionTenant);
t_PF_FORM.Nav_Org = null;
if (t_PF_FORM != null)
{
savePermPFForm.Add(t_PF_FORM);//添加表单到对应租户
}
}
}
}
#endregion
#region
var tenantMenu = tenantMenus.FirstOrDefault(x => x.SRC_ID == new Guid(CheckKey));
t_PF_MENU.SRC_ID = new Guid(CheckKey);
t_PF_MENU.ID = tenantMenu.ID;
t_PF_MENU.ORG_ID = new Guid(versionTenant);
if (!tenantInfo.DicForm.ContainsKey(t_PF_MENU.MENU_FORM_ID.ToString()))
{
tenantInfo.DicForm.Add(t_PF_MENU.MENU_FORM_ID.ToString(), tanentForm.ID.ToString());
t_PF_MENU.MENU_FORM_ID = tanentForm.ID;
}
else
{
t_PF_MENU.MENU_FORM_ID = new Guid(tenantInfo.DicForm[t_PF_MENU.MENU_FORM_ID.ToString()]);
}
relationMenu.Add(CheckKey, checkMenu.Node.PARENT_ID);
newRelationMenu.Add(CheckKey, tenantMenu.ID.ToString());
savePermPFMenu.Add(t_PF_MENU);//添加菜单到对应租户
#endregion
}
else
{
#region
var newMenuID = Guid.NewGuid();
//savePermOPMenu.Add(new T_OP_ROLE_MENU() { TENANT_ID = tenant.ID, MENU_ID = new Guid(CheckKey), TENANT_MENU_ID = newMenuID, ORG_ID = tenant.ID });//菜单授权
#endregion
#region
var newFormID = Guid.NewGuid();
if (t_PF_FORM != null)
{
if (!existForm.Contains(t_PF_FORM.ID) && !savePermPFForm.Any(x => x.CODE == t_PF_FORM.CODE) && !addEntity.Forms.Any(x => x.CODE == t_PF_FORM.CODE))
{
AddTable(srcInfo, t_PF_FORM, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps, saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, new Guid(versionTenant), newFormID, existForm, existTable, tenantInfo, addEntity);
t_PF_FORM.SRC_ID = checkMenu.Node.MENU_FORM_ID;
t_PF_FORM.ID = newFormID;
t_PF_FORM.ORG_ID = new Guid(versionTenant);
t_PF_FORM.Nav_Org = null;
if (t_PF_FORM != null)
{
addEntity.Forms.Add(t_PF_FORM);//添加表单到对应租户
}
}
}
#endregion
#region
t_PF_MENU.SRC_ID = checkMenu.Node.ID;
t_PF_MENU.ID = newMenuID;
t_PF_MENU.ORG_ID = new Guid(versionTenant);
if (!tenantInfo.DicForm.ContainsKey(t_PF_MENU.MENU_FORM_ID.ToString()))
{
tenantInfo.DicForm.Add(t_PF_MENU.MENU_FORM_ID.ToString(), newFormID.ToString());
t_PF_MENU.MENU_FORM_ID = newFormID;
}
else
{
t_PF_MENU.MENU_FORM_ID = new Guid(tenantInfo.DicForm[t_PF_MENU.MENU_FORM_ID.ToString()]);
}
relationMenu.Add(CheckKey, checkMenu.Node.PARENT_ID);
newRelationMenu.Add(CheckKey, newMenuID.ToString());
addPermPFMenu.Add(t_PF_MENU);//添加菜单到对应租户
#endregion
}
}
else
{
dicMenu.Add(new Guid(CheckKey), null);
//var tenantMenus = this.GetEntities<T_PF_MENU>(null, tenantFilter);
T_PF_MENU t_PF_MENU = srcMenus.FirstOrDefault(x => x.ID == new Guid(CheckKey));
if (tenantMenus.Any(x => x.SRC_ID == new Guid(CheckKey)))
{
var tenantMenu = tenantMenus.FirstOrDefault(x => x.SRC_ID == new Guid(CheckKey));
t_PF_MENU.SRC_ID = checkMenu.Node.ID;
t_PF_MENU.ID = tenantMenu.ID;
t_PF_MENU.ORG_ID = tenantMenu.ORG_ID;
relationMenu.Add(CheckKey, checkMenu.Node.PARENT_ID);
newRelationMenu.Add(CheckKey, tenantMenu.ID.ToString());
savePermPFMenu.Add(t_PF_MENU);//添加菜单到对应租户
}
else
{
var newMenuID = Guid.NewGuid();
//savePermOPMenu.Add(new T_OP_ROLE_MENU() { TENANT_ID = tenant.ID, MENU_ID = new Guid(CheckKey), TENANT_MENU_ID = newMenuID, ORG_ID = tenant.ID });//菜单授权
t_PF_MENU.SRC_ID = checkMenu.Node.ID;
t_PF_MENU.ID = newMenuID;
t_PF_MENU.ORG_ID = new Guid(versionTenant);
relationMenu.Add(CheckKey, checkMenu.Node.PARENT_ID);
newRelationMenu.Add(CheckKey, newMenuID.ToString());
addPermPFMenu.Add(t_PF_MENU);
}
}
}
}
#region
foreach (var item in relationMenu)
{
if (item.Value != null)
{
var newMenuID = newRelationMenu[item.Key];//需要更新父ID
if (savePermPFMenu.Count > 0 && savePermPFMenu.Any(x => x.ID == new Guid(newMenuID)))
{
savePermPFMenu.Where(x => x.ID == new Guid(newMenuID)).FirstOrDefault().PARENT_ID = new Guid(newRelationMenu[item.Value.ToString()]);
}
}
}
#endregion
#region PageTable关系关联
foreach (var item in savePermPageTable)
{
if (item.PARENT_ID != null)
{
//item.PARENT_ID = new Guid(tenantInfo.DicPageTableRelation[tenantInfo.DicPageTable[item.SRC_ID.ToString()]]);
var oldParentID = tenantInfo.DicPageTable[item.SRC_ID.ToString()];
item.PARENT_ID = new Guid(tenantInfo.DicPageTableRelation[oldParentID.ToString()]);
}
}
#endregion
#region pageEdit关系关联
foreach (var item in savePermPageEdit)
{
if (item.PARENT_ID != null)
{
//item.PARENT_ID = new Guid(tenantInfo.DicPageTableRelation[tenantInfo.DicPageTable[item.SRC_ID.ToString()]]);
var oldParentID = tenantInfo.DicPageTable[item.SRC_ID.ToString()];
item.PARENT_ID = new Guid(tenantInfo.DicPageTableRelation[oldParentID.ToString()]);
}
}
#endregion
saveVersionTenant.Add(new T_OP_VERSION_TENANT()
{
VERSION_ID = version.ID,
TENANT_ID = new Guid(versionTenant),
ORG_ID = version.ORG_ID
});
saveVersions.Add(new T_PF_VERSION_MANAGE()
{
ORG_ID = new Guid(versionTenant),
VERSION_NO = version.VERSION_NO,
VERSION_ZH = version.VERSION_ZH,
CONTENT = version.CONTENT
});
#region
IEnumerable<TreeNode<T_FM_ORGANIZATION>> tenantOrgs = null;
List<T_PF_MENU> menus = null;
using (var context = new MigrationContext(Conn))
{
var filterOrg = new BaseFilter();//OPT创建的菜单,表单等
filterOrg.IgnoreOrgRule = true;
filterOrg.Level = -1;
filterOrg.IsParentData = true;
List<T_FM_ORGANIZATION> reslist = new List<T_FM_ORGANIZATION>();
tenantOrgs = context.GetTreeOrderEntities<T_FM_ORGANIZATION>(x => x.ENABLE_STATUS == (int)FMEnableStatusEnum., filterOrg, null, out reslist);
var tenantOrg = tenantOrgs.Where(x => x.Node.ID == new Guid(versionTenant)).FirstOrDefault();
menus = context.GetEntities<T_PF_MENU>(x => x.ORG_ID == tenantOrg.Node.ID && version.CheckMenuKeys.Contains(x.SRC_ID.ToString()), null).ToList();//租户菜单
}
Dictionary<Guid, Guid> dicOptMenu = new Dictionary<Guid, Guid>();
foreach (var menu in menus)
{
dicOptMenu.Add(menu.ID, (Guid)menu.SRC_ID);
}
List<Guid> CheckMenuKeys = new List<Guid>();
foreach (var CheckMenuKey in menus)
{
CheckMenuKeys.Add((Guid)CheckMenuKey.ID);
}
List<Guid> dicTenant = new List<Guid>();
foreach (var CheckMenuKey in CheckMenuKeys)
{
IEnumerable<T_PF_MENU> enterpriseMenus = null;
T_PF_MENU srcMenu = null;
using (var context = new MigrationContext(Conn))
{
enterpriseMenus = context.GetEntities<T_PF_MENU>(x => x.SRC_ID == CheckMenuKey, null);
}
using (var srccontext = new MigrationContext(srcTemplateConnect))//模板库
{
srcMenu = srccontext.GetEntities<T_PF_MENU>(x => x.ID == dicOptMenu[CheckMenuKey], null).FirstOrDefault();//OPT菜单
}
var tenantSaveMenus = savePermPFMenu.FirstOrDefault(x => x.ID == CheckMenuKey);
foreach (var enterpriseMenu in enterpriseMenus)
{
if (!dicTenant.Contains((Guid)enterpriseMenu.ORG_ID))
{
dicTenant.Add((Guid)enterpriseMenu.ORG_ID);
}
enterpriseMenu.NAME = srcMenu.NAME;
enterpriseMenu.MENU_FORM_PARAMS = srcMenu.MENU_FORM_PARAMS;
enterpriseMenu.NAME_ACRONYM = srcMenu.NAME_ACRONYM;
enterpriseMenu.MENU_FORM_ID = tenantSaveMenus.MENU_FORM_ID;
enterpriseMenu.ICON = srcMenu.ICON;
savePermPFMenu.Add(enterpriseMenu);//添加菜单到对应租户
}
}
// updateChildren(tenantOrg, savePermPFMenu, CheckMenuKeys, dicOptMenu);
if (dicTenant.Any())
{
foreach (var item in dicTenant)
{
saveVersions.Add(new T_PF_VERSION_MANAGE()
{
ORG_ID = item,
VERSION_NO = version.VERSION_NO,
VERSION_ZH = version.VERSION_ZH,
CONTENT = version.CONTENT
});
}
}
#endregion
this.UpdateEntity(version);
if (saveVersionMenu != null && saveVersionMenu.Any())
this.BantchSaveEntity(saveVersionMenu);
if (saveVersionTenant != null && saveVersionTenant.Any())
this.BantchSaveEntity(saveVersionTenant);
using (var context = new MigrationContext(Conn))
{
if (saveCodeRules != null && saveCodeRules.Any())
context.UpdateEntities(saveCodeRules);
if (saveSyncTasks != null && saveSyncTasks.Any())
context.UpdateEntities(saveSyncTasks);
if (savePermPFForm != null && savePermPFForm.Any())
context.UpdateEntities(savePermPFForm);
if (saveParamItems != null && saveParamItems.Any())
context.UpdateEntities(saveParamItems);
if (saveParamSchemes != null && saveParamSchemes.Any())
context.UpdateEntities(saveParamSchemes);
if (saveParamSchemeDetails != null && saveParamSchemeDetails.Any())
context.UpdateEntities(saveParamSchemeDetails);
if (savePermPageEdit != null && savePermPageEdit.Any())
context.UpdateEntities(savePermPageEdit);
if (saveEditPanels != null && saveEditPanels.Any())
context.UpdateEntities(saveEditPanels);
if (saveEditColumns != null && saveEditColumns.Any())
context.UpdateEntities(saveEditColumns);
if (saveEditColumnFilters != null && saveEditColumnFilters.Any())
context.UpdateEntities(saveEditColumnFilters);
if (saveEditColumnFillMaps != null && saveEditColumnFillMaps.Any())
context.UpdateEntities(saveEditColumnFillMaps);
if (saveEditColumnFillMapDs != null && saveEditColumnFillMapDs.Any())
context.UpdateEntities(saveEditColumnFillMapDs);
if (savePermPageCustom != null && savePermPageCustom.Any())
context.UpdateEntities(savePermPageCustom);
if (savePermPageChart != null && savePermPageChart.Any())
context.UpdateEntities(savePermPageChart);
if (saveChartParams != null && saveChartParams.Any())
context.UpdateEntities(saveChartParams);
if (savePermPageTable != null && savePermPageTable.Any())
context.UpdateEntities(savePermPageTable);
if (saveTablePanels != null && saveTablePanels.Any())
context.UpdateEntities(saveTablePanels);
if (savePermCloumn != null && savePermCloumn.Any())
context.UpdateEntities(savePermCloumn);
if (saveColumFilters != null && saveColumFilters.Any())
context.UpdateEntities(saveColumFilters);
if (saveTableParams != null && saveTableParams.Any())
context.UpdateEntities(saveTableParams);
if (saveFormQuerys != null && saveFormQuerys.Any())
context.UpdateEntities(saveFormQuerys);
if (saveQuerys != null && saveQuerys.Any())
context.UpdateEntities(saveQuerys);
if (savePermPageTree != null && savePermPageTree.Any())
context.UpdateEntities(savePermPageTree);
if (saveTreeColumns != null && saveTreeColumns.Any())
context.UpdateEntities(saveTreeColumns);
if (savePermBtn != null && savePermBtn.Any())
context.UpdateEntities(savePermBtn);
if (savePermPFMenu != null && savePermPFMenu.Any())
context.UpdateEntities(savePermPFMenu);
if (savePermPFFormRelation != null && savePermPFFormRelation.Any())
context.UpdateEntities(savePermPFFormRelation);
if (saveVersions != null && saveVersions.Any())
context.AddEntities(saveVersions);
context.SaveChanges();
}
}
}
}
}
//UnifiedCommit(() =>
//{
// this.UpdateEntityNoCommit(version);
// if (saveCodeRules != null && saveCodeRules.Any())
// this.BantchSaveEntityNoCommit(saveCodeRules);
// if (saveSyncTasks != null && saveSyncTasks.Any())
// this.BantchSaveEntityNoCommit(saveSyncTasks);
// if (savePermPFForm != null && savePermPFForm.Any())
// this.BantchSaveEntityNoCommit(savePermPFForm);
// if (saveParamItems != null && saveParamItems.Any())
// this.BantchSaveEntityNoCommit(saveParamItems);
// if (saveParamSchemes != null && saveParamSchemes.Any())
// this.BantchSaveEntityNoCommit(saveParamSchemes);
// if (saveParamSchemeDetails != null && saveParamSchemeDetails.Any())
// this.BantchSaveEntityNoCommit(saveParamSchemeDetails);
// if (savePermPageEdit != null && savePermPageEdit.Any())
// this.BantchSaveEntityNoCommit(savePermPageEdit);
// if (saveEditPanels != null && saveEditPanels.Any())
// this.BantchSaveEntityNoCommit(saveEditPanels);
// if (saveEditColumns != null && saveEditColumns.Any())
// this.BantchSaveEntityNoCommit(saveEditColumns);
// if (saveEditColumnFilters != null && saveEditColumnFilters.Any())
// this.BantchSaveEntityNoCommit(saveEditColumnFilters);
// if (saveEditColumnFillMaps != null && saveEditColumnFillMaps.Any())
// this.BantchSaveEntityNoCommit(saveEditColumnFillMaps);
// if (saveEditColumnFillMapDs != null && saveEditColumnFillMapDs.Any())
// this.BantchSaveEntityNoCommit(saveEditColumnFillMapDs);
// if (savePermPageCustom != null && savePermPageCustom.Any())
// this.BantchSaveEntityNoCommit(savePermPageCustom);
// if (savePermPageChart != null && savePermPageChart.Any())
// this.BantchSaveEntityNoCommit(savePermPageChart);
// if (saveChartParams != null && saveChartParams.Any())
// this.BantchSaveEntityNoCommit(saveChartParams);
// if (savePermPageTable != null && savePermPageTable.Any())
// this.BantchSaveEntityNoCommit(savePermPageTable);
// if (saveTablePanels != null && saveTablePanels.Any())
// this.BantchSaveEntityNoCommit(saveTablePanels);
// if (savePermCloumn != null && savePermCloumn.Any())
// this.BantchSaveEntityNoCommit(savePermCloumn);
// if (saveColumFilters != null && saveColumFilters.Any())
// this.BantchSaveEntityNoCommit(saveColumFilters);
// if (saveTableParams != null && saveTableParams.Any())
// this.BantchSaveEntityNoCommit(saveTableParams);
// if (saveFormQuerys != null && saveFormQuerys.Any())
// this.BantchSaveEntityNoCommit(saveFormQuerys);
// if (saveQuerys != null && saveQuerys.Any())
// this.BantchSaveEntityNoCommit(saveQuerys);
// if (savePermPageTree != null && savePermPageTree.Any())
// this.BantchSaveEntityNoCommit(savePermPageTree);
// if (saveTreeColumns != null && saveTreeColumns.Any())
// this.BantchSaveEntityNoCommit(saveTreeColumns);
// if (savePermBtn != null && savePermBtn.Any())
// this.BantchSaveEntityNoCommit(savePermBtn);
// if (savePermPFMenu != null && savePermPFMenu.Any())
// this.BantchSaveEntityNoCommit(savePermPFMenu);
// if (savePermPFFormRelation != null && savePermPFFormRelation.Any())
// this.BantchSaveEntityNoCommit(savePermPFFormRelation);
// if (saveVersions != null && saveVersions.Any())
// this.BantchSaveEntityNoCommit(saveVersions);
// if (saveVersionMenu != null && saveVersionMenu.Any())
// this.BantchSaveEntityNoCommit(saveVersionMenu);
// if (saveVersionTenant != null && saveVersionTenant.Any())
// this.BantchSaveEntityNoCommit(saveVersionTenant);
//});
return true;
});
}
public void updateChildren(TreeNode<T_FM_ORGANIZATION> orgs, List<T_PF_MENU> saveMenus, List<Guid> CheckMenuKeys, Dictionary<Guid, Guid> dicOptMenu)
{
if (orgs.Children.Count > 0)
{
foreach (var org in orgs.Children)
{
List<Guid> TenantCheckMenuKeys = new List<Guid>();//对应父节点选中菜单
var menus = this.GetEntities<T_PF_MENU>(x => x.ORG_ID == org.Node.ID && CheckMenuKeys.Contains((Guid)x.SRC_ID), new BaseFilter()).ToList();//子企业菜单
// TenantCheckMenuKeys.AddRange(this.GetEntities<T_PF_MENU>(x => x.ORG_ID == org.Node.ID && CheckMenuKeys.Contains((Guid)x.SRC_ID), new BaseFilter()).Select(x => x.ID));//子企业对应选中的菜单
var TenantCheckMenus = this.GetEntities<T_PF_MENU>(x => x.ORG_ID == org.Node.ID && CheckMenuKeys.Contains((Guid)x.SRC_ID), new BaseFilter());
foreach (var TenantCheckMenu in TenantCheckMenus)
{
TenantCheckMenuKeys.Add((Guid)TenantCheckMenu.SRC_ID);
}
foreach (var menu in menus)
{
dicOptMenu.Add(menu.ID, dicOptMenu[(Guid)menu.SRC_ID]);
}
if (TenantCheckMenuKeys != null && TenantCheckMenuKeys.Any())
{
updateMenu(org, saveMenus, TenantCheckMenuKeys, dicOptMenu);
}
updateChildren(org, saveMenus, TenantCheckMenuKeys, dicOptMenu);
}
}
}
public void updateMenu(TreeNode<T_FM_ORGANIZATION> orgs, List<T_PF_MENU> saveMenus, List<Guid> CheckMenuKeys, Dictionary<Guid, Guid> dicOptMenu)
{
var enterpriseMenus = this.GetEntities<T_PF_MENU>(x => x.ORG_ID == orgs.Node.ID, new BaseFilter());
var enterpriseMenuIds = enterpriseMenus.Select(x => x.ID);
foreach (var CheckKey in CheckMenuKeys)
{
if (enterpriseMenuIds.Contains(CheckKey))//子企业有对应菜单权限才更新
{
var enterprisetenantMenu = enterpriseMenus.FirstOrDefault(x => x.ID == CheckKey);
T_PF_MENU t_PF_MENU = this.GetEntities<T_PF_MENU>(x => x.ID == dicOptMenu[CheckKey], new BaseFilter()).FirstOrDefault();//OPT菜单
enterprisetenantMenu.NAME = t_PF_MENU.NAME;
enterprisetenantMenu.MENU_FORM_PARAMS = t_PF_MENU.MENU_FORM_PARAMS;
enterprisetenantMenu.NAME_ACRONYM = t_PF_MENU.NAME_ACRONYM;
enterprisetenantMenu.MENU_FORM_ID = t_PF_MENU.MENU_FORM_ID;
enterprisetenantMenu.ICON = t_PF_MENU.ICON;
saveMenus.Add(enterprisetenantMenu);//添加菜单到对应租户
}
}
}
/// <summary>
/// 树形授权
/// </summary>
/// <param name="role"></param>
/// <returns></returns>
[HttpPost, Route("GetTreePermissionForms")]
public JsonActionResult<RolePermissionResul> GetTreePermissionForms([FromBody] KeywordPageFilter pageFilter)
{
return SafeExecute<RolePermissionResul>(() =>
{
List<RolePermissionTreeModel> result = new List<RolePermissionTreeModel>();//最终返回树结果
IEnumerable<TreeNode<T_PF_MENU>> menuTree = null;
//var filter = new BaseFilter(new Guid(pageFilter.Parameter6));//OPT OrgId
//filter.Level = -1;
//filter.IsParentData = true;
var orgFilter = new BaseFilter();
orgFilter.IgnoreOrgRule = true;
string VersionId = pageFilter.Keyword;//租户ID
List<T_OP_VERSION_MENU> permissionMenu = null;
List<T_OP_VERSION_TENANT> versionTenant = null;
var tenant = this.GetEntities<T_OP_TENANT>(x => x.ID == new Guid(pageFilter.Parameter6), orgFilter).FirstOrDefault();
var targetDB = this.GetEntities<T_OP_TENANT_DB_CONN>(x => x.ID == tenant.DB_CONN_ID, orgFilter).FirstOrDefault();
if (targetDB != null && !string.IsNullOrEmpty(targetDB.DB_CONN))
{
var Conn = targetDB.DB_CONN;
using (var context = new MigrationContext(Conn))
{
var filter = new BaseFilter();
filter.IgnoreOrgRule = true;
filter.Level = -1;
filter.IsParentData = true;
List<T_PF_MENU> reslist = new List<T_PF_MENU>();
menuTree = context.GetTreeOrderEntities<T_PF_MENU>(x => x.ENABLE_STATUS == (int)FMEnableStatusEnum. && x.PLATFORM_CATEGORY == 0 && x.ORG_ID == new Guid(pageFilter.Parameter6), filter, null, out reslist);
}
}
// var menuTree = this.GetTreeOrderEntities<T_PF_MENU>(x => x.ENABLE_STATUS == (int)FMEnableStatusEnum.启用 && x.ORG_ID == filter.OrgId && x.PLATFORM_CATEGORY == 0, filter);
if (!string.IsNullOrEmpty(VersionId))
{
permissionMenu = this.GetEntities<T_OP_VERSION_MENU>(x => x.VERSION_ID == new Guid(VersionId), orgFilter).ToList();
versionTenant = this.GetEntities<T_OP_VERSION_TENANT>(x => x.VERSION_ID == new Guid(VersionId), orgFilter).ToList();
}
List<FormInfo> formInfos = new List<FormInfo>();
List<string> checks = new List<string>();
List<string> checkLastKey = new List<string>();
List<string> checkTenants = new List<string>();
foreach (var menu in menuTree)
{
AddChildren(menu, permissionMenu, formInfos);
}
result = RolePermissionTreeModel.GetRolePermissionTree(formInfos);
result = result[0].children;
foreach (var item in result)
{
SelectCheck(item, checks, checkLastKey);
}
if (versionTenant != null && versionTenant.Any())
{
foreach (var item in versionTenant)
{
checkTenants.Add(item.TENANT_ID.ToString());
}
}
var rlt = new RolePermissionResul() { checks = checks, checkLastKey = checkLastKey, checkTenants = checkTenants, rolePermissionTreeModels = result };
return rlt;
});
}
public void AddChildren(TreeNode<T_PF_MENU> treeNode, IEnumerable<T_OP_VERSION_MENU> permissionMenu, List<FormInfo> formInfos)
{
var permission = false;
if (!treeNode.Node.IS_LEAF)
{
permission = permissionMenu == null ? false : permissionMenu.Any(x => x.MENU_ID == treeNode.Node.ID);
formInfos.Add(new FormInfo()
{
Code = treeNode.Node.ID.ToString(),
Title = treeNode.Node.NAME,
ParentCode = treeNode.Node.PARENT_ID.ToString(),
IsCheck = permission
});
foreach (var item in treeNode.Children)
{
AddChildren(item, permissionMenu, formInfos);
}
}
else
{
permission = permissionMenu == null ? false : permissionMenu.Any(x => x.MENU_ID == treeNode.Node.ID);
formInfos.Add(new FormInfo()
{
Code = treeNode.Node.ID.ToString(),
Title = treeNode.Node.NAME,
ParentCode = treeNode.Node.PARENT_ID.ToString(),
IsCheck = permission
});
}
}
public void SelectCheck(RolePermissionTreeModel RolePermissions, List<string> checks, List<string> checkLastKey)
{
if (RolePermissions.IsCheck)
{
checks.Add(RolePermissions.key);
}
if (RolePermissions.children.Count == 0 && RolePermissions.IsCheck)
{
checkLastKey.Add(RolePermissions.key);
}
if (RolePermissions.children.Count > 0)
{
foreach (var item in RolePermissions.children)
{
SelectCheck(item, checks, checkLastKey);
}
}
}
public void AddTable(TenantInfo srcInfo, T_PF_FORM form, List<T_PF_FORM> savePermPFForm,
List<T_PF_PAGE_TABLE> savePermPageTable, List<T_PF_PAGE_TABLE_PANEL> saveTablePanels, List<T_PF_TABLE_PARAMS> saveTableParams,
List<T_PF_COLUMN_FILTER> saveColumFilters, List<T_PF_COLUMN> savePermCloumn,
List<T_PF_PAGE_EDIT> savePermPageEdit, List<T_PF_PAGE_EDIT_PANEL> saveEditPanels, List<T_PF_EDIT_COLUMN> saveEditColumns,
List<T_PF_EDIT_COLUMN_FILTER> saveEditColumnFilters, List<T_PF_EDIT_COLUMN_FILL_MAP> saveEditColumnFillMaps,
List<T_PF_EDIT_COLUMN_FILL_MAP_D> saveEditColumnFillMapDs,
List<T_PF_PAGE_TREE> savePermPageTree, List<T_PF_TREE_COLUMN> saveTreeColumns,
List<T_PF_PAGE_CHART> savePermPageChart, List<T_PF_PAGE_CHART_PARAM> saveChartParams,
List<T_PF_PAGE_CUSTOM> savePermPageCustom,
List<T_PF_BTN> savePermBtn, List<T_PF_FORM_QUERY> saveFormQuerys, List<T_PF_QUERY> saveQuerys, List<T_PF_FORM_RELATION> savePermPFFormRelation,
Dictionary<Guid, Guid> newSchemes, Dictionary<Guid, Guid> newTablePanels, Dictionary<Guid, Guid> newEditPanels, Guid tenantID, Guid pageFormID,
List<Guid> existForm, List<Guid> existTable, TenantInfo tenantInfo, TenantInfo addEntity)
{
existForm.Add(form.ID);//去重
tenantInfo.DicForm.Add(form.ID.ToString(), pageFormID.ToString());
switch (form.FORM_TYPE)
{
case (int)PFFormTypeEnum.:
case (int)PFFormTypeEnum.:
{
#region T_PF_FORM_RELATION
var formRelations = srcInfo.FormRelations.Where(x => x.PAGE_FORM_ID == form.ID);
if (formRelations.Any())
{
foreach (var formRelation in formRelations)
{
T_PF_FORM_RELATION relation = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(formRelation);
if (tenantInfo.FormRelations.Any(x => x.SRC_ID == formRelation.ID))
{
var tenantRelation = tenantInfo.FormRelations.FirstOrDefault(x => x.SRC_ID == formRelation.ID);
var relationForm = srcInfo.Forms.Where(x => x.CODE == formRelation.CODE).FirstOrDefault();
if (!existForm.Contains(relationForm.ID) && !savePermPFForm.Any(x => x.CODE == relationForm.CODE) && !addEntity.Forms.Any(x => x.CODE == relationForm.CODE))//去重
{
if (relationForm != null)
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == relationForm.ID))
{
var tenantForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == relationForm.ID);//取旧数据ID不变
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = tenantForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
}
else
{
var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = newFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);
//savePermPFForm.Add(newForm);//添加表单到对应租户
}
}
}
relation.SRC_ID = formRelation.ID;
relation.ID = tenantRelation.ID;
relation.ORG_ID = tenantID;
relation.PAGE_FORM_ID = pageFormID;
savePermPFFormRelation.Add(relation);
}
else
{
var relationForm = srcInfo.Forms.Where(x => x.CODE == formRelation.CODE).FirstOrDefault();
if (!existForm.Contains(relationForm.ID) && !savePermPFForm.Any(x => x.CODE == relationForm.CODE) && !addEntity.Forms.Any(x => x.CODE == relationForm.CODE))//去重
{
if (relationForm != null)
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == relationForm.ID))
{
var tenantForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == relationForm.ID);
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = tenantForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
}
else
{
var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = newFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);
}
}
}
var newRelationID = new Guid();
relation.SRC_ID = formRelation.ID;
relation.ID = newRelationID;
relation.ORG_ID = tenantID;
relation.PAGE_FORM_ID = pageFormID;
addEntity.FormRelations.Add(relation);
}
}
}
#endregion
#region
AddQuerys(form, tenantID, pageFormID, srcInfo.FormQuerys, saveFormQuerys, srcInfo.Querys, saveQuerys, tenantInfo, addEntity);
#endregion
var resTable = srcInfo.PageTables.Where(x => x.PAGE_FORM_ID == form.ID).ToList();//查找相关表单
if (resTable.Count > 0)
{
if (form.FORM_TYPE == (int)PFFormTypeEnum.)
{
foreach (var item in resTable)
{
var oldpageTable = item.ID;
if (!existTable.Contains(oldpageTable))
{
existTable.Add(oldpageTable);
var newTableID = AddPageTable(item, pageFormID, tenantID, savePermPageTable, newSchemes, saveTablePanels, saveTableParams,
newTablePanels, saveEditPanels, newEditPanels, saveChartParams, tenantInfo, srcInfo, addEntity);
#region
//var allClm = this.GetEntities<T_PF_COLUMN>(t => t.PAGE_TABLE_ID == oldpageTable, filter).ToList();//OPT所有列
var allClm = srcInfo.Columns.Where(t => t.PAGE_TABLE_ID == oldpageTable).ToList();
foreach (var col in allClm)
{
var oldColID = col.ID;
var newColumnID = Guid.NewGuid();
if (tenantInfo.Columns.Any(x => x.SRC_ID == col.ID))
{
var tenantColumn = tenantInfo.Columns.FirstOrDefault(x => x.SRC_ID == col.ID);
T_PF_COLUMN column = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(col);//OPT创建的表单
column.SRC_ID = col.ID;
column.ID = tenantColumn.ID;
column.ORG_ID = tenantID;
column.PAGE_TABLE_ID = newTableID;
if (column.PAGE_TABLE_PANEL_ID != null)
{
column.PAGE_TABLE_PANEL_ID = newTablePanels[(Guid)column.PAGE_TABLE_PANEL_ID];
}
savePermCloumn.Add(column);//添加列基础到对应租户
newColumnID = tenantColumn.ID;//更新
}
else
{
T_PF_COLUMN column = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(col);//OPT创建的表单
column.SRC_ID = col.ID;
column.ID = newColumnID;
column.ORG_ID = tenantID;
column.PAGE_TABLE_ID = newTableID;
if (column.PAGE_TABLE_PANEL_ID != null)
{
column.PAGE_TABLE_PANEL_ID = newTablePanels[(Guid)column.PAGE_TABLE_PANEL_ID];
}
//savePermCloumn.Add(column);//添加列基础到对应租户
addEntity.Columns.Add(column);
}
#region T_PF_COLUMN_FILTER
var colFilters = srcInfo.ColumnFilters.Where(x => x.COLUMN_ID == oldColID);
foreach (var colFilter in colFilters)
{
if (tenantInfo.ColumnFilters.Any(x => x.SRC_ID == colFilter.ID))
{
var tenantColumnFilters = tenantInfo.ColumnFilters.FirstOrDefault(x => x.SRC_ID == colFilter.ID);
var cf = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFilter);
cf.SRC_ID = colFilter.ID;
cf.ID = tenantColumnFilters.ID;
cf.COLUMN_ID = newColumnID;
cf.ORG_ID = tenantID;
saveColumFilters.Add(cf);
}
else
{
var colID = Guid.NewGuid();
var cf = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFilter);
cf.SRC_ID = colFilter.ID;
cf.ID = colID;
cf.COLUMN_ID = newColumnID;
cf.ORG_ID = tenantID;
addEntity.ColumnFilters.Add(cf);
}
}
#endregion
if (!string.IsNullOrEmpty(col.SHOW_FORM_CODE))//有配置关联表单
{
var colForm = srcInfo.Forms.Where(x => x.CODE == col.SHOW_FORM_CODE).FirstOrDefault();
if (!existForm.Contains(form.ID) && !savePermPFForm.Any(x => x.CODE == colForm.CODE) && !addEntity.Forms.Any(x => x.CODE == colForm.CODE))//去重
{
if (colForm != null)
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == colForm.ID))
{
var tenantForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == colForm.ID);
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colForm);//OPT创建的表单
AddTable(srcInfo, colForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = colForm.ID;
newForm.ID = tenantForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
}
else
{
var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colForm);//OPT创建的表单
AddTable(srcInfo, colForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = colForm.ID;
newForm.ID = newFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);
}
}
}
}
}
#endregion
#region
//var allBtn = this.GetEntities<T_PF_BTN>(t => t.PAGE_ID == oldpageTable, filter).ToList();//OPT所有列
var allBtn = srcInfo.Btns.Where(t => t.PAGE_ID == oldpageTable).ToList();
AddTableBtn(srcInfo, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, existForm, existTable, allBtn, newTableID, tenantInfo, addEntity);
#endregion
}
}
}
else//组合表单
{
foreach (var item in resTable)
{
var newRelationFormID = Guid.NewGuid();
var reformId = srcInfo.Forms.Where(x => x.CODE == item.CODE).FirstOrDefault();
//var reformId = this.GetEntities<T_PF_FORM>(null, filter).FirstOrDefault(x => x.CODE == item.CODE);
if (reformId != null && !existForm.Contains(reformId.ID) && !savePermPFForm.Any(x => x.CODE == reformId.CODE) && !addEntity.Forms.Any(x => x.CODE == reformId.CODE))
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == reformId.ID))//存在
{
var tenantForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == reformId.ID);
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(reformId);//OPT创建的表单
AddTable(srcInfo, newForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = reformId.ID;
newForm.ID = tenantForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
newRelationFormID = tenantForm.ID;
}
else
{
//var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(reformId);//OPT创建的表单
AddTable(srcInfo, newForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newRelationFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = reformId.ID;
newForm.ID = newRelationFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);
}
}
#region pageTable
var oldrelationPageID = item.ID;
var pageTables = srcInfo.PageTables.Where(x => x.PAGE_FORM_ID == reformId.ID).ToList();//真实表单
if (!existTable.Contains(oldrelationPageID))
{
existTable.Add(oldrelationPageID);
var newRelationTableID = AddPageTable(item, pageFormID, tenantID, savePermPageTable, newSchemes, saveTablePanels, saveTableParams,
newTablePanels, saveEditPanels, newEditPanels, saveChartParams, tenantInfo, srcInfo, addEntity);
}
#endregion
#region T_PF_PAGE_TABLE
//foreach (var pageTable in pageTables)
//{
// var oldpageTable = pageTable.ID;
// if (!existTable.Contains(oldpageTable))
// {
// existTable.Add(oldpageTable);
// var newTableID = AddPageTable(pageTable, newRelationFormID, tenantID, savePermPageTable, newSchemes, saveTablePanels, saveTableParams,
// newTablePanels, saveEditPanels, newEditPanels, saveChartParams, tenantInfo);
// #region 添加列
// var allClm = this.GetEntities<T_PF_COLUMN>(t => t.PAGE_TABLE_ID == oldpageTable, filter).ToList();//OPT所有列
// foreach (var col in allClm)
// {
// var oldColID = col.ID;
// var newColumnID = Guid.NewGuid();
// if (tenantInfo.Columns.Any(x => x.SRC_ID == col.ID))
// {
// var tenantColumn = tenantInfo.Columns.FirstOrDefault(x => x.SRC_ID == col.ID);
// T_PF_COLUMN column = col;//OPT创建的表单
// column.SRC_ID = col.ID;
// column.ID = tenantColumn.ID;
// column.ORG_ID = tenantID;
// column.PAGE_TABLE_ID = newTableID;
// if (column.PAGE_TABLE_PANEL_ID != null)
// {
// column.PAGE_TABLE_PANEL_ID = newTablePanels[(Guid)column.PAGE_TABLE_PANEL_ID];
// }
// savePermCloumn.Add(column);//添加列基础到对应租户
// newColumnID = tenantColumn.ID;//更新
// }
// else
// {
// T_PF_COLUMN column = col;//OPT创建的表单
// column.SRC_ID = col.ID;
// column.ID = newColumnID;
// column.ORG_ID = tenantID;
// column.PAGE_TABLE_ID = newTableID;
// if (column.PAGE_TABLE_PANEL_ID != null)
// {
// column.PAGE_TABLE_PANEL_ID = newTablePanels[(Guid)column.PAGE_TABLE_PANEL_ID];
// }
// savePermCloumn.Add(column);//添加列基础到对应租户
// }
// #region T_PF_COLUMN_FILTER
// var colFilters = srcInfo.ColumnFilters.Where(x => x.COLUMN_ID == oldColID);
// foreach (var colFilter in colFilters)
// {
// if (tenantInfo.ColumnFilters.Any(x => x.SRC_ID == colFilter.ID))
// {
// var tenantColumnFilters = tenantInfo.ColumnFilters.FirstOrDefault(x => x.SRC_ID == colFilter.ID);
// var cf = colFilter;
// cf.SRC_ID = colFilter.ID;
// cf.ID = tenantColumnFilters.ID;
// cf.COLUMN_ID = newColumnID;
// saveColumFilters.Add(cf);
// }
// else
// {
// var colID = Guid.NewGuid();
// var cf = colFilter;
// cf.SRC_ID = colFilter.ID;
// cf.ID = colID;
// cf.COLUMN_ID = newColumnID;
// saveColumFilters.Add(cf);
// }
// }
// #endregion
// if (!string.IsNullOrEmpty(col.SHOW_FORM_CODE))//有配置关联表单
// {
// var colForm = srcInfo.Forms.Where(x => x.CODE == col.SHOW_FORM_CODE).FirstOrDefault();
// if (!existForm.Contains(form.ID))//去重
// {
// if (colForm != null)
// {
// if (tenantInfo.Forms.Any(x => x.SRC_ID == colForm.ID))
// {
// var tenantForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == colForm.ID);
// T_PF_FORM newForm = colForm;//OPT创建的表单
// AddTable(srcInfo, colForm, savePermPFForm,
// savePermPageTable, saveTablePanels, saveTableParams,
// saveColumFilters, savePermCloumn,
// savePermPageEdit, saveEditPanels, saveEditColumns,
// saveEditColumnFilters, saveEditColumnFillMaps,
// saveEditColumnFillMapDs,
// savePermPageTree, saveTreeColumns,
// savePermPageChart, saveChartParams,
// savePermPageCustom,
// savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
// newSchemes, newTablePanels, newEditPanels, tenantID, tenantForm.ID, existForm, existTable, tenantInfo);
// newForm.SRC_ID = colForm.ID;
// newForm.ID = tenantForm.ID;
// newForm.ORG_ID = tenantID;
// newForm.Nav_Org = null;
// savePermPFForm.Add(newForm);//添加表单到对应租户
// }
// else
// {
// var newFormID = Guid.NewGuid();
// T_PF_FORM newForm = colForm;//OPT创建的表单
// AddTable(srcInfo, colForm, savePermPFForm,
// savePermPageTable, saveTablePanels, saveTableParams,
// saveColumFilters, savePermCloumn,
// savePermPageEdit, saveEditPanels, saveEditColumns,
// saveEditColumnFilters, saveEditColumnFillMaps,
// saveEditColumnFillMapDs,
// savePermPageTree, saveTreeColumns,
// savePermPageChart, saveChartParams,
// savePermPageCustom,
// savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
// newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo);
// newForm.SRC_ID = colForm.ID;
// newForm.ID = newFormID;
// newForm.ORG_ID = tenantID;
// newForm.Nav_Org = null;
// savePermPFForm.Add(newForm);//添加表单到对应租户
// }
// }
// }
// }
// }
// #endregion
// #region 添加按钮
// var allBtn = this.GetEntities<T_PF_BTN>(t => t.PAGE_ID == oldpageTable, filter).ToList();//OPT所有列
// AddTableBtn(srcInfo, savePermPFForm,
// savePermPageTable, saveTablePanels, saveTableParams,
// saveColumFilters, savePermCloumn,
// savePermPageEdit, saveEditPanels, saveEditColumns,
// saveEditColumnFilters, saveEditColumnFillMaps,
// saveEditColumnFillMapDs,
// savePermPageTree, saveTreeColumns,
// savePermPageChart, saveChartParams,
// savePermPageCustom,
// savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
// newSchemes, newTablePanels, newEditPanels, tenantID, existForm, existTable, allBtn, newTableID, tenantInfo);
// #endregion
// }
//}
#endregion
}
}
}
break;
}
case (int)PFFormTypeEnum.:
{
#region T_PF_FORM_RELATION
var formRelations = srcInfo.FormRelations.Where(x => x.PAGE_FORM_ID == form.ID);
if (formRelations.Any())
{
foreach (var formRelation in formRelations)
{
T_PF_FORM_RELATION relation = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(formRelation);
if (tenantInfo.FormRelations.Any(x => x.SRC_ID == formRelation.ID))
{
var tenantRelation = tenantInfo.FormRelations.FirstOrDefault(x => x.SRC_ID == formRelation.ID);
var relationForm = srcInfo.Forms.Where(x => x.CODE == formRelation.CODE).FirstOrDefault();
if (!existForm.Contains(relationForm.ID) && !savePermPFForm.Any(x => x.CODE == relationForm.CODE) && !addEntity.Forms.Any(x => x.CODE == relationForm.CODE))//去重
{
if (relationForm != null)
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == relationForm.ID))
{
var tenantForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == relationForm.ID);//取旧数据ID不变
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = tenantForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
}
else
{
var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = newFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);
//savePermPFForm.Add(newForm);//添加表单到对应租户
}
}
}
relation.SRC_ID = formRelation.ID;
relation.ID = tenantRelation.ID;
relation.ORG_ID = tenantID;
relation.PAGE_FORM_ID = pageFormID;
savePermPFFormRelation.Add(relation);
}
else
{
var relationForm = srcInfo.Forms.Where(x => x.CODE == formRelation.CODE).FirstOrDefault();
if (!existForm.Contains(relationForm.ID) && !savePermPFForm.Any(x => x.CODE == relationForm.CODE) && !addEntity.Forms.Any(x => x.CODE == relationForm.CODE))//去重
{
if (relationForm != null)
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == relationForm.ID))
{
var tenantForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == relationForm.ID);
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = tenantForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
}
else
{
var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = newFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);
}
}
}
var newRelationID = new Guid();
relation.SRC_ID = formRelation.ID;
relation.ID = newRelationID;
relation.ORG_ID = tenantID;
relation.PAGE_FORM_ID = pageFormID;
addEntity.FormRelations.Add(relation);
}
}
}
#endregion
#region
AddQuerys(form, tenantID, pageFormID, srcInfo.FormQuerys, saveFormQuerys, srcInfo.Querys, saveQuerys, tenantInfo, addEntity);
#endregion
var resEdit = srcInfo.PageEdits.Where(x => x.PAGE_FORM_ID == form.ID).ToList();//查找相关表单
if (resEdit.Count > 0)
{
foreach (var item in resEdit)
{
var oldpageEdit = item.ID;
if (!existTable.Contains(oldpageEdit))
{
existTable.Add(oldpageEdit);
var newTableID = AddPageTable(item, pageFormID, tenantID, savePermPageEdit, newSchemes, saveTablePanels, saveTableParams,
newTablePanels, saveEditPanels, newEditPanels, saveChartParams, tenantInfo, srcInfo, addEntity);
#region
//var allClm = this.GetEntities<T_PF_EDIT_COLUMN>(t => t.PAGE_EDIT_ID == oldpageEdit, filter).ToList();//OPT所有列
var allClm = srcInfo.EditColumns.Where(t => t.PAGE_EDIT_ID == oldpageEdit).ToList();
foreach (var col in allClm)
{
var newColumnID = Guid.NewGuid();
var oldColID = col.ID;
if (tenantInfo.EditColumns.Any(x => x.SRC_ID == col.ID))
{
var tenantEditColumn = tenantInfo.EditColumns.FirstOrDefault(x => x.SRC_ID == col.ID);
T_PF_EDIT_COLUMN column = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(col);//OPT创建的表单
column.SRC_ID = col.ID;
column.ID = tenantEditColumn.ID;
column.ORG_ID = tenantID;
column.PAGE_EDIT_ID = newTableID;
if (column.PAGE_EDIT_PANEL_ID != null)
{
column.PAGE_EDIT_PANEL_ID = newEditPanels[(Guid)column.PAGE_EDIT_PANEL_ID];
}
saveEditColumns.Add(column);//添加列基础到对应租户
newColumnID = tenantEditColumn.ID;//更新
}
else
{
T_PF_EDIT_COLUMN column = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(col);//OPT创建的表单
column.SRC_ID = col.ID;
column.ID = newColumnID;
column.ORG_ID = tenantID;
column.PAGE_EDIT_ID = newTableID;
if (column.PAGE_EDIT_PANEL_ID != null)
{
column.PAGE_EDIT_PANEL_ID = newEditPanels[(Guid)column.PAGE_EDIT_PANEL_ID];
}
addEntity.EditColumns.Add(column);//添加列基础到对应租户
}
#region T_PF_EDIT_COLUMN_FILTER
var colFilters = srcInfo.EditColumnFilters.Where(x => x.EDIT_COLUMN_ID == oldColID);
foreach (var colFilter in colFilters)
{
if (tenantInfo.EditColumnFilters.Any(x => x.SRC_ID == colFilter.ID))
{
var tenantEditColumnFilter = tenantInfo.EditColumnFilters.FirstOrDefault(x => x.SRC_ID == colFilter.ID);
var cf = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFilter);
cf.SRC_ID = colFilter.ID;
cf.ID = tenantEditColumnFilter.ID;
cf.ORG_ID = tenantID;
cf.PAGE_EDIT_ID = newTableID;
cf.EDIT_COLUMN_ID = newColumnID;
saveEditColumnFilters.Add(cf);
}
else
{
var colID = Guid.NewGuid();
var cf = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFilter);
cf.SRC_ID = colFilter.ID;
cf.ID = colID;
cf.ORG_ID = tenantID;
cf.PAGE_EDIT_ID = newTableID;
cf.EDIT_COLUMN_ID = newColumnID;
addEntity.EditColumnFilters.Add(cf);
}
}
#endregion
#region T_PF_EDIT_COLUMN_FILL_MAP
var colFillMaps = srcInfo.EditColumnFillMaps.Where(x => x.EDIT_COLUMN_ID == oldColID);
foreach (var colFillMap in colFillMaps)
{
var colMapID = Guid.NewGuid();
if (tenantInfo.EditColumnFillMaps.Any(x => x.SRC_ID == colFillMap.ID))
{
var tenantEditColumnFillMap = tenantInfo.EditColumnFillMaps.FirstOrDefault(x => x.SRC_ID == colFillMap.ID);
var cm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFillMap);
cm.SRC_ID = colFillMap.ID;
cm.ID = tenantEditColumnFillMap.ID;
cm.ORG_ID = tenantID;
cm.PAGE_EDIT_ID = newTableID;
cm.EDIT_COLUMN_ID = newColumnID;
saveEditColumnFillMaps.Add(cm);
colMapID = tenantEditColumnFillMap.ID;
}
else
{
var cm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFillMap);
cm.SRC_ID = colFillMap.ID;
cm.ID = colMapID;
cm.ORG_ID = tenantID;
cm.PAGE_EDIT_ID = newTableID;
cm.EDIT_COLUMN_ID = newColumnID;
addEntity.EditColumnFillMaps.Add(cm);
}
#region T_PF_EDIT_COLUMN_FILL_MAP
var colFillMapDs = srcInfo.EditColumnFillMapDs.Where(x => x.EDIT_COLUMN_FILL_MAP_ID == colMapID);
foreach (var colFillMapD in colFillMapDs)
{
if (tenantInfo.EditColumnFillMapDs.Any(x => x.SRC_ID == colFillMapD.ID))
{
var tenantEditColumnFillMapD = tenantInfo.EditColumnFillMapDs.FirstOrDefault(x => x.SRC_ID == colFillMapD.ID);
var cmd = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFillMapD);
cmd.SRC_ID = colFillMapD.ID;
cmd.ID = tenantEditColumnFillMapD.ID;
cmd.ORG_ID = tenantID;
cmd.EDIT_COLUMN_FILL_MAP_ID = colMapID;
saveEditColumnFillMapDs.Add(cmd);
}
else
{
var colMapDID = Guid.NewGuid();
var cmd = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFillMapD);
cmd.SRC_ID = colFillMapD.ID;
cmd.ID = colMapDID;
cmd.ORG_ID = tenantID;
cmd.EDIT_COLUMN_FILL_MAP_ID = colMapID;
addEntity.EditColumnFillMapDs.Add(cmd);
}
}
#endregion
}
#endregion
if (!string.IsNullOrEmpty(col.SHOW_FORM_CODE))//有配置关联表单
{
var colForm = srcInfo.Forms.Where(x => x.CODE == col.SHOW_FORM_CODE).FirstOrDefault();
if (!existForm.Contains(form.ID) && !savePermPFForm.Any(x => x.CODE == colForm.CODE) && !addEntity.Forms.Any(x => x.CODE == colForm.CODE))//去重
{
if (colForm != null)
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == colForm.ID))
{
var tenantColForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == colForm.ID);
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colForm);//OPT创建的表单
AddTable(srcInfo, colForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantColForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = colForm.ID;
newForm.ID = tenantColForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
}
else
{
var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colForm);//OPT创建的表单
AddTable(srcInfo, colForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = colForm.ID;
newForm.ID = newFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);
}
}
}
}
}
#endregion
#region
// var allBtn = this.GetEntities<T_PF_BTN>(t => t.PAGE_ID == oldpageEdit, filter).ToList();//OPT所有列
var allBtn = srcInfo.Btns.Where(x => x.PAGE_ID == oldpageEdit).ToList();
AddTableBtn(srcInfo, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, existForm, existTable, allBtn, newTableID, tenantInfo, addEntity);
#endregion
}
}
}
break;
}
case (int)PFFormTypeEnum.:
case (int)PFFormTypeEnum.:
{
#region T_PF_FORM_RELATION
var formRelations = srcInfo.FormRelations.Where(x => x.PAGE_FORM_ID == form.ID);
if (formRelations.Any())
{
foreach (var formRelation in formRelations)
{
T_PF_FORM_RELATION relation = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(formRelation);
if (tenantInfo.FormRelations.Any(x => x.SRC_ID == formRelation.ID))
{
var tenantRelation = tenantInfo.FormRelations.FirstOrDefault(x => x.SRC_ID == formRelation.ID);
var relationForm = srcInfo.Forms.Where(x => x.CODE == formRelation.CODE).FirstOrDefault();
if (!existForm.Contains(relationForm.ID) && !savePermPFForm.Any(x => x.CODE == relationForm.CODE) && !addEntity.Forms.Any(x => x.CODE == relationForm.CODE))//去重
{
if (relationForm != null)
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == relationForm.ID))
{
var tenantForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == relationForm.ID);//取旧数据ID不变
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = tenantForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
}
else
{
var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = newFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);
//savePermPFForm.Add(newForm);//添加表单到对应租户
}
}
}
relation.SRC_ID = formRelation.ID;
relation.ID = tenantRelation.ID;
relation.ORG_ID = tenantID;
relation.PAGE_FORM_ID = pageFormID;
savePermPFFormRelation.Add(relation);
}
else
{
var relationForm = srcInfo.Forms.Where(x => x.CODE == formRelation.CODE).FirstOrDefault();
if (!existForm.Contains(relationForm.ID) && !savePermPFForm.Any(x => x.CODE == relationForm.CODE) && !addEntity.Forms.Any(x => x.CODE == relationForm.CODE))//去重
{
if (relationForm != null)
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == relationForm.ID))
{
var tenantForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == relationForm.ID);
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = tenantForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
}
else
{
var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = newFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);
}
}
}
var newRelationID = new Guid();
relation.SRC_ID = formRelation.ID;
relation.ID = newRelationID;
relation.ORG_ID = tenantID;
relation.PAGE_FORM_ID = pageFormID;
addEntity.FormRelations.Add(relation);
}
}
}
#endregion
#region
AddQuerys(form, tenantID, pageFormID, srcInfo.FormQuerys, saveFormQuerys, srcInfo.Querys, saveQuerys, tenantInfo, addEntity);
#endregion
#region T_PF_PAGE_TREE
var resTree = srcInfo.PageTrees.Where(x => x.PAGE_FORM_ID == form.ID).ToList();//查找相关表单
if (resTree.Count > 0)
{
foreach (var item in resTree)
{
#region MyRegion T_PF_PAGE_TABLE
var oldPageID = item.ID;
if (!existTable.Contains(oldPageID))
{
existTable.Add(oldPageID);
var newTableID = AddPageTable(item, pageFormID, tenantID, savePermPageTree, newSchemes, saveTablePanels, saveTableParams,
newTablePanels, saveEditPanels, newEditPanels, saveChartParams, tenantInfo, srcInfo, addEntity);
#endregion
#region T_PF_TREE_COLUMN
//var allClm = this.GetEntities<T_PF_TREE_COLUMN>(t => t.PAGE_TREE_ID == oldPageID, filter).ToList();//OPT所有列
var allClm = srcInfo.TreeColumns.Where(t => t.PAGE_TREE_ID == oldPageID).ToList();
foreach (var col in allClm)
{
var newColumnID = Guid.NewGuid();
T_PF_TREE_COLUMN column = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(col);//OPT创建的表单
var oldColID = col.ID;
if (tenantInfo.TreeColumns.Any(x => x.SRC_ID == col.ID))
{
var tenantTreeColumn = tenantInfo.TreeColumns.FirstOrDefault(x => x.SRC_ID == col.ID);
column.SRC_ID = col.ID;
column.ID = tenantTreeColumn.ID;
column.ORG_ID = tenantID;
column.PAGE_TREE_ID = newTableID;
saveTreeColumns.Add(column);//添加列基础到对应租户
}
else
{
column.SRC_ID = col.ID;
column.ID = newColumnID;
column.ORG_ID = tenantID;
column.PAGE_TREE_ID = newTableID;
addEntity.TreeColumns.Add(column);
}
}
#endregion
#region
// var allBtn = this.GetEntities<T_PF_BTN>(t => t.PAGE_ID == oldPageID, filter).ToList();//OPT所有列
var allBtn = srcInfo.Btns.Where(x => x.PAGE_ID == oldPageID).ToList();
AddTableBtn(srcInfo, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, existForm, existTable, allBtn, newTableID, tenantInfo, addEntity);
#endregion
}
}
}
#endregion
#region srcInfo.PageEdits
var resEdit = srcInfo.PageEdits.Where(x => x.PAGE_FORM_ID == form.ID).ToList();//查找相关表单
if (resEdit.Count > 0)
{
foreach (var item in resEdit)
{
var oldpageEdit = item.ID;
if (!existTable.Contains(oldpageEdit))
{
existTable.Add(oldpageEdit);
var newTableID = AddPageTable(item, pageFormID, tenantID, savePermPageEdit, newSchemes, saveTablePanels, saveTableParams,
newTablePanels, saveEditPanels, newEditPanels, saveChartParams, tenantInfo, srcInfo, addEntity);
#region
//var allClm = this.GetEntities<T_PF_EDIT_COLUMN>(t => t.PAGE_EDIT_ID == oldpageEdit, filter).ToList();//OPT所有列
var allClm = srcInfo.EditColumns.Where(t => t.PAGE_EDIT_ID == oldpageEdit).ToList();
foreach (var col in allClm)
{
var newColumnID = Guid.NewGuid();
var oldColID = col.ID;
if (tenantInfo.EditColumns.Any(x => x.SRC_ID == col.ID))
{
var tenantEditColumn = tenantInfo.EditColumns.FirstOrDefault(x => x.SRC_ID == col.ID);
T_PF_EDIT_COLUMN column = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(col);//OPT创建的表单
column.SRC_ID = col.ID;
column.ID = tenantEditColumn.ID;
column.ORG_ID = tenantID;
column.PAGE_EDIT_ID = newTableID;
if (column.PAGE_EDIT_PANEL_ID != null)
{
column.PAGE_EDIT_PANEL_ID = newEditPanels[(Guid)column.PAGE_EDIT_PANEL_ID];
}
saveEditColumns.Add(column);//添加列基础到对应租户
newColumnID = tenantEditColumn.ID;//更新
}
else
{
T_PF_EDIT_COLUMN column = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(col);//OPT创建的表单
column.SRC_ID = col.ID;
column.ID = newColumnID;
column.ORG_ID = tenantID;
column.PAGE_EDIT_ID = newTableID;
if (column.PAGE_EDIT_PANEL_ID != null)
{
column.PAGE_EDIT_PANEL_ID = newEditPanels[(Guid)column.PAGE_EDIT_PANEL_ID];
}
addEntity.EditColumns.Add(column);//添加列基础到对应租户
}
#region T_PF_EDIT_COLUMN_FILTER
var colFilters = srcInfo.EditColumnFilters.Where(x => x.EDIT_COLUMN_ID == oldColID);
foreach (var colFilter in colFilters)
{
if (tenantInfo.EditColumnFilters.Any(x => x.SRC_ID == colFilter.ID))
{
var tenantEditColumnFilter = tenantInfo.EditColumnFilters.FirstOrDefault(x => x.SRC_ID == colFilter.ID);
var cf = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFilter);
cf.SRC_ID = colFilter.ID;
cf.ID = tenantEditColumnFilter.ID;
cf.ORG_ID = tenantID;
cf.PAGE_EDIT_ID = newTableID;
cf.EDIT_COLUMN_ID = newColumnID;
saveEditColumnFilters.Add(cf);
}
else
{
var colID = Guid.NewGuid();
var cf = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFilter);
cf.SRC_ID = colFilter.ID;
cf.ID = colID;
cf.ORG_ID = tenantID;
cf.PAGE_EDIT_ID = newTableID;
cf.EDIT_COLUMN_ID = newColumnID;
addEntity.EditColumnFilters.Add(cf);
}
}
#endregion
#region T_PF_EDIT_COLUMN_FILL_MAP
var colFillMaps = srcInfo.EditColumnFillMaps.Where(x => x.EDIT_COLUMN_ID == oldColID);
foreach (var colFillMap in colFillMaps)
{
var colMapID = Guid.NewGuid();
if (tenantInfo.EditColumnFillMaps.Any(x => x.SRC_ID == colFillMap.ID))
{
var tenantEditColumnFillMap = tenantInfo.EditColumnFillMaps.FirstOrDefault(x => x.SRC_ID == colFillMap.ID);
var cm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFillMap);
cm.SRC_ID = colFillMap.ID;
cm.ID = tenantEditColumnFillMap.ID;
cm.ORG_ID = tenantID;
cm.PAGE_EDIT_ID = newTableID;
cm.EDIT_COLUMN_ID = newColumnID;
saveEditColumnFillMaps.Add(cm);
colMapID = tenantEditColumnFillMap.ID;
}
else
{
var cm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFillMap);
cm.SRC_ID = colFillMap.ID;
cm.ID = colMapID;
cm.ORG_ID = tenantID;
cm.PAGE_EDIT_ID = newTableID;
cm.EDIT_COLUMN_ID = newColumnID;
addEntity.EditColumnFillMaps.Add(cm);
}
#region T_PF_EDIT_COLUMN_FILL_MAP
var colFillMapDs = srcInfo.EditColumnFillMapDs.Where(x => x.EDIT_COLUMN_FILL_MAP_ID == colMapID);
foreach (var colFillMapD in colFillMapDs)
{
if (tenantInfo.EditColumnFillMapDs.Any(x => x.SRC_ID == colFillMapD.ID))
{
var tenantEditColumnFillMapD = tenantInfo.EditColumnFillMapDs.FirstOrDefault(x => x.SRC_ID == colFillMapD.ID);
var cmd = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFillMapD);
cmd.SRC_ID = colFillMapD.ID;
cmd.ID = tenantEditColumnFillMapD.ID;
cmd.ORG_ID = tenantID;
cmd.EDIT_COLUMN_FILL_MAP_ID = colMapID;
saveEditColumnFillMapDs.Add(cmd);
}
else
{
var colMapDID = Guid.NewGuid();
var cmd = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFillMapD);
cmd.SRC_ID = colFillMapD.ID;
cmd.ID = colMapDID;
cmd.ORG_ID = tenantID;
cmd.EDIT_COLUMN_FILL_MAP_ID = colMapID;
addEntity.EditColumnFillMapDs.Add(cmd);
}
}
#endregion
}
#endregion
if (!string.IsNullOrEmpty(col.SHOW_FORM_CODE))//有配置关联表单
{
var colForm = srcInfo.Forms.Where(x => x.CODE == col.SHOW_FORM_CODE).FirstOrDefault();
if (!existForm.Contains(form.ID) && !savePermPFForm.Any(x => x.CODE == colForm.CODE) && !addEntity.Forms.Any(x => x.CODE == colForm.CODE))//去重
{
if (colForm != null)
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == colForm.ID))
{
var tenantColForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == colForm.ID);
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colForm);//OPT创建的表单
AddTable(srcInfo, colForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantColForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = colForm.ID;
newForm.ID = tenantColForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
}
else
{
var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colForm);//OPT创建的表单
AddTable(srcInfo, colForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = colForm.ID;
newForm.ID = newFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);
}
}
}
}
}
#endregion
#region
// var allBtn = this.GetEntities<T_PF_BTN>(t => t.PAGE_ID == oldpageEdit, filter).ToList();//OPT所有列
var allBtn = srcInfo.Btns.Where(x => x.PAGE_ID == oldpageEdit).ToList();
AddTableBtn(srcInfo, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, existForm, existTable, allBtn, newTableID, tenantInfo, addEntity);
#endregion
}
}
}
#endregion
break;
}
case (int)PFFormTypeEnum.:
{
#region T_PF_FORM_RELATION
var formRelations = srcInfo.FormRelations.Where(x => x.PAGE_FORM_ID == form.ID);
if (formRelations.Any())
{
foreach (var formRelation in formRelations)
{
T_PF_FORM_RELATION relation = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(formRelation);
if (tenantInfo.FormRelations.Any(x => x.SRC_ID == formRelation.ID))
{
var tenantRelation = tenantInfo.FormRelations.FirstOrDefault(x => x.SRC_ID == formRelation.ID);
var relationForm = srcInfo.Forms.Where(x => x.CODE == formRelation.CODE).FirstOrDefault();
if (!existForm.Contains(relationForm.ID) && !savePermPFForm.Any(x => x.CODE == relationForm.CODE) && !addEntity.Forms.Any(x => x.CODE == relationForm.CODE))//去重
{
if (relationForm != null)
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == relationForm.ID))
{
var tenantForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == relationForm.ID);//取旧数据ID不变
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = tenantForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
}
else
{
var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = newFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);
//savePermPFForm.Add(newForm);//添加表单到对应租户
}
}
}
relation.SRC_ID = formRelation.ID;
relation.ID = tenantRelation.ID;
relation.ORG_ID = tenantID;
relation.PAGE_FORM_ID = pageFormID;
savePermPFFormRelation.Add(relation);
}
else
{
var relationForm = srcInfo.Forms.Where(x => x.CODE == formRelation.CODE).FirstOrDefault();
if (!existForm.Contains(relationForm.ID) && !savePermPFForm.Any(x => x.CODE == relationForm.CODE) && !addEntity.Forms.Any(x => x.CODE == relationForm.CODE))//去重
{
if (relationForm != null)
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == relationForm.ID))
{
var tenantForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == relationForm.ID);
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = tenantForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
}
else
{
var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = newFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);
}
}
}
var newRelationID = new Guid();
relation.SRC_ID = formRelation.ID;
relation.ID = newRelationID;
relation.ORG_ID = tenantID;
relation.PAGE_FORM_ID = pageFormID;
addEntity.FormRelations.Add(relation);
}
}
}
#endregion
#region
AddQuerys(form, tenantID, pageFormID, srcInfo.FormQuerys, saveFormQuerys, srcInfo.Querys, saveQuerys, tenantInfo, addEntity);
#endregion
var resChart = srcInfo.PageCharts.Where(x => x.PAGE_FORM_ID == form.ID).ToList();//查找相关表单
if (resChart.Count > 0)
{
foreach (var item in resChart)
{
#region MyRegion T_PF_PAGE_TABLE
var oldPageID = item.ID;
if (!existTable.Contains(oldPageID))
{
existTable.Add(oldPageID);
var newTableID = AddPageTable(item, pageFormID, tenantID, savePermPageChart, newSchemes, saveTablePanels,
saveTableParams, newTablePanels, saveEditPanels, newEditPanels, saveChartParams, tenantInfo, srcInfo, addEntity);
#endregion
#region
//var allBtn = this.GetEntities<T_PF_BTN>(t => t.PAGE_ID == oldPageID, filter).ToList();//OPT所有列
var allBtn = srcInfo.Btns.Where(x => x.PAGE_ID == oldPageID).ToList();
AddTableBtn(srcInfo, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, existForm, existTable, allBtn, newTableID, tenantInfo, addEntity);
#endregion
}
}
}
break;
}
case (int)PFFormTypeEnum.:
{
#region T_PF_FORM_RELATION
var formRelations = srcInfo.FormRelations.Where(x => x.PAGE_FORM_ID == form.ID);
if (formRelations.Any())
{
foreach (var formRelation in formRelations)
{
T_PF_FORM_RELATION relation = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(formRelation);
if (tenantInfo.FormRelations.Any(x => x.SRC_ID == formRelation.ID))
{
var tenantRelation = tenantInfo.FormRelations.FirstOrDefault(x => x.SRC_ID == formRelation.ID);
var relationForm = srcInfo.Forms.Where(x => x.CODE == formRelation.CODE).FirstOrDefault();
if (!existForm.Contains(relationForm.ID) && !savePermPFForm.Any(x => x.CODE == relationForm.CODE) && !addEntity.Forms.Any(x => x.CODE == relationForm.CODE))//去重
{
if (relationForm != null)
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == relationForm.ID))
{
var tenantForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == relationForm.ID);//取旧数据ID不变
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = tenantForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
}
else
{
var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = newFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);
//savePermPFForm.Add(newForm);//添加表单到对应租户
}
}
}
relation.SRC_ID = formRelation.ID;
relation.ID = tenantRelation.ID;
relation.ORG_ID = tenantID;
relation.PAGE_FORM_ID = pageFormID;
savePermPFFormRelation.Add(relation);
}
else
{
var relationForm = srcInfo.Forms.Where(x => x.CODE == formRelation.CODE).FirstOrDefault();
if (!existForm.Contains(relationForm.ID) && !savePermPFForm.Any(x => x.CODE == relationForm.CODE) && !addEntity.Forms.Any(x => x.CODE == relationForm.CODE))//去重
{
if (relationForm != null)
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == relationForm.ID))
{
var tenantForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == relationForm.ID);
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = tenantForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
}
else
{
var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(relationForm);//OPT创建的表单
AddTable(srcInfo, relationForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = relationForm.ID;
newForm.ID = newFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);
}
}
}
var newRelationID = new Guid();
relation.SRC_ID = formRelation.ID;
relation.ID = newRelationID;
relation.ORG_ID = tenantID;
relation.PAGE_FORM_ID = pageFormID;
addEntity.FormRelations.Add(relation);
}
}
}
#endregion
#region
AddQuerys(form, tenantID, pageFormID, srcInfo.FormQuerys, saveFormQuerys, srcInfo.Querys, saveQuerys, tenantInfo, addEntity);
#endregion
#region srcInfo.PageCustoms
var res = srcInfo.PageCustoms.Where(x => x.PAGE_FORM_ID == form.ID).ToList();//查找相关表单
if (res.Count > 0)
{
foreach (var item in res)
{
#region MyRegion T_PF_PAGE_TABLE
var oldFormId = form.ID;
var tenantPageFormID = pageFormID.ToString();
var oldPageID = item.ID;
if (!existTable.Contains(oldPageID))
{
existTable.Add(oldPageID);
var newTableID = AddPageTable(item, pageFormID, tenantID, savePermPageCustom, newSchemes, saveTablePanels,
saveTableParams, newTablePanels, saveEditPanels, newEditPanels, saveChartParams, tenantInfo, srcInfo, addEntity);
#endregion
#region
//var allBtn = this.GetEntities<T_PF_BTN>(t => t.PAGE_ID == oldFormId, filter).ToList();//OPT所有列
var allBtn = srcInfo.Btns.Where(x => x.PAGE_ID == oldFormId).ToList();
AddTableBtn(srcInfo, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, existForm, existTable, allBtn, newTableID, tenantInfo, addEntity, tenantPageFormID);
#endregion
}
}
}
#endregion
#region srcInfo.PageTables
var resTable = srcInfo.PageTables.Where(x => x.PAGE_FORM_ID == form.ID).ToList();//查找相关表单
if (resTable.Count > 0)
{
foreach (var item in resTable)
{
var oldpageTable = item.ID;
if (!existTable.Contains(oldpageTable))
{
existTable.Add(oldpageTable);
var newTableID = AddPageTable(item, pageFormID, tenantID, savePermPageTable, newSchemes, saveTablePanels, saveTableParams,
newTablePanels, saveEditPanels, newEditPanels, saveChartParams, tenantInfo, srcInfo, addEntity);
#region
//var allClm = this.GetEntities<T_PF_COLUMN>(t => t.PAGE_TABLE_ID == oldpageTable, filter).ToList();//OPT所有列
var allClm = srcInfo.Columns.Where(t => t.PAGE_TABLE_ID == oldpageTable).ToList();
foreach (var col in allClm)
{
var oldColID = col.ID;
var newColumnID = Guid.NewGuid();
if (tenantInfo.Columns.Any(x => x.SRC_ID == col.ID))
{
var tenantColumn = tenantInfo.Columns.FirstOrDefault(x => x.SRC_ID == col.ID);
T_PF_COLUMN column = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(col);//OPT创建的表单
column.SRC_ID = col.ID;
column.ID = tenantColumn.ID;
column.ORG_ID = tenantID;
column.PAGE_TABLE_ID = newTableID;
if (column.PAGE_TABLE_PANEL_ID != null)
{
column.PAGE_TABLE_PANEL_ID = newTablePanels[(Guid)column.PAGE_TABLE_PANEL_ID];
}
savePermCloumn.Add(column);//添加列基础到对应租户
newColumnID = tenantColumn.ID;//更新
}
else
{
T_PF_COLUMN column = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(col);//OPT创建的表单
column.SRC_ID = col.ID;
column.ID = newColumnID;
column.ORG_ID = tenantID;
column.PAGE_TABLE_ID = newTableID;
if (column.PAGE_TABLE_PANEL_ID != null)
{
column.PAGE_TABLE_PANEL_ID = newTablePanels[(Guid)column.PAGE_TABLE_PANEL_ID];
}
addEntity.Columns.Add(column);//添加列基础到对应租户
}
#region T_PF_COLUMN_FILTER
var colFilters = srcInfo.ColumnFilters.Where(x => x.COLUMN_ID == oldColID);
foreach (var colFilter in colFilters)
{
if (tenantInfo.ColumnFilters.Any(x => x.SRC_ID == colFilter.ID))
{
var tenantColumnFilters = tenantInfo.ColumnFilters.FirstOrDefault(x => x.SRC_ID == colFilter.ID);
var cf = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFilter);
cf.SRC_ID = colFilter.ID;
cf.ID = tenantColumnFilters.ID;
cf.ORG_ID = tenantID;
cf.COLUMN_ID = newColumnID;
saveColumFilters.Add(cf);
}
else
{
var colID = Guid.NewGuid();
var cf = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFilter);
cf.SRC_ID = colFilter.ID;
cf.ID = colID;
cf.ORG_ID = tenantID;
cf.COLUMN_ID = newColumnID;
addEntity.ColumnFilters.Add(cf);
}
}
#endregion
if (!string.IsNullOrEmpty(col.SHOW_FORM_CODE))//有配置关联表单
{
var colForm = srcInfo.Forms.Where(x => x.CODE == col.SHOW_FORM_CODE).FirstOrDefault();
if (!existForm.Contains(form.ID) && !savePermPFForm.Any(x => x.CODE == colForm.CODE) && !addEntity.Forms.Any(x => x.CODE == colForm.CODE))//去重
{
if (colForm != null)
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == colForm.ID))
{
var tenantForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == colForm.ID);
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colForm);//OPT创建的表单
AddTable(srcInfo, colForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = colForm.ID;
newForm.ID = tenantForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
}
else
{
var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colForm);//OPT创建的表单
AddTable(srcInfo, colForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = colForm.ID;
newForm.ID = newFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);
}
}
}
}
}
#endregion
#region
//var allBtn = this.GetEntities<T_PF_BTN>(t => t.PAGE_ID == oldpageTable, filter).ToList();//OPT所有列
var allBtn = srcInfo.Btns.Where(x => x.PAGE_ID == oldpageTable).ToList();
AddTableBtn(srcInfo, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, existForm, existTable, allBtn, newTableID, tenantInfo, addEntity);
#endregion
}
}
}
#endregion
#region srcInfo.PageEdits
var resEdit = srcInfo.PageEdits.Where(x => x.PAGE_FORM_ID == form.ID).ToList();//查找相关表单
if (resEdit.Count > 0)
{
foreach (var item in resEdit)
{
var oldpageEdit = item.ID;
if (!existTable.Contains(oldpageEdit))
{
existTable.Add(oldpageEdit);
var newTableID = AddPageTable(item, pageFormID, tenantID, savePermPageEdit, newSchemes, saveTablePanels, saveTableParams,
newTablePanels, saveEditPanels, newEditPanels, saveChartParams, tenantInfo, srcInfo, addEntity);
#region
//var allClm = this.GetEntities<T_PF_EDIT_COLUMN>(t => t.PAGE_EDIT_ID == oldpageEdit, filter).ToList();//OPT所有列
var allClm = srcInfo.EditColumns.Where(t => t.PAGE_EDIT_ID == oldpageEdit).ToList();
foreach (var col in allClm)
{
var newColumnID = Guid.NewGuid();
var oldColID = col.ID;
if (tenantInfo.EditColumns.Any(x => x.SRC_ID == col.ID))
{
var tenantEditColumn = tenantInfo.EditColumns.FirstOrDefault(x => x.SRC_ID == col.ID);
T_PF_EDIT_COLUMN column = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(col);//OPT创建的表单
column.SRC_ID = col.ID;
column.ID = tenantEditColumn.ID;
column.ORG_ID = tenantID;
column.PAGE_EDIT_ID = newTableID;
if (column.PAGE_EDIT_PANEL_ID != null)
{
column.PAGE_EDIT_PANEL_ID = newEditPanels[(Guid)column.PAGE_EDIT_PANEL_ID];
}
saveEditColumns.Add(column);//添加列基础到对应租户
newColumnID = tenantEditColumn.ID;//更新
}
else
{
T_PF_EDIT_COLUMN column = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(col);//OPT创建的表单
column.SRC_ID = col.ID;
column.ID = newColumnID;
column.ORG_ID = tenantID;
column.PAGE_EDIT_ID = newTableID;
if (column.PAGE_EDIT_PANEL_ID != null)
{
column.PAGE_EDIT_PANEL_ID = newEditPanels[(Guid)column.PAGE_EDIT_PANEL_ID];
}
addEntity.EditColumns.Add(column);//添加列基础到对应租户
}
#region T_PF_EDIT_COLUMN_FILTER
var colFilters = srcInfo.EditColumnFilters.Where(x => x.EDIT_COLUMN_ID == oldColID);
foreach (var colFilter in colFilters)
{
if (tenantInfo.EditColumnFilters.Any(x => x.SRC_ID == colFilter.ID))
{
var tenantEditColumnFilter = tenantInfo.EditColumnFilters.FirstOrDefault(x => x.SRC_ID == colFilter.ID);
var cf = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFilter);
cf.SRC_ID = colFilter.ID;
cf.ID = tenantEditColumnFilter.ID;
cf.ORG_ID = tenantID;
cf.PAGE_EDIT_ID = newTableID;
cf.EDIT_COLUMN_ID = newColumnID;
saveEditColumnFilters.Add(cf);
}
else
{
var colID = Guid.NewGuid();
var cf = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFilter);
cf.SRC_ID = colFilter.ID;
cf.ID = colID;
cf.ORG_ID = tenantID;
cf.PAGE_EDIT_ID = newTableID;
cf.EDIT_COLUMN_ID = newColumnID;
addEntity.EditColumnFilters.Add(cf);
}
}
#endregion
#region T_PF_EDIT_COLUMN_FILL_MAP
var colFillMaps = srcInfo.EditColumnFillMaps.Where(x => x.EDIT_COLUMN_ID == oldColID);
foreach (var colFillMap in colFillMaps)
{
var colMapID = Guid.NewGuid();
if (tenantInfo.EditColumnFillMaps.Any(x => x.SRC_ID == colFillMap.ID))
{
var tenantEditColumnFillMap = tenantInfo.EditColumnFillMaps.FirstOrDefault(x => x.SRC_ID == colFillMap.ID);
var cm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFillMap);
cm.SRC_ID = colFillMap.ID;
cm.ID = tenantEditColumnFillMap.ID;
cm.ORG_ID = tenantID;
cm.PAGE_EDIT_ID = newTableID;
cm.EDIT_COLUMN_ID = newColumnID;
saveEditColumnFillMaps.Add(cm);
colMapID = tenantEditColumnFillMap.ID;
}
else
{
var cm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFillMap);
cm.SRC_ID = colFillMap.ID;
cm.ID = colMapID;
cm.ORG_ID = tenantID;
cm.PAGE_EDIT_ID = newTableID;
cm.EDIT_COLUMN_ID = newColumnID;
addEntity.EditColumnFillMaps.Add(cm);
}
#region T_PF_EDIT_COLUMN_FILL_MAP
var colFillMapDs = srcInfo.EditColumnFillMapDs.Where(x => x.EDIT_COLUMN_FILL_MAP_ID == colMapID);
foreach (var colFillMapD in colFillMapDs)
{
if (tenantInfo.EditColumnFillMapDs.Any(x => x.SRC_ID == colFillMapD.ID))
{
var tenantEditColumnFillMapD = tenantInfo.EditColumnFillMapDs.FirstOrDefault(x => x.SRC_ID == colFillMapD.ID);
var cmd = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFillMapD);
cmd.SRC_ID = colFillMapD.ID;
cmd.ID = tenantEditColumnFillMapD.ID;
cmd.ORG_ID = tenantID;
cmd.EDIT_COLUMN_FILL_MAP_ID = colMapID;
saveEditColumnFillMapDs.Add(cmd);
}
else
{
var colMapDID = Guid.NewGuid();
var cmd = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colFillMapD);
cmd.SRC_ID = colFillMapD.ID;
cmd.ID = colMapDID;
cmd.ORG_ID = tenantID;
cmd.EDIT_COLUMN_FILL_MAP_ID = colMapID;
addEntity.EditColumnFillMapDs.Add(cmd);
}
}
#endregion
}
#endregion
if (!string.IsNullOrEmpty(col.SHOW_FORM_CODE))//有配置关联表单
{
var colForm = srcInfo.Forms.Where(x => x.CODE == col.SHOW_FORM_CODE).FirstOrDefault();
if (!existForm.Contains(form.ID) && !savePermPFForm.Any(x => x.CODE == colForm.CODE) && !addEntity.Forms.Any(x => x.CODE == colForm.CODE))//去重
{
if (colForm != null)
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == colForm.ID))
{
var tenantColForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == colForm.ID);
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colForm);//OPT创建的表单
AddTable(srcInfo, colForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantColForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = colForm.ID;
newForm.ID = tenantColForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
}
else
{
var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(colForm);//OPT创建的表单
AddTable(srcInfo, colForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = colForm.ID;
newForm.ID = newFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);
}
}
}
}
}
#endregion
#region
//var allBtn = this.GetEntities<T_PF_BTN>(t => t.PAGE_ID == oldpageEdit, filter).ToList();//OPT所有列
var allBtn = srcInfo.Btns.Where(x => x.PAGE_ID == oldpageEdit).ToList();
AddTableBtn(srcInfo, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, existForm, existTable, allBtn, newTableID, tenantInfo, addEntity);
#endregion
}
}
}
#endregion
#region srcInfo.PageTrees
var resTree = srcInfo.PageTrees.Where(x => x.PAGE_FORM_ID == form.ID).ToList();//查找相关表单
if (resTree.Count > 0)
{
foreach (var item in resTree)
{
#region MyRegion T_PF_PAGE_TABLE
var oldPageID = item.ID;
if (!existTable.Contains(oldPageID))
{
existTable.Add(oldPageID);
var newTableID = AddPageTable(item, pageFormID, tenantID, savePermPageTree, newSchemes, saveTablePanels, saveTableParams,
newTablePanels, saveEditPanels, newEditPanels, saveChartParams, tenantInfo, srcInfo, addEntity);
#endregion
#region T_PF_TREE_COLUMN
//var allClm = this.GetEntities<T_PF_TREE_COLUMN>(t => t.PAGE_TREE_ID == oldPageID, filter).ToList();//OPT所有列
var allClm = srcInfo.TreeColumns.Where(t => t.PAGE_TREE_ID == oldPageID).ToList();
foreach (var col in allClm)
{
var newColumnID = Guid.NewGuid();
T_PF_TREE_COLUMN column = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(col);//OPT创建的表单
var oldColID = col.ID;
if (tenantInfo.TreeColumns.Any(x => x.SRC_ID == col.ID))
{
var tenantTreeColumn = tenantInfo.TreeColumns.FirstOrDefault(x => x.SRC_ID == col.ID);
column.SRC_ID = col.ID;
column.ID = tenantTreeColumn.ID;
column.ORG_ID = tenantID;
column.PAGE_TREE_ID = newTableID;
saveTreeColumns.Add(column);//添加列基础到对应租户
}
else
{
column.SRC_ID = col.ID;
column.ID = newColumnID;
column.ORG_ID = tenantID;
column.PAGE_TREE_ID = newTableID;
addEntity.TreeColumns.Add(column);
}
}
#endregion
#region
var allBtn = srcInfo.Btns.Where(x => x.PAGE_ID == oldPageID).ToList();
AddTableBtn(srcInfo, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, existForm, existTable, allBtn, newTableID, tenantInfo, addEntity);
#endregion
}
}
}
#endregion
#region srcInfo.PageCharts
var resChart = srcInfo.PageCharts.Where(x => x.PAGE_FORM_ID == form.ID).ToList();//查找相关表单
if (resChart.Count > 0)
{
foreach (var item in resChart)
{
#region MyRegion T_PF_PAGE_TABLE
var oldPageID = item.ID;
if (!existTable.Contains(oldPageID))
{
existTable.Add(oldPageID);
var newTableID = AddPageTable(item, pageFormID, tenantID, savePermPageChart, newSchemes, saveTablePanels,
saveTableParams, newTablePanels, saveEditPanels, newEditPanels, saveChartParams, tenantInfo, srcInfo, addEntity);
#endregion
#region
//var allBtn = this.GetEntities<T_PF_BTN>(t => t.PAGE_ID == oldPageID, filter).ToList();//OPT所有列
var allBtn = srcInfo.Btns.Where(x => x.PAGE_ID == oldPageID).ToList();
AddTableBtn(srcInfo, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, existForm, existTable, allBtn, newTableID, tenantInfo, addEntity);
#endregion
}
}
}
#endregion
break;
}
default:
{
break;
}
}
}
public class TenantInfo
{
public List<T_PF_FORM_RELATION> FormRelations { get; set; }
public List<T_PF_FORM> Forms { get; set; }
public List<T_PF_PAGE_TABLE> PageTables { get; set; }
public List<T_PF_PAGE_EDIT> PageEdits { get; set; }
public List<T_PF_PAGE_TREE> PageTrees { get; set; }
public List<T_PF_PAGE_CHART> PageCharts { get; set; }
public List<T_PF_PAGE_CUSTOM> PageCustoms { get; set; }
public List<T_PF_BTN> Btns { get; set; }
public List<T_PF_COLUMN> Columns { get; set; }
public List<T_PF_PAGE_TABLE_PANEL> TablePanels { get; set; }
public List<T_PF_TABLE_PARAMS> TableParams { get; set; }
public List<T_PF_PAGE_EDIT_PANEL> EditPanels { get; set; }
public List<T_PF_EDIT_COLUMN> EditColumns { get; set; }
public List<T_PF_EDIT_COLUMN_FILTER> EditColumnFilters { get; set; }
public List<T_PF_EDIT_COLUMN_FILL_MAP> EditColumnFillMaps { get; set; }
public List<T_PF_EDIT_COLUMN_FILL_MAP_D> EditColumnFillMapDs { get; set; }
public List<T_PF_TREE_COLUMN> TreeColumns { get; set; }
public List<T_PF_PAGE_CHART_PARAM> ChartParams { get; set; }
public List<T_PF_COLUMN_FILTER> ColumnFilters { get; set; }
public List<T_PF_QUERY> Querys { get; set; }
public List<T_PF_FORM_QUERY> FormQuerys { get; set; }
public Dictionary<string, object> DicPageTable { get; set; }
public Dictionary<string, string> DicPageTableRelation { get; set; }
public Dictionary<string, string> DicForm { get; set; }
}
public TreeNode<T_PF_MENU> selectNode(TreeNode<T_PF_MENU> treeNode, string checkKey)
{
if (treeNode.Node.ID == new Guid(checkKey))
{
return treeNode;
}
else
{
TreeNode<T_PF_MENU> checkNode = null;
foreach (var item in treeNode.Children)
{
checkNode = selectNode(item, checkKey);
if (checkNode != null)
{
return checkNode;
}
}
return checkNode;
}
}
public Guid AddPageTable<T>(T tableType, Guid pageFormID, Guid tenantID, List<T> savePermPageTable, Dictionary<Guid, Guid> newSchemes,
List<T_PF_PAGE_TABLE_PANEL> saveTablePanels,
List<T_PF_TABLE_PARAMS> saveTableParams, Dictionary<Guid, Guid> newTablePanels, List<T_PF_PAGE_EDIT_PANEL> saveEditPanels,
Dictionary<Guid, Guid> newEditPanels, List<T_PF_PAGE_CHART_PARAM> saveChartParams, TenantInfo tenantInfo, TenantInfo srcInfo, TenantInfo addEntity) where T : class
{
var newTableID = Guid.NewGuid();
if (tableType is T_PF_PAGE_TABLE)
{
T_PF_PAGE_TABLE pageTable = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(tableType as T_PF_PAGE_TABLE);//OPT创建的表单
var schemesId = pageTable.PARAM_SCHEME_ID;
var oldPageId = pageTable.ID;
(tableType as T_PF_PAGE_TABLE).PAGE_FORM_ID = pageFormID;
if (pageTable.PARENT_ID != null)
{
tenantInfo.DicPageTable.Add(oldPageId.ToString(), pageTable.PARENT_ID);
}
if (tenantInfo.PageTables.Any(x => x.SRC_ID == pageTable.ID))
{
var tenantPageTable = tenantInfo.PageTables.FirstOrDefault(x => x.SRC_ID == pageTable.ID);
(tableType as T_PF_PAGE_TABLE).SRC_ID = pageTable.ID;
(tableType as T_PF_PAGE_TABLE).ID = tenantPageTable.ID;
(tableType as T_PF_PAGE_TABLE).ORG_ID = tenantID;
if (pageTable.PARAM_SCHEME_ID != null)
{
(tableType as T_PF_PAGE_TABLE).PARAM_SCHEME_ID = newSchemes[(Guid)schemesId];//参数更新
}
savePermPageTable.Add(tableType);//添加表基础到对应租户
newTableID = tenantPageTable.ID;//存在更新成原来的
}
else
{
(tableType as T_PF_PAGE_TABLE).SRC_ID = pageTable.ID;
(tableType as T_PF_PAGE_TABLE).ID = newTableID;
(tableType as T_PF_PAGE_TABLE).ORG_ID = tenantID;
if (pageTable.PARAM_SCHEME_ID != null)
{
(tableType as T_PF_PAGE_TABLE).PARAM_SCHEME_ID = newSchemes[(Guid)schemesId];//参数更新
}
//savePermPageTable.Add(tableType);//添加表基础到对应租户
addEntity.PageTables.Add((tableType as T_PF_PAGE_TABLE));
}
#region T_PF_PAGE_TABLE_PANEL
var tablePanels = srcInfo.TablePanels.Where(x => x.PAGE_TABLE_ID == oldPageId);
foreach (var tablePanel in tablePanels)
{
if (tenantInfo.TablePanels.Any(x => x.SRC_ID == tablePanel.ID))
{
var tenantTablePanel = tenantInfo.TablePanels.FirstOrDefault(x => x.SRC_ID == tablePanel.ID);
var tp = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(tablePanel);
var oldID = tablePanel.ID;
tp.SRC_ID = tablePanel.ID;
tp.ORG_ID = tenantID;
tp.ID = tenantTablePanel.ID;
tp.PAGE_TABLE_ID = newTableID;
saveTablePanels.Add(tp);
newTablePanels.Add(oldID, tenantTablePanel.ID);
}
else
{
var tpID = Guid.NewGuid();
var tp = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(tablePanel);
var oldID = tablePanel.ID;
tp.SRC_ID = tablePanel.ID;
tp.ID = tpID;
tp.ORG_ID = tenantID;
tp.PAGE_TABLE_ID = newTableID;
addEntity.TablePanels.Add(tp);
newTablePanels.Add(oldID, tpID);
}
}
#endregion
#region T_PF_TABLE_PARAMS
var tableParams = srcInfo.TableParams.Where(x => x.PAGE_TABLE_ID == schemesId);
foreach (var tableParam in tableParams)
{
if (tenantInfo.TableParams.Any(x => x.SRC_ID == tableParam.ID))
{
var tenantTableParam = tenantInfo.TableParams.FirstOrDefault(x => x.SRC_ID == tableParam.ID);
var tp = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(tableParam);
tp.SRC_ID = tableParam.ID;
tp.ID = tenantTableParam.ID;
tp.ORG_ID = tenantID;
tp.PAGE_TABLE_ID = newTableID;
saveTableParams.Add(tp);
}
else
{
var tpID = Guid.NewGuid();
var tp = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(tableParam);
tp.SRC_ID = tableParam.ID;
tp.ID = tpID;
tp.ORG_ID = tenantID;
tp.PAGE_TABLE_ID = newTableID;
addEntity.TableParams.Add(tp);
}
}
#endregion
tenantInfo.DicPageTableRelation.Add(oldPageId.ToString(), newTableID.ToString());
}
if (tableType is T_PF_PAGE_EDIT)
{
T_PF_PAGE_EDIT pageEdit = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(tableType as T_PF_PAGE_EDIT);//OPT创建的表单
var schemesId = pageEdit.PARAM_SCHEME_ID;
var oldPageId = pageEdit.ID;
if (pageEdit.PARENT_ID != null)
{
tenantInfo.DicPageTable.Add(oldPageId.ToString(), pageEdit.PARENT_ID);
}
(tableType as T_PF_PAGE_EDIT).PAGE_FORM_ID = pageFormID;
if (tenantInfo.PageEdits.Any(x => x.SRC_ID == pageEdit.ID))
{
var tenantEditTable = tenantInfo.PageEdits.FirstOrDefault(x => x.SRC_ID == pageEdit.ID);
(tableType as T_PF_PAGE_EDIT).SRC_ID = pageEdit.ID;
(tableType as T_PF_PAGE_EDIT).ID = tenantEditTable.ID;
(tableType as T_PF_PAGE_EDIT).ORG_ID = tenantID;
(tableType as T_PF_PAGE_EDIT).Nav_PageForm = null;
if (pageEdit.PARAM_SCHEME_ID != null)
{
(tableType as T_PF_PAGE_EDIT).PARAM_SCHEME_ID = newSchemes[(Guid)schemesId];//参数更新
}
savePermPageTable.Add(tableType);//添加表基础到对应租户
newTableID = tenantEditTable.ID;//存在更新成原来的
}
else
{
(tableType as T_PF_PAGE_EDIT).SRC_ID = pageEdit.ID;
(tableType as T_PF_PAGE_EDIT).ID = newTableID;
(tableType as T_PF_PAGE_EDIT).ORG_ID = tenantID;
(tableType as T_PF_PAGE_EDIT).Nav_PageForm = null;
if (pageEdit.PARAM_SCHEME_ID != null)
{
(tableType as T_PF_PAGE_EDIT).PARAM_SCHEME_ID = newSchemes[(Guid)schemesId];//参数更新
}
//savePermPageTable.Add(tableType);//添加表基础到对应租户
addEntity.PageEdits.Add((tableType as T_PF_PAGE_EDIT));
}
#region T_PF_PAGE_EDIT_PANEL
var editPanels = srcInfo.EditPanels.Where(x => x.PAGE_EDIT_ID == oldPageId);
foreach (var editPanel in editPanels)
{
if (tenantInfo.EditPanels.Any(x => x.SRC_ID == editPanel.ID))
{
var tenantEditPanel = tenantInfo.EditPanels.FirstOrDefault(x => x.SRC_ID == editPanel.ID);
var ep = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(editPanel);
var oldID = editPanel.ID;
ep.SRC_ID = editPanel.ID;
ep.ID = tenantEditPanel.ID;
ep.ORG_ID = tenantID;
ep.PAGE_EDIT_ID = newTableID;
saveEditPanels.Add(ep);
newEditPanels.Add(oldID, tenantEditPanel.ID);
}
else
{
var epID = Guid.NewGuid();
var ep = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(editPanel);
var oldID = editPanel.ID;
ep.SRC_ID = editPanel.ID;
ep.ID = epID;
ep.ORG_ID = tenantID;
ep.PAGE_EDIT_ID = newTableID;
addEntity.EditPanels.Add(ep);
newEditPanels.Add(oldID, epID);
}
}
#endregion
tenantInfo.DicPageTableRelation.Add(oldPageId.ToString(), newTableID.ToString());
}
if (tableType is T_PF_PAGE_TREE)
{
T_PF_PAGE_TREE pageTree = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(tableType as T_PF_PAGE_TREE);//OPT创建的表单
(tableType as T_PF_PAGE_TREE).PAGE_FORM_ID = pageFormID;
if (tenantInfo.PageTrees.Any(x => x.SRC_ID == pageTree.ID))
{
var tenantPageTree = tenantInfo.PageTrees.FirstOrDefault(x => x.SRC_ID == pageTree.ID);
(tableType as T_PF_PAGE_TREE).SRC_ID = pageTree.ID;
(tableType as T_PF_PAGE_TREE).ID = tenantPageTree.ID;
(tableType as T_PF_PAGE_TREE).ORG_ID = tenantID;
savePermPageTable.Add(tableType);//添加表基础到对应租户
newTableID = tenantPageTree.ID;//存在更新成原来的
}
else
{
(tableType as T_PF_PAGE_TREE).SRC_ID = pageTree.ID;
(tableType as T_PF_PAGE_TREE).ID = newTableID;
(tableType as T_PF_PAGE_TREE).ORG_ID = tenantID;
//savePermPageTable.Add(tableType);//添加表基础到对应租户
addEntity.PageTrees.Add((tableType as T_PF_PAGE_TREE));
}
}
if (tableType is T_PF_PAGE_CHART)
{
T_PF_PAGE_CHART pageChart = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(tableType as T_PF_PAGE_CHART);//OPT创建的表单
var oldChartId = pageChart.ID;
(tableType as T_PF_PAGE_CHART).PAGE_FORM_ID = pageFormID;
if (tenantInfo.PageCharts.Any(x => x.SRC_ID == pageChart.ID))
{
var tenantPageChart = tenantInfo.PageCharts.FirstOrDefault(x => x.SRC_ID == pageChart.ID);
(tableType as T_PF_PAGE_CHART).SRC_ID = pageChart.ID;
(tableType as T_PF_PAGE_CHART).ID = tenantPageChart.ID;
(tableType as T_PF_PAGE_CHART).ORG_ID = tenantID;
savePermPageTable.Add(tableType);//添加表基础到对应租户
newTableID = tenantPageChart.ID;//存在更新成原来的
}
else
{
(tableType as T_PF_PAGE_CHART).SRC_ID = pageChart.ID;
(tableType as T_PF_PAGE_CHART).ID = newTableID;
(tableType as T_PF_PAGE_CHART).ORG_ID = tenantID;
//savePermPageTable.Add(tableType);//添加表基础到对应租户
addEntity.PageCharts.Add((tableType as T_PF_PAGE_CHART));
}
#region T_PF_PAGE_CHART_PARAM
var chartParams = srcInfo.ChartParams.Where(x => x.PAGE_CHART_ID == oldChartId);
foreach (var chartParam in chartParams)
{
if (tenantInfo.ChartParams.Any(x => x.SRC_ID == chartParam.ID))
{
var tenantChartParam = tenantInfo.ChartParams.FirstOrDefault(x => x.SRC_ID == chartParam.ID);
var cp = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(chartParam);
cp.SRC_ID = chartParam.ID;
cp.ID = tenantChartParam.ID;
cp.ORG_ID = tenantID;
cp.PAGE_CHART_ID = newTableID;
saveChartParams.Add(cp);
}
else
{
var cpID = Guid.NewGuid();
var cp = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(chartParam);
cp.SRC_ID = chartParam.ID;
cp.ID = cpID;
cp.ORG_ID = tenantID;
cp.PAGE_CHART_ID = newTableID;
addEntity.ChartParams.Add(cp);
}
}
#endregion
}
if (tableType is T_PF_PAGE_CUSTOM)
{
T_PF_PAGE_CUSTOM pageCustom = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(tableType as T_PF_PAGE_CUSTOM);//OPT创建的表单
(tableType as T_PF_PAGE_CUSTOM).PAGE_FORM_ID = pageFormID;
if (tenantInfo.PageCustoms.Any(x => x.SRC_ID == pageCustom.ID))
{
var tenantPageCustom = tenantInfo.PageCustoms.FirstOrDefault(x => x.SRC_ID == pageCustom.ID);
(tableType as T_PF_PAGE_CUSTOM).SRC_ID = pageCustom.ID;
(tableType as T_PF_PAGE_CUSTOM).ID = tenantPageCustom.ID;
(tableType as T_PF_PAGE_CUSTOM).ORG_ID = tenantID;
savePermPageTable.Add(tableType);//添加表基础到对应租户
newTableID = tenantPageCustom.ID;//存在更新成原来的
}
else
{
(tableType as T_PF_PAGE_CUSTOM).SRC_ID = pageCustom.ID;
(tableType as T_PF_PAGE_CUSTOM).ID = newTableID;
(tableType as T_PF_PAGE_CUSTOM).ORG_ID = tenantID;
//savePermPageTable.Add(tableType);//添加表基础到对应租户
addEntity.PageCustoms.Add((tableType as T_PF_PAGE_CUSTOM));
}
}
return newTableID;
}
public void AddQuerys(T_PF_FORM form, Guid tenantID, Guid pageFormID, IEnumerable<T_PF_FORM_QUERY> optFormQuerys, List<T_PF_FORM_QUERY> saveFormQuerys, IEnumerable<T_PF_QUERY> optQuerys, List<T_PF_QUERY> saveQuerys,
TenantInfo tenantInfo, TenantInfo addEntity)
{
var formQuerys = optFormQuerys.Where(x => x.PAGE_FORM_ID == form.ID);
foreach (var formQuery in formQuerys)
{
if (tenantInfo.FormQuerys.Any(x => x.SRC_ID == formQuery.ID))
{
var tenantFormQuery = tenantInfo.FormQuerys.FirstOrDefault((x => x.SRC_ID == formQuery.ID));
T_PF_FORM_QUERY formquery = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(formQuery);//OPT创建的表单
var oldformQueryID = formQuery.ID;
formquery.SRC_ID = formQuery.ID;
formquery.ID = tenantFormQuery.ID;
formquery.ORG_ID = tenantID;
formquery.PAGE_FORM_ID = pageFormID;
saveFormQuerys.Add(formquery);//添加列基础到对应租户
var querys = optQuerys.Where(x => x.PAGE_FORM_QUERY_ID == oldformQueryID);
foreach (var query in querys)
{
if (tenantInfo.Querys.Any(x => x.SRC_ID == query.ID))
{
var tenantQuery = tenantInfo.Querys.FirstOrDefault(x => x.SRC_ID == query.ID);
T_PF_QUERY queryInfo = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(query);//OPT创建的表单
queryInfo.SRC_ID = query.ID;
queryInfo.ID = tenantQuery.ID;
queryInfo.ORG_ID = tenantID;
queryInfo.PAGE_FORM_ID = pageFormID;
queryInfo.PAGE_FORM_QUERY_ID = tenantFormQuery.ID;
saveQuerys.Add(queryInfo);//添加列基础到对应租户
}
else
{
var newQueryID = Guid.NewGuid();
T_PF_QUERY queryInfo = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(query);//OPT创建的表单
queryInfo.SRC_ID = query.ID;
queryInfo.ID = newQueryID;
queryInfo.ORG_ID = tenantID;
queryInfo.PAGE_FORM_ID = pageFormID;
queryInfo.PAGE_FORM_QUERY_ID = tenantFormQuery.ID;
addEntity.Querys.Add(queryInfo);//添加列基础到对应租户
}
}
}
else
{
var newFormQueryID = Guid.NewGuid();
T_PF_FORM_QUERY formquery = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(formQuery);//OPT创建的表单
var oldformQueryID = formQuery.ID;
formquery.SRC_ID = formQuery.ID;
formquery.ID = newFormQueryID;
formquery.ORG_ID = tenantID;
formquery.PAGE_FORM_ID = pageFormID;
addEntity.FormQuerys.Add(formquery);//添加列基础到对应租户
var querys = optQuerys.Where(x => x.PAGE_FORM_QUERY_ID == oldformQueryID);
foreach (var query in querys)
{
var newQueryID = Guid.NewGuid();
T_PF_QUERY queryInfo = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(query);//OPT创建的表单
queryInfo.SRC_ID = query.ID;
queryInfo.ID = newQueryID;
queryInfo.ORG_ID = tenantID;
queryInfo.PAGE_FORM_ID = pageFormID;
queryInfo.PAGE_FORM_QUERY_ID = newFormQueryID;
addEntity.Querys.Add(queryInfo);
}
}
}
}
public void AddTableBtn(TenantInfo srcInfo, List<T_PF_FORM> savePermPFForm,
List<T_PF_PAGE_TABLE> savePermPageTable, List<T_PF_PAGE_TABLE_PANEL> saveTablePanels, List<T_PF_TABLE_PARAMS> saveTableParams,
List<T_PF_COLUMN_FILTER> saveColumFilters, List<T_PF_COLUMN> savePermCloumn,
List<T_PF_PAGE_EDIT> savePermPageEdit, List<T_PF_PAGE_EDIT_PANEL> saveEditPanels, List<T_PF_EDIT_COLUMN> saveEditColumns,
List<T_PF_EDIT_COLUMN_FILTER> saveEditColumnFilters, List<T_PF_EDIT_COLUMN_FILL_MAP> saveEditColumnFillMaps,
List<T_PF_EDIT_COLUMN_FILL_MAP_D> saveEditColumnFillMapDs,
List<T_PF_PAGE_TREE> savePermPageTree, List<T_PF_TREE_COLUMN> saveTreeColumns,
List<T_PF_PAGE_CHART> savePermPageChart, List<T_PF_PAGE_CHART_PARAM> saveChartParams,
List<T_PF_PAGE_CUSTOM> savePermPageCustom,
List<T_PF_BTN> savePermBtn, List<T_PF_FORM_QUERY> saveFormQuerys, List<T_PF_QUERY> saveQuerys, List<T_PF_FORM_RELATION> savePermPFFormRelation,
Dictionary<Guid, Guid> newSchemes, Dictionary<Guid, Guid> newTablePanels, Dictionary<Guid, Guid> newEditPanels, Guid tenantID, List<Guid> existForm, List<Guid> existTable, List<T_PF_BTN> allBtn, Guid newTableID, TenantInfo tenantInfo, TenantInfo addEntity, string formId = "")
{
foreach (var btn in allBtn)
{
var newBtnID = Guid.NewGuid();
T_PF_BTN button = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(btn);//OPT创建的表单
if (tenantInfo.Btns.Any(x => x.SRC_ID == btn.ID))
{
var tenantBtn = tenantInfo.Btns.FirstOrDefault(x => x.SRC_ID == btn.ID);
button.SRC_ID = btn.ID;
button.ID = tenantBtn.ID;
button.ORG_ID = tenantID;
if (formId != "")
{
button.PAGE_ID = new Guid(formId);
}
else
{
button.PAGE_ID = newTableID;
}
if (button.PAGE_TABLE_ID != null)
{
button.PAGE_TABLE_ID = newTableID;
}
if (button.PAGE_EDIT_ID != null)
{
button.PAGE_EDIT_ID = newTableID;
}
if (button.PAGE_CUSTOM_FORM_ID != null)
{
// button.PAGE_CUSTOM_FORM_ID = newTableID;
button.PAGE_CUSTOM_FORM_ID = new Guid(formId);
}
savePermBtn.Add(button);//添加列基础到对应租户
newBtnID = tenantBtn.ID;
}
else
{
button.SRC_ID = btn.ID;
button.ID = newBtnID;
button.ORG_ID = tenantID;
if (formId != "")
{
button.PAGE_ID = new Guid(formId);
}
else
{
button.PAGE_ID = newTableID;
}
if (button.PAGE_TABLE_ID != null)
{
button.PAGE_TABLE_ID = newTableID;
}
if (button.PAGE_EDIT_ID != null)
{
button.PAGE_EDIT_ID = newTableID;
}
if (button.PAGE_CUSTOM_FORM_ID != null)
{
// button.PAGE_CUSTOM_FORM_ID = newTableID;
button.PAGE_CUSTOM_FORM_ID = new Guid(formId);
}
addEntity.Btns.Add(button);//添加列基础到对应租户
}
if (!string.IsNullOrEmpty(btn.FORM_CODE))//有配置关联表单
{
//var btnForm = t_PF_FORMs.Where(x => x.CODE == btn.FORM_CODE).FirstOrDefault();
// var btnForm = this.GetEntities<T_PF_FORM>(null, filter).FirstOrDefault(x => x.CODE == btn.FORM_CODE);
var btnForm = srcInfo.Forms.FirstOrDefault(x => x.CODE == btn.FORM_CODE);
if (btnForm != null)
{
if (tenantInfo.Forms.Any(x => x.SRC_ID == btnForm.ID))
{
var tenantBtnForm = tenantInfo.Forms.FirstOrDefault(x => x.SRC_ID == btnForm.ID);
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(btnForm);//OPT创建的表单
if (!existForm.Contains(newForm.ID) && !savePermPFForm.Any(x => x.CODE == newForm.CODE) && !addEntity.Forms.Any(x => x.CODE == newForm.CODE))
{
AddTable(srcInfo, btnForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, tenantBtnForm.ID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = btnForm.ID;
newForm.ID = tenantBtnForm.ID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
savePermPFForm.Add(newForm);//添加表单到对应租户
}
}
else
{
var newFormID = Guid.NewGuid();
T_PF_FORM newForm = APT.Infrastructure.Core.CloneExtends.DeepCloneObject(btnForm);//OPT创建的表单
if (!existForm.Contains(newForm.ID) && !savePermPFForm.Any(x => x.CODE == newForm.CODE) && !addEntity.Forms.Any(x => x.CODE == newForm.CODE))
{
AddTable(srcInfo, btnForm, savePermPFForm,
savePermPageTable, saveTablePanels, saveTableParams,
saveColumFilters, savePermCloumn,
savePermPageEdit, saveEditPanels, saveEditColumns,
saveEditColumnFilters, saveEditColumnFillMaps,
saveEditColumnFillMapDs,
savePermPageTree, saveTreeColumns,
savePermPageChart, saveChartParams,
savePermPageCustom,
savePermBtn, saveFormQuerys, saveQuerys, savePermPFFormRelation,
newSchemes, newTablePanels, newEditPanels, tenantID, newFormID, existForm, existTable, tenantInfo, addEntity);
newForm.SRC_ID = btnForm.ID;
newForm.ID = newFormID;
newForm.ORG_ID = tenantID;
newForm.Nav_Org = null;
addEntity.Forms.Add(newForm);//添加表单到对应租户
}
}
}
}
}
}
}
}