|
|
|
@ -13,6 +13,7 @@ import { Board } from "../../DatabaseServices/Entity/Board";
|
|
|
|
|
import { Entity } from "../../DatabaseServices/Entity/Entity";
|
|
|
|
|
import { HardwareCompositeEntity } from "../../DatabaseServices/Hardware/HardwareCompositeEntity";
|
|
|
|
|
import { HardwareTopline } from "../../DatabaseServices/Hardware/HardwareTopline";
|
|
|
|
|
import { IdMaping } from "../../DatabaseServices/IdMaping";
|
|
|
|
|
import { ObjectId } from "../../DatabaseServices/ObjectId";
|
|
|
|
|
import { RoomParseReactor } from "../../DatabaseServices/Room/ParseService/RoomParseReactor";
|
|
|
|
|
import { FontLoader } from "../../DatabaseServices/Text/FontLoader";
|
|
|
|
@ -286,20 +287,14 @@ export class ShareViewService extends ApplicationService
|
|
|
|
|
this.BoxCtrl = new ShareService();
|
|
|
|
|
await this.BoxCtrl.Init();
|
|
|
|
|
}
|
|
|
|
|
//设置图形数据
|
|
|
|
|
/**
|
|
|
|
|
* viewDataList:旧版cadView数据
|
|
|
|
|
* viewFileList:新版cad图纸文件
|
|
|
|
|
* viewFileList.file:图纸文件
|
|
|
|
|
* viewFileList.blockDic:板材信息字典
|
|
|
|
|
* filterIDs:板材过滤id数组,
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
|
|
//获取旧版板件数据
|
|
|
|
|
GetEntitysByViewData(dataList: any[], startIndex: number, blockNoDic: { [index: number]: BlockNoObj; })
|
|
|
|
|
|
|
|
|
|
//插入旧版数据到当前视图
|
|
|
|
|
InsertEntitysByViewData(dataList: any[], startIndex: number, blockNoDic: { [index: number]: BlockNoObj; })
|
|
|
|
|
{
|
|
|
|
|
const entitys: Entity[] = [];
|
|
|
|
|
let index = startIndex;
|
|
|
|
|
let orgBlockNoDic: { [index: number]: BlockNoObj; } = {};
|
|
|
|
|
for (const d of dataList)
|
|
|
|
|
{
|
|
|
|
|
const simpleBoard = new SimpleBoard(d);
|
|
|
|
@ -309,7 +304,7 @@ export class ShareViewService extends ApplicationService
|
|
|
|
|
board.CustomNumber = d.CustomNumber;
|
|
|
|
|
entitys.push(board);
|
|
|
|
|
const blockObj: BlockNoObj = { blockNo: simpleBoard.BlockNo, color: simpleBoard.Color };
|
|
|
|
|
blockNoDic[board.Id.Index] = blockObj;
|
|
|
|
|
orgBlockNoDic[board.Id.Index] = blockObj;
|
|
|
|
|
index++;
|
|
|
|
|
for (const hole of boardEntitys.holes)
|
|
|
|
|
{
|
|
|
|
@ -319,11 +314,35 @@ export class ShareViewService extends ApplicationService
|
|
|
|
|
entitys.push(hole);
|
|
|
|
|
index++;
|
|
|
|
|
}
|
|
|
|
|
board.AppendDrillList(board.Id, [boardEntitys.holes.map(t => t.Id)]);
|
|
|
|
|
}
|
|
|
|
|
let oldIdMap: IdMaping = new Map();//插入数据库后id对应关系
|
|
|
|
|
let filer = new WblockCloneFiler2();
|
|
|
|
|
entitys.forEach(t => t.SetDefaultDb(app.Database));
|
|
|
|
|
//插入数据库
|
|
|
|
|
app.Database.WblockCloneObejcts(entitys, app.Database.ModelSpace, oldIdMap, DuplicateRecordCloning.Ignore, filer);
|
|
|
|
|
//重新更新板信息对应关系字典
|
|
|
|
|
let tempMap = new Map<number, number>();
|
|
|
|
|
oldIdMap.forEach((v, k) =>
|
|
|
|
|
{
|
|
|
|
|
tempMap.set(k.Index, v.Index);
|
|
|
|
|
});
|
|
|
|
|
for (let k in orgBlockNoDic)
|
|
|
|
|
{
|
|
|
|
|
const v = tempMap.get(Number(k));
|
|
|
|
|
if (v)
|
|
|
|
|
blockNoDic[v] = orgBlockNoDic[k];
|
|
|
|
|
}
|
|
|
|
|
return entitys;
|
|
|
|
|
}
|
|
|
|
|
//插入文件数据到当前视图
|
|
|
|
|
insertFiles(viewFileList: { file: CADFiler, blockDic: { [index: number]: BlockNoObj; }; }[], filterIDs: number[], oldBlockNoDic: { [index: number]: BlockNoObj; }, blockNoDic: { [index: number]: BlockNoObj; })
|
|
|
|
|
/**
|
|
|
|
|
* viewFileList:新版cad图纸文件
|
|
|
|
|
* viewFileList.file:图纸文件
|
|
|
|
|
* viewFileList.blockDic:原始板材信息字典
|
|
|
|
|
* filterIDs:板材过滤id数组,
|
|
|
|
|
* blockNoDic:板材信息字典
|
|
|
|
|
**/
|
|
|
|
|
insertFiles(viewFileList: { file: CADFiler, blockDic: { [index: number]: BlockNoObj; }; }[], filterIDs: number[], blockNoDic: { [index: number]: BlockNoObj; })
|
|
|
|
|
{
|
|
|
|
|
for (const vf of viewFileList)
|
|
|
|
|
{
|
|
|
|
@ -360,11 +379,6 @@ export class ShareViewService extends ApplicationService
|
|
|
|
|
blockNoDic[newID.Index] = blockObj;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else//旧版数据map
|
|
|
|
|
{
|
|
|
|
|
const newID = idMap.get(e.Id);
|
|
|
|
|
const dic = oldBlockNoDic[e.Id.Index];
|
|
|
|
|
blockNoDic[newID.Index] = dic;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -478,7 +492,6 @@ export class ShareService
|
|
|
|
|
SetCabinetVisible(cabinetIndex: number, visible: boolean)
|
|
|
|
|
{
|
|
|
|
|
if (cabinetIndex < 0) return;
|
|
|
|
|
const ens = this.GetCabinetEntities(cabinetIndex);
|
|
|
|
|
this.GetCabinetEntities(cabinetIndex).forEach((ent) =>
|
|
|
|
|
{
|
|
|
|
|
ent.Visible = visible;
|
|
|
|
@ -507,16 +520,9 @@ export class ShareService
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
//旧版数据排钻
|
|
|
|
|
let holes = app.Database.ModelSpace.Entitys.filter(t => t instanceof Hole && t.FId.Index == ent.Id.Index);
|
|
|
|
|
for (const h of holes)
|
|
|
|
|
{
|
|
|
|
|
h.Visible = visible;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SetCabinetFormatData(data: ICabinetFormatData)
|
|
|
|
|
{
|
|
|
|
|
this._CabinetFormatData = data;
|
|
|
|
|