diff --git a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/appsettings.json b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/appsettings.json
index 66591e7a..d6b0da86 100644
--- a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/appsettings.json
+++ b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/appsettings.json
@@ -2,12 +2,25 @@
"App": {
"CorsOrigins": "https://*.abc.com,http://localhost:9527,http://149.223.116.5:8088"
},
+ //"ConnectionStrings": {
+ // "Default": "Server=LAPTOP-V3U07C2O;Database=ABP;user id=sa;Password=1q2w!@#",
+ // "SettleAccountService": "Server=LAPTOP-V3U07C2O;Database=SettleAccountService1;user id=sa;Password=1q2w!@#;"
+ //},
"ConnectionStrings": {
"Default": "Server=dev.ccwin-in.com,13319;Database=BJABP;User ID=ccwin-in;Password=Microsoft@2022;Trusted_Connection=False;TrustServerCertificate=True",
- "SettleAccountService": "Server=dev.ccwin-in.com,13319;Database=BQ_SA;User ID=ccwin-in;Password=Microsoft@2022;Trusted_Connection=False;TrustServerCertificate=True;",
- "WMSBJBMPT": "Server=dev.ccwin-in.com,6208;Database=WMS_BJBMPT_2;User ID=sa;Password=ChangkeTec@2021;Trusted_Connection=False;TrustServerCertificate=True;",
- "questdb": "host=dev.ccwin-in.com;port=10580;username=admin;password=quest;database=vmi;ServerCompatibilityMode=NoTypeLoading;"
+ "SettleAccountService": "Server=dev.ccwin-in.com,13319;Database=BQ_SA;User ID=ccwin-in;Password=Microsoft@2022;Trusted_Connection=False;TrustServerCertificate=True;"
+ //"SettleAccountService": "Server=localhost;Database=BQ_SA;User ID=sa;Password=aA123456!;Trusted_Connection=False;TrustServerCertificate=True",
+ //"Default": "Server=localhost;Database=BJABP;User ID=sa;Password=aA123456!;Trusted_Connection=False;TrustServerCertificate=True"
},
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft": "Warning",
+ "Microsoft.Hosting.Lifetime": "Information"
+ }
+ },
+
+
"Serilog": {
"Using": [],
"MinumumLevel": {
@@ -69,8 +82,15 @@
},
+
+
+
+
+
+
"AuthServer": {
- "Authority": "http://localhost:10582",
+ //"Authority": "http://dev.ccwin-in.com:10580",
+ "Authority": "http://localhost:44378",
"ClientId": "basic-web",
"ClientSecret": "1q2w3e*"
},
@@ -80,5 +100,28 @@
},
"DefaultBranchId": "3FA85F64-5717-4562-B3FC-2C963F66AFA6",
- "AllowedHosts": "*"
+ "AllowedHosts": "*",
+
+ "ElasticSearch": {
+ "Url": "http://localhost:9200"
+ },
+
+ "RemoteServices": {
+ "Default": {
+ "BaseUrl": "http://149.223.116.5:8091/",
+ "UseCurrentAccessToken": "true"
+ }
+ },
+ "IdentityClients": {
+ "Default": {
+ "GrantType": "client_credentials",
+ "ClientId": "business-app",
+ "ClientSecret": "1q2w3e*",
+ "Authority": "http://149.223.116.5:8066",
+ "Scope": "InternalGateway IdentityService SettleAccount"
+ }
+ }
+
+
+
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/PUB_SA_DTO.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/PUB_SA_DTO.cs
index 777f59b6..17738f4d 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/PUB_SA_DTO.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/BQ/Dtos/PUB_SA_DTO.cs
@@ -52,9 +52,15 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
public IFormFileCollection Files { get; set; }
///
- /// 是否是备件
+ /// 业务类别
///
public EnumBusinessType BusinessType { get; set; }
+
+ ///
+ /// 期间
+ ///
+ [Display(Name = "期间")]
+ public int Version { get; set; }
}
///
@@ -439,5 +445,15 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Dtos
/// 业务类型
///
public EnumBusinessType BusinessType { get; set; }
+
+ ///
+ /// 发运开始时间
+ ///
+ public DateTime? SeStartDateTime { get; set; }
+
+ ///
+ /// 发运结束时间
+ ///
+ public DateTime? SeEndDateTime { get; set; }
}
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_SA_SERVICE.cs
index f9802711..32d392d3 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_SA_SERVICE.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_SA_SERVICE.cs
@@ -115,12 +115,13 @@ public class BBAC_SA_SERVICE : SettleAccountApplicationBase
ExportImporter _exportImporter = new ExportImporter();
var importDtos = await _exportImporter.UploadExcelImport(files, _excelImportService);
- //买单件BBAC
- var importMaiDanJianHBOPDtos = importDtos.FindAll(t => t.PN.Contains("R0"));
//JisBBAC
var importHBOPDtos = importDtos.FindAll(t => t.PN.Contains("R0") == false);
+ //买单件BBAC
+ var importMaiDanJianHBOPDtos = importDtos.FindAll(t => t.PN.Contains("R0"));
var importBBACSaDetails = ObjectMapper.Map, List>(importHBOPDtos);
+ var importMaiDanJianBBACSaDetails = ObjectMapper.Map, List>(importHBOPDtos);
//数据校验
var checkList = new List();
@@ -145,7 +146,7 @@ public class BBAC_SA_SERVICE : SettleAccountApplicationBase
if (importBBACSaDetails.Any())
{
- //await SaDataHandleAsync(importBBACSaDetails);
+ await SaDataHandleAsync(importBBACSaDetails, importMaiDanJianBBACSaDetails);
}
return new JsonResult(new { Code = 200, Message = "导入成功" });
@@ -285,7 +286,7 @@ public class BBAC_SA_SERVICE : SettleAccountApplicationBase
///
/// 结算数据处理
///
- private async Task SaDataHandleAsync(List bbacSaDetails)
+ private async Task SaDataHandleAsync(List bbacSaDetails, List maiDanJianBBACSaDetails)
{
//结算单号
var bbacSaBillNum = OrderNumberGenerator.GenerateOrderNumber("SA");
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_SA_DETAIL_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_SA_DETAIL_SERVICE.cs
index 2348a687..31a5063d 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_SA_DETAIL_SERVICE.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_SA_DETAIL_SERVICE.cs
@@ -120,6 +120,8 @@ public class PUB_SA_DETAIL_SERVICE : SettleAccountApplicationBase
customConditionList.Add(new CustomCondition() { Name = "LU", Value = pubSaSeCompareRequestDto.LU });
customConditionList.Add(new CustomCondition() { Name = "PN", Value = pubSaSeCompareRequestDto.PN });
customConditionList.Add(new CustomCondition() { Name = "ProjectName", Value = projectName });
+ customConditionList.Add(new CustomCondition() { Name = "SeStartDateTime", Value = pubSaSeCompareRequestDto.SeStartDateTime?.ToString("yyyy-MM-dd") });
+ customConditionList.Add(new CustomCondition() { Name = "SeEndDateTime", Value = pubSaSeCompareRequestDto.SeEndDateTime?.ToString("yyyy-MM-dd") });
var _taskid = await _taskJobService.ExportEnqueueAsync(projectName, ExportExtentsion.Excel, pubSaSeCompareRequestDto.Version, string.Empty, CurrentUser, typeof(PubSaSeCompareExportService), customConditionList, (rs) =>
{
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_SA_SERVICE.cs
index 975fcefe..50570116 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_SA_SERVICE.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_SA_SERVICE.cs
@@ -102,6 +102,11 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase
_tbRePartsRelationshipRepository = tbRePartsRelationshipRepository;
}
+ ///
+ /// 期间
+ ///
+ private int _version;
+
#region 导入、导出
///
/// 导入
@@ -110,6 +115,7 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase
public async Task ImportByBusinessTypeAsync([FromForm] PUB_SAImportRequestDto pubSaImportRequestDto)
{
IActionResult result = new JsonResult(null);
+ _version = pubSaImportRequestDto.Version;
switch (pubSaImportRequestDto.BusinessType)
{
case EnumBusinessType.None:
@@ -306,7 +312,6 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase
//客户零件关系
var materialRelationships = new List();
-
#region 导入数据转换、数据校验
ExportImporter _exportImporter = new ExportImporter();
var result = await _exportImporter.UploadExcelImport(files, _excelImportService);
@@ -332,7 +337,6 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase
}
#endregion
-
#region 处理结算数据
//销售价格
var priceListEntitys = await _priceListRepository.GetAllAsync();
@@ -376,7 +380,6 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase
});
#endregion
-
#region 入库数据赋值
//结算明细
pubSaDetails = importPubSaDetails;
@@ -605,6 +608,7 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase
importPubSaDetail.LU += luAssemble.Aggregate(" ", (current, index) => current + index);
}
+ importPubSaDetail.Version = _version;
importPubSaDetail.BusinessType = businessType;
importPubSaDetail.Site = "XX工厂";
importPubSaDetail.KeyCode = importPubSaDetail.PN + importPubSaDetail.LU;
@@ -650,7 +654,7 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase
private async Task SeDataEntryAsync(List pubSaDetails)
{
//业务类型
- EnumBusinessType businessType = pubSaDetails.First().BusinessType;
+ var pubSaFirstDetail = pubSaDetails.First();
//结算单号
var pubSaBillNum = OrderNumberGenerator.GenerateOrderNumber("SA");
//结算主表
@@ -658,7 +662,8 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase
{
BillNum = pubSaBillNum,
State = "1",
- BusinessType = businessType
+ BusinessType = pubSaFirstDetail.BusinessType,
+ Version = pubSaFirstDetail.Version
};
//可结算单号
var pubCanSaBillNum = OrderNumberGenerator.GenerateOrderNumber("C");
@@ -668,7 +673,8 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase
BillNum = pubCanSaBillNum,
SettleBillNum = pubSaBillNum,
State = SettleBillState.未结状态,
- BusinessType = businessType
+ BusinessType = pubSa.BusinessType,
+ Version = pubSa.Version
};
#region 入库数据赋值
@@ -696,7 +702,6 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase
pubCanSaDetails.ForEach(pubCanSaDetail =>
{
pubCanSaDetail.BillNum = pubCanSaDetail.InvGroupNum = pubCanSaBillNum;
- pubCanSaDetail.BusinessType = businessType;
});
await _pubCanSaRepository.InsertAsync(pubCanSa);
@@ -704,11 +709,6 @@ public class PUB_SA_SERVICE : SettleAccountApplicationBase
}
if (pubNotSaDetails.Count > 0)
{
- pubNotSaDetails.ForEach(pubNotSaDetail =>
- {
- pubNotSaDetail.BusinessType = businessType;
- });
-
await _pubNotSaDetailRepository.InsertManyAsync(pubNotSaDetails);
}
#endregion
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PURCHASE_PRICE_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PURCHASE_PRICE_SERVICE.cs
index cd39e8ee..4186abef 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PURCHASE_PRICE_SERVICE.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PURCHASE_PRICE_SERVICE.cs
@@ -5,7 +5,9 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.SignalR;
using SettleAccount.Domain.BQ;
+using SettleAccount.Job.SignalR;
using Shouldly;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Caching;
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationAutoMapperProfile.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationAutoMapperProfile.cs
index ec4662eb..49889d5b 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationAutoMapperProfile.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationAutoMapperProfile.cs
@@ -982,6 +982,7 @@ namespace Win.Sfs.SettleAccount
.ForMember(x => x.SettleBillNum, y => y.MapFrom(d => d.BillNum));
CreateMap();
+ CreateMap();
}
///
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/PubSaSeCompareDiff.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/PubSaSeCompareDiff.cs
index 51850420..14f65769 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/PubSaSeCompareDiff.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/PubSaSeCompareDiff.cs
@@ -1,5 +1,5 @@
-using System.ComponentModel.DataAnnotations;
using System;
+using System.ComponentModel.DataAnnotations;
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
using Win.Sfs.SettleAccount.Enums;
@@ -246,7 +246,7 @@ public class PubSaSeCompareDetailExport
///
[Display(Name = "PJIS日顺序号")]
[ExporterHeader(DisplayName = "PJIS日顺序号")]
- public string PJISSeqNumber { get; set; }
+ public string PJISSeqNumber { get; set; }
}
///
@@ -290,145 +290,34 @@ public class PubSaSeCompareSumExport
public decimal DiffQty => SAQty - SEQty;
}
+///
+/// 直供件BBAC结算与发运对比明细
+///
[ExcelExporter(MaxRowNumberOnASheet = 900000)]
-public class PubSaSeCompareDiffExport222
+public class PubSaSeCompareDetailExportZhiGongJianBBAC : PubSaSeCompareDetailExport
{
- ///
- /// 有结算无发货(无EDI数据)
- ///有结算无发货(有EDI数据)
- ///有结算有发货(无EDI数据)
- ///有结算有发货(无价格信息)
- ///有结算有发货(有EDI数据)
- ///无结算有发货(有EDI数据)
- ///无结算有发货(无EDI数据)
- ///有结算有发货(有EDI数据)
- ///有结算有发货(WMS多发)
- ///
- [Display(Name = "类别")]
- public string Category { get; set; }
-
- [Display(Name = "Wms发货单号")]
- public string WmsBillNum { get; set; }
-
- [Display(Name = "发货日期")]
- public DateTime ShippingDate { get; set; }
-
- [Display(Name = "生产码")]
- public string PN { get; set; }
-
- [Display(Name = "物料号")]
- public string MaterialNumber { get; set; }
-
- [Display(Name = "物料描述")]
- public string MaterialDes { get; set; }
-
- [Display(Name = "原始LU")]
- public string PrimitiveLU { get; set; }
-
- [Display(Name = "替换LU")]
- public string ReplaceLU { get; set; }
-
- ///
- /// 结算数据中的过账日期
- ///
- [Display(Name = "客户下线时间")]
- public DateTime CustomerOfflineTime { get; set; }
-
- [Display(Name = "结算数量")]
- public decimal SAQty { get; set; }
-
- [Display(Name = "发货数量")]
- public decimal SEQty { get; set; }
-
- ///
- /// 差异数量
- ///
- [ExporterHeader(DisplayName = "差异数量")]
- public decimal DiffQty { set; get; }
-
- [Display(Name = "匹配类型")]
- public string MateType { get; set; }
-
- [Display(Name = "定价")]
- public decimal FixPrice { get; set; }
-
- [Display(Name = "PJIS日顺序号")]
- public string PJISSeqNumber { get; set; }
-
-
-
-
-
-
- [Display(Name = "日顺序号")]
- public string SeqNumber { get; set; }
-
-
-
-
-
-
-
-
-
- //[Display(Name = "零件号")]
- //public string LU { get; set; } = null!;
-
-
-
- [Display(Name = "小总成号")]
- public string AssemblyCode { get; set; }
-
- [Display(Name = "注塑码")]
- public string InjectionCode { get; set; }
-
-
-
-
-
-
- [Display(Name = "期间")]
- public int Version { get; set; }
-
- [Display(Name = "替换零件号")]
- public string RepLU { get; set; }
-
-
- ///
- /// 零件号
- ///
- [ExporterHeader(DisplayName = "零件号")]
- public string SeLU { set; get; }
-
- ///
- /// 生产号
- ///
- [ExporterHeader(DisplayName = "生产号")]
- public string SePN { set; get; }
-
- ///
- /// 零件号
- ///
- [ExporterHeader(DisplayName = "零件号")]
- public string SaLU { set; get; }
-
- ///
- /// 生产号
- ///
- [ExporterHeader(DisplayName = "生产号")]
- public string SaPN { set; get; }
-
- ///
- /// 结算数量
- ///
- [ExporterHeader(DisplayName = "结算数量")]
- public decimal SaQty { set; get; }
+}
- ///
- /// 发运数量
- ///
- [ExporterHeader(DisplayName = "发运数量")]
- public decimal SeQty { set; get; }
+///
+/// 直供件HBPO结算与发运对比明细
+///
+[ExcelExporter(MaxRowNumberOnASheet = 900000)]
+public class PubSaSeCompareDetailExportZhiGongJianHBPO : PubSaSeCompareDetailExport
+{
+}
+///
+/// 备件结算与发运对比明细
+///
+[ExcelExporter(MaxRowNumberOnASheet = 900000)]
+public class PubSaSeCompareDetailExportBeiJian : PubSaSeCompareDetailExport
+{
+}
+///
+/// 印度件结算与发运对比明细
+///
+[ExcelExporter(MaxRowNumberOnASheet = 900000)]
+public class PubSaSeCompareDetailExportYinDuJian : PubSaSeCompareDetailExport
+{
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/PubSaSeCompareDapperRepository.cs b/code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/PubSaSeCompareDapperRepository.cs
index 7491316f..f6884e11 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/PubSaSeCompareDapperRepository.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/PubSaSeCompareDapperRepository.cs
@@ -1,5 +1,3 @@
-using System;
-using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Dapper;
@@ -24,8 +22,17 @@ public class PubSaSeCompareDapperRepository : DapperRepository
/// 获取差异
///
- public virtual List GetDetailDiffReportList(string businessType)
+ public virtual List GetDetailDiffReportList(string businessType, string version, string seStartDateTime, string seEndDateTime)
{
+ string strSeWhere = string.Empty;
+ if (!string.IsNullOrWhiteSpace(seStartDateTime))
+ {
+ strSeWhere = $" AND BillTime >= {seStartDateTime} ";
+ }
+ if (!string.IsNullOrWhiteSpace(seEndDateTime))
+ {
+ strSeWhere = $" AND BillTime <= {seEndDateTime} ";
+ }
string strSqlText = @$"
SELECT
A.WmsBillNum,
@@ -46,8 +53,8 @@ public class PubSaSeCompareDapperRepository : DapperRepository(strSqlText, null, null, true, 1200, null).ToList();
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/PubSaSeCompareExportService.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/PubSaSeCompareExportService.cs
index 4a1d876c..2eac1a92 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/PubSaSeCompareExportService.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/PubSaSeCompareExportService.cs
@@ -2,14 +2,11 @@ using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
-using EmptyFiles;
-using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel;
+using Microsoft.AspNetCore.SignalR;
using Microsoft.OpenApi.Extensions;
-using NetTopologySuite.Operation.Buffer;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
using SettleAccount.Domain.BQ;
+using SettleAccount.Job.SignalR;
using Shouldly;
using TaskJob.EventArgs;
using TaskJob.Interfaces;
@@ -19,7 +16,6 @@ using Volo.Abp.ObjectMapping;
using Win.Sfs.BaseData.ImportExcelCommon;
using Win.Sfs.SettleAccount;
using Win.Sfs.SettleAccount.Entities.BQ;
-using Win.Sfs.SettleAccount.Entities.BQ.Dtos;
using Win.Sfs.SettleAccount.Enums;
using Win.Sfs.SettleAccount.Reports;
using Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report;
@@ -32,6 +28,11 @@ namespace SettleAccount.Job.Services.Report
///
public class PubSaSeCompareExportService : ITransientDependency, IExportJob
{
+ ///
+ /// HubContext
+ ///
+ private readonly IHubContext _hubContext;
+
///
/// 替换件关系仓储
///
@@ -61,12 +62,14 @@ namespace SettleAccount.Job.Services.Report
/// 构造
///
public PubSaSeCompareExportService(
+ IHubContext hubContext,
INormalEfCoreRepository tbRePartsRelationshipRepository,
INormalEfCoreRepository pubSeCDetailRepository,
PubSaSeCompareDapperRepository pubSaSeCompareDapperRepository,
IBlobContainer fileContainer,
IObjectMapper objectMapper)
{
+ _hubContext = hubContext;
_tbRePartsRelationshipRepository = tbRePartsRelationshipRepository;
_pubSeCDetailRepository = pubSeCDetailRepository;
_pubSaSeCompareDapperRepository = pubSaSeCompareDapperRepository;
@@ -87,18 +90,21 @@ namespace SettleAccount.Job.Services.Report
public string ExportFile(Guid id, List exportName, List property)
{
var version = property.Where(p => p.Name == "Version").FirstOrDefault().Value;
- var businessType = property.Where(t => t.Name == "BusinessType").FirstOrDefault().Value;
+ var strBusinessType = property.Where(t => t.Name == "BusinessType").FirstOrDefault().Value;
var lu = property.Where(p => p.Name == "LU").FirstOrDefault().Value;
var pn = property.Where(p => p.Name == "PN").FirstOrDefault().Value;
+ var seStartDateTime = property.Where(p => p.Name == "SeStartDateTime").FirstOrDefault().Value;
+ var seEndDateTime = property.Where(p => p.Name == "SeEndDateTime").FirstOrDefault().Value;
+ EnumBusinessType businessType = (EnumBusinessType)Enum.Parse(typeof(EnumBusinessType), strBusinessType);
var businessTypeDisplayName = businessType.ToString();
- DisplayAttribute attributeOfType = ((EnumBusinessType)Enum.Parse(typeof(EnumBusinessType), businessType)).GetAttributeOfType();
+ DisplayAttribute attributeOfType = businessType.GetAttributeOfType();
if (attributeOfType != null)
{
businessTypeDisplayName = attributeOfType.Name;
}
var filename = exportName.FirstOrDefault();
- var pubSaSeCompareDiffs = _pubSaSeCompareDapperRepository.GetDetailDiffReportList(businessType);
+ var pubSaSeCompareDiffs = _pubSaSeCompareDapperRepository.GetDetailDiffReportList(strBusinessType, version, seStartDateTime, seEndDateTime);
pubSaSeCompareDiffs.ForEach(p =>
{
@@ -127,7 +133,7 @@ namespace SettleAccount.Job.Services.Report
#region 二次对比
//二次对比(替换零件号)
var repLUs = notHaveSaHaveSes.Select(t => t.SeLU).Distinct().ToList();
- var tbRePartsRelationships = _tbRePartsRelationshipRepository.GetListAsync(t => repLUs.Contains(t.RepLU) && ((int)t.BusinessType).ToString() == businessType).Result;
+ var tbRePartsRelationships = _tbRePartsRelationshipRepository.GetListAsync(t => repLUs.Contains(t.RepLU) && t.BusinessType == businessType).Result;
tbRePartsRelationships.ForEach(tbRePartsRelationship =>
{
@@ -192,7 +198,6 @@ namespace SettleAccount.Job.Services.Report
pubSaSeCompareDiffs = pubSaSeCompareDiffs.FindAll(p => p.PN == pn);
}
- //结算核对明细
var pubSaSeCompareDetailExports = _objectMapper.Map, List>(pubSaSeCompareDiffs);
//结算核对汇总
var pubSaSeCompareSumExports = pubSaSeCompareDetailExports.GroupBy(p => p.ReplaceLU).Select(p => new PubSaSeCompareSumExport()
@@ -234,12 +239,95 @@ namespace SettleAccount.Job.Services.Report
SEQty = p.Sum(t => t.SEQty)
}).ToList();
- #region MyRegion
+ ExcelExporter excelExporter = new ExcelExporter();
- #endregion
+ switch (businessType)
+ {
+ case EnumBusinessType.ZhiGongJianBBAC:
+ {
+ var items = _objectMapper.Map, List>(pubSaSeCompareDetailExports);
+ excelExporter = BindExcelExporter(items, businessTypeDisplayName);
+ }
+ break;
+ case EnumBusinessType.ZhiGongJianHBPO:
+ {
+ var items = _objectMapper.Map, List>(pubSaSeCompareDetailExports);
+ excelExporter = BindExcelExporter(items, businessTypeDisplayName);
+ }
+ break;
+ case EnumBusinessType.MaiDanJianBBAC:
+ break;
+ case EnumBusinessType.MaiDanJianHBPO:
+ break;
+ case EnumBusinessType.BeiJian:
+ {
+ var items = _objectMapper.Map, List>(pubSaSeCompareDetailExports);
+ excelExporter = BindExcelExporter(items, businessTypeDisplayName);
+ }
+ break;
+ case EnumBusinessType.YinDuJian:
+ {
+ var items = _objectMapper.Map, List>(pubSaSeCompareDetailExports);
+ excelExporter = BindExcelExporter(items, businessTypeDisplayName);
+ }
+ break;
+ default:
+ break;
+ }
+
+ var result = excelExporter.ExportAppendDataAsByteArray();
+ result.ShouldNotBeNull();
+ _fileContainer.SaveAsync(filename, result.Result, true);
+
+ Notify();
+ return id.ToString();
+ }
+
+ #region 私有方法
+ public ExcelExporter BindExcelExporter(List pubSaSeCompareDetailExports, string businessTypeDisplayName) where T : PubSaSeCompareDetailExport, new()
+ {
+ //结算核对汇总
+ var pubSaSeCompareSumExports = pubSaSeCompareDetailExports.GroupBy(p => p.ReplaceLU).Select(p => new PubSaSeCompareSumExport()
+ {
+ LU = p.Key,
+ MaterialDes = p.FirstOrDefault().MaterialDes,
+ SAQty = p.Sum(t => t.SAQty),
+ SEQty = p.Sum(t => t.SEQty)
+ }).ToList();
+
+ //有结算有发运
+ var haveSaHaveSeExports = pubSaSeCompareDetailExports.FindAll(t => t.Category == EnumPubSaSeCompareCategory.HaveSaHaveSe);
+ //有结算有发运汇总
+ var haveSaHaveSeSumExports = haveSaHaveSeExports.GroupBy(p => p.ReplaceLU).Select(p => new PubSaSeCompareSumExport()
+ {
+ LU = p.Key,
+ MaterialDes = p.FirstOrDefault().MaterialDes,
+ SAQty = p.Sum(t => t.SAQty),
+ SEQty = p.Sum(t => t.SEQty)
+ }).ToList();
+ //有结算无发运
+ var haveSaNotHaveSeExports = pubSaSeCompareDetailExports.FindAll(t => t.Category == EnumPubSaSeCompareCategory.HaveSaNotHaveSe);
+ //有结算无发运
+ var haveSaNotHaveSeSumExports = haveSaHaveSeExports.GroupBy(p => p.ReplaceLU).Select(p => new PubSaSeCompareSumExport()
+ {
+ LU = p.Key,
+ MaterialDes = p.FirstOrDefault().MaterialDes,
+ SAQty = p.Sum(t => t.SAQty),
+ SEQty = p.Sum(t => t.SEQty)
+ }).ToList();
+ //无结算有发运
+ var notHaveSaHaveSeExports = pubSaSeCompareDetailExports.FindAll(t => t.Category == EnumPubSaSeCompareCategory.NotHaveSaHaveSe);
+ //无结算有发运
+ var notHaveSaHaveSeSumExports = haveSaHaveSeExports.GroupBy(p => p.ReplaceLU).Select(p => new PubSaSeCompareSumExport()
+ {
+ LU = p.Key,
+ MaterialDes = p.FirstOrDefault().MaterialDes,
+ SAQty = p.Sum(t => t.SAQty),
+ SEQty = p.Sum(t => t.SEQty)
+ }).ToList();
ExcelExporter excelExporter = new ExcelExporter();
- var result = excelExporter
+ return excelExporter
.Append(pubSaSeCompareDetailExports, $"{businessTypeDisplayName}结算核对明细输出")
.SeparateBySheet()
.Append(pubSaSeCompareSumExports, $"{businessTypeDisplayName}结算核对汇总输出")
@@ -253,155 +341,13 @@ namespace SettleAccount.Job.Services.Report
.Append(haveSaNotHaveSeExports, $"{businessTypeDisplayName}有结算无发货明细输出")
.SeparateBySheet()
.Append(haveSaNotHaveSeSumExports, $"{businessTypeDisplayName}有结算无发货汇总输出")
- .SeparateBySheet()
- .ExportAppendDataAsByteArray();
- result.ShouldNotBeNull();
- _fileContainer.SaveAsync(filename, result.Result, true);
-
- return id.ToString();
+ .SeparateBySheet();
}
- ///
- /// 导出(废弃)
- ///
- public string ExportFile333(Guid id, List exportName, List property)
+ private void Notify()
{
- return "";
- // var version = property.Where(p => p.Name == "Version").FirstOrDefault().Value;
-
- // var _filename = exportName.FirstOrDefault();
-
- // var _ls = _dapperRepository.GetDetailDiffReportList(version, materialCode, begin, end, cp7begin, cp7end, kenncode, chassisNumber, materialGroup);
- // var diffList = _erpdapperRepository.GetSettleInvoiceDiff(version);
- // foreach (var itm in _ls)
- // {
- // itm.InvoiceAmt = Math.Round(itm.InvoiceQty * itm.InvoicePrice, 2);
- // itm.DiffPrice = itm.Price - itm.InvoicePrice;
- // itm.DiffSettleFisQty = itm.SettledQty;
- // }
- // _ls = _ls.OrderBy(p => p.ChassisNumber).ThenBy(p => p.KENNCode).ThenBy(p => p.SapMaterialCode).ToList();
-
-
-
- // if (!string.IsNullOrEmpty(materialGroup))
- // {
- // var _groupList = materialGroup.Split(new char[] { ',' }).Distinct().ToList();
- // if (_groupList.Count() > 0)
- // {
- // _ls = _ls.Where(p => _groupList.Contains(p.MaterialGroup)).ToList();
- // }
- // }
- // if (!string.IsNullOrEmpty(kenncode))
- // {
- // var _groupList = kenncode.Split(new char[] { '\n' }).Distinct().ToList();
- // if (_groupList.Count() > 0)
- // {
- // _ls = _ls.Where(p => _groupList.Contains(p.KENNCode)).ToList();
- // }
- // }
- // if (!string.IsNullOrEmpty(chassisNumber))
- // {
- // var _groupList = chassisNumber.Split(new char[] { '\n' }).Distinct().ToList();
- // if (_groupList.Count() > 0)
- // {
- // _ls = _ls.Where(p => _groupList.Contains(p.ChassisNumber)).ToList();
- // }
- // }
- // if (!string.IsNullOrEmpty(sapCode))
- // {
- // var _groupList = sapCode.Split(new char[] { '\n' }).Distinct().ToList();
- // if (_groupList.Count() > 0)
- // {
- // _ls = _ls.Where(p => _groupList.Contains(p.SapMaterialCode)).ToList();
- // }
- // }
- // if (!string.IsNullOrEmpty(materialCode))
- // {
- // var _groupList = materialCode.Split(new char[] { '\n' }).Distinct().ToList();
- // if (_groupList.Count() > 0)
- // {
- // _ls = _ls.Where(p => _groupList.Contains(p.MaterialCode)).ToList();
- // }
- // }
-
-
- // var _checkList = _erpdapperRepository.GetErrorBillList();
-
- // var query = from itm in _ls
- // join itm1 in _checkList on new { ChassisNumber = itm.ChassisNumber, MaterialCode = itm.MaterialCode, WmsBillNum = itm.WmsBillNum }
- //equals new { ChassisNumber = itm1.BillNum, MaterialCode = itm1.MaterialCode, WmsBillNum = itm1.WmsBillNum } into temp1
- // from tm1 in temp1.DefaultIfEmpty()
- // where tm1 == null
- // select itm;
-
-
- // _ls = query.ToList();
-
-
-
- // var _lsSum = _ls.GroupBy(p => new { p.MaterialCode, p.SapMaterialCode, p.MaterialGroup, p.InvoicePrice }).Select(p => new UnInvoiceSettledDetailSum
- // {
- // MaterialCode = p.Key.MaterialCode,
- // SapMaterailCode = p.Key.SapMaterialCode,
- // MaterialGroup = p.Key.MaterialGroup,
- // SettleQty = p.Sum(itm => itm.SettledQty),
- // FisQty = 0,
- // DiffQty = -p.Sum(itm => itm.SettledQty),
- // Price = p.Key.InvoicePrice,
- // DiffAmt = p.Sum(itm => itm.SettledQty) * p.Key.InvoicePrice
- // }).ToList();
-
- // var _sumTotal = new UnInvoiceSettledDetailSum()
- // {
-
- // SettleQty = _lsSum.Sum(p => p.SettleQty),
- // DiffQty = _lsSum.Sum(p => p.DiffQty),
- // Price = _lsSum.Sum(p => p.Price),
- // DiffAmt = _lsSum.Sum(p => p.DiffAmt)
-
-
- // };
- // _lsSum.Add(_sumTotal);
-
-
-
- // var _ls1 = DiffPrice(id, exportName, p_list);
-
- // var report1List = _ls1.Where(p => p.DiffPrice != 0).GroupBy(p => new { p.MaterialGroup, p.MaterialCode, p.MaterialDesc, p.Price, p.InvoicePrice, p.DiffPrice, p.SapMaterialCode })
- // .Select(t => new SettleDoorPanelExport { MaterialGroup = t.FirstOrDefault().MaterialGroup, MaterialCode = t.FirstOrDefault().MaterialCode, MaterialDesc = t.FirstOrDefault().MaterialDesc, Price = t.FirstOrDefault().Price, InvoicePrice = t.FirstOrDefault().InvoicePrice, InvoiceDiffPrice = t.FirstOrDefault().DiffPrice, SAPCode = t.FirstOrDefault().SapMaterialCode }).ToList();
-
-
-
- // var report2List = _ls1.Where(p => p.DiffPrice != 0).Select(p => new { p.MaterialGroup, DiffAmt = p.DiffPrice * p.Qty }).GroupBy(p => new { p.MaterialGroup }).Select(p => new SettleDoorPanelSumExport { MaterialGroup = p.Key.MaterialGroup, InvoiceDiffPrice = p.Sum(itm => itm.DiffAmt), Version = version });
-
- // var list1 = LSettleSum(id, exportName, p_list);
-
- // var report1 = report2List.ToList();
-
- // foreach (var itm in list1)
- // {
- // itm.MaterialGroup = itm.MaterialGroup + "(漏结)";
- // }
-
- // report1.AddRange(list1);
-
- // ExcelExporter _exporter = new ExcelExporter();//导出Excel
-
- // var result = _exporter
- // .Append(_ls, "差异明细表")
- // .SeparateBySheet()
- // .Append(_lsSum, "数量差异汇总表")
- // .SeparateBySheet()
- // .Append(report1List, "按物料价格差异明细表")
- // .SeparateBySheet()
- // .Append(report1, "差异汇总验证表")
- // .ExportAppendDataAsByteArray();
- // result.ShouldNotBeNull();
- // _fileContainer.SaveAsync(_filename, result.Result, true);
-
- // //_outputService.Export(id, string.Format("大众结算未发运核对明细表_{0}.xlsx", Guid.NewGuid().ToString()), _ls);
-
- // return id.ToString();
+ this._hubContext.Clients.All.ServerToClient("Compare", "refresh", "");
}
+ #endregion
}
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Job/SettleAccountJobAutoMapperProfile.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Job/SettleAccountJobAutoMapperProfile.cs
index 4ae5ff46..6e65c9ca 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Job/SettleAccountJobAutoMapperProfile.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Job/SettleAccountJobAutoMapperProfile.cs
@@ -20,6 +20,11 @@ namespace SettleAccount.Job
.ForMember(x => x.ReplaceLU, y => y.MapFrom(y => y.ReplaceLU));
CreateMap();
+
+ CreateMap();
+ CreateMap();
+ CreateMap();
+ CreateMap();
}
}
}