From 6af68a914be5daef30f484c4c7cb6743328f643f Mon Sep 17 00:00:00 2001 From: qian Date: Tue, 6 Aug 2024 10:56:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A4=E6=96=ADTB=5FRECEIVE=5FQAD=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E4=B8=8D=E5=AD=98=E5=9C=A8=20=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=8F=92=E5=85=A5=E5=AD=90=E8=A1=A8=20?= =?UTF-8?q?=E4=B8=8D=E5=AD=98=E5=9C=A8=E6=AD=A3=E5=B8=B8=E7=94=9F=E6=88=90?= =?UTF-8?q?TB=5FRECEIVE=5FDETAIL=5FQAD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Receipts/ReceiptAppService.cs | 15 +++++++------ .../Receipts/ITbReceiptRepository.cs | 4 +++- .../Repositories/TbReceiptRepository.cs | 21 +++++++++++++++++-- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/Receipts/ReceiptAppService.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/Receipts/ReceiptAppService.cs index eef8062..36f66d8 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/Receipts/ReceiptAppService.cs +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Application/Receipts/ReceiptAppService.cs @@ -97,14 +97,15 @@ namespace Win_in.Sfs.Scp.WebApi Validator.CheckSite(_tenantRepository, entity.Site); Validator.CheckSite(_tenantRepository, entity.Company); var tenant = await _tenantStore.FindAsync(entity.Site); + bool flag = true; using (CurrentTenant.Change(tenant.Id, tenant.Name)) { using (_dataFilter.Disable()) { Validator.CheckSupplierCode(_taVenderRepository, entity.Site, entity.SupplierCode); - - await UpsertTbReceiptAndTbReceiptDetailAsync(entity, tenant.Id); + flag = await _tbReceiptRepository.GetCountAsync(ObjectMapper.Map(entity)); + await UpsertTbReceiptAndTbReceiptDetailAsync(entity, tenant.Id, flag); await CurrentUnitOfWork.SaveChangesAsync(); } } @@ -133,15 +134,17 @@ namespace Win_in.Sfs.Scp.WebApi } } - private async Task UpsertTbReceiptAndTbReceiptDetailAsync(Receipt entity, Guid tenantId) + private async Task UpsertTbReceiptAndTbReceiptDetailAsync(Receipt entity, Guid tenantId,bool flag) { //使用AutoMapper执行类型转换 var tbReceipt = ObjectMapper.Map(entity); var tbReceiveDetail = ObjectMapper.Map(entity); - tbReceipt.TenantId = tenantId; - //根据传入数据新增或修改SCP数据 - await _tbReceiptRepository.UpsertAsync(tbReceipt); + if (flag) + { + //根据传入数据新增或修改SCP数据 + await _tbReceiptRepository.UpsertAsync(tbReceipt); + } tbReceiveDetail.TenantId = tenantId; //根据传入数据新增或修改SCP数据 await _tbReceiptDetailRepository.UpsertAsync(tbReceiveDetail); diff --git a/WebApiService/src/Win_in.Sfs.Scp.v1.Domain/Receipts/ITbReceiptRepository.cs b/WebApiService/src/Win_in.Sfs.Scp.v1.Domain/Receipts/ITbReceiptRepository.cs index 7179c7a..db9820b 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.v1.Domain/Receipts/ITbReceiptRepository.cs +++ b/WebApiService/src/Win_in.Sfs.Scp.v1.Domain/Receipts/ITbReceiptRepository.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.Collections.Generic; +using System.Threading.Tasks; using Volo.Abp.DependencyInjection; using Volo.Abp.Domain.Repositories; @@ -7,6 +8,7 @@ namespace Win_in.Sfs.Scp.v1.Domain public interface ITbReceiptRepository : IRepository, ITransientDependency { Task UpsertAsync(TB_RECEIVE_QAD taPart); + Task GetCountAsync(TB_RECEIVE_QAD taPart); } } \ No newline at end of file diff --git a/WebApiService/src/Win_in.Sfs.Scp.v1.EntityFrameworkCore/Repositories/TbReceiptRepository.cs b/WebApiService/src/Win_in.Sfs.Scp.v1.EntityFrameworkCore/Repositories/TbReceiptRepository.cs index 7840747..91e14a5 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.v1.EntityFrameworkCore/Repositories/TbReceiptRepository.cs +++ b/WebApiService/src/Win_in.Sfs.Scp.v1.EntityFrameworkCore/Repositories/TbReceiptRepository.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System; +using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Volo.Abp.Domain.Repositories.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore; @@ -24,7 +25,6 @@ namespace Win_in.Sfs.Scp.v1.EntityFrameworkCore } else { - //使用直接赋值 current.VendId = tbReceipt.VendId; current.PoBillNum = tbReceipt.PoBillNum; @@ -39,5 +39,22 @@ namespace Win_in.Sfs.Scp.v1.EntityFrameworkCore return ret; } + public async Task GetCountAsync(TB_RECEIVE_QAD tbReceipt) + { + bool flag = true; + int count = 0; + var dbSet = await GetDbSetAsync(); + count = await dbSet + .CountAsync(p => p.Site == tbReceipt.Site && p.ErpRecvBillNum == tbReceipt.ErpRecvBillNum); + + if (count>0) + { + flag = false; + Console.WriteLine("TB_RECEIVE_QAD存在!Site = " + tbReceipt.Site + " ErpRecvBillNum = " + tbReceipt.ErpRecvBillNum); + + } + + return flag; + } } } \ No newline at end of file