From 45aff2652aeb912aad28bbb9f7a7d18133c968c9 Mon Sep 17 00:00:00 2001 From: 44673626 <44673626@qq.com> Date: Thu, 14 Apr 2022 17:31:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HQCarSettledDetailDapperRepository.cs | 2 +- .../HQHSettledDetailDapperRepository.cs | 107 +++++++++++++++++- .../BlobFileController.cs | 40 ++++++- 3 files changed, 141 insertions(+), 8 deletions(-) diff --git a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/HQCarSettledDetailDapperRepository.cs b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/HQCarSettledDetailDapperRepository.cs index 07f1d02a..35a5136f 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/HQCarSettledDetailDapperRepository.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/HQCarSettledDetailDapperRepository.cs @@ -410,7 +410,7 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report public decimal 价格差异 { set; get; } [ExporterHeader(DisplayName = "差异总金额")] public decimal 差异总金额 { set; get; } - [ExporterHeader(DisplayName = "寄销库数量")] + [ExporterHeader(DisplayName = "寄销库数量",IsIgnore =true)] public decimal 寄销库数量 { set; get; } diff --git a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/HQHSettledDetailDapperRepository.cs b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/HQHSettledDetailDapperRepository.cs index f6e76952..82d303d0 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/HQHSettledDetailDapperRepository.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/HQHSettledDetailDapperRepository.cs @@ -86,7 +86,8 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report " temp1.外部单号,\n" + " temp1.结算数量,\n" + " temp3.Price AS 结算单价,\n" + - " ( temp1.[结算数量] * ISNULL( temp3.Price, 0 ) ) AS 结算金额,\n" + + " --( temp1.[结算数量] * ISNULL( temp3.Price, 0 ) ) AS 结算金额,\n" + + " ISNULL( temp1.结算金额, 0 ) AS 结算金额,\n" + " isnull( TEMP2.Price, 0 ) AS 发货定价,\n" + " isnull( temp1.发货数量, 0 ) - ISNULL( temp4.Qty, 0 ) AS 实际发货数量,\n" + " ( isnull( temp1.发货数量, 0 ) - ISNULL( temp4.Qty, 0 ) ) * isnull( TEMP2.Price, 0 ) AS 实际发货总金额,\n" + @@ -112,7 +113,8 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report " C.EstimateTypeDesc AS 物料组,\n" + " a.Factory AS 工厂,\n" + " '' AS 看板编号,\n" + - " '' AS 验收单日期 \n" + + " '' AS 验收单日期, \n" + + " isnull( a.Amt, 0 ) AS 结算金额\n" + " FROM\n" + " (\n" + " SELECT SUM\n" + @@ -123,7 +125,7 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report " StorageLocation,\n" + " StorageLocationDesc,\n" + " Factory,\n" + - " ExternalKanbanNumber \n" + + " ExternalKanbanNumber,Amt \n" + " FROM\n" + " Set_HQ_H_Platform \n" + " GROUP BY\n" + @@ -133,7 +135,7 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report " StorageLocation,\n" + " StorageLocationDesc,\n" + " Factory,\n" + - " ExternalKanbanNumber \n" + + " ExternalKanbanNumber,Amt \n" + " ) AS a\n" + " INNER JOIN ( SELECT SUM ( Qty ) AS Qty, Kanban, MaterialCode FROM Set_HQ_H_Kanban GROUP BY Kanban, MaterialCode ) AS b ON a.HQHKanBan = b.Kanban \n" + " AND a.MaterialCode = b.MaterialCode\n" + @@ -156,7 +158,7 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report " AND HQHKanBan <> 'BJ' \n" + " GROUP BY\n" + " HQHKanBan,\n" + - " MaterialCode,\n" + + " MaterialCode,\n" + " Version \n" + " ) AS TEMP3 ON temp1.[结算物料代码] = TEMP3.MaterialCode \n" + " AND temp1.订货看板编号 = TEMP3.HQHKanBan\n" + @@ -164,6 +166,101 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report " AND temp1.Sap编码= temp4.MaterialCode"; + //string str = "SELECT\n" + + //" isnull( temp1.交货单号, '' ) 交货单号,\n" + + //" temp1.交货时间,\n" + + //" temp1.[工厂],\n" + + //" temp1.收货仓库,\n" + + //" temp1.收货仓库描述,\n" + + //" temp1.订货看板编号,\n" + + //" temp1.订货零件号,\n" + + //" temp1.验收单日期,\n" + + //" temp1.Sap编码,\n" + + //" temp1.看板编号,\n" + + //" temp1.物料组,\n" + + //" temp1.零件中文名称,\n" + + //" temp1.发货数量,\n" + + //" temp1.外部单号,\n" + + //" temp1.结算数量,\n" + + //" temp3.Price AS 结算单价,\n" + + //" ( temp1.[结算数量] * ISNULL( temp3.Price, 0 ) ) AS 结算金额,\n" + + //" isnull( TEMP2.Price, 0 ) AS 发货定价,\n" + + //" isnull( temp1.发货数量, 0 ) - ISNULL( temp4.Qty, 0 ) AS 实际发货数量,\n" + + //" ( isnull( temp1.发货数量, 0 ) - ISNULL( temp4.Qty, 0 ) ) * isnull( TEMP2.Price, 0 ) AS 实际发货总金额,\n" + + //" ( isnull( temp1.发货数量, 0 ) - ISNULL( temp4.Qty, 0 ) - isnull( temp1.[结算数量], 0 ) ) AS 量差,\n" + + //" ISNULL( temp3.Price, 0 ) - ISNULL( TEMP2.Price, 0 ) AS 单价差异,\n" + + //" ( ISNULL( temp3.Price, 0 ) - ISNULL( TEMP2.Price, 0 ) ) * temp1.结算数量 AS 差异总金额 ,\n" + + //" temp4.Qty 退货数量 \n" + + //"FROM\n" + + //" (\n" + + //" SELECT\n" + + //" '' AS 交货单号,\n" + + //" NULL AS 交货时间,\n" + + //" a.StorageLocation AS 收货仓库,\n" + + //" a.StorageLocationDesc AS 收货仓库描述,\n" + + //" a.HQHKanBan AS 订货看板编号,\n" + + //" a.MaterialCode AS 订货零件号,\n" + + //" c.MaterialCode Sap编码,\n" + + //" a.MaterialCode 结算物料代码,\n" + + //" c.MaterialDesc AS 零件中文名称,\n" + + //" isnull( b.Qty, 0 ) AS 发货数量,\n" + + //" a.[ExternalKanbanNumber] AS 外部单号,\n" + + //" isnull( a.Qty, 0 ) AS 结算数量,\n" + + //" C.EstimateTypeDesc AS 物料组,\n" + + //" a.Factory AS 工厂,\n" + + //" '' AS 看板编号,\n" + + //" '' AS 验收单日期 \n" + + //" FROM\n" + + //" (\n" + + //" SELECT SUM\n" + + //" ( Qty ) AS Qty,\n" + + //" HQHKanBan,\n" + + //" MaterialCode,\n" + + //" Version,\n" + + //" StorageLocation,\n" + + //" StorageLocationDesc,\n" + + //" Factory,\n" + + //" ExternalKanbanNumber \n" + + //" FROM\n" + + //" Set_HQ_H_Platform \n" + + //" GROUP BY\n" + + //" HQHKanBan,\n" + + //" MaterialCode,\n" + + //" Version,\n" + + //" StorageLocation,\n" + + //" StorageLocationDesc,\n" + + //" Factory,\n" + + //" ExternalKanbanNumber \n" + + //" ) AS a\n" + + //" INNER JOIN ( SELECT SUM ( Qty ) AS Qty, Kanban, MaterialCode FROM Set_HQ_H_Kanban GROUP BY Kanban, MaterialCode ) AS b ON a.HQHKanBan = b.Kanban \n" + + //" AND a.MaterialCode = b.MaterialCode\n" + + //" LEFT OUTER JOIN Set_material AS c ON a.MaterialCode = c.CustomerPartCode \n" + + //" WHERE\n" + + //" ( a.Version= '{0}' AND a.HQHKanBan IS NOT NULL ) \n" + + //" AND a.HQHKanBan <> 'BJ' \n" + + //" ) AS temp1\n" + + //" LEFT OUTER JOIN ( SELECT Price, MaterialCode FROM Set_PriceList WHERE Version = '202110' ) AS TEMP2 ON temp1.Sap编码 = TEMP2.MaterialCode\n" + + //" LEFT JOIN (\n" + + //" SELECT\n" + + //" ROUND( SUM ( Amt ) / SUM ( Qty ), 4 ) price,\n" + + //" HQHKanBan,\n" + + //" MaterialCode,\n" + + //" Version \n" + + //" FROM\n" + + //" Set_HQ_H_Platform \n" + + //" WHERE\n" + + //" Version = '{0}' \n" + + //" AND HQHKanBan <> 'BJ' \n" + + //" GROUP BY\n" + + //" HQHKanBan,\n" + + //" MaterialCode,\n" + + //" Version \n" + + //" ) AS TEMP3 ON temp1.[结算物料代码] = TEMP3.MaterialCode \n" + + //" AND temp1.订货看板编号 = TEMP3.HQHKanBan\n" + + //" LEFT JOIN set_backQty temp4 ON temp1.订货看板编号 = temp4.Code \n" + + //" AND temp1.Sap编码= temp4.MaterialCode"; + + //var _sql = string.Format(str, version, condition); diff --git a/src/Modules/SettleAccount/src/SettleAccount.HttpApi/BlobFileController.cs b/src/Modules/SettleAccount/src/SettleAccount.HttpApi/BlobFileController.cs index 3e892baf..4e770381 100644 --- a/src/Modules/SettleAccount/src/SettleAccount.HttpApi/BlobFileController.cs +++ b/src/Modules/SettleAccount/src/SettleAccount.HttpApi/BlobFileController.cs @@ -1,10 +1,16 @@ -using Microsoft.AspNetCore.Mvc; +using Magicodes.ExporterAndImporter.Core.Extension; +using Magicodes.ExporterAndImporter.Excel; +using Microsoft.AspNetCore.Mvc; +using OfficeOpenXml; +using Shouldly; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Win.Sfs.BaseData.ImportExcelCommon; +using Win.Sfs.SettleAccount.Entities.WMS; namespace Win.Sfs.SettleAccount { @@ -13,7 +19,7 @@ namespace Win.Sfs.SettleAccount public class BlobFileController:SettleAccountController { private readonly IExcelImportAppService _excelImportService; - + public IExcelImporter Importer = new ExcelImporter();//导入Excel public BlobFileController(IExcelImportAppService excelImportService) { _excelImportService = excelImportService; @@ -31,5 +37,35 @@ namespace Win.Sfs.SettleAccount return File(fileDto.Content, "application/octet-stream", fileDto.Name); } + + [HttpPost] + [Route("saveCustomExcelTemplate")] + public async Task SaveSalesContractExcelImportTemplate() + { + string fileName = "大众通用看板模板.xlsx"; + var result = await Importer.GenerateTemplateBytes(); + result.ShouldNotBeNull(); + result.Length.ShouldBeGreaterThan(0); + await _excelImportService.SaveBlobAsync( + new SaveExcelImportInputDto + { + Name = fileName, + Content = result + } + ); + Stream stream = new MemoryStream(result); + using (var pck = new ExcelPackage(stream)) + { + pck.Workbook.Worksheets.Count.ShouldBe(1); + var sheet = pck.Workbook.Worksheets.First(); + var attr = typeof(WmsCustomerKanbanOutPutDetial).GetAttribute(); + var text = sheet.Cells["A1"].Text.Replace("\n", string.Empty).Replace("\r", string.Empty); + text.ShouldBe(attr.ImportDescription.Replace("\n", string.Empty).Replace("\r", string.Empty)); + } + return fileName; + } + + + } }