d_sms_service/APT.MicroApi/APT.OP.WebApi/Controllers/Api/TenantRoleController.cs
2024-10-28 13:45:58 +08:00

4462 lines
313 KiB
C#

using APT.BaseData.Domain.ApiModel.FM;
using APT.BaseData.Domain.ApiModel.Platform;
using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities.BD;
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.Api.Redis;
using APT.Infrastructure.Core;
using APT.Migrations;
using APT.Utility;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using NPOI.SS.Formula.Functions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using APT.Infrastructure.Api;
namespace APT.OP.WebApi.Controllers.Api
{
[Route("api/OP/TenantRole")]
public class TenantRoleController : AuthorizeApiController<T_OP_TENANT>
{
[HttpPost, Route("Update")]
public JsonActionResult<bool> Update([FromBody] T_OP_TENANT tenant)
{
return SafeExecute<bool>(() =>
{
var orgFilter = new BaseFilter();
orgFilter.IgnoreOrgRule = true;
#region
//T_FM_ORGANIZATION org = null;
bool isupdate = false;
#endregion
#region
var permOPMenu = this.GetEntities<T_OP_ROLE_MENU>(x => x.TENANT_ID == tenant.ID, orgFilter).ToList();//租户权限
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;
T_FM_BASE_CONFIG tenantBaseConfig = null;//站点参数
List<T_FM_ENUM_TYPE> tenantEnumType = null;//枚举类别
List<T_FM_ENUM> tenantEnum = null;//枚举管理
List<T_FM_ENUM_ITEM> tenantEnumItem = null;
List<T_FM_IMPORT_CONFIG> tenantImportConfigs = null;//导入配置
List<T_FM_IMPORT_CONFIG_DETAIL> tenantImportConfigDetails = null;//导入配置 明细
List<T_FM_IMPORT_CONFIG_FIELD> tenantImportConfigFields = null;//导入配置 明细 字段
List<T_BD_PICTURE> tenantPictures = null;//图片资源
List<T_PF_FILE> tenantFiles = null;//文件
List<T_PF_IMG_FILE> tenantImgFiles = null;// 图片文件
List<T_PF_IMG_FILE_DETAIL> tenantImgFileDetails = null;//图片文件明细
List<T_BD_PICTURE_FILE> tenantPicFiles = null; //资源图片文件
List<T_PF_PIC_FILTER> tenantPicFilters = null;
List<T_PF_PIC_FILTER_DETAIL> tenantPicFilterDetails = null;
List<T_PF_DATA_FREQUENCY> tenantDataFrequency = null;//数据采集频率
#endregion
#region
var targetDB = this.GetEntity<T_OP_TENANT_DB_CONN>(x => x.ID == tenant.DB_CONN_ID, orgFilter);
if (targetDB != null && !string.IsNullOrEmpty(targetDB.DB_CONN))
{
var deleteFilter = new BaseFilter();//OPT创建的菜单,表单等
deleteFilter.IgnoreOrgRule = true;
deleteFilter.Level = -1;
deleteFilter.IsParentData = true;
var Conn = targetDB.DB_CONN;
using (var context = new MigrationContext(Conn))
{
List<T_PF_MENU> reslist = new List<T_PF_MENU>();
tenantMenuTrees = context.GetTreeOrderEntities<T_PF_MENU>(x => x.ENABLE_STATUS == (int)FMEnableStatusEnum. && x.ORG_ID == tenant.ID && x.PLATFORM_CATEGORY == 0, deleteFilter, null, out reslist);
//org = context.GetEntities<T_FM_ORGANIZATION>(x => x.ID == tenant.ID, null).FirstOrDefault();
#region
tenantMenus = context.GetEntities<T_PF_MENU>(x => x.ORG_ID == tenant.ID, null, false).ToList();//租户菜单
tenantForms = context.GetEntities<T_PF_FORM>(x => x.ORG_ID == tenant.ID, null).ToList();//租户表单
tenantFormRelations = context.GetEntities<T_PF_FORM_RELATION>(x => x.ORG_ID == tenant.ID, null).ToList();//表单关联
tenantPageTables = context.GetEntities<T_PF_PAGE_TABLE>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantPageEdits = context.GetEntities<T_PF_PAGE_EDIT>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantPageTrees = context.GetEntities<T_PF_PAGE_TREE>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantPageCharts = context.GetEntities<T_PF_PAGE_CHART>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantPageCustoms = context.GetEntities<T_PF_PAGE_CUSTOM>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantBtns = context.GetEntities<T_PF_BTN>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantColumns = context.GetEntities<T_PF_COLUMN>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantPageTablePanels = context.GetEntities<T_PF_PAGE_TABLE_PANEL>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantTableParams = context.GetEntities<T_PF_TABLE_PARAMS>(x => x.ORG_ID == tenant.ID, null).ToList(); ;
tenantPageEditPanels = context.GetEntities<T_PF_PAGE_EDIT_PANEL>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantEditColumns = context.GetEntities<T_PF_EDIT_COLUMN>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantEditColumnFilters = context.GetEntities<T_PF_EDIT_COLUMN_FILTER>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantEditColumnFillMaps = context.GetEntities<T_PF_EDIT_COLUMN_FILL_MAP>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantEditColumnFillMapDs = context.GetEntities<T_PF_EDIT_COLUMN_FILL_MAP_D>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantTreeColumns = context.GetEntities<T_PF_TREE_COLUMN>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantPageChartParams = context.GetEntities<T_PF_PAGE_CHART_PARAM>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantColumnFilters = context.GetEntities<T_PF_COLUMN_FILTER>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantQuerys = context.GetEntities<T_PF_QUERY>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantFormQuerys = context.GetEntities<T_PF_FORM_QUERY>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantCodeRules = context.GetEntities<T_PF_CODE_RULE>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantSyncTasks = context.GetEntities<T_FM_SYNC_TASK>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantParamItems = context.GetEntities<T_PF_PARAM_ITEM>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantParamSchemes = context.GetEntities<T_PF_PARAM_SCHEME>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantParamSchemeDetails = context.GetEntities<T_PF_PARAM_SCHEME_DETAIL>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantVersionManages = context.GetEntities<T_PF_VERSION_MANAGE>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantUser = context.GetEntities<T_FM_USER>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantRole = context.GetEntities<T_FM_ROLE>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantUserBelongRole = context.GetEntities<T_FM_USER_BELONG_ROLE>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantEnumType = context.GetEntities<T_FM_ENUM_TYPE>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantEnum = context.GetEntities<T_FM_ENUM>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantEnumItem = context.GetEntities<T_FM_ENUM_ITEM>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantPictures = context.GetEntities<T_BD_PICTURE>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantFiles = context.GetEntities<T_PF_FILE>(x => x.ORG_ID == tenant.ID, null).ToList();//文件
tenantImgFiles = context.GetEntities<T_PF_IMG_FILE>(x => x.ORG_ID == tenant.ID, null).ToList();// 图片文件
tenantImgFileDetails = context.GetEntities<T_PF_IMG_FILE_DETAIL>(x => x.ORG_ID == tenant.ID, null).ToList();//图片文件明细
tenantPicFiles = context.GetEntities<T_BD_PICTURE_FILE>(x => x.ORG_ID == tenant.ID, null).ToList(); //资源图片文件
tenantPicFilters = context.GetEntities<T_PF_PIC_FILTER>(x => x.ORG_ID == tenant.ID, null).ToList();//图片条件主表
tenantPicFilterDetails = context.GetEntities<T_PF_PIC_FILTER_DETAIL>(x => x.ORG_ID == tenant.ID, null).ToList(); //图片条件明细表
tenantDataFrequency = context.GetEntities<T_PF_DATA_FREQUENCY>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantBaseConfig = context.GetEntity<T_FM_BASE_CONFIG>(x => x.ORG_ID == tenant.ID, null);
tenantImportConfigs = context.GetEntities<T_FM_IMPORT_CONFIG>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantImportConfigDetails = context.GetEntities<T_FM_IMPORT_CONFIG_DETAIL>(x => x.ORG_ID == tenant.ID, null).ToList();
tenantImportConfigFields = context.GetEntities<T_FM_IMPORT_CONFIG_FIELD>(x => x.ORG_ID == tenant.ID, null).ToList();
#endregion
}
}
#endregion
#region
var deletePermOPMenu = new List<Guid>();
var deletePermPFMenu = new List<T_PF_MENU>();
#endregion
#region
var savePermOPMenu = new List<T_OP_ROLE_MENU>();
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 addCodeRules = new List<T_PF_CODE_RULE>();
var saveSyncTasks = new List<T_FM_SYNC_TASK>();
var addSyncTasks = new List<T_FM_SYNC_TASK>();
//var saveBaseConfig = new List<T_FM_BASE_CONFIG>();
//var addBaseConfig = new T_FM_BASE_CONFIG();
var saveVersions = new List<T_PF_VERSION_MANAGE>();
var saveParamItems = new List<T_PF_PARAM_ITEM>();
var addParamItems = new List<T_PF_PARAM_ITEM>();
var saveParamSchemes = new List<T_PF_PARAM_SCHEME>();
var addParamSchemes = new List<T_PF_PARAM_SCHEME>();
var saveParamSchemeDetails = new List<T_PF_PARAM_SCHEME_DETAIL>();
var addParamSchemeDetails = new List<T_PF_PARAM_SCHEME_DETAIL>();
var saveUser = new List<T_FM_USER>();
var saveRole = new List<T_FM_ROLE>();
var saveUserBelongRole = new List<T_FM_USER_BELONG_ROLE>();
var addEnumType = new List<T_FM_ENUM_TYPE>();
var saveEnumType = new List<T_FM_ENUM_TYPE>();
var addEnum = new List<T_FM_ENUM>();
var saveEnum = new List<T_FM_ENUM>();
var savePictures = new List<T_BD_PICTURE>();//图片
var addPictures = new List<T_BD_PICTURE>();
var saveFiles = new List<T_PF_FILE>();
var addFiles = new List<T_PF_FILE>();
var saveImgFiles = new List<T_PF_IMG_FILE>();
var addImgFiles = new List<T_PF_IMG_FILE>();
var saveImgFileDetails = new List<T_PF_IMG_FILE_DETAIL>();
var addImgFileDetails = new List<T_PF_IMG_FILE_DETAIL>();
var savePicFiles = new List<T_BD_PICTURE_FILE>();
var addPicFiles = new List<T_BD_PICTURE_FILE>();
var savePicFilters = new List<T_PF_PIC_FILTER>();//图片
var addPicFilters = new List<T_PF_PIC_FILTER>();
var savePicFilterDetails = new List<T_PF_PIC_FILTER_DETAIL>();
var addPicFilterDetails = new List<T_PF_PIC_FILTER_DETAIL>();
var saveImportConfigs = new List<T_FM_IMPORT_CONFIG>();
var addImportConfigs = new List<T_FM_IMPORT_CONFIG>();
var saveImportConfigDetails = new List<T_FM_IMPORT_CONFIG_DETAIL>();
var addImportConfigDetails = new List<T_FM_IMPORT_CONFIG_DETAIL>();
var saveImportConfigFields = new List<T_FM_IMPORT_CONFIG_FIELD>();
var addImportConfigFields = new List<T_FM_IMPORT_CONFIG_FIELD>();
List<T_PF_DATA_FREQUENCY> addDataFrequency = new List<T_PF_DATA_FREQUENCY>();
List<T_FM_ENUM_ITEM> addEnumItem = new List<T_FM_ENUM_ITEM>();
List<T_FM_ENUM_ITEM> saveEnumItem = new List<T_FM_ENUM_ITEM>();
#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>();
var dicMenu = new Dictionary<Guid, object>();
#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;
T_FM_BASE_CONFIG srcBaseConfig = null;
List<T_FM_ENUM_TYPE> srcEnumType = null;
List<T_FM_ENUM> srcEnum = null;
List<T_FM_IMPORT_CONFIG> srcImportConfigs = null;//导入配置
List<T_FM_IMPORT_CONFIG_DETAIL> srcImportConfigDetails = null;//导入配置 明细
List<T_FM_IMPORT_CONFIG_FIELD> srcImportConfigFields = null;//导入配置 明细 字段
List<T_BD_PICTURE> srcPictures = null;
List<T_PF_FILE> srcFiles = null;//文件
List<T_PF_IMG_FILE> srcImgFiles = null;// 图片文件
List<T_PF_IMG_FILE_DETAIL> srcImgFileDetails = null;//图片文件明细
List<T_BD_PICTURE_FILE> srcPicFiles = null; //资源图片文件
List<T_PF_PIC_FILTER> srcPicFilters = null;
List<T_PF_PIC_FILTER_DETAIL> srcPicFilterDetails = null;
List<T_PF_DATA_FREQUENCY> srcDataFrequency = null;
List<T_FM_ENUM_ITEM> srcEnumItem = null;
var tenantTemplate = this.GetEntity<T_OP_TENANT>(x => x.ID == tenant.TEMPLATE_ID, orgFilter);
var srcDB = this.GetEntity<T_OP_TENANT_DB_CONN>(x => x.ID == tenantTemplate.DB_CONN_ID, orgFilter);
if (srcDB != null && !string.IsNullOrEmpty(srcDB.DB_CONN))
{
var Conn = srcDB.DB_CONN;
using (var context = new MigrationContext(Conn))
{
#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 == tenant.TEMPLATE_ID && x.ENABLE_STATUS == (int)FMEnableStatusEnum., srcfilter, null, out reslist, false);
srcMenus = context.GetEntities<T_PF_MENU>(x => x.ORG_ID == tenant.TEMPLATE_ID && x.ENABLE_STATUS == (int)FMEnableStatusEnum., null, false).ToList();//能管菜单
//srcMenus = context.GetTreeOrderEntities<T_PF_MENU>(x => x.ENABLE_STATUS == (int)FMEnableStatusEnum.启用&& x.ORG_ID == tenant.TEMPLATE_ID, srcfilter, null, out reslist).Select(i=>i.Node).ToList();
srcEcpMenus = context.GetEntities<T_PF_MENU>(x => x.ORG_ID == tenant.TEMPLATE_ID && x.ENABLE_STATUS == (int)FMEnableStatusEnum. && x.PLATFORM_CATEGORY == 1, null, false).ToList();//企业平台菜单
srcForms = context.GetEntities<T_PF_FORM>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();//租户表单
srcFormRelations = context.GetEntities<T_PF_FORM_RELATION>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();//表单关联
srcPageTables = context.GetEntities<T_PF_PAGE_TABLE>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcPageEdits = context.GetEntities<T_PF_PAGE_EDIT>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcPageTrees = context.GetEntities<T_PF_PAGE_TREE>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcPageCharts = context.GetEntities<T_PF_PAGE_CHART>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcPageCustoms = context.GetEntities<T_PF_PAGE_CUSTOM>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcBtns = context.GetEntities<T_PF_BTN>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcColumns = context.GetEntities<T_PF_COLUMN>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcPageTablePanels = context.GetEntities<T_PF_PAGE_TABLE_PANEL>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcTableParams = context.GetEntities<T_PF_TABLE_PARAMS>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList(); ;
srcPageEditPanels = context.GetEntities<T_PF_PAGE_EDIT_PANEL>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcEditColumns = context.GetEntities<T_PF_EDIT_COLUMN>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcEditColumnFilters = context.GetEntities<T_PF_EDIT_COLUMN_FILTER>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcEditColumnFillMaps = context.GetEntities<T_PF_EDIT_COLUMN_FILL_MAP>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcEditColumnFillMapDs = context.GetEntities<T_PF_EDIT_COLUMN_FILL_MAP_D>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcTreeColumns = context.GetEntities<T_PF_TREE_COLUMN>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcPageChartParams = context.GetEntities<T_PF_PAGE_CHART_PARAM>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcColumnFilters = context.GetEntities<T_PF_COLUMN_FILTER>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcQuerys = context.GetEntities<T_PF_QUERY>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcFormQuerys = context.GetEntities<T_PF_FORM_QUERY>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcCodeRules = context.GetEntities<T_PF_CODE_RULE>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcSyncTasks = context.GetEntities<T_FM_SYNC_TASK>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcParamItems = context.GetEntities<T_PF_PARAM_ITEM>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcParamSchemes = context.GetEntities<T_PF_PARAM_SCHEME>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcParamSchemeDetails = context.GetEntities<T_PF_PARAM_SCHEME_DETAIL>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcVersionManages = context.GetEntities<T_PF_VERSION_MANAGE>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcBaseConfig = context.GetEntity<T_FM_BASE_CONFIG>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false);
srcEnumType = context.GetEntities<T_FM_ENUM_TYPE>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcEnum = context.GetEntities<T_FM_ENUM>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcPictures = context.GetEntities<T_BD_PICTURE>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcFiles = context.GetEntities<T_PF_FILE>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcImgFiles = context.GetEntities<T_PF_IMG_FILE>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcImgFileDetails = context.GetEntities<T_PF_IMG_FILE_DETAIL>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcPicFiles = context.GetEntities<T_BD_PICTURE_FILE>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcPicFilters = context.GetEntities<T_PF_PIC_FILTER>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcPicFilterDetails = context.GetEntities<T_PF_PIC_FILTER_DETAIL>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcDataFrequency = context.GetEntities<T_PF_DATA_FREQUENCY>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcEnumItem = context.GetEntities<T_FM_ENUM_ITEM>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcImportConfigs = context.GetEntities<T_FM_IMPORT_CONFIG>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcImportConfigDetails = context.GetEntities<T_FM_IMPORT_CONFIG_DETAIL>(x => x.ORG_ID == tenant.TEMPLATE_ID, null, false).ToList();
srcImportConfigFields = context.GetEntities<T_FM_IMPORT_CONFIG_FIELD>(x => x.ORG_ID == tenant.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>();
List<Guid> existForm = new List<Guid>();
List<Guid> existTable = new List<Guid>();
List<Guid> existPermForm = new List<Guid>();
if (tenant.CheckKeys.Count > 0)
{
#region
foreach (var ecpMenu in srcEcpMenus)
{
tenant.CheckKeys.Add(ecpMenu.ID.ToString());
}
#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
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 = tenant.ID;
newItems.Add(oldItenID, newItemID);
addParamItems.Add(parmItem);
}
// saveParamItems.Add(parmItem);//添加到对应租户
}
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 = tenant.ID;
newSchemes.Add(oldSchemeID, newSchemesID);
addParamSchemes.Add(paramScheme);
}
}
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 = tenant.ID;
paramSchemeDetail.PARAM_SCHEME_ID = scheneId;
paramSchemeDetail.PARAM_ITEM_ID = ItemId;
newSchemeDetails.Add(oldSchemeDetailID, newSchemeDetailID);
addParamSchemeDetails.Add(paramSchemeDetail);
}
}
#endregion
#region
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 = tenant.ID;
newCodeRules.Add(oldCodeRuleID, newCodeRuleID);
addCodeRules.Add(codeRule);
}
}
#endregion
#region T_FM_SYNC_TASK
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 = tenant.ID;
addSyncTasks.Add(syncTask);//添加到对应租户
}
}
#endregion
#region
var baseConfig = new T_FM_BASE_CONFIG();
if (tenantBaseConfig == null)
{
baseConfig.SRC_ID = srcBaseConfig.ID;
baseConfig.ID = Guid.NewGuid();
baseConfig.ORG_ID = tenant.ID;
baseConfig.NAME = tenant.NAME + "能源管理系统";
baseConfig.SYSTART_TIME = DateTime.Now;
baseConfig.CALENDAR_DAYS = srcBaseConfig.CALENDAR_DAYS;
baseConfig.SCREEN_TITLE = tenant.NAME + "能源管理系统";
baseConfig.SCREEN_URL = "http://" + targetDB.DB_CONN.Split(';')[2].Substring(5) + ":3167/home";
//addBaseConfig.Add(baseConfig);
}
#endregion
#region T_PF_VERSION_MANAGE
if (!tenantVersionManages.Any(x => x.ORG_ID == tenant.ID))
{
foreach (var item in srcVersionManages)
{
T_PF_VERSION_MANAGE version = item;
var newCodeRuleID = Guid.NewGuid();
//var oldCodeRuleID = item.ID;
version.ID = newCodeRuleID;
version.ORG_ID = tenant.ID;
//newCodeRules.Add(oldCodeRuleID, newCodeRuleID);
saveVersions.Add(version);//添加到对应租户
}
}
#endregion
Dictionary<Guid, Guid> dicEnumType = new Dictionary<Guid, Guid>();
Dictionary<Guid, Guid> dicEnum = new Dictionary<Guid, Guid>();
Dictionary<Guid, Guid> dicEnumItem = new Dictionary<Guid, Guid>();
Dictionary<Guid, Guid> dicEnergyType = new Dictionary<Guid, Guid>();
Dictionary<Guid, Guid> dicReductionFactor = new Dictionary<Guid, Guid>();
Dictionary<Guid, Guid> dicVariableAttrs = new Dictionary<Guid, Guid>();
Dictionary<Guid, Guid> dicImportConfigs = new Dictionary<Guid, Guid>();
Dictionary<Guid, Guid> dicImportConfigDetails = new Dictionary<Guid, Guid>();
Dictionary<Guid, Guid> dicImportConfigFields = new Dictionary<Guid, Guid>();
Dictionary<Guid, Guid> dicPictures = new Dictionary<Guid, Guid>();//图片
Dictionary<Guid, Guid> dicFiles = new Dictionary<Guid, Guid>();//图片
Dictionary<Guid, Guid> dicImgFiles = new Dictionary<Guid, Guid>();//图片
Dictionary<Guid, Guid> dicImgFileDetails = new Dictionary<Guid, Guid>();//图片
Dictionary<Guid, Guid> dicPicFiles = new Dictionary<Guid, Guid>();//图片
Dictionary<Guid, Guid> dicPicFilters = new Dictionary<Guid, Guid>();//图片条件
Dictionary<Guid, Guid> dicPicFilterDetails = new Dictionary<Guid, Guid>();//图片
foreach (var item in srcEnumType)//枚举类别(枚举管理)
{
T_FM_ENUM_TYPE enumType = item;
if (tenantEnumType.Any(x => x.SRC_ID == item.ID))//修改
{
var tenantEnumtype = tenantEnumType.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldItenID = enumType.ID;
enumType.SRC_ID = enumType.ID;
enumType.ID = tenantEnumtype.ID;
enumType.ORG_ID = tenantEnumtype.ORG_ID;
dicEnumType.Add(oldItenID, tenantEnumtype.ID);
saveEnumType.Add(enumType);//添加到对应租户
}
else//新增
{
var newItemID = Guid.NewGuid();
var oldItenID = enumType.ID;
enumType.SRC_ID = enumType.ID;
enumType.ID = newItemID;
enumType.ORG_ID = tenant.ID;
dicEnumType.Add(oldItenID, newItemID);
addEnumType.Add(enumType);
}
}
foreach (var item in srcEnum)//枚举类别(枚举管理)
{
T_FM_ENUM enumInfo = item;
if (tenantEnum.Any(x => x.SRC_ID == item.ID))//修改
{
var tenantenum = tenantEnum.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldItenID = enumInfo.ID;
enumInfo.SRC_ID = enumInfo.ID;
enumInfo.ID = tenantenum.ID;
enumInfo.ORG_ID = tenantenum.ORG_ID;
enumInfo.ENUM_TYPE_ID = dicEnumType[enumInfo.ENUM_TYPE_ID];
dicEnum.Add(oldItenID, tenantenum.ID);
saveEnum.Add(enumInfo);//添加到对应租户
}
else//新增
{
var newItemID = Guid.NewGuid();
var oldItenID = enumInfo.ID;
enumInfo.SRC_ID = enumInfo.ID;
enumInfo.ID = newItemID;
enumInfo.ORG_ID = tenant.ID;
enumInfo.ENUM_TYPE_ID = dicEnumType[enumInfo.ENUM_TYPE_ID];
dicEnum.Add(oldItenID, newItemID);
addEnum.Add(enumInfo);
}
}
foreach (var item in srcEnumItem)//枚举类别(枚举管理)
{
T_FM_ENUM_ITEM enumItem = item;
if (tenantEnumItem.Any(x => x.SRC_ID == item.ID))//修改
{
var tenantEnumitem = tenantEnumItem.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldItenID = enumItem.ID;
enumItem.SRC_ID = enumItem.ID;
enumItem.ID = tenantEnumitem.ID;
enumItem.ORG_ID = tenantEnumitem.ORG_ID;
enumItem.ENUM_ID = dicEnum[enumItem.ENUM_ID];
dicEnumItem.Add(oldItenID, tenantEnumitem.ID);
saveEnumItem.Add(enumItem);//添加到对应租户
}
else//新增
{
var newItemID = Guid.NewGuid();
var oldItenID = enumItem.ID;
enumItem.SRC_ID = enumItem.ID;
enumItem.ID = newItemID;
enumItem.ORG_ID = tenant.ID;
enumItem.ENUM_ID = dicEnum[enumItem.ENUM_ID];
dicEnumItem.Add(oldItenID, newItemID);
addEnumItem.Add(enumItem);
}
}
Dictionary<Guid, Guid> dicenergyTyep = new Dictionary<Guid, Guid>();
#region /excel模板
foreach (var item in srcImportConfigs)//导入配置
{
T_FM_IMPORT_CONFIG importConfig = item;
if (tenantImportConfigs.Any(x => x.SRC_ID == item.ID))//修改
{
var tenantImportConfig = tenantImportConfigs.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldItenID = importConfig.ID;
importConfig.SRC_ID = importConfig.ID;
importConfig.ID = tenantImportConfig.ID;
importConfig.ORG_ID = tenantImportConfig.ORG_ID;
dicImportConfigs.Add(oldItenID, tenantImportConfig.ID);
saveImportConfigs.Add(importConfig);//添加到对应租户
}
else//新增
{
var newItemID = Guid.NewGuid();
var oldItenID = importConfig.ID;
importConfig.SRC_ID = importConfig.ID;
importConfig.ID = newItemID;
importConfig.ORG_ID = tenant.ID;
dicImportConfigs.Add(oldItenID, newItemID);
addImportConfigs.Add(importConfig);
}
}
foreach (var item in srcImportConfigDetails)//导入配置 明细
{
T_FM_IMPORT_CONFIG_DETAIL ImportConfigDetail = item;
if (tenantImportConfigDetails.Any(x => x.SRC_ID == item.ID))//修改
{
var tenantImportConfigDetail = tenantImportConfigDetails.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldItenID = ImportConfigDetail.ID;
ImportConfigDetail.SRC_ID = ImportConfigDetail.ID;
ImportConfigDetail.ID = tenantImportConfigDetail.ID;
ImportConfigDetail.ORG_ID = tenantImportConfigDetail.ORG_ID;
ImportConfigDetail.IMPORT_CONFIG_ID = dicImportConfigs[ImportConfigDetail.IMPORT_CONFIG_ID];
dicImportConfigDetails.Add(oldItenID, tenantImportConfigDetail.ID);
saveImportConfigDetails.Add(ImportConfigDetail);//添加到对应租户
}
else//新增
{
var newItemID = Guid.NewGuid();
var oldItenID = ImportConfigDetail.ID;
ImportConfigDetail.SRC_ID = ImportConfigDetail.ID;
ImportConfigDetail.ID = newItemID;
ImportConfigDetail.ORG_ID = tenant.ID;
ImportConfigDetail.IMPORT_CONFIG_ID = dicImportConfigs[ImportConfigDetail.IMPORT_CONFIG_ID];
dicImportConfigDetails.Add(oldItenID, newItemID);
addImportConfigDetails.Add(ImportConfigDetail);
}
}
foreach (var item in addImportConfigDetails)//更新父节点
{
if (item.PARENT_ID != null)
{
item.PARENT_ID = dicImportConfigDetails[(Guid)item.PARENT_ID];
}
}
foreach (var item in saveImportConfigDetails)
{
if (item.PARENT_ID != null)
{
item.PARENT_ID = dicImportConfigDetails[(Guid)item.PARENT_ID];
}
}
foreach (var item in srcImportConfigFields)//导入配置 明细 字段
{
T_FM_IMPORT_CONFIG_FIELD ImportConfigField = item;
if (tenantImportConfigFields.Any(x => x.SRC_ID == item.ID))//修改
{
var tenantImportConfigField = tenantImportConfigFields.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldItenID = ImportConfigField.ID;
ImportConfigField.SRC_ID = tenantImportConfigField.ID;
ImportConfigField.ID = tenantImportConfigField.ID;
ImportConfigField.ORG_ID = tenantImportConfigField.ORG_ID;
ImportConfigField.IMPORT_CONFIG_DETAIL_ID = dicImportConfigDetails[ImportConfigField.IMPORT_CONFIG_DETAIL_ID];
dicImportConfigFields.Add(oldItenID, tenantImportConfigField.ID);
saveImportConfigFields.Add(ImportConfigField);//添加到对应租户
}
else//新增
{
var newItemID = Guid.NewGuid();
var oldItenID = ImportConfigField.ID;
ImportConfigField.SRC_ID = ImportConfigField.ID;
ImportConfigField.ID = newItemID;
ImportConfigField.ORG_ID = tenant.ID;
ImportConfigField.IMPORT_CONFIG_DETAIL_ID = dicImportConfigDetails[ImportConfigField.IMPORT_CONFIG_DETAIL_ID];
dicImportConfigFields.Add(oldItenID, newItemID);
addImportConfigFields.Add(ImportConfigField);
}
}
#endregion
foreach (var item in srcPictures)//图片资源
{
T_BD_PICTURE srcPic = item;
if (tenantPictures.Any(x => x.SRC_ID == item.ID))//修改
{
var tenantPicture = tenantPictures.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldItenID = srcPic.ID;
srcPic.SRC_ID = srcPic.ID;
srcPic.ID = tenantPicture.ID;
srcPic.ORG_ID = tenantPicture.ORG_ID;
if (srcPic.ENUM_ID != null)
{
srcPic.ENUM_ID = dicEnum[(Guid)srcPic.ENUM_ID];
}
if (srcPic.ENUM_ITEM_ID != null)
{
srcPic.ENUM_ITEM_ID = dicEnumItem[(Guid)srcPic.ENUM_ITEM_ID];
}
dicPictures.Add(oldItenID, tenantPicture.ID);
savePictures.Add(srcPic);//添加到对应租户
}
else//新增
{
var newItemID = Guid.NewGuid();
var oldItenID = srcPic.ID;
srcPic.SRC_ID = srcPic.ID;
srcPic.ID = newItemID;
srcPic.ORG_ID = tenant.ID;
if (srcPic.ENUM_ID != null)
{
srcPic.ENUM_ID = dicEnum[(Guid)srcPic.ENUM_ID];
}
if (srcPic.ENUM_ITEM_ID != null)
{
srcPic.ENUM_ITEM_ID = dicEnumItem[(Guid)srcPic.ENUM_ITEM_ID];
}
dicPictures.Add(oldItenID, newItemID);
addPictures.Add(srcPic);
}
}
foreach (var item in srcFiles)//图片资源
{
T_PF_FILE srcFile = item;
if (tenantFiles.Any(x => x.SRC_ID == item.ID))//修改
{
var tenantFile = tenantFiles.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldItenID = srcFile.ID;
srcFile.SRC_ID = srcFile.ID;
srcFile.ID = tenantFile.ID;
srcFile.ORG_ID = tenantFile.ORG_ID;
dicFiles.Add(oldItenID, tenantFile.ID);
saveFiles.Add(srcFile);//添加到对应租户
}
else//新增
{
var newItemID = Guid.NewGuid();
var oldItenID = srcFile.ID;
srcFile.SRC_ID = srcFile.ID;
srcFile.ID = newItemID;
srcFile.ORG_ID = tenant.ID;
dicFiles.Add(oldItenID, newItemID);
addFiles.Add(srcFile);
}
}
foreach (var item in srcImgFiles)//图片资源
{
T_PF_IMG_FILE srcImgFile = item;
if (tenantImgFiles.Any(x => x.SRC_ID == item.ID))//修改
{
var tenantImgFile = tenantImgFiles.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldItenID = srcImgFile.ID;
srcImgFile.SRC_ID = srcImgFile.ID;
srcImgFile.ID = tenantImgFile.ID;
srcImgFile.ORG_ID = tenantImgFile.ORG_ID;
if (srcImgFile.FILE_ID != null)
srcImgFile.FILE_ID = dicFiles[(Guid)srcImgFile.FILE_ID];
dicImgFiles.Add(oldItenID, tenantImgFile.ID);
saveImgFiles.Add(srcImgFile);//添加到对应租户
}
else//新增
{
var newItemID = Guid.NewGuid();
var oldItenID = srcImgFile.ID;
srcImgFile.SRC_ID = srcImgFile.ID;
srcImgFile.ID = newItemID;
srcImgFile.ORG_ID = tenant.ID;
if (srcImgFile.FILE_ID != null)
srcImgFile.FILE_ID = dicFiles[(Guid)srcImgFile.FILE_ID];
dicImgFiles.Add(oldItenID, newItemID);
addImgFiles.Add(srcImgFile);
}
}
foreach (var item in srcImgFileDetails)//图片资源
{
T_PF_IMG_FILE_DETAIL srcImgFileDetail = item;
if (tenantImgFileDetails.Any(x => x.SRC_ID == item.ID))//修改
{
var tenantImgFileDetail = tenantImgFileDetails.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldItenID = srcImgFileDetail.ID;
srcImgFileDetail.SRC_ID = srcImgFileDetail.ID;
srcImgFileDetail.ID = tenantImgFileDetail.ID;
srcImgFileDetail.ORG_ID = tenantImgFileDetail.ORG_ID;
if (srcImgFileDetail.FILE_ID != null)
srcImgFileDetail.FILE_ID = dicFiles[(Guid)srcImgFileDetail.FILE_ID];
if (srcImgFileDetail.IMG_FILE_ID != null)
srcImgFileDetail.IMG_FILE_ID = dicImgFiles[(Guid)srcImgFileDetail.IMG_FILE_ID];
dicImgFileDetails.Add(oldItenID, tenantImgFileDetail.ID);
saveImgFileDetails.Add(srcImgFileDetail);//添加到对应租户
}
else//新增
{
var newItemID = Guid.NewGuid();
var oldItenID = srcImgFileDetail.ID;
srcImgFileDetail.SRC_ID = srcImgFileDetail.ID;
srcImgFileDetail.ID = newItemID;
srcImgFileDetail.ORG_ID = tenant.ID;
if (srcImgFileDetail.FILE_ID != null)
srcImgFileDetail.FILE_ID = dicFiles[(Guid)srcImgFileDetail.FILE_ID];
if (srcImgFileDetail.IMG_FILE_ID != null)
srcImgFileDetail.IMG_FILE_ID = dicImgFiles[(Guid)srcImgFileDetail.IMG_FILE_ID];
dicImgFileDetails.Add(oldItenID, newItemID);
addImgFileDetails.Add(srcImgFileDetail);
}
}
foreach (var item in srcPicFiles)//图片资源
{
T_BD_PICTURE_FILE srcPicFile = item;
if (tenantPicFiles.Any(x => x.SRC_ID == item.ID))//修改
{
var tenantPicFile = tenantPicFiles.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldItenID = srcPicFile.ID;
srcPicFile.SRC_ID = srcPicFile.ID;
srcPicFile.ID = tenantPicFile.ID;
srcPicFile.ORG_ID = tenantPicFile.ORG_ID;
if (srcPicFile.IMG_FILE_ID != null)
srcPicFile.IMG_FILE_ID = dicImgFiles[(Guid)srcPicFile.IMG_FILE_ID];
if (srcPicFile.PICTURE_ID != null)
srcPicFile.PICTURE_ID = dicPictures[(Guid)srcPicFile.PICTURE_ID];
dicPicFiles.Add(oldItenID, tenantPicFile.ID);
savePicFiles.Add(srcPicFile);//添加到对应租户
}
else//新增
{
var newItemID = Guid.NewGuid();
var oldItenID = srcPicFile.ID;
srcPicFile.SRC_ID = srcPicFile.ID;
srcPicFile.ID = newItemID;
srcPicFile.ORG_ID = tenant.ID;
if (srcPicFile.IMG_FILE_ID != null)
srcPicFile.IMG_FILE_ID = dicImgFiles[(Guid)srcPicFile.IMG_FILE_ID];
if (srcPicFile.PICTURE_ID != null)
srcPicFile.PICTURE_ID = dicPictures[(Guid)srcPicFile.PICTURE_ID];
dicPicFiles.Add(oldItenID, newItemID);
addPicFiles.Add(srcPicFile);
}
}
foreach (var item in srcPicFilters)//图片条件主表
{
T_PF_PIC_FILTER srcPicFilter = item;
if (tenantPicFilters.Any(x => x.SRC_ID == item.ID))//修改
{
var tenantPicFilter = tenantPicFilters.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldItenID = srcPicFilter.ID;
srcPicFilter.SRC_ID = srcPicFilter.ID;
srcPicFilter.ID = tenantPicFilter.ID;
srcPicFilter.ORG_ID = tenantPicFilter.ORG_ID;
if (srcPicFilter.PICTURE_ID != null)
srcPicFilter.PICTURE_ID = dicPictures[srcPicFilter.PICTURE_ID];
dicPicFilters.Add(oldItenID, tenantPicFilter.ID);
savePicFilters.Add(srcPicFilter);//添加到对应租户
}
else//新增
{
var newItemID = Guid.NewGuid();
var oldItenID = srcPicFilter.ID;
srcPicFilter.SRC_ID = srcPicFilter.ID;
srcPicFilter.ID = newItemID;
srcPicFilter.ORG_ID = tenant.ID;
if (srcPicFilter.PICTURE_ID != null)
srcPicFilter.PICTURE_ID = dicPictures[srcPicFilter.PICTURE_ID];
dicPicFilters.Add(oldItenID, newItemID);
addPicFilters.Add(srcPicFilter);
}
}
foreach (var item in srcPicFilterDetails)//图片条件主表
{
T_PF_PIC_FILTER_DETAIL srcPicFilterDetail = item;
if (tenantPicFilterDetails.Any(x => x.SRC_ID == item.ID))//修改
{
var tenantPicFilterDetail = tenantPicFilterDetails.FirstOrDefault(x => x.SRC_ID == item.ID);
var oldItenID = srcPicFilterDetail.ID;
srcPicFilterDetail.SRC_ID = srcPicFilterDetail.ID;
srcPicFilterDetail.ID = tenantPicFilterDetail.ID;
srcPicFilterDetail.ORG_ID = tenantPicFilterDetail.ORG_ID;
if (srcPicFilterDetail.PIC_FILTER_ID != null)
srcPicFilterDetail.PIC_FILTER_ID = dicPicFilters[srcPicFilterDetail.PIC_FILTER_ID];
dicPicFilterDetails.Add(oldItenID, tenantPicFilterDetail.ID);
savePicFilterDetails.Add(srcPicFilterDetail);//添加到对应租户
}
else//新增
{
var newItemID = Guid.NewGuid();
var oldItenID = srcPicFilterDetail.ID;
srcPicFilterDetail.SRC_ID = srcPicFilterDetail.ID;
srcPicFilterDetail.ID = newItemID;
srcPicFilterDetail.ORG_ID = tenant.ID;
if (srcPicFilterDetail.PIC_FILTER_ID != null)
srcPicFilterDetail.PIC_FILTER_ID = dicPicFilters[srcPicFilterDetail.PIC_FILTER_ID];
dicPicFilterDetails.Add(oldItenID, newItemID);
addPicFilterDetails.Add(srcPicFilterDetail);
}
}
if (!tenantDataFrequency.Any(x => x.ORG_ID == tenant.ID))//数据采集频率
{
foreach (var item in srcDataFrequency)
{
T_PF_DATA_FREQUENCY dataFrequency = item;
var newCodeRuleID = Guid.NewGuid();
dataFrequency.ID = newCodeRuleID;
dataFrequency.ORG_ID = tenant.ID;
addDataFrequency.Add(dataFrequency);//添加到对应租户
}
}
#region
if (!tenantUser.Any(x => x.ORG_ID == tenant.ID) && !tenantRole.Any(x => x.ORG_ID == tenant.ID) && !tenantUserBelongRole.Any(x => x.ORG_ID == tenant.ID))
{
T_FM_USER user = new T_FM_USER();
user.ID = Guid.NewGuid();
user.IS_DELETED = false;
user.ORG_ID = tenant.ID;
user.NAME = "管理员";
user.CODE = "admin";
user.PASSWORD = "E10ADC3949BA59ABBE56E057F20F883E";
user.ENTITY_ORG_TPYE = 0;
user.FLOW_STATUS = 0;
user.FLOW_SEND_STATUS = 0;
user.ENABLE_STATUS = 0;
T_FM_ROLE role = new T_FM_ROLE();
role.ID = Guid.NewGuid();
role.IS_DELETED = false;
role.ORG_ID = tenant.ID;
role.NAME = "管理员";
role.CODE = "admin";
role.ENTITY_ORG_TPYE = 0;
role.FLOW_STATUS = 0;
role.FLOW_SEND_STATUS = 0;
role.ENABLE_STATUS = 0;
role.ROLE_TYPE = 99;
role.PLATFORM_TYPE = 0;
T_FM_USER_BELONG_ROLE userBelongRole = new T_FM_USER_BELONG_ROLE();
userBelongRole.ID = Guid.NewGuid();
userBelongRole.IS_DELETED = false;
userBelongRole.ORG_ID = tenant.ID;
userBelongRole.ENTITY_ORG_TPYE = 0;
userBelongRole.FLOW_STATUS = 0;
userBelongRole.FLOW_SEND_STATUS = 0;
userBelongRole.USER_ID = user.ID;
userBelongRole.BELONG_ROLE_ID = role.ID;
saveUser.Add(user);
saveRole.Add(role);
saveUserBelongRole.Add(userBelongRole);
tenant.USER_ID = user.ID;
}
#endregion
foreach (var CheckKey in tenant.CheckKeys)
{
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)
{
if (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>(null, filter).FirstOrDefault(x => x.ID == checkMenu.Node.MENU_FORM_ID);//OPT
//T_PF_MENU t_PF_MENU = this.GetEntities<T_PF_MENU>(null, 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));
var formId = string.Empty;
if (tenantMenus.Any(x => x.SRC_ID == new Guid(CheckKey)))//菜单存在
{
#region
//var tanentForm = this.GetEntities<T_PF_FORM>(null, 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) //表单存在
{
formId = tanentForm.ID.ToString();
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, tenant.ID, 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 = tenant.ID;
t_PF_FORM.Nav_Org = null;
if (t_PF_FORM != null)
{
savePermPFForm.Add(t_PF_FORM);//添加表单到对应租户
}
}
}
}
else
{
#region
var newFormID = Guid.NewGuid();
formId = newFormID.ToString();
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, tenant.ID, 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 = tenant.ID;
t_PF_FORM.Nav_Org = null;
if (t_PF_FORM != null)
{
addEntity.Forms.Add(t_PF_FORM);//添加表单到对应租户
}
}
}
#endregion
}
#endregion
#region
var tenantMenu = tenantMenus.FirstOrDefault(x => x.SRC_ID == new Guid(CheckKey));
if (!permOPMenu.Any(x => x.MENU_ID == new Guid(CheckKey)))//未授权
{
savePermOPMenu.Add(new T_OP_ROLE_MENU()
{
TENANT_ID = tenant.ID,
MENU_ID = new Guid(CheckKey),
TENANT_MENU_ID = tenantMenu.ID,
ORG_ID = tenant.ID
});//菜单授权
}
t_PF_MENU.SRC_ID = new Guid(CheckKey);
t_PF_MENU.ID = tenantMenu.ID;
t_PF_MENU.ORG_ID = tenant.ID;
t_PF_MENU.IS_PERMISSION_MENU = true;
if (!tenantInfo.DicForm.ContainsKey(t_PF_MENU.MENU_FORM_ID.ToString()))
{
tenantInfo.DicForm.Add(t_PF_MENU.MENU_FORM_ID.ToString(), formId);
t_PF_MENU.MENU_FORM_ID = new Guid(formId);
}
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, tenant.ID, 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 = tenant.ID;
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 = tenant.ID;
t_PF_MENU.IS_PERMISSION_MENU = true;
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()]);
}
//if (!MenuFormRelation.ContainsKey(new Guid(t_PF_MENU.MENU_FORM_ID.ToString())))
//{
// MenuFormRelation.Add(new Guid(t_PF_MENU.MENU_FORM_ID.ToString()), newFormID);
// t_PF_MENU.MENU_FORM_ID = newFormID;
//}
//else
//{
// t_PF_MENU.MENU_FORM_ID = MenuFormRelation[new Guid(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 = this.GetEntities<T_PF_MENU>(null, filter).Where(x => x.ID == new Guid(CheckKey)).FirstOrDefault();
T_PF_MENU t_PF_MENU = srcMenus.FirstOrDefault(x => x.ID == new Guid(CheckKey));
if (t_PF_MENU != null)
{
if (tenantMenus.Any(x => x.SRC_ID == new Guid(CheckKey)))//菜单存在
{
var tenantMenu = tenantMenus.FirstOrDefault(x => x.SRC_ID == new Guid(CheckKey));
if (!permOPMenu.Any(x => x.MENU_ID == new Guid(CheckKey)))//未授权
{
savePermOPMenu.Add(new T_OP_ROLE_MENU() { TENANT_ID = tenant.ID, MENU_ID = new Guid(CheckKey), TENANT_MENU_ID = tenantMenu.ID, ORG_ID = tenant.ID });//菜单授权
}
t_PF_MENU.SRC_ID = checkMenu.Node.ID;
t_PF_MENU.ID = tenantMenu.ID;
t_PF_MENU.ORG_ID = tenantMenu.ORG_ID;
t_PF_MENU.IS_PERMISSION_MENU = true;
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 = tenant.ID;
t_PF_MENU.IS_PERMISSION_MENU = true;
relationMenu.Add(CheckKey, checkMenu.Node.PARENT_ID);
newRelationMenu.Add(CheckKey, newMenuID.ToString());
addPermPFMenu.Add(t_PF_MENU);
}
}
}
}
}
//var deleteFilter = new BaseFilter(tenant.ID);//OPT创建的菜单,表单等
//deleteFilter.Level = -1;
//deleteFilter.IsParentData = true;
//var tenantMenusTree = this.GetTreeOrderEntities<T_PF_MENU>(x => x.ENABLE_STATUS == (int)FMEnableStatusEnum.启用, deleteFilter);
foreach (var item in permOPMenu)
{
if (!dicMenu.Keys.Contains(item.MENU_ID))
{
var deleteMenu = tenantMenuTrees.FirstOrDefault(x => x.Node.ID == item.TENANT_MENU_ID);
if (deleteMenu == null)
{
foreach (var tenantMenu in tenantMenuTrees)
{
deleteMenu = selectNode(tenantMenu, item.TENANT_MENU_ID.ToString());
if (deleteMenu != null)
break;
}
}
if (deleteMenu != null)
{
var cancelMenu = tenantMenus.Where(x => x.ID == deleteMenu.Node.ID).FirstOrDefault();
deletePermPFMenu.Add(cancelMenu);
var subMenus = this.GetEntities<T_PF_MENU>(x => x.SRC_ID == deleteMenu.Node.ID, orgFilter);
cancelMenu.IS_PERMISSION_MENU = false;
foreach (var subMenu in subMenus)//子菜单权限也要回收
{
subMenu.IS_PERMISSION_MENU = false;
deletePermPFMenu.Add(subMenu);
}
deletePermOPMenu.Add(item.ID);
}
}
}
#region
foreach (var item in relationMenu)
{
if (item.Value != null)
{
var newMenuID = newRelationMenu[item.Key];//需要更新父ID
if (newRelationMenu.ContainsKey(item.Value.ToString()))
{
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()]);
}
if (addPermPFMenu != null && addPermPFMenu.Any(x => x.ID == new Guid(newMenuID)))
{
addPermPFMenu.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()]);
}
}
foreach (var item in addEntity.PageTables)
{
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()]);
}
}
foreach (var item in addEntity.PageEdits)
{
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
foreach (var item in savePermPFMenu)
{
if (item.PICTURE_ID != null && dicPictures.ContainsKey((Guid)item.PICTURE_ID))
{
item.PICTURE_ID = dicPictures[(Guid)item.PICTURE_ID];
}
}
foreach (var item in addPermPFMenu)
{
if (item.PICTURE_ID != null && dicPictures.ContainsKey((Guid)item.PICTURE_ID))
{
item.PICTURE_ID = dicPictures[(Guid)item.PICTURE_ID];
}
}
foreach (var item in savePicFilters)//图片条件主表
{
if (item.PAGE_FORM_ID != null && savePermPFForm.Any(x => x.SRC_ID == item.PAGE_FORM_ID))
{
item.PAGE_FORM_ID = savePermPFForm.FirstOrDefault(x => x.SRC_ID == item.PAGE_FORM_ID).ID;
}
if (item.PAGE_FORM_ID != null && addEntity.Forms.Any(x => x.SRC_ID == item.PAGE_FORM_ID))
{
item.PAGE_FORM_ID = addEntity.Forms.FirstOrDefault(x => x.SRC_ID == item.PAGE_FORM_ID).ID;
}
}
foreach (var item in addPicFilters)
{
if (item.PAGE_FORM_ID != null && savePermPFForm.Any(x => x.SRC_ID == item.PAGE_FORM_ID))
{
item.PAGE_FORM_ID = savePermPFForm.FirstOrDefault(x => x.SRC_ID == item.PAGE_FORM_ID).ID;
}
if (item.PAGE_FORM_ID != null && addEntity.Forms.Any(x => x.SRC_ID == item.PAGE_FORM_ID))
{
item.PAGE_FORM_ID = addEntity.Forms.FirstOrDefault(x => x.SRC_ID == item.PAGE_FORM_ID).ID;
}
}
#endregion
#region
var idssd = addEntity.PageTables.Where(i => i.PAGE_FORM_ID != null).Select(i => i.PAGE_FORM_ID ?? Guid.Empty).ToList();
var idssa = addEntity.PageEdits.Where(i => i.PAGE_FORM_ID != null).Select(i => i.PAGE_FORM_ID ?? Guid.Empty).ToList();
var idssb = addEntity.PageTrees.Where(i => i.PAGE_FORM_ID != null).Select(i => i.PAGE_FORM_ID ?? Guid.Empty).ToList();
var idsse = addEntity.PageCustoms.Where(i => i.PAGE_FORM_ID != null).Select(i => i.PAGE_FORM_ID ?? Guid.Empty).ToList();
List<Guid> idss = new List<Guid>();
idss.AddRange(idssd);
idss.AddRange(idssa);
idss.AddRange(idssb);
idss.AddRange(idsse);
var addPermPFMenuas = addPermPFMenu.Where(i => !idss.Contains(i.MENU_FORM_ID ?? Guid.Empty) && i.MENU_FORM_ID != null).Select(i=>i.ID);
addPermPFMenu.RemoveAll(i => addPermPFMenuas.Contains(i.ID));
var Connnect = targetDB.DB_CONN;
using (var context = new MigrationContext(Connnect))
{
try
{
if (addEnumType != null && addEnumType.Any())
context.AddEntities(addEnumType);
if (saveEnumType != null && saveEnumType.Any())
context.UpdateEntities(saveEnumType);
if (addEnum != null && addEnum.Any())
context.AddEntities(addEnum);
if (saveEnum != null && saveEnum.Any())
context.UpdateEntities(saveEnum);
if (addEnumItem != null && addEnumItem.Any())
context.AddEntities(addEnumItem);
if (saveEnumItem != null && saveEnumItem.Any())
context.UpdateEntities(saveEnumItem);
if (savePictures != null && savePictures.Any())
context.UpdateEntities(savePictures);//图片
if (addPictures != null && addPictures.Any())
context.AddEntities(addPictures);//图片
if (saveFiles != null && saveFiles.Any())
context.UpdateEntities(saveFiles);//图片
if (addFiles != null && addFiles.Any())
context.AddEntities(addFiles);//图片
if (saveImgFiles != null && saveImgFiles.Any())
context.UpdateEntities(saveImgFiles);//图片
if (addImgFiles != null && addImgFiles.Any())
context.AddEntities(addImgFiles);//图片
if (saveImgFileDetails != null && saveImgFileDetails.Any())
context.UpdateEntities(saveImgFileDetails);//图片
if (addImgFileDetails != null && addImgFileDetails.Any())
context.AddEntities(addImgFileDetails);//图片
if (savePicFiles != null && savePicFiles.Any())
context.UpdateEntities(savePicFiles);//图片
if (addPicFiles != null && addPicFiles.Any())
context.AddEntities(addPicFiles);//图片
if (saveImportConfigs != null && saveImportConfigs.Any())
context.UpdateEntities(saveImportConfigs);//导入
if (addImportConfigs != null && addImportConfigs.Any())
context.AddEntities(addImportConfigs);//导入
if (saveImportConfigDetails != null && saveImportConfigDetails.Any())
context.UpdateEntities(saveImportConfigDetails);//导入
if (addImportConfigDetails != null && addImportConfigDetails.Any())
context.AddEntities(addImportConfigDetails);//导入
if (saveImportConfigFields != null && saveImportConfigFields.Any())
context.UpdateEntities(saveImportConfigFields);//导入
if (addImportConfigFields != null && addImportConfigFields.Any())
context.AddEntities(addImportConfigFields);//导入
if (deletePermPFMenu != null && deletePermPFMenu.Any())
context.UpdateEntities(deletePermPFMenu);
if (savePermPFForm != null && savePermPFForm.Any())
context.UpdateEntities(savePermPFForm);
if (addEntity.Forms != null && addEntity.Forms.Any())
context.AddRange(addEntity.Forms);
if (savePicFilters != null && savePicFilters.Any())
context.UpdateEntities(savePicFilters);
if (addPicFilters != null && addPicFilters.Any())
context.AddRange(addPicFilters);
if (savePicFilterDetails != null && savePicFilterDetails.Any())
context.UpdateEntities(savePicFilterDetails);
if (addPicFilterDetails != null && addPicFilterDetails.Any())
context.AddRange(addPicFilterDetails);
if (saveParamItems != null && saveParamItems.Any())
context.UpdateEntities(saveParamItems);
if (addParamItems != null && addParamItems.Any())
context.AddEntities(addParamItems);
if (saveParamSchemes != null && saveParamSchemes.Any())
context.UpdateEntities(saveParamSchemes);
if (addParamSchemes != null && addParamSchemes.Any())
context.AddEntities(addParamSchemes);
if (saveParamSchemeDetails != null && saveParamSchemeDetails.Any())
context.UpdateEntities(saveParamSchemeDetails);
if (addParamSchemeDetails != null && addParamSchemeDetails.Any())
context.AddEntities(addParamSchemeDetails);
if (savePermPageEdit != null && savePermPageEdit.Any())
context.UpdateEntities(savePermPageEdit);
if (addEntity.PageEdits != null && addEntity.PageEdits.Any())
context.AddRange(addEntity.PageEdits);
if (saveEditPanels != null && saveEditPanels.Any())
context.UpdateEntities(saveEditPanels);
if (addEntity.EditPanels != null && addEntity.EditPanels.Any())
context.AddEntities(addEntity.EditPanels);
if (saveEditColumns != null && saveEditColumns.Any())
context.UpdateEntities(saveEditColumns);
if (addEntity.EditColumns != null && addEntity.EditColumns.Any())
context.AddEntities(addEntity.EditColumns);
if (saveEditColumnFilters != null && saveEditColumnFilters.Any())
context.UpdateEntities(saveEditColumnFilters);
if (addEntity.EditColumnFilters != null && addEntity.EditColumnFilters.Any())
context.AddEntities(addEntity.EditColumnFilters);
if (saveEditColumnFillMaps != null && saveEditColumnFillMaps.Any())
context.UpdateEntities(saveEditColumnFillMaps);
if (addEntity.EditColumnFillMaps != null && addEntity.EditColumnFillMaps.Any())
context.AddEntities(addEntity.EditColumnFillMaps);
if (saveEditColumnFillMapDs != null && saveEditColumnFillMapDs.Any())
context.UpdateEntities(saveEditColumnFillMapDs);
if (addEntity.EditColumnFillMapDs != null && addEntity.EditColumnFillMapDs.Any())
context.AddEntities(addEntity.EditColumnFillMapDs);
if (savePermPageCustom != null && savePermPageCustom.Any())
context.UpdateEntities(savePermPageCustom);
if (addEntity.PageCustoms != null && addEntity.PageCustoms.Any())
context.AddEntities(addEntity.PageCustoms);
if (savePermPageChart != null && savePermPageChart.Any())
context.UpdateEntities(savePermPageChart);
if (addEntity.PageCharts != null && addEntity.PageCharts.Any())
context.AddEntities(addEntity.PageCharts);
if (saveChartParams != null && saveChartParams.Any())
context.UpdateEntities(saveChartParams);
if (addEntity.ChartParams != null && addEntity.ChartParams.Any())
context.AddEntities(addEntity.ChartParams);
if (savePermPageTable != null && savePermPageTable.Any())
context.UpdateEntities(savePermPageTable);
if (addEntity.PageTables != null && addEntity.PageTables.Any())
context.AddEntities(addEntity.PageTables);
if (saveTablePanels != null && saveTablePanels.Any())
context.UpdateEntities(saveTablePanels);
if (addEntity.TablePanels != null && addEntity.TablePanels.Any())
context.AddEntities(addEntity.TablePanels);
if (savePermCloumn != null && savePermCloumn.Any())
context.UpdateEntities(savePermCloumn);
if (addEntity.Columns != null && addEntity.Columns.Any())
context.AddEntities(addEntity.Columns);
if (saveColumFilters != null && saveColumFilters.Any())
context.UpdateEntities(saveColumFilters);
if (addEntity.ColumnFilters != null && addEntity.ColumnFilters.Any())
context.AddEntities(addEntity.ColumnFilters);
if (saveTableParams != null && saveTableParams.Any())
context.UpdateEntities(saveTableParams);
if (addEntity.TableParams != null && addEntity.TableParams.Any())
context.AddEntities(addEntity.TableParams);
if (saveFormQuerys != null && saveFormQuerys.Any())
context.UpdateEntities(saveFormQuerys);
if (addEntity.FormQuerys != null && addEntity.FormQuerys.Any())
context.AddEntities(addEntity.FormQuerys);
if (saveQuerys != null && saveQuerys.Any())
context.UpdateEntities(saveQuerys);
if (addEntity.Querys != null && addEntity.Querys.Any())
context.AddEntities(addEntity.Querys);
if (savePermPageTree != null && savePermPageTree.Any())
context.UpdateEntities(savePermPageTree);
if (addEntity.PageTrees != null && addEntity.PageTrees.Any())
context.AddEntities(addEntity.PageTrees);
if (saveTreeColumns != null && saveTreeColumns.Any())
context.UpdateEntities(saveTreeColumns);
if (addEntity.TreeColumns != null && addEntity.TreeColumns.Any())
context.AddEntities(addEntity.TreeColumns);
if (savePermBtn != null && savePermBtn.Any())
context.UpdateEntities(savePermBtn);
if (addEntity.Btns != null && addEntity.Btns.Any())
context.AddEntities(addEntity.Btns);
if (savePermPFMenu != null && savePermPFMenu.Any())
context.UpdateEntities(savePermPFMenu);
if (addPermPFMenu != null && addPermPFMenu.Any())
context.AddEntities(addPermPFMenu);
if (savePermPFFormRelation != null && savePermPFFormRelation.Any())
context.UpdateEntities(savePermPFFormRelation);
if (addEntity.FormRelations != null && addEntity.FormRelations.Any())
context.AddEntities(addEntity.FormRelations);
if (saveCodeRules != null && saveCodeRules.Any())
context.UpdateEntities(saveCodeRules);
if (addCodeRules != null && addCodeRules.Any())
context.AddEntities(addCodeRules);
if (saveSyncTasks != null && saveSyncTasks.Any())
context.UpdateEntities(saveSyncTasks);
if (addSyncTasks != null && addSyncTasks.Any())
context.AddEntities(addSyncTasks);
if (tenantBaseConfig == null)
context.AddEntity(baseConfig);
if (saveVersions != null && saveVersions.Any())
context.AddEntities(saveVersions);
if (saveUser != null && saveUser.Any())
context.AddEntities(saveUser);
if (saveRole != null && saveRole.Any())
context.AddEntities(saveRole);
if (saveUserBelongRole != null && saveUserBelongRole.Any())
context.AddEntities(saveUserBelongRole);
if (addDataFrequency != null && addDataFrequency.Any())
context.AddEntities(addDataFrequency);
context.SaveChanges();
}
catch (Exception ex)
{
context.RollbackTransaction();
this.ThrowError("010001", ex.Message + ",StackTrace:" + ex.StackTrace + ",Source:" + ex.Source);
}
}
UnifiedCommit(() =>
{
if (savePermOPMenu != null && savePermOPMenu.Any())
this.BantchSaveEntityNoCommit(savePermOPMenu);
if (deletePermOPMenu.Count > 0)
this.BantchDeleteEntityNoCommit<T_OP_ROLE_MENU>(deletePermOPMenu);
});
#endregion
}
else
{
if (permOPMenu.Count > 0)
{
deletePermOPMenu.AddRange(permOPMenu.Select(x => x.ID).ToList());
}
if (tenantMenus.Count > 0)
{
foreach (var item in tenantMenus)
{
item.IS_PERMISSION_MENU = false;
deletePermPFMenu.Add(item);
}
}
#region
var Connnect = targetDB.DB_CONN;
using (var context = new MigrationContext(Connnect))
{
try
{
if (deletePermPFMenu != null && deletePermPFMenu.Any())
context.UpdateEntities(deletePermPFMenu);
context.SaveChanges();
}
catch (Exception ex)
{
this.ThrowError("010001", ex.Message + ",StackTrace:" + ex.StackTrace + ",Source:" + ex.Source);
}
}
#endregion
UnifiedCommit(() =>
{
this.UpdateEntityNoCommit(tenant);
if (deletePermOPMenu.Count > 0)
this.BantchDeleteEntityNoCommit<T_OP_ROLE_MENU>(deletePermOPMenu);
});
}
return true;
});
}
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;
}
}
/// <summary>
///
/// </summary>
/// <param name="t_PF_FORMs"></param>
/// <param name="optFormRelations"></param>
/// <param name="form"></param>
/// <param name="savePermPFForm"></param>
/// <param name="pageTablePerm"></param>
/// <param name="savePermPageTable"></param>
/// <param name="optTablePanels"></param>
/// <param name="saveTablePanels"></param>
/// <param name="optTableParams"></param>
/// <param name="saveTableParams"></param>
/// <param name="optColumFilters"></param>
/// <param name="saveColumFilters"></param>
/// <param name="savePermCloumn"></param>
/// <param name="editTablePerm"></param>
/// <param name="savePermPageEdit"></param>
/// <param name="optEditPanels"></param>
/// <param name="saveEditPanels"></param>
/// <param name="saveEditColumns"></param>
/// <param name="optEditColumnFilters"></param>
/// <param name="saveEditColumnFilters"></param>
/// <param name="optEditColumnFillMaps"></param>
/// <param name="saveEditColumnFillMaps"></param>
/// <param name="optEditColumnFillMapDs"></param>
/// <param name="saveEditColumnFillMapDs"></param>
/// <param name="treeTablePerm"></param>
/// <param name="savePermPageTree"></param>
/// <param name="optTreeColumns"></param>
/// <param name="saveTreeColumns"></param>
/// <param name="charPerm"></param>
/// <param name="savePermPageChart"></param>
/// <param name="optChartParams"></param>
/// <param name="saveChartParams"></param>
/// <param name="customPerm"></param>
/// <param name="savePermPageCustom"></param>
/// <param name="savePermBtn"></param>
/// <param name="optFormQuerys"></param>
/// <param name="saveFormQuerys"></param>
/// <param name="optQuerys"></param>
/// <param name="saveQuerys"></param>
/// <param name="newSchemes"></param>
/// <param name="newTablePanels"></param>
/// <param name="newEditPanels"></param>
/// <param name="tenantID"></param>
/// <param name="pageFormID"></param>
/// <param name="filter"></param>
/// <param name="existForm"></param>
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
if (form.NAME.Contains("部门"))
{
var x = 0;
}
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;
}
}
}
/// <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>();//最终返回树结果
List<TreeNode<T_PF_MENU>> menuTree = null;
//var filter = new BaseFilter(new Guid(pageFilter.Parameter6));//OPT OrgId
var orgFilter = new BaseFilter();
orgFilter.IgnoreOrgRule = true;
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).ToList();
}
}
menuTree.RemoveAll(i => i.Node?.ENABLE_STATUS == (int)FMEnableStatusEnum.);
menuTree.ForEach(i => i.Children?.RemoveAll(x => x.Node?.ENABLE_STATUS == (int)FMEnableStatusEnum.));
menuTree.SelectMany(i => i.Children).ToList().RemoveAll(x => x.Node?.ENABLE_STATUS == (int)FMEnableStatusEnum.);
string tenantId = pageFilter.Keyword;//租户ID
List<T_OP_ROLE_MENU> permissionMenu = null;
if (!string.IsNullOrEmpty(tenantId))
{
permissionMenu = this.GetEntities<T_OP_ROLE_MENU>(x => x.TENANT_ID == new Guid(tenantId), orgFilter).ToList();
}
List<FormInfo> formInfos = new List<FormInfo>();
List<string> checks = new List<string>();
List<string> checkLastKey = 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);
}
var rlt = new RolePermissionResul() { checks = checks, checkLastKey = checkLastKey, rolePermissionTreeModels = result };
return rlt;
});
}
public void AddChildren(TreeNode<T_PF_MENU> treeNode, IEnumerable<T_OP_ROLE_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);
}
}
}
/// <summary>
/// 添加表
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="tableType">opt</param>
/// <param name="pageFormID"></param>
/// <param name="tenantID"></param>
/// <param name="savePermPageTable"></param>
/// <returns></returns>
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;
pageEdit.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);
}
}
}
}
/// <summary>
/// 添加按钮
/// </summary>
/// <param name="t_PF_FORMs"></param>
/// <param name="form"></param>
/// <param name="pageTablePerm"></param>
/// <param name="editTablePerm"></param>
/// <param name="treeTablePerm"></param>
/// <param name="charPerm"></param>
/// <param name="customPerm"></param>
/// <param name="savePermPFForm"></param>
/// <param name="savePermPageTable"></param>
/// <param name="savePermPageEdit"></param>
/// <param name="savePermPageTree"></param>
/// <param name="savePermPageChart"></param>
/// <param name="savePermPageCustom"></param>
/// <param name="savePermBtn"></param>
/// <param name="savePermCloumn"></param>
/// <param name="tenantID"></param>
/// <param name="pageFormID"></param>
/// <param name="filter"></param>
/// <param name="existForm"></param>
/// <param name="allBtn"></param>
/// <param name="newTableID"></param>
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);//添加表单到对应租户
}
}
}
}
}
}
}
}