diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/TaskListDto.cs b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/TaskListDto.cs
index 8410800e..a19dc421 100644
--- a/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/TaskListDto.cs
+++ b/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/TaskListDto.cs
@@ -234,9 +234,9 @@ namespace Win.Sfs.SettleAccount.Entities
[ImporterHeader(Name = "开票金额")]
[ExporterHeader(DisplayName = "开票金额")]
public decimal Amt { set; get; }
-
+ }
///
/// 大众备件出库单
///
diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/WMS/WmsDetailCancelInterface.cs b/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/WMS/WmsDetailCancelInterface.cs
new file mode 100644
index 00000000..44cd02b3
--- /dev/null
+++ b/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/WMS/WmsDetailCancelInterface.cs
@@ -0,0 +1,228 @@
+
+using EFCore.BulkExtensions;
+using Magicodes.ExporterAndImporter.Core;
+using Magicodes.ExporterAndImporter.Excel;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore;
+using Shouldly;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Caching;
+using Volo.Abp.Domain.Repositories;
+using Volo.Abp.Uow;
+using Win.Abp.Snowflakes;
+using Win.Sfs.BaseData.ImportExcelCommon;
+using Win.Sfs.SettleAccount.CommonManagers;
+using Win.Sfs.SettleAccount.Constant;
+using Win.Sfs.SettleAccount.Entities.Wms;
+using Win.Sfs.SettleAccount.Entities.Wms.WmsSumOutput;
+using Win.Sfs.SettleAccount.Reports;
+using Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report;
+using Win.Sfs.Shared.DomainBase;
+using Win.Sfs.Shared.Filter;
+
+namespace Win.Sfs.SettleAccount.Entities.WMS
+{
+ [Authorize(SettleAccountPermissions.WMSJIT.Default)]
+ [Route("api/settleaccount/WMSOutputDetailCancelDiffReport")]
+ public class WMSOutputDetailCancelDiffReportAppService :
+ SettleAccountApplicationBase
+ {
+ private readonly ISettleAccountBranchEfCoreRepository _wmsRepository;
+ private readonly WmsOutputSumDapperRepository _dapper;
+ private readonly IExcelImportAppService _excelImportService;
+
+ private readonly ErpSumOutputDapperRepository _erpDapper;
+ ///
+ ///
+ ///
+ ///
+ ///
+
+ public WMSOutputDetailCancelDiffReportAppService(
+ WmsOutputSumDapperRepository dapper,
+ ISettleAccountBranchEfCoreRepository wmsRepository,
+ ISettleAccountBranchEfCoreRepository job,
+ IExcelImportAppService excelImportService,
+ IDistributedCache cache,
+ ISnowflakeIdGenerator snowflakeIdGenerator,
+ ICommonManager commonManager,
+ ErpSumOutputDapperRepository erpDapper
+ ) : base(cache, excelImportService, snowflakeIdGenerator, commonManager)
+ {
+ _erpDapper = erpDapper;
+ _wmsRepository = wmsRepository;
+ _dapper = dapper;
+ _excelImportService = excelImportService;
+
+ }
+
+ [HttpGet]
+ [Route("Make")]
+ [UnitOfWork(false)]
+ public async Task ReportMake(string version, DateTime accountDate)
+ {
+ var _ls = _dapper.GetWmsSumCancelReportList(version, "0");//报表
+
+ var _count = _wmsRepository.Count(p => p.Version == version && p.State > 0);
+ if (_count > 0)
+ {
+ throw new BusinessException("8899", "不能重新生成此版本!");
+ }
+ else
+ {
+ var query = _wmsRepository.Where(p => p.Version == version);
+ await query.BatchDeleteAsync();
+ }
+ List _lst = new List();
+ if (_ls != null && _ls.Count() > 0)
+ {
+ foreach (var itm in _ls)
+ {
+ _lst.Add(new WmsDetailDiffReport(
+ Guid.NewGuid(),
+ itm.客户,
+ itm.出库类型,
+ version,
+ itm.结算单,
+ itm.通用代码号,
+ itm.物料号,
+ itm.结算数量,
+ itm.实际出库数量,
+ itm.差异数量,
+ itm.物料组编码,
+ itm.物料组车型,
+ itm.物料描述,
+ itm.备注,
+ 0));
+ }
+ }
+ await _wmsRepository.GetDbContext().BulkInsertAsync(_lst);
+ return ApplicationConsts.SuccessStr;
+ }
+ ///
+ /// Wms汇总合计明细
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Route("WmsDetailReport")]
+
+ virtual public async Task> GetListAsync(WmsRequestDetailReportDto input)
+ {
+ input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "Version", Logic = EnumFilterLogic.And, Value = input.Version });
+ //客户过滤
+ if (!string.IsNullOrEmpty(input.Client))
+ {
+ input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "Client", Logic = EnumFilterLogic.And, Value = input.Client });
+ }
+ //出库类型
+ if (!string.IsNullOrEmpty(input.Type))
+ {
+ input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "Type", Logic = EnumFilterLogic.And, Value = input.Type });
+ }
+ var entities = await _wmsRepository.GetListByFilterAsync(GuidGenerator.Create(), input.Filters, input.Sorting, input.MaxResultCount,
+ input.SkipCount, true);
+ var totalCount = await GetCountAsync(input);
+ return new PagedResultDto(totalCount, entities);
+ }
+
+
+ private async Task GetCountAsync(WmsRequestDetailReportDto input)
+ {
+ input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "Version", Logic = EnumFilterLogic.And, Value = input.Version });
+ return await _wmsRepository.GetCountByFilterAsync(GuidGenerator.Create(), input.Filters);
+ }
+ [HttpPost]
+ [Route("ModifyTaskState")]
+
+ public virtual async Task ModifyTaskState(List guids)
+ {
+ if (guids != null && guids.Count() > 0)
+ {
+ var str = "DECLARE @return_value int \n" +
+ "EXEC @return_value = [dbo].[p_wms_interface_cancel]\n" +
+ "@billnum = N'{0}', \n" +
+ "@type = {1}, \n" +
+ "@date = N'{2}', \n" +
+ "@switchcode = N'{3}', \n" +
+ "@partcode = N'{4}' \n" +
+ "SELECT 'Return Value' = @return_value ";
+
+ var _ls = _wmsRepository.Where(p => guids.Contains(p.Id));
+ foreach (var itm in _ls)
+ {
+ var sql = string.Format(str, itm.BillNum, itm.Type, DateTime.Now, itm.SwitchCode, itm.MaterialCode);
+ _wmsRepository.GetDbContext().Database.SetCommandTimeout(300);
+ await _wmsRepository.GetDbContext().Database.ExecuteSqlRawAsync(
+ sql
+ );
+ }
+ }
+ //_wmsRepository.Where(p => p.BillNum ==)
+ return true;
+ }
+ //[HttpPost]
+ //[Route("Output")]
+
+ //virtual public async Task OutputAsync(WmsRequestDetailReportDto input)
+ //{
+ // var entities = await _wmsRepository.GetListByFilterAsync(GuidGenerator.Create(), input.Filters, input.Sorting, int.MaxValue,
+ // 0, true);
+ // List _ls = new List();
+ // if (entities.Count() > 0)
+ // {
+ // var _entity = entities.FirstOrDefault();
+ // if (_entity != null)
+ // {
+ // var _version = _entity.Version;
+ // var _accountDate = _entity.AccountDate;
+ // _erpDapper.InsertWmsSum(_ls, _version, _accountDate);
+ // }
+ // }
+ // return true;
+ //}
+ [HttpPost]
+ [Route("Export")]
+ virtual public async Task ExportAsync(WmsRequestDetailReportDto input)
+ {
+ input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "Version", Logic = EnumFilterLogic.And, Value = input.Version });
+ //客户过滤
+ if (!string.IsNullOrEmpty(input.Client))
+ {
+ input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "Client", Logic = EnumFilterLogic.And, Value = input.Client });
+ }
+ //出库类型
+ if (!string.IsNullOrEmpty(input.Type))
+ {
+ input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "Type", Logic = EnumFilterLogic.And, Value = input.Type });
+ }
+ var entities = await _wmsRepository.GetListByFilterAsync(GuidGenerator.Create(), input.Filters, input.Sorting, int.MaxValue,
+ 0, true);
+ var dtoDetails = ObjectMapper.Map, List>(entities);
+ IExporter _excel = new ExcelExporter();
+ byte[] result = null;
+ var _fileName = string.Format("撤销清单报表_{0}.xlsx", Guid.NewGuid().ToString());
+ result = await _excel.ExportAsByteArray(dtoDetails);
+ result.ShouldNotBeNull();
+ //保存导出文件到服务器存成二进制
+ await _excelImportService.SaveBlobAsync(
+ new SaveExcelImportInputDto
+ {
+ Name = _fileName,
+ Content = result
+ }
+ );
+ return _fileName;
+ }
+
+
+ }
+}
diff --git a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/WmsOutputSumDapperRepository.cs b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/WmsOutputSumDapperRepository.cs
index 43109b34..70306950 100644
--- a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/WmsOutputSumDapperRepository.cs
+++ b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/WmsOutputSumDapperRepository.cs
@@ -1336,6 +1336,206 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report
+
+
+ public virtual List GetWmsSumCancelReportList(string version, string state)
+ {
+
+
+
+ var _sql = "SELECT\n" +
+ " ROW_NUMBER()OVER(ORDER BY Type DESC) 行号 ,\n" +
+ " temp1.Client 客户,\n" +
+ " temp1.Type 出库类型,\n" +
+ " temp1.BillNum 结算单,\n" +
+ " temp1.MaterialCode 物料号,\n" +
+ " temp1.CNumber 通用代码号,\n" +
+ " Isnull( temp1.Qty, 0 ) 结算数量,\n" +
+ " Isnull( temp1.OutputQty, 0 ) 实际出库数量,\n" +
+ " Isnull( temp1.Qty, 0 )- Isnull( temp1.OutputQty, 0 ) 差异数量,\n" +
+ " temp1.Price 开票单价,\n" +
+ " Round( Isnull( temp1.Qty, 0 )* temp1.Price, 2 ) 结算金额,\n" +
+ " Round(( Isnull( temp1.Qty, 0 )- Isnull( temp1.OutputQty, 0 ))* temp1.Price, 2 ) WMS待出库金额, \n" +
+ " temp2.EstimateType 物料组编码, \n" +
+ " temp2.EstimateTypeDesc 物料组车型, \n" +
+ " temp2.MaterialDesc 物料描述, \n" +
+ " temp1.remark 备注 \n" +
+ "FROM\n" +
+ " (\n" +
+ " SELECT\n" +
+ " '大众准时化出库' AS Type,\n" +
+ " '大众' Client,\n" +
+ " BillNum,\n" +
+ " MaterialCode,\n" +
+ " Qty,\n" +
+ " 0 OutputQty,\n" +
+ " 0 IsBack,\n" +
+ " Price,\n" +
+ " ChassisNumber CNumber, \n" +
+ " Remark \n" +
+ " FROM\n" +
+ " Set_WmsJitOutPutDetial \n" +
+ " WHERE\n" +
+ " VERSION = '{0}' \n" +
+ " AND State = 4 UNION ALL\n" +
+ " SELECT\n" +
+ " '大众看板出库' AS Type,\n" +
+ " '大众' Client,\n" +
+ " BillNum,\n" +
+ " MaterialCode,\n" +
+ " Qty Qty,\n" +
+ " 0 OutputQty,\n" +
+ " 0 IsBack,\n" +
+ " Price,\n" +
+ " Kanban CNumber, \n" +
+ " Remark \n" +
+ " FROM\n" +
+ " Set_WmsKanbanOutPutDetial \n" +
+ " WHERE\n" +
+ " VERSION = '{0}' \n" +
+ " AND State = 4 UNION ALL\n" +
+ " SELECT\n" +
+ " '大众无看板出库' AS Type,\n" +
+ " '大众' Client,\n" +
+ " BillNum,\n" +
+ " SapMaterialCode MaterialCode,\n" +
+ " Qty Qty,\n" +
+ " RealityNumber OutputQty,\n" +
+ " 0 IsBack,\n" +
+ " Price,\n" +
+ " '' CNumber, \n" +
+ " Remark \n" +
+ " FROM\n" +
+ " Set_WmsWithOutKanbanOutPutDetial \n" +
+ " WHERE\n" +
+ " VERSION = '{0}' \n" +
+ " AND State = 4 UNION ALL\n" +
+ " SELECT\n" +
+ " '大众备件汇总出库' AS Type,\n" +
+ " '大众' Client,\n" +
+ " BillNum,\n" +
+ " MaterialCode,\n" +
+ " Qty Qty,\n" +
+ " RealityNumber OutputQty,\n" +
+ " 1 IsBack,\n" +
+ " Price,\n" +
+ " '' CNumber, \n" +
+ " Remark \n" +
+ " FROM\n" +
+ " Set_WmsSharePartOutPutDetial \n" +
+ " WHERE\n" +
+ " VERSION = '{0}' \n" +
+ " AND State = 4 UNION ALL\n" +
+ " SELECT\n" +
+ " '大众备件条码出库' AS Type,\n" +
+ " '大众' Client,\n" +
+ " BillNum,\n" +
+ " MaterialCode,\n" +
+ " Qty Qty,\n" +
+ " 0 OutPutQty,\n" +
+ " 1 IsBack,\n" +
+ " Price,\n" +
+ " OrderBillNum CNumber, \n" +
+ " Remark \n" +
+ " FROM\n" +
+ " Set_WmsSharePart90OutPutDetial \n" +
+ " WHERE\n" +
+ " VERSION = '{0}' \n" +
+ " AND State = 4 UNION ALL\n" +
+ " SELECT\n" +
+ " '红旗看板出库' AS Type,\n" +
+ " '红旗' Client,\n" +
+ " BillNum,\n" +
+ " MaterialCode,\n" +
+ " Qty Qty,\n" +
+ " 0 OutPutQty,\n" +
+ " 0 IsBack,\n" +
+ " Price,\n" +
+ " Kanban CNumber, \n" +
+ " Remark \n" +
+ " FROM\n" +
+ " Set_WmsHQHKanbanOutPutDetial \n" +
+ " WHERE\n" +
+ " VERSION = '{0}' \n" +
+ " AND State = 4 UNION ALL\n" +
+ " SELECT\n" +
+ " '红旗一轿手工出库' AS Type,\n" +
+ " '红旗' Client,\n" +
+ " BillNum,\n" +
+ " SapMaterialCode MaterialCode,\n" +
+ " Qty,\n" +
+ " RealityNumber OutputQty,\n" +
+ " IsBack,\n" +
+ " Price,\n" +
+ " '' CNumber, \n" +
+ " Remark \n" +
+ " FROM\n" +
+ " Set_WmsHQWithOutKanbanOutPutDetial \n" +
+ " WHERE\n" +
+ " IsBack = 0 \n" +
+ " AND VERSION = '{0}' \n" +
+ " AND State = 4 UNION ALL\n" +
+ " SELECT\n" +
+ " '红旗一轿手工出库(备件)' AS Type,\n" +
+ " '红旗' Client,\n" +
+ " BillNum,\n" +
+ " SapMaterialCode,\n" +
+ " Qty Qty,\n" +
+ " RealityNumber OutputQty,\n" +
+ " IsBack,\n" +
+ " Price,\n" +
+ " '' CNumber ,\n" +
+ " Remark \n" +
+ " FROM\n" +
+ " Set_WmsHQWithOutKanbanOutPutDetial \n" +
+ " WHERE\n" +
+ " IsBack = 1 \n" +
+ " AND VERSION = '{0}' \n" +
+ " AND State = 4 \n" +
+
+ "UNION ALL\n" +
+"SELECT\n" +
+" '一次性销售' AS TYPE,\n" +
+" '一次性销售' Client,\n" +
+" BillNum,\n" +
+" SapMaterialCode,\n" +
+" Qty Qty,\n" +
+" RealityNumber OutputQty,\n" +
+" 0 IsBack,\n" +
+" Price,\n" +
+" '' CNumber,\n" +
+" Remark \n" +
+"FROM\n" +
+" Set_WmsHQWithOutKanbanOutPutDetial \n" +
+"WHERE\n" +
+" VERSION = '{0}' \n" +
+" AND State = 4" +
+
+
+
+
+
+
+
+
+
+
+ " ) temp1 \n" +
+ " LEFT JOIN(SELECT max(Id) Id, MaterialCode, MaterialDesc, EstimateType, EstimateTypeDesc FROM Set_material GROUP BY MaterialCode, MaterialDesc, EstimateTypeDesc, EstimateType) temp2 ON temp1.MaterialCode = temp2.MaterialCode ";
+
+
+ _sql = string.Format(_sql, version, state);
+
+ var _query = DbConnection.Query(_sql, null, null, true, 1200, null);
+
+ return _query.ToList();
+ }
+
+
+
+
+
+
}