Browse Source

更新版本

branch_ccpg_220107
Administrator 4 years ago
parent
commit
03cbf613b5
  1. 10345
      src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/Migrations/20211129095823_init.Designer.cs
  2. 4385
      src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/Migrations/20211129095823_init.cs
  3. 17
      src/Modules/SettleAccount/src/SettleAccount.Application/Reports/ReportServices/ReportMakeService.cs
  4. 2
      src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccount.Application.xml
  5. 61
      src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/ReportDetailBase.cs
  6. 93
      src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/ErpPartDapperRepository.cs
  7. 40
      src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/UnSettleDiffDapperRepository.cs
  8. 51
      src/Modules/SettleAccount/src/SettleAccount.Job/Services/OutputService.cs
  9. 11
      src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/InvoiceSettledDetailDiffExportService.cs
  10. 4
      src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnSettleDiffExportService.cs
  11. 7
      src/Modules/SettleAccount/src/SettleAccount.Job/SettleAccountJobModule.cs

10345
src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/Migrations/20211129095823_init.Designer.cs

File diff suppressed because it is too large

4385
src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/Migrations/20211129095823_init.cs

File diff suppressed because it is too large

17
src/Modules/SettleAccount/src/SettleAccount.Application/Reports/ReportServices/ReportMakeService.cs

@ -375,13 +375,28 @@ namespace Win.Sfs.SettleAccount.Reports.ReportServices
[Route("UnSettleDiffExport-Make")] [Route("UnSettleDiffExport-Make")]
[DisableRequestSizeLimit] [DisableRequestSizeLimit]
public async Task<string> UnSettleDiffExportServiceMake(string version, string materialCode, string begin, string end) public async Task<string> UnSettleDiffExportServiceMake(string version, string type,string year,string materialCode,string sapMaterialCode, string begin, string end)
{ {
List<CustomCondition> customConditionList = new List<CustomCondition>(); List<CustomCondition> customConditionList = new List<CustomCondition>();
customConditionList.Add(new CustomCondition() { Name = "Version", Value = version }); customConditionList.Add(new CustomCondition() { Name = "Version", Value = version });
customConditionList.Add(new CustomCondition() { Name = "MaterialCode", Value = materialCode }); customConditionList.Add(new CustomCondition() { Name = "MaterialCode", Value = materialCode });
customConditionList.Add(new CustomCondition() { Name = "BeginTime", Value = begin }); customConditionList.Add(new CustomCondition() { Name = "BeginTime", Value = begin });
customConditionList.Add(new CustomCondition() { Name = "EndTime", Value = end }); customConditionList.Add(new CustomCondition() { Name = "EndTime", Value = end });
customConditionList.Add(new CustomCondition() { Name = "Type", Value = type });
customConditionList.Add(new CustomCondition() { Name = "Year", Value = year });
customConditionList.Add(new CustomCondition() { Name = "MaterialCode", Value = materialCode });
customConditionList.Add(new CustomCondition() { Name = "SapMaterialCode", Value = sapMaterialCode });
//var type = p_list.Where(p => p.Name == "Type").FirstOrDefault().Value;
//var year = p_list.Where(p => p.Name == "Year").FirstOrDefault().Value;
//var materialCode = p_list.Where(p => p.Name == "MaterialCode").FirstOrDefault().Value;
//var sapCode = p_list.Where(p => p.Name == "SapMaterialCode").FirstOrDefault().Value;
//var beginTime = p_list.Where(p => p.Name == "BegingTime").FirstOrDefault().Value;
//var endTime = p_list.Where(p => p.Name == "EndTime").FirstOrDefault().Value;
var _taskid = await _service.ExportEnqueueAsync("大众准时化未结差异比对表", ExportExtentsion.Excel, CurrentUser, typeof(UnSettleDiffExportService), customConditionList, (rs) => var _taskid = await _service.ExportEnqueueAsync("大众准时化未结差异比对表", ExportExtentsion.Excel, CurrentUser, typeof(UnSettleDiffExportService), customConditionList, (rs) =>
{ {
}); });

2
src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccount.Application.xml

@ -2498,7 +2498,7 @@
<param name="files">上传的文件(前端已经限制只能上传一个附件)</param> <param name="files">上传的文件(前端已经限制只能上传一个附件)</param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Win.Sfs.SettleAccount.Reports.ReportServices.ReportService.UnSettleDiffExportServiceMake(System.String,System.String,System.String,System.String)"> <member name="M:Win.Sfs.SettleAccount.Reports.ReportServices.ReportService.UnSettleDiffExportServiceMake(System.String,System.String,System.String,System.String,System.String,System.String,System.String)">
<summary> <summary>
6.大众准时化未结差异比对表 6.大众准时化未结差异比对表
</summary> </summary>

61
src/Modules/SettleAccount/src/SettleAccount.Domain/Reports/ReportDetailBase.cs

@ -10,33 +10,68 @@ namespace Win.Sfs.SettleAccount.Reports
public class ReportDetailBase public class ReportDetailBase
{ {
[ExporterHeader(DisplayName = "交货单号 ")]
public virtual string WmsBillNum { set; get; } public virtual string WmsBillNum { set; get; }
[ExporterHeader(DisplayName = "实际发货日期 ")]
public virtual DateTime CP5Time { set; get; } public virtual DateTime CP5Time { set; get; }
[ExporterHeader(DisplayName = "KENN号")]
public virtual string KENNCode { set; get; } public virtual string KENNCode { set; get; }
[ExporterHeader(DisplayName = "底盘号")]
public virtual string ChassisNumber { set; get; } public virtual string ChassisNumber { set; get; }
[ExporterHeader(DisplayName = "交货状态 ")]
public virtual string WmsState { set; get; } public virtual string WmsState { set; get; }
[ExporterHeader(DisplayName = "物料号")]
public virtual string SapMaterialCode { set; get; } public virtual string SapMaterialCode { set; get; }
[ExporterHeader(DisplayName = "物料描述 ")]
public virtual string MaterialDesc { set; get; } public virtual string MaterialDesc { set; get; }
[ExporterHeader(DisplayName = "客户物料 ")]
public virtual string MaterialCode { set; get; } public virtual string MaterialCode { set; get; }
[ExporterHeader(DisplayName = "组件组物料 ")]
public virtual string ParentSapMaterialCode { set; get; } public virtual string ParentSapMaterialCode { set; get; }
[ExporterHeader(DisplayName = "组件组物料描述 ")]
public virtual string ParentMaterialDesc { set; get; } public virtual string ParentMaterialDesc { set; get; }
[ExporterHeader(DisplayName = "物料组(车型) ")]
public virtual string MaterialGroup { set; get; } public virtual string MaterialGroup { set; get; }
[ExporterHeader(DisplayName = "定价 ")]
public virtual decimal Price { set; get; } public virtual decimal Price { set; get; }
[ExporterHeader(DisplayName = "金额 ")]
public virtual decimal Amt { set; get; } public virtual decimal Amt { set; get; }
//public virtual string WmsBillNum { set; get; }
//public virtual DateTime CP5Time { set; get; }
//public virtual string KENNCode { set; get; }
//public virtual string ChassisNumber { set; get; }
//public virtual string WmsState { set; get; }
//public virtual string SapMaterialCode { set; get; }
//public virtual string MaterialDesc { set; get; }
//public virtual string MaterialCode { set; get; }
//public virtual string ParentSapMaterialCode { set; get; }
//public virtual string ParentMaterialDesc { set; get; }
//public virtual string MaterialGroup { set; get; }
//public virtual decimal Price { set; get; }
//public virtual decimal Amt { set; get; }
} }
} }

93
src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/ErpPartDapperRepository.cs

@ -47,41 +47,74 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report
{ {
_priceList = DbConnection.Query<ErpPrice>("select Price SapPrice, MaterialCode SapErpPartCode from Set_PriceList where version=(select max(version) from Set_PriceListVersion)").ToList(); _priceList = DbConnection.Query<ErpPrice>("select Price SapPrice, MaterialCode SapErpPartCode from Set_PriceList where version=(select max(version) from Set_PriceListVersion)").ToList();
} }
// List <T> _list = new List<T>();
List <T> _list = new List<T>();
foreach (var itm in childList)
{ var query=from itm1 in childList
var parentMaterial = new T(); join itm2 in _priceList on itm1.ParentSapMaterialCode equals itm2.SapErpPartCode into temp1
parentMaterial.WmsBillNum = itm.WmsBillNum; from tm1 in temp1.DefaultIfEmpty(new ErpPrice())
parentMaterial.CP5Time = itm.CP5Time; join itm3 in _materialList on itm1.ParentSapMaterialCode equals itm3.MaterialCode into temp2
parentMaterial.KENNCode = itm.KENNCode; from tm2 in temp2.DefaultIfEmpty(new Material())
parentMaterial.ChassisNumber = itm.ChassisNumber; select new T {
parentMaterial.WmsState = itm.WmsState;
parentMaterial.SapMaterialCode = itm.ParentSapMaterialCode;
parentMaterial.MaterialDesc = itm.ParentMaterialDesc; WmsBillNum = itm1.WmsBillNum,
parentMaterial.MaterialCode = itm.ParentSapMaterialCode; CP5Time = itm1.CP5Time,
parentMaterial.ParentSapMaterialCode = itm.ParentSapMaterialCode; KENNCode = itm1.KENNCode,
parentMaterial.ParentMaterialDesc = itm.ParentMaterialDesc; ChassisNumber = itm1.ChassisNumber,
WmsState = itm1.WmsState,
var _price = _priceList.Where(p => p.SapErpPartCode == itm.ParentSapMaterialCode).FirstOrDefault(); SapMaterialCode = itm1.ParentSapMaterialCode,
if (_price != null) MaterialDesc = itm1.ParentMaterialDesc,
{ MaterialCode = itm1.ParentSapMaterialCode,
parentMaterial.Price = _price.SapPrice; ParentSapMaterialCode = itm1.ParentSapMaterialCode,
parentMaterial.Amt = _price.SapPrice; ParentMaterialDesc = itm1.ParentMaterialDesc,
Price =tm1.SapPrice,
Amt = tm1.SapPrice,
MaterialGroup = tm2.EstimateTypeDesc
};
//foreach (var itm in childList)
//{
// var parentMaterial = new T();
// parentMaterial.WmsBillNum = itm.WmsBillNum;
// parentMaterial.CP5Time = itm.CP5Time;
// parentMaterial.KENNCode = itm.KENNCode;
// parentMaterial.ChassisNumber = itm.ChassisNumber;
// parentMaterial.WmsState = itm.WmsState;
// parentMaterial.SapMaterialCode = itm.ParentSapMaterialCode;
// parentMaterial.MaterialDesc = itm.ParentMaterialDesc;
// parentMaterial.MaterialCode = itm.ParentSapMaterialCode;
// parentMaterial.ParentSapMaterialCode = itm.ParentSapMaterialCode;
// parentMaterial.ParentMaterialDesc = itm.ParentMaterialDesc;
// var _price = _priceList.Where(p => p.SapErpPartCode == itm.ParentSapMaterialCode).FirstOrDefault();
// if (_price != null)
// {
// parentMaterial.Price = _price.SapPrice;
// parentMaterial.Amt = _price.SapPrice;
} // }
var _material = _materialList.Where(p => p.MaterialCode == itm.ParentSapMaterialCode).FirstOrDefault(); // var _material = _materialList.Where(p => p.MaterialCode == itm.ParentSapMaterialCode).FirstOrDefault();
if (_material != null) // if (_material != null)
{ // {
parentMaterial.MaterialGroup = _material.EstimateTypeDesc; // parentMaterial.MaterialGroup = _material.EstimateTypeDesc;
} // }
_list.Add(parentMaterial); // _list.Add(parentMaterial);
} //}
return _list; return query.ToList();
} }
public virtual List<ErpPrice> GetErpPartCodePriceList(string version) public virtual List<ErpPrice> GetErpPartCodePriceList(string version)

40
src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/UnSettleDiffDapperRepository.cs

@ -14,14 +14,42 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report
{ {
public class UnSettleDiff: ReportDetailBase public class UnSettleDiff: ReportDetailBase
{ {
[ExporterHeader(DisplayName = "交货单号 ")]
public override string WmsBillNum { set; get; }
[ExporterHeader(DisplayName = "实际发货日期 ")]
public override DateTime CP5Time { set; get; }
[ExporterHeader(DisplayName = "KENN号")]
public override string KENNCode { set; get; }
[ExporterHeader(DisplayName = "底盘号")]
public override string ChassisNumber { set; get; }
[ExporterHeader(DisplayName = "交货状态 ")]
public override string WmsState { set; get; }
[ExporterHeader(DisplayName = "物料号")]
public override string SapMaterialCode { set; get; }
[ExporterHeader(DisplayName = "物料描述 ")]
public override string MaterialDesc { set; get; }
[ExporterHeader(DisplayName = "客户物料 ")]
public override string MaterialCode { set; get; }
[ExporterHeader(DisplayName = "组件组物料 ")]
public override string ParentSapMaterialCode { set; get; }
[ExporterHeader(DisplayName = "组件组物料描述 ")]
public override string ParentMaterialDesc { set; get; }
[ExporterHeader(DisplayName = "物料组(车型) ")]
public override string MaterialGroup { set; get; }
[ExporterHeader(DisplayName = "定价 ")]
public override decimal Price { set; get; }
[ExporterHeader(DisplayName = "金额 ")]
public override decimal Amt { set; get; }
[ExporterHeader(DisplayName = "结算平台未结数量")] [ExporterHeader(DisplayName = "结算平台未结数量")]
public decimal Qty { set; get; } public decimal Qty { set; get; }
[ExporterHeader(DisplayName = "大众R3未结数量")] [ExporterHeader(DisplayName = "大众R3未结数量")]
public decimal UNSettleQty { set; get; } public decimal UNSettleQty { set; get; }
[ExporterHeader(DisplayName = "定价")]
public decimal Price { set; get; }
[ExporterHeader(DisplayName = "金额")]
public decimal Amt { set; get; }
[ExporterHeader(DisplayName = "差异")] [ExporterHeader(DisplayName = "差异")]
public decimal DiffQty { set; get; } public decimal DiffQty { set; get; }
[ExporterHeader(DisplayName = "差异金额")] [ExporterHeader(DisplayName = "差异金额")]
@ -164,8 +192,8 @@ namespace Win.Sfs.SettleAccount.Repository.SettleAccountJob.Report
" Price \n" + " Price \n" +
" FROM\n" + " FROM\n" +
" Set_PriceList \n" + " Set_PriceList \n" +
"WHERE\n" + " WHERE\n" +
" version = ( SELECT max( version ) FROM Set_PriceListVersion )) t2 ON t1.MaterialCode = t2.MaterialCode"; " version = ( SELECT max( version ) FROM Set_PriceListVersion )) t2 ON t1.SapMaterialCode = t2.MaterialCode";
string _sql = string.Empty; string _sql = string.Empty;

51
src/Modules/SettleAccount/src/SettleAccount.Job/Services/OutputService.cs

@ -1,8 +1,10 @@
using Magicodes.ExporterAndImporter.Core; using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Excel; using Magicodes.ExporterAndImporter.Excel;
using Microsoft.CSharp;
using SettleAccount.Job.Domain; using SettleAccount.Job.Domain;
using Shouldly; using Shouldly;
using System; using System;
using System.CodeDom.Compiler;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
@ -55,23 +57,48 @@ namespace SettleAccount.Job.Services
_fileContainer.SaveAsync(fileName, result.Result, true); _fileContainer.SaveAsync(fileName, result.Result, true);
var _task = new Win.Sfs.SettleAccount.Entities.TaskJob() { DownFileName = fileName }; var _task = new Win.Sfs.SettleAccount.Entities.TaskJob() { DownFileName = fileName };
_taskjobRepository.UpdateTaskJob(Id, _task); _taskjobRepository.UpdateTaskJob(Id, _task);
//保存导出文件到服务器存成二进制
//保存导出文件到服务器存成二进制
} }
public void Export<T1,T2>(Guid Id, string fileName, List<T1> p_list, List<T2> p_list1) where T1 : class, new() public void Export<T>(Guid Id, string fileName,Dictionary<string,List<T>> p_dic) where T : class, new()
where T2: class, new()
{ {
ExcelExporter _exporter = new ExcelExporter();//导出Excel
var result = _exporter //string methodName = (isDesc) ? "OrderByDescendingInternal" : "OrderByInternal";
.Append(p_list, "sheet1")
.SeparateBySheet()
.Append(p_list1)
.ExportAppendDataAsByteArray();
//var memberProp = typeof(T).GetProperty(propertyName);
//var method = typeof(QueryableExtension).GetMethod(methodName)?.MakeGenericMethod(typeof(T), memberProp?.PropertyType);
result.ShouldNotBeNull(); //var result = method?.Invoke(null, new object[] { query, memberProp });
_fileContainer.SaveAsync(fileName, result.Result, true); //return (IOrderedQueryable<T>)result;
foreach (var itm in p_dic)
{
//.Append(p_list, "sheet1")
}
//ExcelExporter _exporter = new ExcelExporter();//导出Excel
//var result = _exporter
//.Append(p_list, "sheet1")
//.SeparateBySheet()
//.Append(p_list1)
//.ExportAppendDataAsByteArray();
//result.ShouldNotBeNull();
//_fileContainer.SaveAsync(fileName, result.Result, true);
var _task = new Win.Sfs.SettleAccount.Entities.TaskJob() { DownFileName = fileName }; var _task = new Win.Sfs.SettleAccount.Entities.TaskJob() { DownFileName = fileName };
_taskjobRepository.UpdateTaskJob(Id, _task); _taskjobRepository.UpdateTaskJob(Id, _task);
//保存导出文件到服务器存成二进制 //保存导出文件到服务器存成二进制

11
src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/InvoiceSettledDetailDiffExportService.cs

@ -52,21 +52,28 @@ namespace SettleAccount.Job.Services
var kenncode = p_list.Where(p => p.Name == "KennCode").FirstOrDefault().Value; var kenncode = p_list.Where(p => p.Name == "KennCode").FirstOrDefault().Value;
var chassisNumber = p_list.Where(p => p.Name == "ChassisNumber").FirstOrDefault().Value; var chassisNumber = p_list.Where(p => p.Name == "ChassisNumber").FirstOrDefault().Value;
var _ls = _dapperRepository.GetInvoiceSettledDetailDiffReportList(version, materialCode, begin, end, cp7begin, cp7end, kenncode, chassisNumber); var _ls = _dapperRepository.GetInvoiceSettledDetailDiffReportList(version, materialCode, begin, end, cp7begin, cp7end, kenncode, chassisNumber);
var _list = _ls.GroupBy(p => p.ParentSapMaterialCode).Select(p => p.FirstOrDefault()).ToList(); var _list = _ls.Where(p=>p.ParentSapMaterialCode!=p.SapMaterialCode).GroupBy(p =>new { p.ParentSapMaterialCode,p.ChassisNumber,p.KENNCode }).Select(p => p.FirstOrDefault()).ToList();
var rangeList = _erpdapperRepository.GetSapList<InvoiceSettledDetailDiff>(_list); var rangeList = _erpdapperRepository.GetSapList<InvoiceSettledDetailDiff>(_list);
var erpPriceList= _erpdapperRepository.GetErpPartCodePriceList(version);
rangeList.ForEach(p => { rangeList.ForEach(p => {
p.Qty = 1; p.Qty = 1;
p.InvoiceQty = 1; p.InvoiceQty = 1;
p.SettledQty = 1; p.SettledQty = 1;
p.DiffSettleFisQty = 0; p.DiffSettleFisQty = 0;
p.DiffSettleInvQty = 0; p.DiffSettleInvQty = 0;
var _first= erpPriceList.FirstOrDefault(itm => itm.SapErpPartCode == p.SapMaterialCode);
if (_first != null)
{
p.InvoicePrice= _first.SapPrice;
}
p.DiffPrice = p.InvoicePrice - p.Price;
}); });
_ls.AddRange(rangeList); _ls.AddRange(rangeList);
_ls.OrderBy(p => new { p.ChassisNumber, p.KENNCode }); _ls=_ls.OrderBy(p => p.ChassisNumber).ThenBy(p=>p.KENNCode).ThenBy(p=>p.SapMaterialCode).ToList();
_outputService.Export<InvoiceSettledDetailDiff>(id, string.Format("大众发票与结算核对明细表_{0}.xlsx", Guid.NewGuid().ToString()), _ls); _outputService.Export<InvoiceSettledDetailDiff>(id, string.Format("大众发票与结算核对明细表_{0}.xlsx", Guid.NewGuid().ToString()), _ls);

4
src/Modules/SettleAccount/src/SettleAccount.Job/Services/Report/UnSettleDiffExportService.cs

@ -28,7 +28,7 @@ namespace SettleAccount.Job.Services.Report
var materialCode = p_list.Where(p => p.Name == "MaterialCode").FirstOrDefault().Value; var materialCode = p_list.Where(p => p.Name == "MaterialCode").FirstOrDefault().Value;
var sapCode = p_list.Where(p => p.Name == "SapMaterialCode").FirstOrDefault().Value; var sapCode = p_list.Where(p => p.Name == "SapMaterialCode").FirstOrDefault().Value;
var beginTime = p_list.Where(p => p.Name == "BegingTime").FirstOrDefault().Value; var beginTime = p_list.Where(p => p.Name == "BeginTime").FirstOrDefault().Value;
var endTime = p_list.Where(p => p.Name == "EndTime").FirstOrDefault().Value; var endTime = p_list.Where(p => p.Name == "EndTime").FirstOrDefault().Value;
var _first = exportName.FirstOrDefault(); var _first = exportName.FirstOrDefault();
@ -68,7 +68,7 @@ namespace SettleAccount.Job.Services.Report
// _lsExport.Add(dto); // _lsExport.Add(dto);
//} //}
_outputService.Export<UnSettleDiff>(id, _first, _lsExport); _outputService.Export<UnSettleDiff>(id, _first, _ls);
return id.ToString(); return id.ToString();
} }
} }

7
src/Modules/SettleAccount/src/SettleAccount.Job/SettleAccountJobModule.cs

@ -123,6 +123,13 @@ namespace Win.Sfs.SettleAccount
{ {
return implementationFactory.GetService<InvoiceSettledDetailDiffExportService>(); return implementationFactory.GetService<InvoiceSettledDetailDiffExportService>();
} }
if (key.Equals(typeof(UnSettleDiffExportService).FullName))
{
return implementationFactory.GetService<UnSettleDiffExportService>();
}
else else
{ {

Loading…
Cancel
Save