diff --git a/__test__/DTO/__snapshots__/Board2CADViewer.test.ts.snap b/__test__/DTO/__snapshots__/Board2CADViewer.test.ts.snap index 163ff0b36..83df0fdd0 100644 --- a/__test__/DTO/__snapshots__/Board2CADViewer.test.ts.snap +++ b/__test__/DTO/__snapshots__/Board2CADViewer.test.ts.snap @@ -527,7 +527,7 @@ CADDbBoard { 0.9999999999999999, 0, ], - "CabName": "主卧", + "CabName": "下柜", "Drillings": null, "Grain": 0, "H": 18, @@ -803,7 +803,7 @@ CADDbBoard { 0, 0, ], - "CabName": "主卧", + "CabName": "下柜", "Drillings": null, "Grain": 0, "H": 18, diff --git a/src/Add-on/Erp/ErpCommands.ts b/src/Add-on/Erp/ErpCommands.ts index ed9abaab2..5f6dd32dd 100644 --- a/src/Add-on/Erp/ErpCommands.ts +++ b/src/Add-on/Erp/ErpCommands.ts @@ -22,6 +22,7 @@ import { AppToaster } from "../../UI/Components/Toaster"; import { BoardStore } from "../../UI/Store/BoardStore"; import { Purge } from "../Purge"; import { blockBuilder, objectBuilder } from './CheckBuilder'; +import { ErpGroupBy } from "./ErpGroupBy"; import { ErpView } from "./ErpView"; import { ExceedMind } from "./ExceedBlocksMind"; import { OrderDataBlock, WaveType } from "./Models/CadBlock"; @@ -541,24 +542,6 @@ function checkBoxSize(blockList: OrderDataBlock[]): { result: boolean, warnMsg: }; return { result: true, warnMsg: msg }; } -export function groupBy(data: any[], fileds: string[]) -{ - let groupList = {}; - let groupArray = []; - for (const item of data) - { - let keyList = fileds.map(field => item[field]); - let key = keyList.join("-"); - groupList[key] = groupList[key] || []; - groupList[key].push(item); - groupList[key].keyList = keyList; - } - for (const key in groupList) - { - groupArray.push({ key, keyList: groupList[key].keyList, value: groupList[key] }); - } - return groupArray.sort(); -} //获取房间柜体分组Entitys图纸 function getBoxFiles(entitys: Entity[]) { @@ -569,7 +552,7 @@ function getBoxFiles(entitys: Entity[]) if (t instanceof HardwareTopline || t instanceof HardwareCompositeEntity) return { roomName: t.HardwareOption.roomName || '未命名', boxName: t.HardwareOption.cabinetName || '未命名', entity: t }; }); - const groupList = groupBy(list, ['roomName', 'boxName']); + const groupList = ErpGroupBy(list, ['roomName', 'boxName']); let boxFileList = []; for (const g of groupList) { diff --git a/src/Add-on/Erp/ErpGroupBy.ts b/src/Add-on/Erp/ErpGroupBy.ts new file mode 100644 index 000000000..8899701cb --- /dev/null +++ b/src/Add-on/Erp/ErpGroupBy.ts @@ -0,0 +1,18 @@ +export function ErpGroupBy(data: any[], fileds: string[]) +{ + let groupList = {}; + let groupArray = []; + for (const item of data) + { + let keyList = fileds.map(field => item[field]); + let key = keyList.join("-"); + groupList[key] = groupList[key] || []; + groupList[key].push(item); + groupList[key].keyList = keyList; + } + for (const key in groupList) + { + groupArray.push({ key, keyList: groupList[key].keyList, value: groupList[key] }); + } + return groupArray.sort(); +} diff --git a/src/Add-on/Erp/ParseData.ts b/src/Add-on/Erp/ParseData.ts index 853ba26fc..a2c3915be 100644 --- a/src/Add-on/Erp/ParseData.ts +++ b/src/Add-on/Erp/ParseData.ts @@ -18,16 +18,16 @@ import { EMetalsType } from "../../UI/Components/RightPanel/RightPanelInterface" import { ISealingData } from "../../UI/Store/OptionInterface/IHighSealedItem"; import { FaceDirection } from "../DrawDrilling/DrillType"; // import { DownPanelStore } from "../../UI/Store/DownPanelStore"; +import { HostApplicationServices } from "../../ApplicationServices/HostApplicationServices"; import { InteractionLog, LogType } from "../../Common/Log"; import { Intent, Toaster } from "../../Common/Toaster"; import { Entity } from "../../DatabaseServices/Entity/Entity"; -import { userConfig } from "../../Editor/UserConfig"; import { GetCountOption, ICountType, lookOverBoardInfosTool } from "../LookOverBoardInfos/LookOverBoardInfosTool"; import { HardwareCompositeEntity } from './../../DatabaseServices/Hardware/HardwareCompositeEntity'; import { ProcessingGroupRecord } from './../../DatabaseServices/ProcessingGroup/ProcessingGroupRecord'; import { TemplateLatticeRecord } from './../../DatabaseServices/Template/ProgramTempate/TemplateLatticeRecord'; import { TemplateWineRackRecord } from './../../DatabaseServices/Template/ProgramTempate/TemplateWineRackRecord'; -import { groupBy } from "./ErpCommands"; +import { ErpGroupBy } from "./ErpGroupBy"; import { GetArray, GetPointInfoArray } from "./Models/ArrayHelper"; import { CadType, OrderDataBlock, WaveType } from "./Models/CadBlock"; import { BasePosition, CadBlockHoles, CadBlockInfo, CadBlockModel, CadBlockModelPoint, CadBlockPoint, FaceType, HoleType, ModelOffSetData } from "./Models/CadBlockInfo"; @@ -769,7 +769,7 @@ export class ErpParseData { return { roomName: t.BoardProcessOption.roomName || '未命名', boxName: t.BoardProcessOption.cabinetName || '未命名', board: t }; }); - let groupList = groupBy(list, ['roomName', 'boxName']); + let groupList = ErpGroupBy(list, ['roomName', 'boxName']); let options: GetCountOption = { getHoles: (name: string, hole: CylinderHole) => { @@ -800,7 +800,7 @@ export class ErpParseData { let holeList = holeMap.get(name); - let groupList = groupBy(holeList.map(t => t.GroupId), ['Index']); + let groupList = ErpGroupBy(holeList.map(t => t.GroupId), ['Index']); for (const g of groupList) { let spec = ''; @@ -844,7 +844,7 @@ export class ErpParseData specList.push({ spec }); } } - let sGroupList = groupBy(specList, ['spec']); + let sGroupList = ErpGroupBy(specList, ['spec']); return sGroupList.map(t => { return { spec: t.key, count: t.value.length }; }); }; for (const g of groupList) @@ -885,11 +885,11 @@ export class ErpParseData UpdateBoardDrillRemark(spliteData: ISpliteOrderData) { - if (userConfig.chaidanOption.drillRemark === false) return; + if (HostApplicationServices.chaidanOption.drillRemark === false) return; const fun = (holes: IDrillingOption[], frontOrSide: FrontOrSide) => { const holeList = holes.map(t => { return { name: t.type == (GangDrillType.Wood || t.type == GangDrillType.WoodPXL) ? '木销' : t.name, type: t.type, face: t.face }; }); - let groupList = groupBy(holeList, ['name', 'type', 'face']); + let groupList = ErpGroupBy(holeList, ['name', 'type', 'face']); let infos: { name: string, type: string, face: string, count: number; }[] = []; for (const g of groupList) {