diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/JFCarConsignAppService.cs b/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/JFCarConsignAppService.cs
new file mode 100644
index 00000000..d5262125
--- /dev/null
+++ b/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/JFCarConsignAppService.cs
@@ -0,0 +1,361 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading.Tasks;
+using EFCore.BulkExtensions;
+using Magicodes.ExporterAndImporter.Core;
+using Magicodes.ExporterAndImporter.Csv;
+using Magicodes.ExporterAndImporter.Excel;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Caching.Distributed;
+using Shouldly;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Application.Services;
+using Volo.Abp.Caching;
+using Volo.Abp.Domain.Repositories;
+using Volo.Abp.Guids;
+using Volo.Abp.ObjectMapping;
+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.JFCarConsigns;
+using Win.Sfs.SettleAccount.Entities.Materials;
+using Win.Sfs.SettleAccount.ExcelImporter;
+using Win.Sfs.SettleAccount.ExportReports;
+using Win.Sfs.SettleAccount.MaterialRelationships;
+using Win.Sfs.Shared.CacheBase;
+using Win.Sfs.Shared.Enums.SettleAccount;
+using Win.Sfs.Shared.Filter;
+using Win.Utils;
+
+namespace Win.Sfs.SettleAccount.JFCarConsigns
+{
+
+ ///
+ /// 区域相关应用服务
+ ///
+ //[AuthorizeSettleAccountPermissions.JFCarConsigns.Default)]
+ [AllowAnonymous]
+ [Route("api/settleaccount/JFCarConsign")]
+ public class JFCarConsignAppService : SettleAccountApplicationBase, IJFCarConsignAppService
+ {
+ private readonly IGuidGenerator _guidGenerator;
+
+ private readonly IObjectMapper _objectMapper;
+
+ private readonly IExcelImportAppService _excelImportService;
+
+
+ private readonly ISettleAccountBranchEfCoreRepository _repository;
+
+ private readonly ISettleAccountBranchEfCoreRepository _versionRepository;
+ private readonly ISettleAccountBranchEfCoreRepository _MaterialRepository;
+ ///
+ /// 构建方法
+ ///
+ /// 构建UID
+ /// 自动map
+ /// 仓储接口
+ /// 缓存
+ public JFCarConsignAppService(IGuidGenerator guidGenerator,
+ IObjectMapper objectMapper,
+ IExcelImportAppService excelImportService,
+ ISnowflakeIdGenerator snowflakeIdGenerator,
+ ICommonManager commonManager,
+ ISettleAccountBranchEfCoreRepository repository,
+ ISettleAccountBranchEfCoreRepository versionRepository,
+ ISettleAccountBranchEfCoreRepository MaterialRepository,
+ IDistributedCache cache
+ ) : base(cache,excelImportService,snowflakeIdGenerator,commonManager)
+ {
+ _guidGenerator = guidGenerator;
+ _objectMapper = objectMapper;
+ _repository = repository;
+ _excelImportService = excelImportService;
+ _versionRepository = versionRepository;
+ _MaterialRepository = MaterialRepository;
+ }
+
+ #region 导入导出功能
+ ///
+ /// 导入功能
+ ///
+ /// 上传的文件(前端已经限制只能上传一个附件)
+ ///
+ [HttpPost]
+ [Route("ExcelImport")]
+ [DisableRequestSizeLimit]
+ //[AuthorizeSettleAccountPermissions.JFCarConsigns.Default)]
+
+ public async Task JFCarConsignUploadExcelImport([FromForm] IFormFileCollection files, Guid branchId, string year, string period, string version, string customerCode,DateTime datetime)
+ {
+ ExportImporter _exportImporter = new ExportImporter();
+ var result = await _exportImporter.UploadExcelImport(files, _excelImportService);
+ var entityList = ObjectMapper.Map, List>(result);
+ var _versionQuery = _versionRepository.Where(p => p.Version == version );
+ await _versionQuery.BatchDeleteAsync();
+ var _query = _repository.Where(p => p.Version == version);
+ await _query.BatchDeleteAsync();
+ //List errorList = new List();
+ var checkList = new List();
+ //通过《零件关系匹配设置表》验证物料号
+ foreach (var itm in entityList)
+ {
+ if (!_MaterialRepository.Any(p => p.ShipMaterailCode == itm.MaterialCode))
+ {
+ checkList.Add(new ErrorExportDto(version,string.Empty, string.Empty, string.Empty,itm.MaterialCode, string.Empty, string.Format("发货看板物料号:{0}在《零件关系匹配设置表》中不存在!", itm.MaterialCode), string.Empty));
+ //errorList.Add(string.Format("发货看板物料号:{0}在《零件关系匹配设置表》中不存在!", itm.MaterialCode));
+ }
+ }
+ if (checkList.Count > 0)
+ {
+ return await ExportErrorReportAsync(checkList);
+ }
+ var _id = GuidGenerator.Create();
+ var _JFCarConsignList = new List();
+
+ _JFCarConsignList.Add(new JFCarConsignVersion(_id, branchId, period, version, customerCode, datetime));
+ foreach (var itm in entityList)
+ {
+ itm.State = (int)EnumSettleStatus.未结算;
+ itm.SetValue(GuidGenerator.Create(), branchId, period, version, customerCode, datetime,_id);
+ }
+
+
+ await _repository.GetDbContext().BulkInsertAsync(entityList);
+
+ await _versionRepository.GetDbContext().BulkInsertAsync(_JFCarConsignList);
+
+ //st.Stop();
+ return ApplicationConsts.SuccessStr;
+ }
+
+
+ #endregion
+
+ ///
+ /// 按ID获取唯一实体
+ ///
+ ///
+ /// 返回实体全部属性
+ ///
+ /// ID
+ /// 实体DTO
+ [HttpGet]
+ [Route("{id}")]
+ ////[AuthorizeSettleAccountPermissions.JFCarConsigns.Default)]
+ virtual public async Task GetAsync(Guid id)
+ {
+ var result = await _repository.GetAsync(id);
+ var dto = _objectMapper.Map(result);
+ return dto;
+ }
+
+
+ private async Task GetFromCacheAsync(Guid id)
+ {
+ var result =
+ await _repository.GetAsync(id)
+ ;
+
+ return result;
+ }
+
+ private async Task GetCountAsync(JFCarConsignRequestDto input)
+ {
+ return await _repository.GetCountByFilterAsync(input.BranchId, input.Filters);
+ }
+
+ private async Task GetCountAsync(JFCarConsignVersionRequestDto input)
+ {
+ return await _versionRepository.GetCountByFilterAsync(input.BranchId, input.Filters);
+ }
+ ///
+ /// 获取实体总数
+ ///
+ /// 实体总数
+ [HttpGet]
+ [Route("count")]
+ ////[AuthorizeSettleAccountPermissions.JFCarConsigns.Default)]
+ virtual public async Task GetTotalCountAsync(Guid branchId)
+ {
+ return await _repository.GetCountAsync(branchId);
+ }
+
+ ///
+ /// 删除实体
+ ///
+ /// ID
+ /// 无
+ [HttpDelete]
+ [Route("{id}")]
+ ////[AuthorizeSettleAccountPermissions.JFCarConsigns.Delete)]
+ virtual public async Task DeleteAsync(Guid id)
+ {
+ //var entity = await GetFromCacheAsync(id);
+ //await Cache.DeleteAsync(id.ToString());
+ await _repository.DeleteAsync(id);
+ }
+
+ ///
+ /// 按IDs删除实体列表
+ ///
+ /// IDs
+ /// 是否执行成功
+ [HttpPost]
+ [Route("delete")]
+ ////[AuthorizeSettleAccountPermissions.JFCarConsigns.Delete)]
+ virtual public async Task DeleteListAsync(List ids)
+ {
+ //foreach (var id in ids)
+ //{
+ // var entity = await GetFromCacheAsync(id);
+
+ //}
+
+ return await _repository.DeleteListAsync(ids);
+ }
+
+
+ /////
+
+ ///
+ /// 根据筛选条件获取实体列表
+ ///
+ ///
+ /// 请求条件包括:筛选条件列表,排序条件,数据数量,页码
+ ///
+ /// 请求条件
+ /// 实体DTO列表
+ [HttpPost]
+ [Route("list")]
+ ////[AuthorizeSettleAccountPermissions.JFCarConsigns.Default)]
+
+
+ public async Task> GetListAsync(Guid parentId, JFCarConsignRequestDto input)
+ {
+ if (input.ParentId != Guid.Empty)
+ {
+ input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "ParentId", Logic = EnumFilterLogic.And, Value = input.ParentId.ToString() });
+ }
+ else
+ {
+ return new PagedResultDto(0, new List());
+ }
+
+ 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>(entities);
+
+ return new PagedResultDto(totalCount, dtos);
+ }
+
+ /////
+
+ ///
+ /// 根据筛选条件获取实体列表
+ ///
+ ///
+ /// 请求条件包括:筛选条件列表,排序条件,数据数量,页码
+ ///
+ /// 请求条件
+ /// 实体DTO列表
+ [HttpPost]
+ [Route("listVersion")]
+ //[AuthorizeSettleAccountPermissions.JFCarConsigns.Default)]
+ public async Task> GetVersionListAsync(JFCarConsignVersionRequestDto input)
+ {
+ var entities = await _versionRepository.GetListByFilterAsync(input.BranchId, input.Filters, input.Sorting, int.MaxValue,
+ input.SkipCount, true);
+
+ var totalCount = await GetCountAsync(input);
+ var dtos = _objectMapper.Map, List>(entities);
+
+ return new PagedResultDto(totalCount, dtos);
+ }
+ ///
+ /// 导出文件
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Route("Export")]
+ //[AuthorizeSettleAccountPermissions.JFCarConsigns.Default)]
+ virtual public async Task ExportAsync(JFCarConsignRequestDto input)
+ {
+
+ IExporter _csv = new CsvExporter();
+
+ IExporter _excel = new ExcelExporter();
+ if (input.ParentId != Guid.Empty)
+ {
+ input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "ParentId", Logic = EnumFilterLogic.And, Value = input.ParentId.ToString() });
+ }
+
+ var entities = await _repository.GetListByFilterAsync(input.BranchId, input.Filters, input.Sorting, int.MaxValue,
+ 0, true);
+
+ var dtoDetails = ObjectMapper.Map, List>(entities);
+
+ string _fileName = string.Empty;
+ //声明导出容器
+
+ byte[] result = null;
+
+
+ switch (input.FileType)
+ {
+ case 0:
+ _fileName = string.Format("解放结算_{0}.csv", System.DateTime.Now.ToString("yyyyMMddHHmmss"));
+ result = await _csv.ExportAsByteArray(dtoDetails);
+
+
+
+ break;
+ case 1:
+ _fileName = string.Format("解放结算_{0}.xlsx", System.DateTime.Now.ToString("yyyyMMddHHmmss"));
+ result = await _excel.ExportAsByteArray(dtoDetails);
+ break;
+ }
+
+ result.ShouldNotBeNull();
+
+ //保存导出文件到服务器存成二进制
+ await _excelImportService.SaveBlobAsync(
+ new SaveExcelImportInputDto
+ {
+ Name = _fileName,
+ Content = result
+ }
+ );
+ return _fileName;
+ }
+
+ [HttpPost]
+ [Route("jfupdate")]
+
+ [UnitOfWork(isTransactional: false)]
+ public async Task UPdateFisAsync()
+ {
+
+ await _repository.GetDbContext().Database.ExecuteSqlRawAsync(
+ "EXEC sp_jf_update"
+ );
+ return true;
+
+
+
+ }
+
+
+ }
+}
diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/JFCarConsign_HS/JFCarConsignAppService.cs b/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/JFCarConsign_HS/JFCarConsignAppService.cs
new file mode 100644
index 00000000..d5262125
--- /dev/null
+++ b/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/JFCarConsign_HS/JFCarConsignAppService.cs
@@ -0,0 +1,361 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading.Tasks;
+using EFCore.BulkExtensions;
+using Magicodes.ExporterAndImporter.Core;
+using Magicodes.ExporterAndImporter.Csv;
+using Magicodes.ExporterAndImporter.Excel;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Caching.Distributed;
+using Shouldly;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Application.Services;
+using Volo.Abp.Caching;
+using Volo.Abp.Domain.Repositories;
+using Volo.Abp.Guids;
+using Volo.Abp.ObjectMapping;
+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.JFCarConsigns;
+using Win.Sfs.SettleAccount.Entities.Materials;
+using Win.Sfs.SettleAccount.ExcelImporter;
+using Win.Sfs.SettleAccount.ExportReports;
+using Win.Sfs.SettleAccount.MaterialRelationships;
+using Win.Sfs.Shared.CacheBase;
+using Win.Sfs.Shared.Enums.SettleAccount;
+using Win.Sfs.Shared.Filter;
+using Win.Utils;
+
+namespace Win.Sfs.SettleAccount.JFCarConsigns
+{
+
+ ///
+ /// 区域相关应用服务
+ ///
+ //[AuthorizeSettleAccountPermissions.JFCarConsigns.Default)]
+ [AllowAnonymous]
+ [Route("api/settleaccount/JFCarConsign")]
+ public class JFCarConsignAppService : SettleAccountApplicationBase, IJFCarConsignAppService
+ {
+ private readonly IGuidGenerator _guidGenerator;
+
+ private readonly IObjectMapper _objectMapper;
+
+ private readonly IExcelImportAppService _excelImportService;
+
+
+ private readonly ISettleAccountBranchEfCoreRepository _repository;
+
+ private readonly ISettleAccountBranchEfCoreRepository _versionRepository;
+ private readonly ISettleAccountBranchEfCoreRepository _MaterialRepository;
+ ///
+ /// 构建方法
+ ///
+ /// 构建UID
+ /// 自动map
+ /// 仓储接口
+ /// 缓存
+ public JFCarConsignAppService(IGuidGenerator guidGenerator,
+ IObjectMapper objectMapper,
+ IExcelImportAppService excelImportService,
+ ISnowflakeIdGenerator snowflakeIdGenerator,
+ ICommonManager commonManager,
+ ISettleAccountBranchEfCoreRepository repository,
+ ISettleAccountBranchEfCoreRepository versionRepository,
+ ISettleAccountBranchEfCoreRepository MaterialRepository,
+ IDistributedCache cache
+ ) : base(cache,excelImportService,snowflakeIdGenerator,commonManager)
+ {
+ _guidGenerator = guidGenerator;
+ _objectMapper = objectMapper;
+ _repository = repository;
+ _excelImportService = excelImportService;
+ _versionRepository = versionRepository;
+ _MaterialRepository = MaterialRepository;
+ }
+
+ #region 导入导出功能
+ ///
+ /// 导入功能
+ ///
+ /// 上传的文件(前端已经限制只能上传一个附件)
+ ///
+ [HttpPost]
+ [Route("ExcelImport")]
+ [DisableRequestSizeLimit]
+ //[AuthorizeSettleAccountPermissions.JFCarConsigns.Default)]
+
+ public async Task JFCarConsignUploadExcelImport([FromForm] IFormFileCollection files, Guid branchId, string year, string period, string version, string customerCode,DateTime datetime)
+ {
+ ExportImporter _exportImporter = new ExportImporter();
+ var result = await _exportImporter.UploadExcelImport(files, _excelImportService);
+ var entityList = ObjectMapper.Map, List>(result);
+ var _versionQuery = _versionRepository.Where(p => p.Version == version );
+ await _versionQuery.BatchDeleteAsync();
+ var _query = _repository.Where(p => p.Version == version);
+ await _query.BatchDeleteAsync();
+ //List errorList = new List();
+ var checkList = new List();
+ //通过《零件关系匹配设置表》验证物料号
+ foreach (var itm in entityList)
+ {
+ if (!_MaterialRepository.Any(p => p.ShipMaterailCode == itm.MaterialCode))
+ {
+ checkList.Add(new ErrorExportDto(version,string.Empty, string.Empty, string.Empty,itm.MaterialCode, string.Empty, string.Format("发货看板物料号:{0}在《零件关系匹配设置表》中不存在!", itm.MaterialCode), string.Empty));
+ //errorList.Add(string.Format("发货看板物料号:{0}在《零件关系匹配设置表》中不存在!", itm.MaterialCode));
+ }
+ }
+ if (checkList.Count > 0)
+ {
+ return await ExportErrorReportAsync(checkList);
+ }
+ var _id = GuidGenerator.Create();
+ var _JFCarConsignList = new List();
+
+ _JFCarConsignList.Add(new JFCarConsignVersion(_id, branchId, period, version, customerCode, datetime));
+ foreach (var itm in entityList)
+ {
+ itm.State = (int)EnumSettleStatus.未结算;
+ itm.SetValue(GuidGenerator.Create(), branchId, period, version, customerCode, datetime,_id);
+ }
+
+
+ await _repository.GetDbContext().BulkInsertAsync(entityList);
+
+ await _versionRepository.GetDbContext().BulkInsertAsync(_JFCarConsignList);
+
+ //st.Stop();
+ return ApplicationConsts.SuccessStr;
+ }
+
+
+ #endregion
+
+ ///
+ /// 按ID获取唯一实体
+ ///
+ ///
+ /// 返回实体全部属性
+ ///
+ /// ID
+ /// 实体DTO
+ [HttpGet]
+ [Route("{id}")]
+ ////[AuthorizeSettleAccountPermissions.JFCarConsigns.Default)]
+ virtual public async Task GetAsync(Guid id)
+ {
+ var result = await _repository.GetAsync(id);
+ var dto = _objectMapper.Map(result);
+ return dto;
+ }
+
+
+ private async Task GetFromCacheAsync(Guid id)
+ {
+ var result =
+ await _repository.GetAsync(id)
+ ;
+
+ return result;
+ }
+
+ private async Task GetCountAsync(JFCarConsignRequestDto input)
+ {
+ return await _repository.GetCountByFilterAsync(input.BranchId, input.Filters);
+ }
+
+ private async Task GetCountAsync(JFCarConsignVersionRequestDto input)
+ {
+ return await _versionRepository.GetCountByFilterAsync(input.BranchId, input.Filters);
+ }
+ ///
+ /// 获取实体总数
+ ///
+ /// 实体总数
+ [HttpGet]
+ [Route("count")]
+ ////[AuthorizeSettleAccountPermissions.JFCarConsigns.Default)]
+ virtual public async Task GetTotalCountAsync(Guid branchId)
+ {
+ return await _repository.GetCountAsync(branchId);
+ }
+
+ ///
+ /// 删除实体
+ ///
+ /// ID
+ /// 无
+ [HttpDelete]
+ [Route("{id}")]
+ ////[AuthorizeSettleAccountPermissions.JFCarConsigns.Delete)]
+ virtual public async Task DeleteAsync(Guid id)
+ {
+ //var entity = await GetFromCacheAsync(id);
+ //await Cache.DeleteAsync(id.ToString());
+ await _repository.DeleteAsync(id);
+ }
+
+ ///
+ /// 按IDs删除实体列表
+ ///
+ /// IDs
+ /// 是否执行成功
+ [HttpPost]
+ [Route("delete")]
+ ////[AuthorizeSettleAccountPermissions.JFCarConsigns.Delete)]
+ virtual public async Task DeleteListAsync(List ids)
+ {
+ //foreach (var id in ids)
+ //{
+ // var entity = await GetFromCacheAsync(id);
+
+ //}
+
+ return await _repository.DeleteListAsync(ids);
+ }
+
+
+ /////
+
+ ///
+ /// 根据筛选条件获取实体列表
+ ///
+ ///
+ /// 请求条件包括:筛选条件列表,排序条件,数据数量,页码
+ ///
+ /// 请求条件
+ /// 实体DTO列表
+ [HttpPost]
+ [Route("list")]
+ ////[AuthorizeSettleAccountPermissions.JFCarConsigns.Default)]
+
+
+ public async Task> GetListAsync(Guid parentId, JFCarConsignRequestDto input)
+ {
+ if (input.ParentId != Guid.Empty)
+ {
+ input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "ParentId", Logic = EnumFilterLogic.And, Value = input.ParentId.ToString() });
+ }
+ else
+ {
+ return new PagedResultDto(0, new List());
+ }
+
+ 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>(entities);
+
+ return new PagedResultDto(totalCount, dtos);
+ }
+
+ /////
+
+ ///
+ /// 根据筛选条件获取实体列表
+ ///
+ ///
+ /// 请求条件包括:筛选条件列表,排序条件,数据数量,页码
+ ///
+ /// 请求条件
+ /// 实体DTO列表
+ [HttpPost]
+ [Route("listVersion")]
+ //[AuthorizeSettleAccountPermissions.JFCarConsigns.Default)]
+ public async Task> GetVersionListAsync(JFCarConsignVersionRequestDto input)
+ {
+ var entities = await _versionRepository.GetListByFilterAsync(input.BranchId, input.Filters, input.Sorting, int.MaxValue,
+ input.SkipCount, true);
+
+ var totalCount = await GetCountAsync(input);
+ var dtos = _objectMapper.Map, List>(entities);
+
+ return new PagedResultDto(totalCount, dtos);
+ }
+ ///
+ /// 导出文件
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Route("Export")]
+ //[AuthorizeSettleAccountPermissions.JFCarConsigns.Default)]
+ virtual public async Task ExportAsync(JFCarConsignRequestDto input)
+ {
+
+ IExporter _csv = new CsvExporter();
+
+ IExporter _excel = new ExcelExporter();
+ if (input.ParentId != Guid.Empty)
+ {
+ input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "ParentId", Logic = EnumFilterLogic.And, Value = input.ParentId.ToString() });
+ }
+
+ var entities = await _repository.GetListByFilterAsync(input.BranchId, input.Filters, input.Sorting, int.MaxValue,
+ 0, true);
+
+ var dtoDetails = ObjectMapper.Map, List>(entities);
+
+ string _fileName = string.Empty;
+ //声明导出容器
+
+ byte[] result = null;
+
+
+ switch (input.FileType)
+ {
+ case 0:
+ _fileName = string.Format("解放结算_{0}.csv", System.DateTime.Now.ToString("yyyyMMddHHmmss"));
+ result = await _csv.ExportAsByteArray(dtoDetails);
+
+
+
+ break;
+ case 1:
+ _fileName = string.Format("解放结算_{0}.xlsx", System.DateTime.Now.ToString("yyyyMMddHHmmss"));
+ result = await _excel.ExportAsByteArray(dtoDetails);
+ break;
+ }
+
+ result.ShouldNotBeNull();
+
+ //保存导出文件到服务器存成二进制
+ await _excelImportService.SaveBlobAsync(
+ new SaveExcelImportInputDto
+ {
+ Name = _fileName,
+ Content = result
+ }
+ );
+ return _fileName;
+ }
+
+ [HttpPost]
+ [Route("jfupdate")]
+
+ [UnitOfWork(isTransactional: false)]
+ public async Task UPdateFisAsync()
+ {
+
+ await _repository.GetDbContext().Database.ExecuteSqlRawAsync(
+ "EXEC sp_jf_update"
+ );
+ return true;
+
+
+
+ }
+
+
+ }
+}
diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/JFCarKBAppService.cs b/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/JFCarKBAppService.cs
new file mode 100644
index 00000000..3cd453c3
--- /dev/null
+++ b/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/JFCarKBAppService.cs
@@ -0,0 +1,328 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading.Tasks;
+using EFCore.BulkExtensions;
+using Magicodes.ExporterAndImporter.Core;
+using Magicodes.ExporterAndImporter.Csv;
+using Magicodes.ExporterAndImporter.Excel;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Caching.Distributed;
+using Shouldly;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Application.Services;
+using Volo.Abp.Caching;
+using Volo.Abp.Domain.Repositories;
+using Volo.Abp.Guids;
+using Volo.Abp.ObjectMapping;
+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.JFCarKBs;
+using Win.Sfs.SettleAccount.ExcelImporter;
+using Win.Sfs.Shared.CacheBase;
+using Win.Sfs.Shared.Enums.SettleAccount;
+using Win.Sfs.Shared.Filter;
+using Win.Utils;
+
+namespace Win.Sfs.SettleAccount.JFCarKBs
+{
+
+ ///
+ /// 区域相关应用服务
+ ///
+ //[AuthorizeSettleAccountPermissions.JFCarKBs.Default)]
+
+ [Route("api/settleaccount/JFCarKB")]
+ public class JFCarKBAppService : SettleAccountApplicationBase, IJFCarKBAppService
+ {
+ private readonly IGuidGenerator _guidGenerator;
+
+ private readonly IObjectMapper _objectMapper;
+
+ private readonly IExcelImportAppService _excelImportService;
+
+
+ private readonly ISettleAccountBranchEfCoreRepository _repository;
+
+ private readonly ISettleAccountBranchEfCoreRepository _versionRepository;
+ ///
+ /// 构建方法
+ ///
+ /// 构建UID
+ /// 自动map
+ /// 仓储接口
+ /// 缓存
+ public JFCarKBAppService(IGuidGenerator guidGenerator,
+ IObjectMapper objectMapper,
+ IExcelImportAppService excelImportService,
+ ISnowflakeIdGenerator snowflakeIdGenerator,
+ ICommonManager commonManager,
+ ISettleAccountBranchEfCoreRepository repository,
+ ISettleAccountBranchEfCoreRepository versionRepository,
+ IDistributedCache cache
+ ) : base(cache,excelImportService,snowflakeIdGenerator,commonManager)
+ {
+ _guidGenerator = guidGenerator;
+ _objectMapper = objectMapper;
+ _repository = repository;
+ _excelImportService = excelImportService;
+ _versionRepository = versionRepository;
+ }
+
+ #region 导入导出功能
+ ///
+ /// 导入功能
+ ///
+ /// 上传的文件(前端已经限制只能上传一个附件)
+ ///
+ [HttpPost]
+ [Route("ExcelImport")]
+ [DisableRequestSizeLimit]
+
+ //[AuthorizeSettleAccountPermissions.JFCarKBs.Default)]
+ public async Task JFCarKBUploadExcelImport([FromForm] IFormFileCollection files, Guid branchId, string year, string period, string version, string customerCode,DateTime datetime)
+ {
+ ExportImporter _exportImporter = new ExportImporter();
+ var result = await _exportImporter.UploadExcelImport(files, _excelImportService);
+ var entityList = ObjectMapper.Map, List>(result);
+ var _versionQuery = _versionRepository.Where(p => p.Version == version);
+ await _versionQuery.BatchDeleteAsync();
+ var _query = _repository.Where(p => p.Version == version);
+ await _query.BatchDeleteAsync();
+
+
+ var _id = GuidGenerator.Create();
+ var _JFCarKBList = new List();
+
+ _JFCarKBList.Add(new JFCarKBVersion(_id, branchId, period, version, customerCode, datetime));
+ foreach (var itm in entityList)
+ {
+ itm.State= (int)EnumSettleStatus.未结算;
+ itm.SetValue(GuidGenerator.Create(), branchId, period, version, customerCode, datetime,_id);
+ }
+ var bulkConfig = new BulkConfig { SetOutputIdentity = true, BatchSize = 10000 };
+
+ await _repository.GetDbContext().BulkInsertAsync(entityList);
+
+ await _versionRepository.GetDbContext().BulkInsertAsync(_JFCarKBList);
+
+ return ApplicationConsts.SuccessStr;
+ }
+
+
+ #endregion
+
+ ///
+ /// 按ID获取唯一实体
+ ///
+ ///
+ /// 返回实体全部属性
+ ///
+ /// ID
+ /// 实体DTO
+ [HttpGet]
+ [Route("{id}")]
+ ////[AuthorizeSettleAccountPermissions.JFCarKBs.Default)]
+ virtual public async Task GetAsync(Guid id)
+ {
+ var result = await _repository.GetAsync(id);
+ var dto = _objectMapper.Map(result);
+ return dto;
+ }
+
+
+ private async Task GetFromCacheAsync(Guid id)
+ {
+ var result =
+ await _repository.GetAsync(id)
+ ;
+
+ return result;
+ }
+
+ private async Task GetCountAsync(JFCarKBRequestDto input)
+ {
+ return await _repository.GetCountByFilterAsync(input.BranchId, input.Filters);
+ }
+
+ private async Task GetCountAsync(JFCarKBVersionRequestDto input)
+ {
+ return await _versionRepository.GetCountByFilterAsync(input.BranchId, input.Filters);
+ }
+ ///
+ /// 获取实体总数
+ ///
+ /// 实体总数
+ [HttpGet]
+ [Route("count")]
+ ////[AuthorizeSettleAccountPermissions.JFCarKBs.Default)]
+ virtual public async Task GetTotalCountAsync(Guid branchId)
+ {
+ return await _repository.GetCountAsync(branchId);
+ }
+
+ ///
+ /// 删除实体
+ ///
+ /// ID
+ /// 无
+ [HttpDelete]
+ [Route("{id}")]
+ ////[AuthorizeSettleAccountPermissions.JFCarKBs.Delete)]
+ virtual public async Task DeleteAsync(Guid id)
+ {
+ //var entity = await GetFromCacheAsync(id);
+ //await Cache.DeleteAsync(id.ToString());
+ await _repository.DeleteAsync(id);
+ }
+
+ ///
+ /// 按IDs删除实体列表
+ ///
+ /// IDs
+ /// 是否执行成功
+ [HttpPost]
+ [Route("delete")]
+ ////[AuthorizeSettleAccountPermissions.JFCarKBs.Delete)]
+ virtual public async Task DeleteListAsync(List ids)
+ {
+ //foreach (var id in ids)
+ //{
+ // var entity = await GetFromCacheAsync(id);
+
+ //}
+
+ return await _repository.DeleteListAsync(ids);
+ }
+
+
+ /////
+
+ ///
+ /// 根据筛选条件获取实体列表
+ ///
+ ///
+ /// 请求条件包括:筛选条件列表,排序条件,数据数量,页码
+ ///
+ /// 请求条件
+ /// 实体DTO列表
+ [HttpPost]
+ [Route("list")]
+ ////[AuthorizeSettleAccountPermissions.JFCarKBs.Default)]
+
+
+ public async Task> GetListAsync(Guid parentId, JFCarKBRequestDto input)
+ {
+ if (input.ParentId != Guid.Empty)
+ {
+ input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "ParentId", Logic = EnumFilterLogic.And, Value = input.ParentId.ToString() });
+ }
+ else
+ {
+ return new PagedResultDto(0, new List());
+ }
+
+ 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>(entities);
+
+ return new PagedResultDto(totalCount, dtos);
+ }
+
+ /////
+
+ ///
+ /// 根据筛选条件获取实体列表
+ ///
+ ///
+ /// 请求条件包括:筛选条件列表,排序条件,数据数量,页码
+ ///
+ /// 请求条件
+ /// 实体DTO列表
+ [HttpPost]
+ [Route("listVersion")]
+ //[AuthorizeSettleAccountPermissions.JFCarKBs.Default)]
+ public async Task> GetVersionListAsync(JFCarKBVersionRequestDto input)
+ {
+ var entities = await _versionRepository.GetListByFilterAsync(input.BranchId, input.Filters, input.Sorting, int.MaxValue,
+ input.SkipCount, true);
+
+ var totalCount = await GetCountAsync(input);
+ var dtos = _objectMapper.Map, List>(entities);
+
+ return new PagedResultDto(totalCount, dtos);
+ }
+ ///
+ /// 导出文件
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Route("Export")]
+ //[AuthorizeSettleAccountPermissions.JFCarKBs.Default)]
+ virtual public async Task ExportAsync(JFCarKBRequestDto input)
+ {
+
+ IExporter _csv = new CsvExporter();
+
+ IExporter _excel = new ExcelExporter();
+
+ if (input.ParentId != Guid.Empty)
+ {
+ input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "ParentId", Logic = EnumFilterLogic.And, Value = input.ParentId.ToString() });
+ }
+
+ var entities = await _repository.GetListByFilterAsync(input.BranchId, input.Filters, input.Sorting, int.MaxValue,
+ 0, true);
+
+ var dtoDetails = ObjectMapper.Map, List>(entities);
+
+ string _fileName = string.Empty;
+ //声明导出容器
+
+ byte[] result = null;
+
+ //_fileName = CommonMethod.GetExcelFileNameByUserID(ApplicationConsts.Sec_JFCarKBFileName, CurrentUser.Id?.ToString(), ApplicationConsts.FileExtension);
+ //result = await _excel.ExportAsByteArray(dtoDetails);
+ switch (input.FileType)
+ {
+ case 0:
+
+
+ _fileName = string.Format("解放看板_{0}.csv", System.DateTime.Now.ToString("yyyyMMddHHmmss"));
+ result = await _csv.ExportAsByteArray(dtoDetails);
+
+ break;
+ case 1:
+ _fileName = string.Format("解放看板_{0}.xlsx", System.DateTime.Now.ToString("yyyyMMddHHmmss"));
+ result = await _excel.ExportAsByteArray(dtoDetails);
+
+ break;
+ }
+
+
+
+ result.ShouldNotBeNull();
+
+ //保存导出文件到服务器存成二进制
+ await _excelImportService.SaveBlobAsync(
+ new SaveExcelImportInputDto
+ {
+ Name = _fileName,
+ Content = result
+ }
+ );
+ return _fileName;
+ }
+ }
+}
diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/JFCarKBs_HS/JFCarKBAppService.cs b/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/JFCarKBs_HS/JFCarKBAppService.cs
new file mode 100644
index 00000000..3cd453c3
--- /dev/null
+++ b/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/JFCarKBs_HS/JFCarKBAppService.cs
@@ -0,0 +1,328 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading.Tasks;
+using EFCore.BulkExtensions;
+using Magicodes.ExporterAndImporter.Core;
+using Magicodes.ExporterAndImporter.Csv;
+using Magicodes.ExporterAndImporter.Excel;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Caching.Distributed;
+using Shouldly;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Application.Services;
+using Volo.Abp.Caching;
+using Volo.Abp.Domain.Repositories;
+using Volo.Abp.Guids;
+using Volo.Abp.ObjectMapping;
+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.JFCarKBs;
+using Win.Sfs.SettleAccount.ExcelImporter;
+using Win.Sfs.Shared.CacheBase;
+using Win.Sfs.Shared.Enums.SettleAccount;
+using Win.Sfs.Shared.Filter;
+using Win.Utils;
+
+namespace Win.Sfs.SettleAccount.JFCarKBs
+{
+
+ ///
+ /// 区域相关应用服务
+ ///
+ //[AuthorizeSettleAccountPermissions.JFCarKBs.Default)]
+
+ [Route("api/settleaccount/JFCarKB")]
+ public class JFCarKBAppService : SettleAccountApplicationBase, IJFCarKBAppService
+ {
+ private readonly IGuidGenerator _guidGenerator;
+
+ private readonly IObjectMapper _objectMapper;
+
+ private readonly IExcelImportAppService _excelImportService;
+
+
+ private readonly ISettleAccountBranchEfCoreRepository _repository;
+
+ private readonly ISettleAccountBranchEfCoreRepository _versionRepository;
+ ///
+ /// 构建方法
+ ///
+ /// 构建UID
+ /// 自动map
+ /// 仓储接口
+ /// 缓存
+ public JFCarKBAppService(IGuidGenerator guidGenerator,
+ IObjectMapper objectMapper,
+ IExcelImportAppService excelImportService,
+ ISnowflakeIdGenerator snowflakeIdGenerator,
+ ICommonManager commonManager,
+ ISettleAccountBranchEfCoreRepository repository,
+ ISettleAccountBranchEfCoreRepository versionRepository,
+ IDistributedCache cache
+ ) : base(cache,excelImportService,snowflakeIdGenerator,commonManager)
+ {
+ _guidGenerator = guidGenerator;
+ _objectMapper = objectMapper;
+ _repository = repository;
+ _excelImportService = excelImportService;
+ _versionRepository = versionRepository;
+ }
+
+ #region 导入导出功能
+ ///
+ /// 导入功能
+ ///
+ /// 上传的文件(前端已经限制只能上传一个附件)
+ ///
+ [HttpPost]
+ [Route("ExcelImport")]
+ [DisableRequestSizeLimit]
+
+ //[AuthorizeSettleAccountPermissions.JFCarKBs.Default)]
+ public async Task JFCarKBUploadExcelImport([FromForm] IFormFileCollection files, Guid branchId, string year, string period, string version, string customerCode,DateTime datetime)
+ {
+ ExportImporter _exportImporter = new ExportImporter();
+ var result = await _exportImporter.UploadExcelImport(files, _excelImportService);
+ var entityList = ObjectMapper.Map, List>(result);
+ var _versionQuery = _versionRepository.Where(p => p.Version == version);
+ await _versionQuery.BatchDeleteAsync();
+ var _query = _repository.Where(p => p.Version == version);
+ await _query.BatchDeleteAsync();
+
+
+ var _id = GuidGenerator.Create();
+ var _JFCarKBList = new List();
+
+ _JFCarKBList.Add(new JFCarKBVersion(_id, branchId, period, version, customerCode, datetime));
+ foreach (var itm in entityList)
+ {
+ itm.State= (int)EnumSettleStatus.未结算;
+ itm.SetValue(GuidGenerator.Create(), branchId, period, version, customerCode, datetime,_id);
+ }
+ var bulkConfig = new BulkConfig { SetOutputIdentity = true, BatchSize = 10000 };
+
+ await _repository.GetDbContext().BulkInsertAsync(entityList);
+
+ await _versionRepository.GetDbContext().BulkInsertAsync(_JFCarKBList);
+
+ return ApplicationConsts.SuccessStr;
+ }
+
+
+ #endregion
+
+ ///
+ /// 按ID获取唯一实体
+ ///
+ ///
+ /// 返回实体全部属性
+ ///
+ /// ID
+ /// 实体DTO
+ [HttpGet]
+ [Route("{id}")]
+ ////[AuthorizeSettleAccountPermissions.JFCarKBs.Default)]
+ virtual public async Task GetAsync(Guid id)
+ {
+ var result = await _repository.GetAsync(id);
+ var dto = _objectMapper.Map(result);
+ return dto;
+ }
+
+
+ private async Task GetFromCacheAsync(Guid id)
+ {
+ var result =
+ await _repository.GetAsync(id)
+ ;
+
+ return result;
+ }
+
+ private async Task GetCountAsync(JFCarKBRequestDto input)
+ {
+ return await _repository.GetCountByFilterAsync(input.BranchId, input.Filters);
+ }
+
+ private async Task GetCountAsync(JFCarKBVersionRequestDto input)
+ {
+ return await _versionRepository.GetCountByFilterAsync(input.BranchId, input.Filters);
+ }
+ ///
+ /// 获取实体总数
+ ///
+ /// 实体总数
+ [HttpGet]
+ [Route("count")]
+ ////[AuthorizeSettleAccountPermissions.JFCarKBs.Default)]
+ virtual public async Task GetTotalCountAsync(Guid branchId)
+ {
+ return await _repository.GetCountAsync(branchId);
+ }
+
+ ///
+ /// 删除实体
+ ///
+ /// ID
+ /// 无
+ [HttpDelete]
+ [Route("{id}")]
+ ////[AuthorizeSettleAccountPermissions.JFCarKBs.Delete)]
+ virtual public async Task DeleteAsync(Guid id)
+ {
+ //var entity = await GetFromCacheAsync(id);
+ //await Cache.DeleteAsync(id.ToString());
+ await _repository.DeleteAsync(id);
+ }
+
+ ///
+ /// 按IDs删除实体列表
+ ///
+ /// IDs
+ /// 是否执行成功
+ [HttpPost]
+ [Route("delete")]
+ ////[AuthorizeSettleAccountPermissions.JFCarKBs.Delete)]
+ virtual public async Task DeleteListAsync(List ids)
+ {
+ //foreach (var id in ids)
+ //{
+ // var entity = await GetFromCacheAsync(id);
+
+ //}
+
+ return await _repository.DeleteListAsync(ids);
+ }
+
+
+ /////
+
+ ///
+ /// 根据筛选条件获取实体列表
+ ///
+ ///
+ /// 请求条件包括:筛选条件列表,排序条件,数据数量,页码
+ ///
+ /// 请求条件
+ /// 实体DTO列表
+ [HttpPost]
+ [Route("list")]
+ ////[AuthorizeSettleAccountPermissions.JFCarKBs.Default)]
+
+
+ public async Task> GetListAsync(Guid parentId, JFCarKBRequestDto input)
+ {
+ if (input.ParentId != Guid.Empty)
+ {
+ input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "ParentId", Logic = EnumFilterLogic.And, Value = input.ParentId.ToString() });
+ }
+ else
+ {
+ return new PagedResultDto(0, new List());
+ }
+
+ 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>(entities);
+
+ return new PagedResultDto(totalCount, dtos);
+ }
+
+ /////
+
+ ///
+ /// 根据筛选条件获取实体列表
+ ///
+ ///
+ /// 请求条件包括:筛选条件列表,排序条件,数据数量,页码
+ ///
+ /// 请求条件
+ /// 实体DTO列表
+ [HttpPost]
+ [Route("listVersion")]
+ //[AuthorizeSettleAccountPermissions.JFCarKBs.Default)]
+ public async Task> GetVersionListAsync(JFCarKBVersionRequestDto input)
+ {
+ var entities = await _versionRepository.GetListByFilterAsync(input.BranchId, input.Filters, input.Sorting, int.MaxValue,
+ input.SkipCount, true);
+
+ var totalCount = await GetCountAsync(input);
+ var dtos = _objectMapper.Map, List>(entities);
+
+ return new PagedResultDto(totalCount, dtos);
+ }
+ ///
+ /// 导出文件
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Route("Export")]
+ //[AuthorizeSettleAccountPermissions.JFCarKBs.Default)]
+ virtual public async Task ExportAsync(JFCarKBRequestDto input)
+ {
+
+ IExporter _csv = new CsvExporter();
+
+ IExporter _excel = new ExcelExporter();
+
+ if (input.ParentId != Guid.Empty)
+ {
+ input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "ParentId", Logic = EnumFilterLogic.And, Value = input.ParentId.ToString() });
+ }
+
+ var entities = await _repository.GetListByFilterAsync(input.BranchId, input.Filters, input.Sorting, int.MaxValue,
+ 0, true);
+
+ var dtoDetails = ObjectMapper.Map, List>(entities);
+
+ string _fileName = string.Empty;
+ //声明导出容器
+
+ byte[] result = null;
+
+ //_fileName = CommonMethod.GetExcelFileNameByUserID(ApplicationConsts.Sec_JFCarKBFileName, CurrentUser.Id?.ToString(), ApplicationConsts.FileExtension);
+ //result = await _excel.ExportAsByteArray(dtoDetails);
+ switch (input.FileType)
+ {
+ case 0:
+
+
+ _fileName = string.Format("解放看板_{0}.csv", System.DateTime.Now.ToString("yyyyMMddHHmmss"));
+ result = await _csv.ExportAsByteArray(dtoDetails);
+
+ break;
+ case 1:
+ _fileName = string.Format("解放看板_{0}.xlsx", System.DateTime.Now.ToString("yyyyMMddHHmmss"));
+ result = await _excel.ExportAsByteArray(dtoDetails);
+
+ break;
+ }
+
+
+
+ result.ShouldNotBeNull();
+
+ //保存导出文件到服务器存成二进制
+ await _excelImportService.SaveBlobAsync(
+ new SaveExcelImportInputDto
+ {
+ Name = _fileName,
+ Content = result
+ }
+ );
+ return _fileName;
+ }
+ }
+}
diff --git a/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccount.Application.csproj b/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccount.Application.csproj
index 21109234..696d38f5 100644
--- a/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccount.Application.csproj
+++ b/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccount.Application.csproj
@@ -107,6 +107,13 @@
+
+
+
+
+
+
+
diff --git a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/SettledPartAndErpPartPriceDiffRepository.cs b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/SettledPartAndErpPartPriceDiffRepository.cs
index 63faf57b..f0d854c8 100644
--- a/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/SettledPartAndErpPartPriceDiffRepository.cs
+++ b/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountJob/Report/SettledPartAndErpPartPriceDiffRepository.cs
@@ -42,7 +42,7 @@ namespace Win.Sfs.SettleAccount.Repository.Report
" SettleMaterialCode,(\n" +
" Qty * isnull( b.Price, 0 )) amt \n" +
" FROM\n" +
-" Set_MaterialRelationshipDetail a\n" +
+" Set_MaterialRelationshipDetail_pg a\n" +
" LEFT JOIN ( SELECT Price, MaterialCode FROM Set_PriceList WHERE version = ( SELECT Max( Version ) FROM Set_PriceList ) AND type = 10 ) b ON a.SettleMaterialCode = b.MaterialCode \n" +
" ) temp1 \n" +
" GROUP BY\n" +