!2231 修复获取板件备注时,加工组为空报错问题

pull/2232/head
cf-erp 1 year ago committed by ChenX
parent efc9f64e6d
commit 063d2d318f

@ -202,17 +202,6 @@ export class ErpParseData
// down.progress = 1;
/*加工组拆单信息-开始*/
const objIdFilter = (objId: ObjectId) =>
{
if (!objId || objId.IsErase) return true;
let cadObj = objId?.Object;
if (!cadObj || !(cadObj instanceof Board))
return true;
let temp = cadObj.Template?.Object;
if (temp && (temp instanceof TemplateWineRackRecord))
return cadObj.Name === "层板" || cadObj.Name === "立板";
return false;
};
for (let [str, pg] of pgMap_pg)
{
pg.sort((pg1, pg2) => pg1.Id.Index - pg2.Id.Index);
@ -224,7 +213,7 @@ export class ErpParseData
let boxarrobj: Object3D[] = [];
for (let obj of g.Objects)
{
if (objIdFilter(obj))
if (this.ProcessGroupFilter(obj))
continue;
let cadObj = obj.Object as Board;
for (let b of cadObj.SplitBoards)
@ -251,7 +240,7 @@ export class ErpParseData
let boxarrobj: Object3D[] = [];
for (let t of temp.Objects)
{
if (objIdFilter(t))
if (this.ProcessGroupFilter(t))
continue;
let cadObj = t.Object as Board;
for (let b of cadObj.SplitBoards)
@ -283,7 +272,7 @@ export class ErpParseData
let boxarrobj: Object3D[] = [];
for (let t of temp.Objects)
{
if (objIdFilter(t))
if (this.ProcessGroupFilter(t))
continue;
let cadObj = t.Object as Board;
for (let b of cadObj.SplitBoards)
@ -924,27 +913,30 @@ export class ErpParseData
UpdateBoardInfo(spliteData: ISpliteOrderData, board: Board, splitSize: { spliteHeight: number, spliteWidth: number, spliteThickness: number; })
{
const throughHoleCount:number= spliteData?.holes?.frontBackHoles?.filter(t => t.depth >= board.Thickness).length;
const throughModelCount:number = spliteData?.modeling?.filter(t => t.thickness >= board.Thickness).length;
const has2DModel:boolean = spliteData.modeling2D.length > 0;
const has3DModel:boolean = spliteData.modeling3D.length > 0;
let processList :{name:string,size:{width:number,height:number,depth:number}} []=[];
const throughHoleCount: number = spliteData?.holes?.frontBackHoles?.filter(t => t.depth >= board.Thickness).length;
const throughModelCount: number = spliteData?.modeling?.filter(t => t.thickness >= board.Thickness).length;
const has2DModel: boolean = spliteData.modeling2D.length > 0;
const has3DModel: boolean = spliteData.modeling3D.length > 0;
let processList: { name: string, size: { width: number, height: number, depth: number; }; }[] = [];
for (const pg of board.ProcessingGroupList)
{
const record = pg.Object as ProcessingGroupRecord;
let boxarrobj:Object3D[] = [];
const record = pg?.Object as ProcessingGroupRecord;
if (!record) continue;
let boxarrobj: Object3D[] = [];
for (let obj of record.Objects)
{
if (this.ProcessGroupFilter(obj))
continue;
const cadObj = obj.Object as Board;
for (let b of cadObj.SplitBoards)
{
boxarrobj.push(b.DrawObject);
}
}
const size:Vector3 = GetBoxArr(boxarrobj).getSize(new Vector3());
const size: Vector3 = GetBoxArr(boxarrobj).getSize(new Vector3());
processList.push({ name: record.Name, size: { width: this.GetNumberBit(size.x, 3), height: this.GetNumberBit(size.z, 3), depth: this.GetNumberBit(size.y, 3) } });
}
const info = {boardType:{0:'层板',1:'立板',2:'背板'}[board.BoardType], throughHoleCount, throughModelCount, splitSize, has2DModel, has3DModel, composingFace: { 0: '正面', 1: '反面', 2: '任意面' }[board.BoardProcessOption.composingFace], processList };
const info = { boardType: { 0: '层板', 1: '立板', 2: '背板' }[board.BoardType], throughHoleCount, throughModelCount, splitSize, has2DModel, has3DModel, composingFace: { 0: '正面', 1: '反面', 2: '任意面' }[board.BoardProcessOption.composingFace], processList };
let remarks = spliteData.info.remarks.slice();
let boardRemark = remarks.find(t => t[0] == '#extra');
if (boardRemark)
@ -953,6 +945,17 @@ export class ErpParseData
remarks.push(['#extra', JSON.stringify(info)]);
spliteData.info.remarks = remarks;
}
ProcessGroupFilter(objId: ObjectId)
{
if (!objId || objId.IsErase) return true;
let cadObj = objId?.Object;
if (!cadObj || !(cadObj instanceof Board))
return true;
let temp = cadObj.Template?.Object;
if (temp && (temp instanceof TemplateWineRackRecord))
return cadObj.Name === "层板" || cadObj.Name === "立板";
return false;
};
groupBy(data: any[], fileds: string[])
{
let groupList = {};

Loading…
Cancel
Save