Browse Source

Merge branch 'master' of http://dev.ccwin-in.com:3000/BoXu.Zheng/BeiJinSettleAccount

master
wanggang 1 year ago
parent
commit
5dba5b96e2
  1. 849
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/MaterialRelationships/MaterialRelationshipAppService.cs
  2. 10
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/Prices/PriceListAppService.cs
  3. 2
      code/src/Modules/SettleAccount/src/SettleAccount.Application/ImportExcelCommon/ExportImporter.cs
  4. 5
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_SA.cs
  5. 5828
      code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/20230919010624_20230919-1.Designer.cs
  6. 179
      code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/20230919010624_20230919-1.cs
  7. 26
      code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/SettleAccountDbContextModelSnapshot.cs

849
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/MaterialRelationships/MaterialRelationshipAppService.cs

@ -3,12 +3,14 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Shouldly;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Caching;
using Win.Abp.Snowflakes;
using Win.Sfs.BaseData.ImportExcelCommon;
using Win.Sfs.SettleAccount.Bases;
using Win.Sfs.SettleAccount.CommonManagers;
using Win.Sfs.SettleAccount.Constant;
using Win.Sfs.SettleAccount.Entities.BQ.Dtos;
@ -17,436 +19,451 @@ using Win.Sfs.SettleAccount.ExportReports;
using Win.Sfs.SettleAccount.MaterialRelationships;
using Win.Sfs.Shared.RepositoryBase;
namespace Win.Sfs.SettleAccount.Entities.MaterialRelationships
namespace Win.Sfs.SettleAccount.Entities.MaterialRelationships;
/// <summary>
/// 客户零件关系
/// </summary>
[AllowAnonymous]
[Route("api/settleaccount/[controller]/[action]")]
public class MaterialRelationshipAppService : SettleAccountApplicationBase<MaterialRelationship>
{
/// <summary>
/// 客户零件关系
/// 客户零件关系仓储
/// </summary>
[AllowAnonymous]
[Route("api/settleaccount/[controller]/[action]")]
public class MaterialRelationshipAppService : SettleAccountApplicationBase<MaterialRelationship>
private readonly INormalEfCoreRepository<MaterialRelationship, Guid> _repository;
/// <summary>
/// 构造
/// </summary>
public MaterialRelationshipAppService(
INormalEfCoreRepository<MaterialRelationship, Guid> repository,
IDistributedCache<MaterialRelationship> cache,
IExcelImportAppService excelImportService,
ISnowflakeIdGenerator snowflakeIdGenerator,
ICommonManager commonManager
) : base(cache, excelImportService, snowflakeIdGenerator, commonManager)
{
/// <summary>
/// 客户零件关系仓储
/// </summary>
private readonly INormalEfCoreRepository<MaterialRelationship, Guid> _repository;
/// <summary>
/// 构造
/// </summary>
public MaterialRelationshipAppService(
INormalEfCoreRepository<MaterialRelationship, Guid> repository,
IDistributedCache<MaterialRelationship> cache,
IExcelImportAppService excelImportService,
ISnowflakeIdGenerator snowflakeIdGenerator,
ICommonManager commonManager
) : base(cache, excelImportService, snowflakeIdGenerator, commonManager)
{
_repository = repository;
}
_repository = repository;
}
#region 导入、导出
/// <summary>
/// 导入
/// </summary>
[HttpPost]
public async Task<IActionResult> ImportAsync([FromForm] MaterialRelationshipImportRequestDto materialRelationshipImportRequestDto)
{
var _exportImporter = new ExportImporter();
var result = await _exportImporter.UploadExcelImport<MaterialRelationshipImportDto>(materialRelationshipImportRequestDto.Files, _excelImportService).ConfigureAwait(false);
var _ls = ObjectMapper.Map<List<MaterialRelationshipImportDto>, List<MaterialRelationship>>(result);
List<string> _errorList = new List<string>();
var checkList = new List<ErrorExportDto>();
#region 导入、导出
/// <summary>
/// 导入
/// </summary>
[HttpPost]
public async Task<IActionResult> ImportAsync([FromForm] MaterialRelationshipImportRequestDto materialRelationshipImportRequestDto)
{
var exportImporter = new ExportImporter();
var inportDatas = await exportImporter.UploadExcelImport<MaterialRelationshipImportDto>(materialRelationshipImportRequestDto.Files, _excelImportService).ConfigureAwait(false);
var entitys = ObjectMapper.Map<List<MaterialRelationshipImportDto>, List<MaterialRelationship>>(inportDatas);
var errorList = new List<string>();
var checkList = new List<ErrorExportDto>();
if (_ls.Count > 0)
{
var query = from arc in _ls
group arc by new { arc.SettleMaterialCode }
into g
where g.Count() > 1
select g;
foreach (var itm in query)
{
checkList.Add(new ErrorExportDto(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Format("客户物料号{0}有重复", itm.Key.SettleMaterialCode), string.Empty));
}
}
if (checkList.Count > 0)
if (entitys.Count > 0)
{
var query = from arc in entitys
group arc by new { arc.SettleMaterialCode }
into g
where g.Count() > 1
select g;
foreach (var itm in query)
{
string fileName = await ExportErrorReportAsync(checkList).ConfigureAwait(false);
return new JsonResult(new { Code = ApplicationConsts.ImportFailCode, Message = "错误提示文件已下载,请打开文件查看", fileName = fileName });
checkList.Add(new ErrorExportDto(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Format("客户物料号{0}有重复", itm.Key.SettleMaterialCode), string.Empty));
}
foreach (var itm in _ls)
}
if (checkList.Count > 0)
{
string fileName = await ExportErrorReportAsync(checkList).ConfigureAwait(false);
return new JsonResult(new { Code = ApplicationConsts.ImportFailCode, Message = "错误提示文件已下载,请打开文件查看", fileName = fileName });
}
foreach (var item in entitys)
{
var entity = _repository.FirstOrDefault(p => p.ErpMaterialCode == item.ErpMaterialCode && p.BusinessType == EnumBusinessType.BeiJian && p.SettleMaterialCode == item.SettleMaterialCode);
if (entity == null)
{
var _first = _repository.FirstOrDefault(p => p.ErpMaterialCode == itm.ErpMaterialCode && p.BusinessType == EnumBusinessType.BeiJian);
if (_first != null)
{
_first.Update(itm.MaterialDesc, itm.SettleMaterialCode);
await _repository.UpdateAsync(_first).ConfigureAwait(false);
}
else
{
itm.BusinessType = EnumBusinessType.BeiJian;
await _repository.InsertAsync(itm).ConfigureAwait(false);
}
item.BusinessType = EnumBusinessType.BeiJian;
await _repository.InsertAsync(item).ConfigureAwait(false);
}
return new JsonResult(new { Code = 200, Message = "导入成功" });
}
return new JsonResult(new { Code = 200, Message = "导入成功" });
}
/// <summary>
/// 导出
/// </summary>
[HttpPost]
public async Task<string> ExportAsync(RequestDto input)
{
string fileName = $"客户零件关系_{Guid.NewGuid()}.xlsx";
var entities = await _repository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, 0, true).ConfigureAwait(false);
var dtos = ObjectMapper.Map<List<MaterialRelationship>, List<MaterialRelationshipExportDto>>(entities);
/// <summary>
/// 导出
/// </summary>
[HttpPost]
public async Task<string> ExportAsync(RequestDto input)
{
string fileName = $"客户零件关系_{Guid.NewGuid()}.xlsx";
var entities = await _repository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, 0, true).ConfigureAwait(false);
var dtos = ObjectMapper.Map<List<MaterialRelationship>, List<MaterialRelationshipExportDto>>(entities);
ExportImporter _exportImporter = new ExportImporter();
var result = await _exportImporter.ExcelExporter(dtos).ConfigureAwait(false);
result.ShouldNotBeNull();
ExportImporter _exportImporter = new ExportImporter();
var result = await _exportImporter.ExcelExporter(dtos).ConfigureAwait(false);
result.ShouldNotBeNull();
await _excelImportService.SaveBlobAsync(new SaveExcelImportInputDto { Name = fileName, Content = result }).ConfigureAwait(false);
return fileName;
}
#endregion
#region CURD
/// <summary>
/// 获取列表
/// </summary>
[HttpPost]
public async Task<PagedResultDto<MaterialRelationshipDto>> GetListAsync(RequestDto input)
{
var entities = await _repository.GetListByFilterAsync(input.Filters, input.Sorting, input.MaxResultCount, input.SkipCount, true).ConfigureAwait(false);
var totalCount = await _repository.GetCountByFilterAsync(input.Filters).ConfigureAwait(false);
var dtos = ObjectMapper.Map<List<MaterialRelationship>, List<MaterialRelationshipDto>>(entities);
return new PagedResultDto<MaterialRelationshipDto>(totalCount, dtos);
}
#endregion
#region 原方法(废弃)
///// <summary>
///// 导入功能
///// </summary>
///// <param name="files">上传的文件(前端已经限制只能上传一个附件)</param>
///// <returns></returns>
//[HttpPost]
//[Route("ExcelImport-Map")]
//[DisableRequestSizeLimit]
//public async Task<string> MaterialRelationshipUploadExcelImportMap([FromForm] IFormFileCollection files)
//{
// ExportImporter _exportImporter = new ExportImporter();
// var mapList = _mapRepository.Where(p => p.ProjectName == SettleAccountModuleName.MaterialRelationship).ToList();
// var result = await _exportImporter.ExtendExcelImport<MaterialRelationshipImportDto>(files, _excelImportService, mapList);
// var _ls = ObjectMapper.Map<List<MaterialRelationshipImportDto>, List<MaterialRelationship>>(result);
// List<string> _errorList = new List<string>();
// var checkList = new List<ErrorExportDto>();
// if (_ls.Count > 0)
// {
// var query = from arc in _ls
// group arc by new { arc.ErpMaterialCode }
// into g
// where g.Count() > 1
// select g;
// foreach (var itm in query)
// {
// checkList.Add(new ErrorExportDto(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Format("ERP物料号{0}有重复", itm.Key.ErpMaterialCode), string.Empty));
// // _errorList.Add(string.Format("ERP物料号{0}有重复",itm.Key.ErpMaterialCode));
// }
// }
// foreach (var itm in _ls)
// {
// var _first = _repository.FirstOrDefault(p => p.ErpMaterialCode == itm.ErpMaterialCode);
// if (_first != null)
// {
// _first.Update(itm.MaterialDesc, itm.MaterialProperty, itm.SettleMaterialCode, itm.ShipMaterailCode);
// await _repository.UpdateAsync(_first);
// }
// else
// {
// checkList.Add(new ErrorExportDto(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Format("关系表中不存在ERP物料号{0}!", itm.ErpMaterialCode), string.Empty));
// //_errorList.Add(string.Format("关系表中不存在ERP物料号{0}!", itm.ErpMaterialCode));
// //itm.SetId(GuidGenerator.Create(), GuidGenerator.Create());
// //await _repository.InsertAsync(itm);
// }
// //itm.SetId(GuidGenerator.Create(), GuidGenerator.Create());
// }
// if (checkList.Count > 0)
// {
// return await ExportErrorReportAsync(checkList);
// }
// return ApplicationConsts.SuccessStr;
//}
///// <summary>
///// 导入功能
///// </summary>
///// <param name="files">上传的文件(前端已经限制只能上传一个附件)</param>
///// <returns></returns>
//[HttpPost]
//[Route("ExcelImport")]
//[DisableRequestSizeLimit]
//public async Task<string> MaterialRelationshipUploadExcelImport([FromForm] IFormFileCollection files)
//{
// ExportImporter _exportImporter = new ExportImporter();
// var result = await _exportImporter.UploadExcelImport<MaterialRelationshipImportDto>(files, _excelImportService);
// var _ls = ObjectMapper.Map<List<MaterialRelationshipImportDto>, List<MaterialRelationship>>(result);
// List<string> _errorList = new List<string>();
// var checkList = new List<ErrorExportDto>();
// if (_ls.Count > 0)
// {
// var query = from arc in _ls
// group arc by new { arc.ErpMaterialCode }
// into g
// where g.Count() > 1
// select g;
// foreach (var itm in query)
// {
// checkList.Add(new ErrorExportDto(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Format("ERP物料号{0}有重复", itm.Key.ErpMaterialCode), string.Empty));
// // _errorList.Add(string.Format("ERP物料号{0}有重复",itm.Key.ErpMaterialCode));
// }
// }
// foreach (var itm in _ls)
// {
// var _first = _repository.FirstOrDefault(p => p.ErpMaterialCode == itm.ErpMaterialCode);
// if (_first != null)
// {
// _first.Update(itm.MaterialDesc, itm.MaterialProperty, itm.SettleMaterialCode, itm.ShipMaterailCode);
// await _repository.UpdateAsync(_first);
// }
// else
// {
// checkList.Add(new ErrorExportDto(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Format("关系表中不存在ERP物料号{0}!", itm.ErpMaterialCode), string.Empty));
// //_errorList.Add(string.Format("关系表中不存在ERP物料号{0}!", itm.ErpMaterialCode));
// //itm.SetId(GuidGenerator.Create(), GuidGenerator.Create());
// //await _repository.InsertAsync(itm);
// }
// //itm.SetId(GuidGenerator.Create(), GuidGenerator.Create());
// }
// if (checkList.Count > 0)
// {
// return await ExportErrorReportAsync(checkList);
// }
// return ApplicationConsts.SuccessStr;
//}
///// <summary>
///// 按ID获取唯一实体
///// </summary>
///// <remarks>
///// 返回实体全部属性
///// </remarks>
///// <param name="id">ID</param>
///// <returns>实体DTO</returns>
//[HttpGet]
//[Route("{id}")]
//virtual public async Task<MaterialRelationshipDto> GetAsync(Guid id)
//{
// var result = await GetFromCacheAsync(id);
// var dto = ObjectMapper.Map<MaterialRelationship, MaterialRelationshipDto>(result);
// return dto;
//}
//private async Task<MaterialRelationship> GetFromCacheAsync(Guid id)
//{
// var result = await _repository.GetAsync(id);
// return result;
//}
//private async Task<long> GetCountAsync(MaterialRelationshipRequestDto input)
//{
// return await _repository.GetCountByFilterAsync(input.BranchId, input.Filters);
//}
/////// <summary>
///// <summary>
///// 根据筛选条件获取实体列表
///// </summary>
///// <remarks>
///// 请求条件包括:筛选条件列表,排序条件,数据数量,页码
///// </remarks>
///// <param name="input">请求条件</param>
///// <returns>实体DTO列表</returns>
//[HttpPost]
//[Route("list")]
//virtual public async Task<PagedResultDto<MaterialRelationshipDto>> GetListAsync(MaterialRelationshipRequestDto input)
//{
// var entities = await _repository.GetListByFilterAsync(input.BranchId, input.Filters, input.Sorting, input.MaxResultCount,
// input.SkipCount, true);
// var totalCount = await GetCountAsync(input);
// var dtos = ObjectMapper.Map<List<MaterialRelationship>, List<MaterialRelationshipDto>>(entities);
// return new PagedResultDto<MaterialRelationshipDto>(totalCount, dtos);
//}
///// <summary>
///// 获取实体总数
///// </summary>
///// <returns>实体总数</returns>
//[HttpGet]
//[Route("count")]
//virtual public async Task<long> GetTotalCountAsync(Guid branchId)
//{
// return await _repository.GetCountAsync(branchId);
//}
///// <summary>
///// 获取全部实体列表
///// </summary>
///// <returns>实体DTO列表</returns>
//[HttpGet]
//[Route("all")]
//virtual public async Task<ListResultDto<MaterialRelationshipDto>> GetAllAsync(Guid branchId)
//{
// var entities = await _repository.GetAllAsync(branchId, true);
// var dtos = ObjectMapper.Map<List<MaterialRelationship>, List<MaterialRelationshipDto>>(entities);
// return new ListResultDto<MaterialRelationshipDto>(dtos);
//}
///// <summary>
///// 新增实体
///// </summary>
///// <param name="input">新增实体DTO</param>
///// <returns>实体DTO</returns>
//[HttpPost]
//[Route("")]
//virtual public async Task<MaterialRelationshipDto> CreateAsync(MaterialRelationshipCreateDto input)
//{
// var _first = _repository.Where(p => p.ErpMaterialCode == input.ErpMaterialCode).FirstOrDefault();
// if (_first != null)
// {
// throw new BusinessException("001", "已经存数据请修改后创建");
// }
// var entity = new MaterialRelationship(
// GuidGenerator.Create(),
// input.BranchId,
// input.ErpMaterialCode,
// input.MaterialDesc,
// input.MaterialProperty,
// input.SettleMaterialCode,
// input.ShipMaterailCode,
// input.AppraisalCategory
// );
// await _repository.InsertAsync(entity);
// ////create cache
// //await Cache.SetAsync(entity.Id.ToString(), entity,
// // CacheStrategyConst.FIVE_MINUTES);
// var dto = ObjectMapper.Map<MaterialRelationship, MaterialRelationshipDto>(entity);
// return dto;
//}
///// <summary>
///// 修改实体
///// </summary>
///// <param name="id">ID</param>
///// <param name="input">修改实体DTO</param>
///// <returns>实体DTO</returns>
//[HttpPut]
//[Route("{id}")]
//virtual public async Task<MaterialRelationshipDto> UpdateAsync(Guid id, MaterialRelationshipUpdateDto input)
//{
// var entity = await _repository.GetAsync(id);
// if (entity != null)
// {
// entity.Update(input.MaterialDesc, input.MaterialProperty, input.SettleMaterialCode, input.ShipMaterailCode);
// await _repository.UpdateAsync(entity);
// var dto = ObjectMapper.Map<MaterialRelationship, MaterialRelationshipDto>(entity);
// return dto;
// }
// else
// {
// return null;
// }
//}
///// <summary>
///// 删除实体
///// </summary>
///// <param name="id">ID</param>
///// <returns>无</returns>
//[HttpDelete]
//[Route("{id}")]
//virtual public async Task DeleteAsync(Guid id)
//{
// var entity = await GetFromCacheAsync(id);
// await Cache.DeleteAsync<MaterialRelationship>(id.ToString());
// await _repository.DeleteAsync(id);
//}
///// <summary>
///// 按IDs删除实体列表
///// </summary>
///// <param name="ids">IDs</param>
///// <returns>是否执行成功</returns>
//[HttpPost]
//[Route("delete")]
//virtual public async Task<bool> DeleteListAsync(List<Guid> ids)
//{
// var _query = _repository.Where(p => ids.Contains(p.Id));
// int i = await _query.BatchDeleteAsync();
// if (i == 0)
// {
// return false;
// }
// return true;
//}
//[HttpPost]
//[Route("Export")]
//virtual public async Task<string> ExportAsync(MaterialRelationshipRequestDto input)
//{
// //var _userId = CurrentUser.Id.Value.ToString();
// string _fileName = string.Format("零件关系_{0}.xlsx", Guid.NewGuid().ToString());
// var entities = await _repository.GetListByFilterAsync(input.BranchId, input.Filters, input.Sorting, int.MaxValue,
// 0, true);
// var dtoDetails = ObjectMapper.Map<List<MaterialRelationship>, List<MaterialRelationshipExportDto>>(entities);
// //声明导出容器
// ExportImporter _exportImporter = new ExportImporter();
// var result = await _exportImporter.ExcelExporter(dtoDetails);
// result.ShouldNotBeNull();
// //保存导出文件到服务器存成二进制
// await _excelImportService.SaveBlobAsync(
// new SaveExcelImportInputDto
// {
// Name = _fileName,
// Content = result
// }
// );
// return _fileName;
//}
#endregion
await _excelImportService.SaveBlobAsync(new SaveExcelImportInputDto { Name = fileName, Content = result }).ConfigureAwait(false);
return fileName;
}
#endregion
#region CURD
/// <summary>
/// 获取列表
/// </summary>
[HttpPost]
public async Task<PagedResultDto<MaterialRelationshipDto>> GetListAsync(RequestDto input)
{
var entities = await _repository.GetListByFilterAsync(input.Filters, input.Sorting, input.MaxResultCount, input.SkipCount, true).ConfigureAwait(false);
var totalCount = await _repository.GetCountByFilterAsync(input.Filters).ConfigureAwait(false);
var dtos = ObjectMapper.Map<List<MaterialRelationship>, List<MaterialRelationshipDto>>(entities);
return new PagedResultDto<MaterialRelationshipDto>(totalCount, dtos);
}
#endregion
#region 原方法(废弃)
///// <summary>
///// 导入功能
///// </summary>
///// <param name="files">上传的文件(前端已经限制只能上传一个附件)</param>
///// <returns></returns>
//[HttpPost]
//[Route("ExcelImport-Map")]
//[DisableRequestSizeLimit]
//public async Task<string> MaterialRelationshipUploadExcelImportMap([FromForm] IFormFileCollection files)
//{
// ExportImporter _exportImporter = new ExportImporter();
// var mapList = _mapRepository.Where(p => p.ProjectName == SettleAccountModuleName.MaterialRelationship).ToList();
// var result = await _exportImporter.ExtendExcelImport<MaterialRelationshipImportDto>(files, _excelImportService, mapList);
// var _ls = ObjectMapper.Map<List<MaterialRelationshipImportDto>, List<MaterialRelationship>>(result);
// List<string> _errorList = new List<string>();
// var checkList = new List<ErrorExportDto>();
// if (_ls.Count > 0)
// {
// var query = from arc in _ls
// group arc by new { arc.ErpMaterialCode }
// into g
// where g.Count() > 1
// select g;
// foreach (var itm in query)
// {
// checkList.Add(new ErrorExportDto(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Format("ERP物料号{0}有重复", itm.Key.ErpMaterialCode), string.Empty));
// // _errorList.Add(string.Format("ERP物料号{0}有重复",itm.Key.ErpMaterialCode));
// }
// }
// foreach (var itm in _ls)
// {
// var _first = _repository.FirstOrDefault(p => p.ErpMaterialCode == itm.ErpMaterialCode);
// if (_first != null)
// {
// _first.Update(itm.MaterialDesc, itm.MaterialProperty, itm.SettleMaterialCode, itm.ShipMaterailCode);
// await _repository.UpdateAsync(_first);
// }
// else
// {
// checkList.Add(new ErrorExportDto(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Format("关系表中不存在ERP物料号{0}!", itm.ErpMaterialCode), string.Empty));
// //_errorList.Add(string.Format("关系表中不存在ERP物料号{0}!", itm.ErpMaterialCode));
// //itm.SetId(GuidGenerator.Create(), GuidGenerator.Create());
// //await _repository.InsertAsync(itm);
// }
// //itm.SetId(GuidGenerator.Create(), GuidGenerator.Create());
// }
// if (checkList.Count > 0)
// {
// return await ExportErrorReportAsync(checkList);
// }
// return ApplicationConsts.SuccessStr;
//}
///// <summary>
///// 导入功能
///// </summary>
///// <param name="files">上传的文件(前端已经限制只能上传一个附件)</param>
///// <returns></returns>
//[HttpPost]
//[Route("ExcelImport")]
//[DisableRequestSizeLimit]
//public async Task<string> MaterialRelationshipUploadExcelImport([FromForm] IFormFileCollection files)
//{
// ExportImporter _exportImporter = new ExportImporter();
// var result = await _exportImporter.UploadExcelImport<MaterialRelationshipImportDto>(files, _excelImportService);
// var _ls = ObjectMapper.Map<List<MaterialRelationshipImportDto>, List<MaterialRelationship>>(result);
// List<string> _errorList = new List<string>();
// var checkList = new List<ErrorExportDto>();
// if (_ls.Count > 0)
// {
// var query = from arc in _ls
// group arc by new { arc.ErpMaterialCode }
// into g
// where g.Count() > 1
// select g;
// foreach (var itm in query)
// {
// checkList.Add(new ErrorExportDto(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Format("ERP物料号{0}有重复", itm.Key.ErpMaterialCode), string.Empty));
// // _errorList.Add(string.Format("ERP物料号{0}有重复",itm.Key.ErpMaterialCode));
// }
// }
// foreach (var itm in _ls)
// {
// var _first = _repository.FirstOrDefault(p => p.ErpMaterialCode == itm.ErpMaterialCode);
// if (_first != null)
// {
// _first.Update(itm.MaterialDesc, itm.MaterialProperty, itm.SettleMaterialCode, itm.ShipMaterailCode);
// await _repository.UpdateAsync(_first);
// }
// else
// {
// checkList.Add(new ErrorExportDto(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Format("关系表中不存在ERP物料号{0}!", itm.ErpMaterialCode), string.Empty));
// //_errorList.Add(string.Format("关系表中不存在ERP物料号{0}!", itm.ErpMaterialCode));
// //itm.SetId(GuidGenerator.Create(), GuidGenerator.Create());
// //await _repository.InsertAsync(itm);
// }
// //itm.SetId(GuidGenerator.Create(), GuidGenerator.Create());
// }
// if (checkList.Count > 0)
// {
// return await ExportErrorReportAsync(checkList);
// }
// return ApplicationConsts.SuccessStr;
//}
///// <summary>
///// 按ID获取唯一实体
///// </summary>
///// <remarks>
///// 返回实体全部属性
///// </remarks>
///// <param name="id">ID</param>
///// <returns>实体DTO</returns>
//[HttpGet]
//[Route("{id}")]
//virtual public async Task<MaterialRelationshipDto> GetAsync(Guid id)
//{
// var result = await GetFromCacheAsync(id);
// var dto = ObjectMapper.Map<MaterialRelationship, MaterialRelationshipDto>(result);
// return dto;
//}
//private async Task<MaterialRelationship> GetFromCacheAsync(Guid id)
//{
// var result = await _repository.GetAsync(id);
// return result;
//}
//private async Task<long> GetCountAsync(MaterialRelationshipRequestDto input)
//{
// return await _repository.GetCountByFilterAsync(input.BranchId, input.Filters);
//}
/////// <summary>
///// <summary>
///// 根据筛选条件获取实体列表
///// </summary>
///// <remarks>
///// 请求条件包括:筛选条件列表,排序条件,数据数量,页码
///// </remarks>
///// <param name="input">请求条件</param>
///// <returns>实体DTO列表</returns>
//[HttpPost]
//[Route("list")]
//virtual public async Task<PagedResultDto<MaterialRelationshipDto>> GetListAsync(MaterialRelationshipRequestDto input)
//{
// var entities = await _repository.GetListByFilterAsync(input.BranchId, input.Filters, input.Sorting, input.MaxResultCount,
// input.SkipCount, true);
// var totalCount = await GetCountAsync(input);
// var dtos = ObjectMapper.Map<List<MaterialRelationship>, List<MaterialRelationshipDto>>(entities);
// return new PagedResultDto<MaterialRelationshipDto>(totalCount, dtos);
//}
///// <summary>
///// 获取实体总数
///// </summary>
///// <returns>实体总数</returns>
//[HttpGet]
//[Route("count")]
//virtual public async Task<long> GetTotalCountAsync(Guid branchId)
//{
// return await _repository.GetCountAsync(branchId);
//}
///// <summary>
///// 获取全部实体列表
///// </summary>
///// <returns>实体DTO列表</returns>
//[HttpGet]
//[Route("all")]
//virtual public async Task<ListResultDto<MaterialRelationshipDto>> GetAllAsync(Guid branchId)
//{
// var entities = await _repository.GetAllAsync(branchId, true);
// var dtos = ObjectMapper.Map<List<MaterialRelationship>, List<MaterialRelationshipDto>>(entities);
// return new ListResultDto<MaterialRelationshipDto>(dtos);
//}
///// <summary>
///// 新增实体
///// </summary>
///// <param name="input">新增实体DTO</param>
///// <returns>实体DTO</returns>
//[HttpPost]
//[Route("")]
//virtual public async Task<MaterialRelationshipDto> CreateAsync(MaterialRelationshipCreateDto input)
//{
// var _first = _repository.Where(p => p.ErpMaterialCode == input.ErpMaterialCode).FirstOrDefault();
// if (_first != null)
// {
// throw new BusinessException("001", "已经存数据请修改后创建");
// }
// var entity = new MaterialRelationship(
// GuidGenerator.Create(),
// input.BranchId,
// input.ErpMaterialCode,
// input.MaterialDesc,
// input.MaterialProperty,
// input.SettleMaterialCode,
// input.ShipMaterailCode,
// input.AppraisalCategory
// );
// await _repository.InsertAsync(entity);
// ////create cache
// //await Cache.SetAsync(entity.Id.ToString(), entity,
// // CacheStrategyConst.FIVE_MINUTES);
// var dto = ObjectMapper.Map<MaterialRelationship, MaterialRelationshipDto>(entity);
// return dto;
//}
///// <summary>
///// 修改实体
///// </summary>
///// <param name="id">ID</param>
///// <param name="input">修改实体DTO</param>
///// <returns>实体DTO</returns>
//[HttpPut]
//[Route("{id}")]
//virtual public async Task<MaterialRelationshipDto> UpdateAsync(Guid id, MaterialRelationshipUpdateDto input)
//{
// var entity = await _repository.GetAsync(id);
// if (entity != null)
// {
// entity.Update(input.MaterialDesc, input.MaterialProperty, input.SettleMaterialCode, input.ShipMaterailCode);
// await _repository.UpdateAsync(entity);
// var dto = ObjectMapper.Map<MaterialRelationship, MaterialRelationshipDto>(entity);
// return dto;
// }
// else
// {
// return null;
// }
//}
///// <summary>
///// 删除实体
///// </summary>
///// <param name="id">ID</param>
///// <returns>无</returns>
//[HttpDelete]
//[Route("{id}")]
//virtual public async Task DeleteAsync(Guid id)
//{
// var entity = await GetFromCacheAsync(id);
// await Cache.DeleteAsync<MaterialRelationship>(id.ToString());
// await _repository.DeleteAsync(id);
//}
///// <summary>
///// 按IDs删除实体列表
///// </summary>
///// <param name="ids">IDs</param>
///// <returns>是否执行成功</returns>
//[HttpPost]
//[Route("delete")]
//virtual public async Task<bool> DeleteListAsync(List<Guid> ids)
//{
// var _query = _repository.Where(p => ids.Contains(p.Id));
// int i = await _query.BatchDeleteAsync();
// if (i == 0)
// {
// return false;
// }
// return true;
//}
//[HttpPost]
//[Route("Export")]
//virtual public async Task<string> ExportAsync(MaterialRelationshipRequestDto input)
//{
// //var _userId = CurrentUser.Id.Value.ToString();
// string _fileName = string.Format("零件关系_{0}.xlsx", Guid.NewGuid().ToString());
// var entities = await _repository.GetListByFilterAsync(input.BranchId, input.Filters, input.Sorting, int.MaxValue,
// 0, true);
// var dtoDetails = ObjectMapper.Map<List<MaterialRelationship>, List<MaterialRelationshipExportDto>>(entities);
// //声明导出容器
// ExportImporter _exportImporter = new ExportImporter();
// var result = await _exportImporter.ExcelExporter(dtoDetails);
// result.ShouldNotBeNull();
// //保存导出文件到服务器存成二进制
// await _excelImportService.SaveBlobAsync(
// new SaveExcelImportInputDto
// {
// Name = _fileName,
// Content = result
// }
// );
// return _fileName;
//}
#endregion
}

10
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/Prices/PriceListAppService.cs

@ -74,11 +74,11 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
var _exportImporter = new ExportImporter();
var result = await _exportImporter.UploadExcelImportByHeadDesc<PriceListImportDto>(files, _excelImportService).ConfigureAwait(false);
var filter = new List<string>
{
"1040",
"1046",
"104T"
};
{
"1040",
"1046",
"104T"
};
result = result.FindAll(p => filter.Contains(p.Plant)).ToList();
result.FindAll(t => !string.IsNullOrEmpty(t.ES1) || !string.IsNullOrEmpty(t.ES2)).ForEach(t => t.PartNo = t.PartNo + new string(' ', 6) + t.ES1 + t.ES2);
var newPrice = ObjectMapper.Map<List<PriceListImportDto>, List<PriceList>>(result);

2
code/src/Modules/SettleAccount/src/SettleAccount.Application/ImportExcelCommon/ExportImporter.cs

@ -236,7 +236,7 @@ namespace Win.Sfs.SettleAccount.ExcelImporter
{
if (import.TemplateErrors.Count > 0)
{
throw new BusinessException("8989", "模板错误!当前模板中字段不匹配!!请正确上传模板数据!导入不对的列名:" + import.TemplateErrors.FirstOrDefault().RequireColumnName);
throw new BusinessException("8989", $"{FileOriginName} 文件模板错误!当前导入模板中未找到此字段:{import.TemplateErrors.FirstOrDefault().RequireColumnName}");
}
import.ShouldNotBeNull();
if (import.Exception != null)

5
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_SA.cs

@ -118,6 +118,11 @@ namespace SettleAccount.Domain.BQ
/// </summary>
[MaxLength(100)]
public string ContractDocID { get; set; }
/// <summary>
/// 生产码类型
/// </summary>
[MaxLength(10)]
public string ProductionCodeType { get; set; }
public BBAC_SA_DETAIL(Guid p_guid, string keyCode, int version, string billNum, string lU, string pN, string site, decimal qty, decimal price, string category, string isReturn, DateTime settleDate, string groupNum, string invGroupNum) : base(p_guid)
{

5828
code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/20230919010624_20230919-1.Designer.cs

File diff suppressed because it is too large

179
code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/20230919010624_20230919-1.cs

@ -0,0 +1,179 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace Win.Sfs.SettleAccount.Migrations
{
public partial class _202309191 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "ProductionCodeType",
table: "Set_BBAC_SA_DETAIL",
type: "nvarchar(10)",
maxLength: 10,
nullable: true);
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("185c5968-e02b-267e-db2f-225fccfc9716"),
column: "ConcurrencyStamp",
value: "6a9373e21c0046e898c85945682ed701");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("1bb02f67-ed05-6cc1-1507-502e8f6c7a31"),
column: "ConcurrencyStamp",
value: "ccf0bc1715bb4b018f9b23159de6f116");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("49b1da12-418c-544d-fe8b-be7e5b572452"),
column: "ConcurrencyStamp",
value: "b92e0a5372a94a48ad3fbb607281ca6f");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("6f68fc8f-b058-c3f4-e07d-722c61f3f7fa"),
column: "ConcurrencyStamp",
value: "e3b9c33400904b0ab07576195a37abcb");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("7a0dc087-a859-5863-eb6e-56f588bd779e"),
column: "ConcurrencyStamp",
value: "7fd1b85332d1410f8f5aac9f8133f6e7");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("8f7dc23d-e2e9-3691-cfe9-545bb958e3f2"),
column: "ConcurrencyStamp",
value: "6d7c4e44083641e0913905c25f6f56ba");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("b9b9c79f-4894-474b-4f67-b1ec121c41e5"),
column: "ConcurrencyStamp",
value: "888e0398751e4ceeb33dd04d2a60c5de");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("c09c23ea-815f-1b43-4476-2365a8d9a60b"),
column: "ConcurrencyStamp",
value: "e924e50c1001490b823fd36acdd81e79");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("c1f71240-1b81-0107-8b23-ddc9811a3efe"),
column: "ConcurrencyStamp",
value: "3923d323cd3a40d8ab1c62119737cac8");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("ef3d8e8a-a88e-ca1f-e615-714c6bc48824"),
column: "ConcurrencyStamp",
value: "7a57abf3c29d4c62af03344a83ec0e0b");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("f306b380-47e5-5c01-b902-67ca4113a8f4"),
column: "ConcurrencyStamp",
value: "ca3c9634e73c454a81fe88127622b8db");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "ProductionCodeType",
table: "Set_BBAC_SA_DETAIL");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("185c5968-e02b-267e-db2f-225fccfc9716"),
column: "ConcurrencyStamp",
value: "74b5f640459d4fb4af7e663ad318a7e8");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("1bb02f67-ed05-6cc1-1507-502e8f6c7a31"),
column: "ConcurrencyStamp",
value: "3741a2331a464353932a67e49726504e");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("49b1da12-418c-544d-fe8b-be7e5b572452"),
column: "ConcurrencyStamp",
value: "efbcbfc8ff684d41a932181e7deec6b2");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("6f68fc8f-b058-c3f4-e07d-722c61f3f7fa"),
column: "ConcurrencyStamp",
value: "abfcd02d9de44e678d983d5aa842c92d");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("7a0dc087-a859-5863-eb6e-56f588bd779e"),
column: "ConcurrencyStamp",
value: "6e2c96f0817e47e6a70dc07633f92365");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("8f7dc23d-e2e9-3691-cfe9-545bb958e3f2"),
column: "ConcurrencyStamp",
value: "626ba1e106b34594980d8d21abe54f2b");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("b9b9c79f-4894-474b-4f67-b1ec121c41e5"),
column: "ConcurrencyStamp",
value: "06c84c84594341a0b7dd108a11ed4b13");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("c09c23ea-815f-1b43-4476-2365a8d9a60b"),
column: "ConcurrencyStamp",
value: "0750f96fa58c4452be0f0ccd7d304953");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("c1f71240-1b81-0107-8b23-ddc9811a3efe"),
column: "ConcurrencyStamp",
value: "654ad9973c87451ca057551e0ced4822");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("ef3d8e8a-a88e-ca1f-e615-714c6bc48824"),
column: "ConcurrencyStamp",
value: "92d9e39172c2463e9a06b09252533b94");
migrationBuilder.UpdateData(
table: "Set_JobItem",
keyColumn: "Id",
keyValue: new Guid("f306b380-47e5-5c01-b902-67ca4113a8f4"),
column: "ConcurrencyStamp",
value: "621689c5c9ff4ae198f99abcec3fedb9");
}
}
}

26
code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/SettleAccountDbContextModelSnapshot.cs

@ -616,6 +616,10 @@ namespace Win.Sfs.SettleAccount.Migrations
b.Property<decimal>("Price")
.HasColumnType("decimal(18,2)");
b.Property<string>("ProductionCodeType")
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
b.Property<decimal>("Qty")
.HasColumnType("decimal(18,2)");
@ -4506,7 +4510,7 @@ namespace Win.Sfs.SettleAccount.Migrations
new
{
Id = new Guid("ef3d8e8a-a88e-ca1f-e615-714c6bc48824"),
ConcurrencyStamp = "92d9e39172c2463e9a06b09252533b94",
ConcurrencyStamp = "7a57abf3c29d4c62af03344a83ec0e0b",
Cron = "0 0 8 26 *",
IsDisabled = false,
IsRunning = false,
@ -4516,7 +4520,7 @@ namespace Win.Sfs.SettleAccount.Migrations
new
{
Id = new Guid("185c5968-e02b-267e-db2f-225fccfc9716"),
ConcurrencyStamp = "74b5f640459d4fb4af7e663ad318a7e8",
ConcurrencyStamp = "6a9373e21c0046e898c85945682ed701",
Cron = "0 0/1 * * * ?",
IsDisabled = false,
IsRunning = false,
@ -4526,7 +4530,7 @@ namespace Win.Sfs.SettleAccount.Migrations
new
{
Id = new Guid("1bb02f67-ed05-6cc1-1507-502e8f6c7a31"),
ConcurrencyStamp = "3741a2331a464353932a67e49726504e",
ConcurrencyStamp = "ccf0bc1715bb4b018f9b23159de6f116",
Cron = "0 0/1 * * * ?",
IsDisabled = false,
IsRunning = false,
@ -4536,7 +4540,7 @@ namespace Win.Sfs.SettleAccount.Migrations
new
{
Id = new Guid("b9b9c79f-4894-474b-4f67-b1ec121c41e5"),
ConcurrencyStamp = "06c84c84594341a0b7dd108a11ed4b13",
ConcurrencyStamp = "888e0398751e4ceeb33dd04d2a60c5de",
Cron = "0 0/30 * * * ? ",
IsDisabled = false,
IsRunning = false,
@ -4546,7 +4550,7 @@ namespace Win.Sfs.SettleAccount.Migrations
new
{
Id = new Guid("49b1da12-418c-544d-fe8b-be7e5b572452"),
ConcurrencyStamp = "efbcbfc8ff684d41a932181e7deec6b2",
ConcurrencyStamp = "b92e0a5372a94a48ad3fbb607281ca6f",
Cron = "0 0/30 * * * ? ",
IsDisabled = false,
IsRunning = false,
@ -4556,7 +4560,7 @@ namespace Win.Sfs.SettleAccount.Migrations
new
{
Id = new Guid("7a0dc087-a859-5863-eb6e-56f588bd779e"),
ConcurrencyStamp = "6e2c96f0817e47e6a70dc07633f92365",
ConcurrencyStamp = "7fd1b85332d1410f8f5aac9f8133f6e7",
Cron = "0 0/30 * * * ? ",
IsDisabled = false,
IsRunning = false,
@ -4566,7 +4570,7 @@ namespace Win.Sfs.SettleAccount.Migrations
new
{
Id = new Guid("6f68fc8f-b058-c3f4-e07d-722c61f3f7fa"),
ConcurrencyStamp = "abfcd02d9de44e678d983d5aa842c92d",
ConcurrencyStamp = "e3b9c33400904b0ab07576195a37abcb",
Cron = "0 0/30 * * * ? ",
IsDisabled = false,
IsRunning = false,
@ -4576,7 +4580,7 @@ namespace Win.Sfs.SettleAccount.Migrations
new
{
Id = new Guid("f306b380-47e5-5c01-b902-67ca4113a8f4"),
ConcurrencyStamp = "621689c5c9ff4ae198f99abcec3fedb9",
ConcurrencyStamp = "ca3c9634e73c454a81fe88127622b8db",
Cron = "0 0/30 * * * ? ",
IsDisabled = false,
IsRunning = false,
@ -4586,7 +4590,7 @@ namespace Win.Sfs.SettleAccount.Migrations
new
{
Id = new Guid("8f7dc23d-e2e9-3691-cfe9-545bb958e3f2"),
ConcurrencyStamp = "626ba1e106b34594980d8d21abe54f2b",
ConcurrencyStamp = "6d7c4e44083641e0913905c25f6f56ba",
Cron = "0 0/30 * * * ? ",
IsDisabled = false,
IsRunning = false,
@ -4596,7 +4600,7 @@ namespace Win.Sfs.SettleAccount.Migrations
new
{
Id = new Guid("c1f71240-1b81-0107-8b23-ddc9811a3efe"),
ConcurrencyStamp = "654ad9973c87451ca057551e0ced4822",
ConcurrencyStamp = "3923d323cd3a40d8ab1c62119737cac8",
Cron = "0 0/30 * * * ? ",
IsDisabled = false,
IsRunning = false,
@ -4606,7 +4610,7 @@ namespace Win.Sfs.SettleAccount.Migrations
new
{
Id = new Guid("c09c23ea-815f-1b43-4476-2365a8d9a60b"),
ConcurrencyStamp = "0750f96fa58c4452be0f0ccd7d304953",
ConcurrencyStamp = "e924e50c1001490b823fd36acdd81e79",
Cron = "0 0/30 * * * ? ",
IsDisabled = false,
IsRunning = false,

Loading…
Cancel
Save