/// <summary> /// 导出SAP订单工艺及外协信息到Excel文件,并返回文件Token /// </summary> public async Task <FileDto> GetSapOrderProcessWithCooperaterExcel(GetSapOrderProcessWithCooperaterInput input) { var processList = await this.getSapOrderProcessWithCooperQuery(input).ToListAsync(); var resultList = processList.Select(this.mapToSapProcessOutput).ToList(); var fileStream = ExcelOutput.RenderToStream(resultList, new Dictionary <string, DataTableExtension.PropertyConventer> { //订单 { "OrderNumber", new DataTableExtension.PropertyConventer("订单号", null) }, { "MRPController", new DataTableExtension.PropertyConventer("MRP控制者", null) }, { "MaterialNumber", new DataTableExtension.PropertyConventer("物料编码", null) }, { "MaterialDescription", new DataTableExtension.PropertyConventer("物料名称", null) }, { "TargetQuantity", new DataTableExtension.PropertyConventer("订单总计数量", null) }, { "WBSElement", new DataTableExtension.PropertyConventer("WBS元素", null) }, //工艺 { "OperationNumber", new DataTableExtension.PropertyConventer("工序号", null) }, { "OperationCtrlCode", new DataTableExtension.PropertyConventer("控制码", null) }, { "WorkCenterCode", new DataTableExtension.PropertyConventer("工作中心", null) }, { "WorkCenterName", new DataTableExtension.PropertyConventer("工作中心描述", null) }, { "VGW01", new DataTableExtension.PropertyConventer("准备工时", null) }, { "VGW02", new DataTableExtension.PropertyConventer("机器工时", null) }, { "VGW03", new DataTableExtension.PropertyConventer("人工工时", null) }, //外协 { "CooperateType", new DataTableExtension.PropertyConventer("外协类型", p => ((int?)(SapMOrderProcessCooperateType?)p)?.ToString()) }, { "CooperaterCode", new DataTableExtension.PropertyConventer("供方代码", null) }, { "CooperaterName", new DataTableExtension.PropertyConventer("供方名称", null) }, { "CooperaterPrice", new DataTableExtension.PropertyConventer("外协价格", null) }, }); return(this.SaveToTempFolder(fileStream, "SAP工艺列表.xlsx", "application/x-excel")); }
getSapOrderProcessWithCooperQuery(GetSapOrderProcessWithCooperaterInput input) { var query = this._sapMOrderManager.GetSapMOrderProcessListWithCooperateQuery() //条件 .WhereIf(!string.IsNullOrWhiteSpace(input.OrderNumberRangeBegin), p => String.Compare(p.ProcessLine.SapMOrder.OrderNumber, input.OrderNumberRangeBegin, StringComparison.Ordinal) >= 0) .WhereIf(!string.IsNullOrWhiteSpace(input.OrderNumberRangeEnd), p => String.Compare(p.ProcessLine.SapMOrder.OrderNumber, input.OrderNumberRangeEnd, StringComparison.Ordinal) <= 0) .OrderBy(p => p.ProcessLine.SapMOrder.OrderNumber) .ThenBy(p => p.ProcessLine.OperationNumber); return(query); }