!972 修改顶线拆单数据分段显示

pull/972/MERGE
cf-erp 4 years ago committed by ChenX
parent c50bb3be8d
commit fa2059e126

@ -18,7 +18,7 @@ import { DrillTypeCount } from "../LookOverBoardInfos/LookOverBoardInfosTool";
import { parseParts } from "./ParseParts";
import { HardwareTopline } from "../../DatabaseServices/Hardware/HardwareTopline";
import { Polyline } from "../../DatabaseServices/Entity/Polyline";
import { ICompHardwareOption } from "../../UI/Components/RightPanel/RightPanelInterface";
import { ICompHardwareOption, IHardwareOption } from "../../UI/Components/RightPanel/RightPanelInterface";
import { TemplateWineRackRecord } from './../../DatabaseServices/Template/ProgramTempate/TemplateWineRackRecord';
import { ProcessingGroupRecord } from './../../DatabaseServices/ProcessingGroup/ProcessingGroupRecord';
import { TemplateLatticeRecord } from './../../DatabaseServices/Template/ProgramTempate/TemplateLatticeRecord';
@ -87,9 +87,9 @@ export class ErpParseData
/*归类板件加工组-结束*/
//房间名
let roomName = !entity.BoardProcessOption.roomName || entity.BoardProcessOption.roomName.length < 1 ? "未命名" : entity.BoardProcessOption.roomName;
let roomName = entity.BoardProcessOption.roomName || "未命名";
//柜体
let boxName = !entity.BoardProcessOption.cabinetName || entity.BoardProcessOption.cabinetName.length < 1 ? "未命名" : entity.BoardProcessOption.cabinetName;
let boxName = entity.BoardProcessOption.cabinetName || "未命名";
//板
let block = new OrderDataBlock();
block.ID = blockIndex += 1;
@ -126,11 +126,11 @@ export class ErpParseData
block.SealedRight = this.GetNumberBit(Number(entity.BoardProcessOption.sealedRight), 3); //封边右
}
sealingMap.set(entity, boardData.sealing);
let spliteWidth = boardData.info.spliteWidth.length < 1 ? 0 : Number(boardData.info.spliteWidth); //拆单宽
let spliteWidth = Number(boardData.info.spliteWidth || '0'); //拆单宽
block.SpliteWidth = this.GetNumberBit(spliteWidth, 3);
let spliteHeight = boardData.info.spliteHeight.length < 1 ? 0 : Number(boardData.info.spliteHeight); //拆单高
let spliteHeight = Number(boardData.info.spliteHeight || '0'); //拆单高
block.SpliteHeight = this.GetNumberBit(spliteHeight, 3);
let spliteThickness = boardData.info.spliteThickness.length < 1 ? 0 : Number(boardData.info.spliteThickness); //拆单厚
let spliteThickness = Number(boardData.info.spliteThickness || '0'); //拆单厚
block.SpliteThickness = this.GetNumberBit(spliteThickness, 3);
//板大小
if (spliteWidth > 0)
@ -280,20 +280,13 @@ export class ErpParseData
console.log("加工组拆单数据:", processGroupObjectList);
/*加工组拆单信息-结束*/
for (const entity of metalsList)
for (const entity of metalsList.filter(t => !(t instanceof HardwareTopline)))
{
let spliteData = Production.GetHardwareData(entity as IHardwareType);
if (entity instanceof HardwareTopline) // 顶线处理
{
let topLine = (entity as HardwareTopline);
let polyine = (topLine.Path as Polyline);
let info = spliteData.metalsOption as ICompHardwareOption;
info.name = "顶线";
info.count = ((polyine.CurveCount * Number(topLine.HardwareOption.addLen) + polyine.Length) / 1000).toString();
}
parseParts(spliteData, objectList);
}
objectList.push(...this.GetAllDrillsObjects(boardList));
objectList.push(...this.GetOrderTopLines(metalsList.filter(t => t instanceof HardwareTopline)));//处理顶线
objectList.push(...this.GetOrderSealing(sealingMap));
return { blockList, objectList, processGroupObjectList };
}
@ -617,10 +610,10 @@ export class ErpParseData
let groupList = this.groupBy(list, ['roomName', 'boxName']);
for (const g of groupList)
{
let drills = Production.GetTotalDrillCount(g.value.map(t => t.board));
let drills = Production.GetTotalDrillCount(g.value.map(t => t.board)).drillCount;
let splitList = g.key.split('-');
let roomName = splitList[0].length == 0 ? '未命名' : splitList[0];
let boxName = splitList[1].length == 0 ? '未命名' : splitList[1];
let roomName = splitList[0] || '未命名';
let boxName = splitList[1] || '未命名';
objectList.push(...this.GetDrillObjects(drills, roomName, boxName));
}
return objectList;
@ -630,7 +623,7 @@ export class ErpParseData
return drills.map(t =>
{
let parts = new OrderDataObject();
parts.Name = t.name.length == 0 ? '未命名' : t.name;
parts.Name = t.name || '未命名';
parts.RoomName = RoomName;
parts.BoxName = BoxName;
parts.Num = t.count;
@ -641,14 +634,45 @@ export class ErpParseData
return parts;
});
}
GetOrderTopLines(hardWares: IHardwareType[])
{
let topLines = Production.GetTotalDrillCount(hardWares).hardwareCount;
let partsList: OrderDataObject[] = [];
for (const t of topLines)
{
let option: IHardwareOption = Production.GetHardwareData(t.entity as IHardwareType).metalsOption;
let price: number = 0;
price = Number(Number(option.actualExpr || '0').toFixed(2));
price = price || 0;
for (let i = 0; i < t.count; i++)
{
let parts = new OrderDataObject();
parts.Name = t.name || '未命名';
parts.RoomName = option.roomName || '未命名';
parts.BoxName = option.cabinetName || '未命名';
parts.Num = t.count2;
parts.SalePrice = price;
parts.ObjectType = '顶线';
parts.Spec = option.spec;
parts.Model = option.model;
parts.Brand = option.brand;
parts.Factory = option.factory;
parts.Units = option.unit;
parts.IsComposite = false;
parts.Remark = option.comments;
partsList.push(parts);
}
}
return partsList;
}
GetOrderSealing(map: Map<Board, ISealingData[]>): OrderDataObject[]
{
let objects: OrderDataObject[] = [];
let objs: { room: string, box: string, size: number, length: number; }[] = [];
for (const m of map)
{
let roomName = !m[0].BoardProcessOption.roomName || m[0].BoardProcessOption.roomName.length < 1 ? "未命名" : m[0].BoardProcessOption.roomName;
let boxName = !m[0].BoardProcessOption.cabinetName || m[0].BoardProcessOption.cabinetName.length < 1 ? "未命名" : m[0].BoardProcessOption.cabinetName;
let roomName = m[0].BoardProcessOption.roomName || "未命名";
let boxName = m[0].BoardProcessOption.cabinetName || "未命名";
let list = m[1].filter(t => t.size > 0).map(t => { return { room: roomName, box: boxName, size: t.size, length: t.length }; });
objs.push(...list);
}

@ -10,8 +10,8 @@ export function parseParts(spliteData: ISpliteHardwareData, list: OrderDataObjec
let info = spliteData.metalsOption as ICompHardwareOption;
let parts = new OrderDataObject();
parts.ID = list.length + 1;
parts.RoomName = info.roomName.length == 0 ? '未命名' : info.roomName;
parts.BoxName = info.cabinetName.length == 0 ? '未命名' : info.cabinetName;
parts.RoomName = info.roomName || '未命名';
parts.BoxName = info.cabinetName || '未命名';
parts.Brand = info.brand;
parts.Factory = info.factory;
parts.Remark = info.comments;
@ -31,7 +31,10 @@ export function parseParts(spliteData: ISpliteHardwareData, list: OrderDataObjec
parts.Spec = specList.join('|');
parts.Units = info.unit;
parts.Model = info.model;
parts.SalePrice = Number(Number(info.actualExpr.length === 0 ? 0 : info.actualExpr).toFixed(2));
let price: number = 0;
price = Number(Number(info.actualExpr || '0').toFixed(2));
price = price || 0;
parts.SalePrice = price;
if (parent && parent.ID > 0)
{
if (parent.IsOffer)
@ -48,9 +51,9 @@ export function parseParts(spliteData: ISpliteHardwareData, list: OrderDataObjec
parts.BoxName = parent.BoxName;
}
parts.IsComposite = info.type === EMetalsType.Comp ? true : false;
parts.Name = info.name.length == 0 ? '未命名' : info.name;
parts.Name = info.name || '未命名';
parts.ObjectType = info.name;
parts.Num = Number(info.count);
parts.Num = Number(info.count || 0);
if (info.isSplite && spliteData.children.length > 0)
{
if (info.isSplitePrice == false) // 父五金作为报价信息

@ -802,10 +802,11 @@ export namespace Production
return metalData;
}
/**获取排钻数量 */
export function GetTotalDrillCount(brs: Board[]): DrillTypeCount[]
export function GetTotalDrillCount(brs: (Board | IHardwareType)[])
{
return lookOverBoardInfosTool.GetDrillCount(brs).drillCount;
return lookOverBoardInfosTool.GetDrillCount(brs);
}
export function GetCabSize(brList: Board[]): Map<Board, Vector3>
{
let brMap: Map<string, Board[]> = new Map();

Loading…
Cancel
Save