diff --git a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/job-item.js b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/job-item.js
index e7fc8271..40e06175 100644
--- a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/job-item.js
+++ b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/job-item.js
@@ -23,6 +23,12 @@ const schema = {
type: "boolean",
readOnly: true,
},
+ heartBeat: {
+ title: "心跳",
+ type: "string",
+ input: "datetime",
+ readOnly: true,
+ },
},
};
diff --git a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/base-data/job-item.js b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/base-data/job-item.js
index 12125d65..0d0140c5 100644
--- a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/base-data/job-item.js
+++ b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/base-data/job-item.js
@@ -1,31 +1,24 @@
import AppList from "../../components/list/index.js";
import html from "html";
import useConfig from "../../models/job-item.js";
-import { ref, nextTick, onMounted, onUnmounted } from "vue";
+import { ref, onMounted, onUnmounted } from "vue";
import useConfig2 from "../../models/job-log.js";
export default {
components: { AppList },
- template: html``,
+ template: html``,
setup() {
const config = useConfig();
const onCommand = async (item, rows, load, showList) => {
- console.log(item.path, item, rows);
- console.log(showList);
const config = useConfig2();
config.query.schema.properties.filters.default[0].value = rows[0].id;
showList({ test: "test" }, "/base-data/job-log", config);
};
- const refresh = ref(true);
- onMounted(async () => {
- PubSub.subscribe("JobItem", () => {
- refresh.value = false;
- nextTick(() => (refresh.value = true));
- });
- });
- onUnmounted(() => {
- PubSub.unsubscribe(onMonitor);
- });
- return { config, onCommand, refresh };
+ //
+ const appListRef = ref(null);
+ const event = "JobItem";
+ onMounted(() => PubSub.subscribe(event, async () => await appListRef.value.load()));
+ onUnmounted(() => PubSub.unsubscribe(event));
+ return { config, onCommand, appListRef };
},
};
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/BA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/BA_SERVICE.cs
index ed779367..aab4ca3e 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/BA_SERVICE.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/BA_SERVICE.cs
@@ -29,6 +29,7 @@ using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Entities;
using Volo.Abp.Domain.Repositories;
+using Volo.Abp.Uow;
using Win.Abp.Snowflakes;
using Win.Sfs.BaseData.ImportExcelCommon;
using Win.Sfs.SettleAccount.CommonManagers;
@@ -63,25 +64,28 @@ namespace Win.Sfs.SettleAccount.Bases
- protected BA_SERVICE(
- INormalEfCoreRepository adjRepository,
+
+
+ protected BA_SERVICE(IExcelImportAppService excelImportService,
+ ISnowflakeIdGenerator snowflakeIdGenerator,
+ ICommonManager commonManager,
+ INormalEfCoreRepository pubRepository,
INormalEfCoreRepository repository,
INormalEfCoreRepository wRepository,
INormalEfCoreRepository sRepository,
INormalEfCoreRepository mRepository,
- IExcelImportAppService excelImportService,
- HBPO_CAN_SA_MNG hbpoMng,
+ INormalEfCoreRepository adjRepository,
+
BBAC_CAN_SA_MNG bbacMng,
+ HBPO_CAN_SA_MNG hbpoMng,
PUB_CAN_SA_MNG pubMng,
INV_MNG invMng,
TaskJobService service
- //INormalEfCoreRepository detailRepository
-
- )
+ ) :
+ base(excelImportService, snowflakeIdGenerator, commonManager)
{
- _service= service;
-
+ _service = service;
_repository = repository;
_wRepository = wRepository;
_mRepository = mRepository;
@@ -91,28 +95,6 @@ namespace Win.Sfs.SettleAccount.Bases
_bbacMng = bbacMng;
_hbpoMng = hbpoMng;
_invMng = invMng;
-
- }
-
- protected BA_SERVICE(IExcelImportAppService excelImportService,
- ISnowflakeIdGenerator snowflakeIdGenerator,
- ICommonManager commonManager,
- INormalEfCoreRepository pubRepository,
- INormalEfCoreRepository repository,
- INormalEfCoreRepository wRepository,
- INormalEfCoreRepository sRepository,
- INormalEfCoreRepository mRepository,
-
- BBAC_CAN_SA_MNG pubMng,
- HBPO_CAN_SA_MNG bbacMng,
- PUB_CAN_SA_MNG hbpoMng,
- INV_MNG invMng
-
-
- ) :
- base(excelImportService, snowflakeIdGenerator, commonManager)
- {
-
}
///
/// 审核通过
@@ -222,58 +204,52 @@ namespace Win.Sfs.SettleAccount.Bases
[HttpPost]
public virtual async Task RejectAsync(INVOICE_GRP_REQ_DTO input)
{
-
await _invMng.Reject(input.InvGroupNum);
-
-
return ApplicationConsts.SuccessStr;
}
[HttpPost]
- public virtual async Task ReceivedAsync(INVOICE_GRP_REQ_DTO input)
+ [UnitOfWork(false)]
+ public virtual async Task ReceivedAsync(List p_ins)
{
- var entity = await _invMng.GetMainAsync(input.InvbillNum);
- if (entity.InvoiceState == InvoiceBillState.报废)
- {
- throw new BusinessException("8989", $"发票号{entity.InvbillNum}为报废状态, 不能提交!");
- }
- if (entity.InvoiceState == InvoiceBillState.提交 )
- {
- throw new BusinessException("8989", $"发票号{entity.InvbillNum}所在发票分组{entity.InvGroupNum}现在为提交状态!");
- }
- if (entity.State == SettleBillState.财务已审核)
- {
- throw new BusinessException("8989", $"发票号{entity.InvbillNum}所在发票分组{entity.InvGroupNum}不是财务已审核状态,不能收票!");
- }
-
- if (entity != null)
- {
-
- List customConditionList = new List();
- customConditionList.Add(new CustomCondition() { Name = "InvGroupNum", Value = input.InvGroupNum ?? string.Empty });
- var invlist= _repository.Where(p => p.InvGroupNum == entity.InvGroupNum).ToList();
- foreach (var inv in invlist) {
-
- if (inv.InvoiceState != InvoiceBillState.报废)
- {
- inv.InvoiceState = InvoiceBillState.提交;
- }
- }
- await _repository.DbContext.BulkUpdateAsync(invlist);
- var _taskid = await _service.ExportEnqueueAsync($"发票分组{entity.InvGroupNum}收票任务", ExportExtentsion.Excel, DateTime.Now.ToString("yyyymm"), string.Empty, CurrentUser, typeof(PD_SERVICE), customConditionList, (rs) =>
- {
-
- });
-
-
- return _taskid;
- //bool flag = await _invMng.ReceivedAsync(entity.InvGroupNum);
- //if (flag == true)
- //{
- // await _invMng.SetForwardState(entity, SettleBillState.客户已收票);
- //}
- }
+ await _invMng.ReceivedAsync(p_ins);
+
+
+
+
+ //var entity = await _invMng.GetMainAsync(input.InvbillNum);
+ //if (entity.InvoiceState == InvoiceBillState.报废)
+ //{
+ // throw new BusinessException("8989", $"发票号{entity.InvbillNum}为报废状态, 不能提交!");
+ //}
+ //if (entity.InvoiceState == InvoiceBillState.提交 )
+ //{
+ // throw new BusinessException("8989", $"发票号{entity.InvbillNum}所在发票分组{entity.InvGroupNum}现在为提交状态!");
+ //}
+ //if (entity.State != SettleBillState.财务已审核)
+ //{
+ // throw new BusinessException("8989", $"发票号{entity.InvbillNum}所在发票分组{entity.InvGroupNum}不是财务已审核状态,不能收票!");
+ //}
+ //if (entity != null)
+ //{
+ // List customConditionList = new List();
+ // customConditionList.Add(new CustomCondition() { Name = "InvGroupNum", Value = entity.InvGroupNum?? string.Empty });
+ // var invlist= _repository.Where(p => p.InvGroupNum == entity.InvGroupNum).ToList();
+ // foreach (var inv in invlist) {
+
+ // if (inv.InvoiceState != InvoiceBillState.报废)
+ // {
+ // inv.InvoiceState = InvoiceBillState.提交;
+ // }
+ // }
+ // await _repository.DbContext.BulkUpdateAsync(invlist);
+ // var _taskid = await _service.ExportEnqueueAsync($"发票分组{entity.InvGroupNum}收票任务", ExportExtentsion.Excel, DateTime.Now.ToString("yyyymm"), string.Empty, CurrentUser, typeof(PD_SERVICE), customConditionList, (rs) =>
+ // {
+
+ // });
+ // return _taskid;
+ //}
return ApplicationConsts.SuccessStr;
}
protected virtual async Task> GetMapGroupAsync(INVOICE_GRP_REQ_DTO input)
@@ -353,9 +329,9 @@ namespace Win.Sfs.SettleAccount.Bases
/// 版本号
/// 发票分组
/// 原发票号
- protected async Task ReissueSecInvoice(List p_list, List p_adjlist, int p_version, string p_parentInvBillNum)
+ protected async Task ReissueSecInvoice(List p_list, List p_adjlist,List p_tmplist, int p_version, string p_parentInvBillNum) where TDetail : SA_CAN_BASE
{
- var flag=await _invMng.ReissueSecInvoice(p_list, p_adjlist, p_parentInvBillNum, p_version);
+ var flag=await _invMng.ReissueSecInvoice(p_list,p_adjlist, p_tmplist, p_parentInvBillNum, p_version);
if (flag)
{
return true;
@@ -376,10 +352,10 @@ namespace Win.Sfs.SettleAccount.Bases
/// 要作废的发票号
///
///
- protected async Task ReissueFirstInvoice(List dtos, List p_adjlist, int p_version, string p_parentInvBillNum)
+ protected async Task ReissueFirstInvoice(List p_list,List p_adjlist, List dtos, int p_version, string p_parentInvBillNum) where TDetail : SA_CAN_BASE
{
- var flag = await _invMng.ReissueFirstInvoice(dtos, p_adjlist, p_parentInvBillNum, p_version);
+ var flag = await _invMng.ReissueFirstInvoice(p_list,p_adjlist,dtos, p_parentInvBillNum, p_version);
if (flag==true)
{
return true;
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/CAN_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/CAN_SA_SERVICE.cs
index 7f731f50..157329ad 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/CAN_SA_SERVICE.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/CAN_SA_SERVICE.cs
@@ -164,9 +164,9 @@ namespace Win.Sfs.SettleAccount.Bases
/// 版本号
/// 发票分组
/// 原发票号
- protected async Task SecInvoice(List p_list, int p_version, string p_InvGroupNum, string p_parentInvBillNum,EnumBusinessType businessType)
+ protected async Task SecInvoice(List p_list,List p_adjlist, List p_tmplist, int p_version, string p_InvGroupNum, string p_parentInvBillNum,EnumBusinessType businessType) where TDetail : SA_CAN_BASE
{
- var ls= await _invmng.SecInvoice(p_list, p_version, p_InvGroupNum, p_parentInvBillNum, businessType);
+ var ls= await _invmng.SecInvoice(p_list,p_adjlist,p_tmplist,p_version, p_InvGroupNum, p_parentInvBillNum, businessType);
if (ls.Count > 0)
{
return true;
@@ -186,10 +186,10 @@ namespace Win.Sfs.SettleAccount.Bases
///
///
///
- protected async Task FirstInvoice(List dtos, List p_notlist, int p_version, string p_InvGroupNum, string p_parentInvBillNum, EnumBusinessType businessType)
+ protected async Task FirstInvoice(List p_list,List p_adjlist ,List dtos, List p_notlist, int p_version, string p_InvGroupNum, string p_parentInvBillNum, EnumBusinessType businessType) where TDetail : SA_CAN_BASE
{
- var ls = await _invmng.FirstInvoice(dtos, p_notlist, p_version, p_InvGroupNum, p_parentInvBillNum, businessType);
+ var ls = await _invmng.FirstInvoice(p_list,p_adjlist, dtos, p_notlist, p_version, p_InvGroupNum, p_parentInvBillNum, businessType);
if (ls.Count > 0)
{
return true;
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_BA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_BA_SERVICE.cs
index 16422332..bdf75be1 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_BA_SERVICE.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_BA_SERVICE.cs
@@ -21,6 +21,7 @@ using Win.Sfs.SettleAccount.Entities.BQ.Dtos;
using Win.Sfs.SettleAccount.Entities.BQ.Managers;
using Win.Sfs.SettleAccount.Entities.BQ.Temp;
using Win.Sfs.SettleAccount.Entities.Prices;
+using Win.Sfs.SettleAccount.Entities.TaskJobs;
using Win.Sfs.SettleAccount.ExportReports;
using Win.Sfs.Shared.RepositoryBase;
namespace Win.Sfs.SettleAccount.Entities.BQ
@@ -34,6 +35,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
{
private readonly INormalEfCoreRepository _adjRepository;
private readonly INormalEfCoreRepository _priceRepository;
+
public BBAC_BA_SERVICE(IExcelImportAppService excelImportService,
ISnowflakeIdGenerator snowflakeIdGenerator,
ICommonManager commonManager,
@@ -42,19 +44,20 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
INormalEfCoreRepository wRepository,
INormalEfCoreRepository sRepository,
INormalEfCoreRepository mRepository,
- BBAC_CAN_SA_MNG pubMng,
- HBPO_CAN_SA_MNG bbacMng,
- PUB_CAN_SA_MNG hbpoMng,
- INV_MNG invMng,
INormalEfCoreRepository adjRepository,
+ BBAC_CAN_SA_MNG bbacMng,
+ HBPO_CAN_SA_MNG hbpoMng,
+ PUB_CAN_SA_MNG pubMng,
+ INV_MNG invMng,
+ TaskJobService service,
+
INormalEfCoreRepository priceRepository
-
- ) : base(excelImportService, snowflakeIdGenerator, commonManager, pubRepository, repository, wRepository, sRepository, mRepository, pubMng, bbacMng, hbpoMng, invMng)
+
+ ) : base(excelImportService, snowflakeIdGenerator, commonManager, pubRepository, repository, wRepository, sRepository, mRepository, adjRepository, bbacMng, hbpoMng, pubMng, invMng, service)
{
- _adjRepository = adjRepository;
_priceRepository = priceRepository;
}
-
+
///
/// 发票重开
///
@@ -105,7 +108,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
settleDate: itm.SettleDate,
groupNum: itm.GroupNum,
invGroupNum: itm.InvGroupNum,
- contactid: itm.Extend1//生产号
+ contactid: itm.Extend1,//生产号
+
+ invbillnum:string.Empty
));
}
}
@@ -148,11 +153,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
{
if (p_invbillnum.Substring(0, 3) == "INV")//一次开票重开
{
- await ReissueFirstInvoice(dtos,adjlist ,version, p_invbillnum);
+ await ReissueFirstInvoice(bbaclist,adjlist,dtos,version, p_invbillnum);
}
else//二次开票
{
- await ReissueSecInvoice(dtos,adjlist,version, p_invbillnum);
+ await ReissueSecInvoice(bbaclist,adjlist,dtos,version, p_invbillnum);
}
}
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_CAN_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_CAN_SA_SERVICE.cs
index 0d6515aa..93f8af10 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_CAN_SA_SERVICE.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/BBAC_CAN_SA_SERVICE.cs
@@ -149,11 +149,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
ContractDocID = string.Empty
}).ToList();//不能结算
- await FirstInvoice(dtos, notlist, main.Version, main.InvGroupNum, string.Empty, main.BusinessType);
+ await FirstInvoice(entitys,new List(),dtos, notlist, main.Version, main.InvGroupNum, string.Empty, main.BusinessType);
}
else//二次开票
{
- await SecInvoice(dtos, main.Version, main.InvGroupNum, string.Empty, main.BusinessType);
+ await SecInvoice(entitys,new List(),dtos, main.Version, main.InvGroupNum, string.Empty, main.BusinessType);
}
}
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_BA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_BA_SERVICE.cs
index 155b392b..6774c075 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_BA_SERVICE.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_BA_SERVICE.cs
@@ -19,6 +19,7 @@ using Win.Sfs.SettleAccount.Entities.BQ.Dtos;
using Win.Sfs.SettleAccount.Entities.BQ.Managers;
using Win.Sfs.SettleAccount.Entities.BQ.Temp;
using Win.Sfs.SettleAccount.Entities.Prices;
+using Win.Sfs.SettleAccount.Entities.TaskJobs;
using Win.Sfs.Shared.RepositoryBase;
namespace Win.Sfs.SettleAccount.Entities.BQ
@@ -27,29 +28,26 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
[Route("api/settleaccount/[controller]/[action]")]
public class HBPO_BA_SERVICE : BA_SERVICE
{
- private readonly INormalEfCoreRepository _adjRepository;
+
private readonly INormalEfCoreRepository _priceRepository;
- public HBPO_BA_SERVICE(
- IExcelImportAppService excelImportService,
- ISnowflakeIdGenerator snowflakeIdGenerator,
- ICommonManager commonManager,
- INormalEfCoreRepository pubRepository,
- INormalEfCoreRepository repository,
- INormalEfCoreRepository wRepository,
- INormalEfCoreRepository sRepository,
- INormalEfCoreRepository mRepository,
- BBAC_CAN_SA_MNG pubMng,
- HBPO_CAN_SA_MNG bbacMng,
- PUB_CAN_SA_MNG hbpoMng,
- INV_MNG invMng,
- INormalEfCoreRepository adjRepository,
+
+ public HBPO_BA_SERVICE(IExcelImportAppService excelImportService, ISnowflakeIdGenerator snowflakeIdGenerator, ICommonManager commonManager, INormalEfCoreRepository pubRepository, INormalEfCoreRepository repository, INormalEfCoreRepository wRepository, INormalEfCoreRepository sRepository, INormalEfCoreRepository mRepository,
+ INormalEfCoreRepository adjRepository, BBAC_CAN_SA_MNG bbacMng,
+ HBPO_CAN_SA_MNG hbpoMng, PUB_CAN_SA_MNG pubMng, INV_MNG invMng,
+ TaskJobService service,
INormalEfCoreRepository priceRepository
- ) : base(excelImportService, snowflakeIdGenerator, commonManager, pubRepository, repository, wRepository, sRepository, mRepository, pubMng, bbacMng, hbpoMng, invMng)
+ )
+ : base(excelImportService, snowflakeIdGenerator, commonManager, pubRepository, repository, wRepository, sRepository, mRepository, adjRepository, bbacMng, hbpoMng, pubMng, invMng, service)
{
- _adjRepository = adjRepository;
- _priceRepository = priceRepository;
+ _priceRepository= priceRepository;
}
+
+
+
+
+
+
///
/// 发票重开
@@ -97,7 +95,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
settleDate: itm.SettleDate,
groupNum: itm.GroupNum,
- invGroupNum: itm.InvGroupNum
+ invGroupNum: itm.InvGroupNum,
+ invbillnum: string.Empty
));
}
}
@@ -139,12 +138,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
{
if (p_invbillnum.Substring(0, 3) == "INV")//一次开票重开
{
- await ReissueFirstInvoice(dtos,adjlist, version, p_invbillnum);
+ await ReissueFirstInvoice(hbpolist,adjlist ,dtos, version, p_invbillnum);
}
else//二次开票
{
- await ReissueSecInvoice(dtos,adjlist, version, p_invbillnum);
+ await ReissueSecInvoice(hbpolist,adjlist ,dtos, version, p_invbillnum);
}
}
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_CAN_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_CAN_SA_SERVICE.cs
index b72c12cc..96fb2797 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_CAN_SA_SERVICE.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/HBPO_CAN_SA_SERVICE.cs
@@ -137,11 +137,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
ContractDocID = string.Empty
}).ToList();//不能结算
- var falg= await FirstInvoice(dtos, notlist, main.Version, main.InvGroupNum, string.Empty,main.BusinessType);
+ var falg= await FirstInvoice(entitys,new List(), dtos, notlist, main.Version, main.InvGroupNum, string.Empty,main.BusinessType);
}
else//二次开票
{
- var flag=await SecInvoice(dtos, main.Version, main.InvGroupNum, string.Empty, main.BusinessType);
+ var flag=await SecInvoice(entitys,new List(),dtos, main.Version, main.InvGroupNum, string.Empty, main.BusinessType);
}
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/JobHostdService.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/JobHostdService.cs
index 69fe330a..2bf2b953 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/JobHostdService.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/JobHostdService.cs
@@ -7,9 +7,11 @@ using System.Net;
using System.Threading;
using System.Threading.Tasks;
using Cronos;
+using Microsoft.AspNetCore.SignalR;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
+using SettleAccount.Job.SignalR;
using Volo.Abp.Application.Services;
using Win.Sfs.SettleAccount.Entities.BQ.Vmi;
@@ -83,13 +85,20 @@ public class JobHostdService : BackgroundService, IApplicationService
{
var jobItem = this.GetJobItem(job.Id);
Guid? jobLogId = null;
+ if (jobItem.IsRunning && (DateTime.Now - jobItem.HeartBeat.Value).TotalSeconds > 20)
+ {
+ JobItemStop(jobItem.Id);
+ }
if (!jobItem.IsRunning)
{
jobLogId = this.JobItemStart(job.Id);
+ using var timer = new System.Timers.Timer(10000);
if (jobLogId.HasValue)
{
try
{
+ timer.Elapsed += (s, e) => JobItemHeartBeat(job.Id);
+ scope.ServiceProvider.GetRequiredService>().Clients.All.ServerToClient("JobItem", "refresh", "");
await jobService.Invoke(scope.ServiceProvider).ConfigureAwait(false);
this.JobItemSuccess(job.Id, jobLogId.Value);
Debug.WriteLine($"{job.Name} 定时任务执行成功");
@@ -100,6 +109,11 @@ public class JobHostdService : BackgroundService, IApplicationService
Console.WriteLine(ex.ToString());
this.JobItemFaild(job.Id, jobLogId.Value, ex);
}
+ finally
+ {
+ timer.Stop();
+ scope.ServiceProvider.GetRequiredService>().Clients.All.ServerToClient("JobItem", "refresh", "");
+ }
}
}
}
@@ -169,6 +183,21 @@ public class JobHostdService : BackgroundService, IApplicationService
}
}
+ private void JobItemStop(Guid id)
+ {
+ using var scope = this._serviceProvider.CreateScope();
+ var db = scope.ServiceProvider.GetRequiredService();
+ var entity = db.Set().FirstOrDefault(o => o.Id == id);
+ if (entity != null)
+ {
+ entity.IsRunning = false;
+ var log = db.Set().Where(o => o.JobId == id && o.End == null).OrderByDescending(o => o.Start).FirstOrDefault();
+ log.Success = false;
+ log.Exception = "心跳超时,自动停止";
+ db.SaveChanges();
+ }
+ }
+
private Guid? JobItemStart(Guid id)
{
using var scope = this._serviceProvider.CreateScope();
@@ -177,6 +206,7 @@ public class JobHostdService : BackgroundService, IApplicationService
if (entity != null)
{
entity.IsRunning = true;
+ entity.HeartBeat = DateTime.Now;
var log = db.Set().Add(new JobLog { Start = DateTime.Now, JobId = entity.Id, Host = Dns.GetHostName() });
db.SaveChanges();
return log.Entity.Id;
@@ -190,6 +220,18 @@ public class JobHostdService : BackgroundService, IApplicationService
return scope.ServiceProvider.GetRequiredService().Set().AsNoTracking().FirstOrDefault(o => o.Id == id);
}
+ private void JobItemHeartBeat(Guid id)
+ {
+ using var scope = this._serviceProvider.CreateScope();
+ var db = scope.ServiceProvider.GetRequiredService();
+ var entity = db.Set().FirstOrDefault(o => o.Id == id);
+ if (entity != null)
+ {
+ entity.HeartBeat = DateTime.Now;
+ db.SaveChanges();
+ }
+ }
+
public void RemoveJob(JobItem item)
{
lock (_lockObj)
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_BA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_BA_SERVICE.cs
index dc1f360b..31c917c6 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_BA_SERVICE.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_BA_SERVICE.cs
@@ -18,6 +18,7 @@ using Win.Sfs.SettleAccount.Constant;
using Win.Sfs.SettleAccount.Entities.BQ.Managers;
using Win.Sfs.SettleAccount.Entities.BQ.Temp;
using Win.Sfs.SettleAccount.Entities.Prices;
+using Win.Sfs.SettleAccount.Entities.TaskJobs;
using Win.Sfs.Shared.RepositoryBase;
namespace Win.Sfs.SettleAccount.Entities.BQ
@@ -27,27 +28,25 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
public class PUB_BA_SERVICE : BA_SERVICE
{
- private readonly INormalEfCoreRepository _adjRepository;
+
private readonly INormalEfCoreRepository _priceRepository;
- public PUB_BA_SERVICE(IExcelImportAppService excelImportService,
- ISnowflakeIdGenerator snowflakeIdGenerator,
- ICommonManager commonManager,
- INormalEfCoreRepository pubRepository,
- INormalEfCoreRepository repository,
- INormalEfCoreRepository wRepository,
- INormalEfCoreRepository sRepository,
- INormalEfCoreRepository mRepository,
- BBAC_CAN_SA_MNG pubMng,
- HBPO_CAN_SA_MNG bbacMng,
- PUB_CAN_SA_MNG hbpoMng,
- INormalEfCoreRepository adjRepository,
- INormalEfCoreRepository priceRepository,
- INV_MNG invMng) : base(excelImportService, snowflakeIdGenerator, commonManager, pubRepository, repository, wRepository, sRepository, mRepository, pubMng, bbacMng, hbpoMng, invMng)
+
+ public PUB_BA_SERVICE(IExcelImportAppService excelImportService, ISnowflakeIdGenerator snowflakeIdGenerator, ICommonManager commonManager, INormalEfCoreRepository pubRepository, INormalEfCoreRepository repository, INormalEfCoreRepository wRepository, INormalEfCoreRepository sRepository, INormalEfCoreRepository mRepository, INormalEfCoreRepository adjRepository, BBAC_CAN_SA_MNG bbacMng, HBPO_CAN_SA_MNG hbpoMng, PUB_CAN_SA_MNG pubMng, INV_MNG invMng,
+ TaskJobService service, INormalEfCoreRepository priceRepository
+
+
+
+ ) : base(excelImportService, snowflakeIdGenerator, commonManager, pubRepository, repository, wRepository, sRepository, mRepository, adjRepository, bbacMng, hbpoMng, pubMng, invMng, service)
{
- _adjRepository = adjRepository;
_priceRepository = priceRepository;
+
}
+
+
+
+
+
//
/// 发票重开
///
@@ -76,13 +75,13 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
{
throw new BusinessException("8989", $"选择发票:{p_invbillnum}状态为报废状态不能重开!");
}
- var hbpolist = await _pubMng.GetContainsAsync(inv.InvbillNum, gList);//结算分组对应结算零件
+ var publist = await _pubMng.GetContainsAsync(inv.InvbillNum, gList);//结算分组对应结算零件
var adjlist = await _adjRepository.Where(p => p.OldInvBillNum == inv.InvbillNum).ToListAsync();//调整表明细
if (adjlist != null && adjlist.Count() > 0)
{
foreach (var itm in adjlist)
{
- hbpolist.Add(new PUB_CAN_SA_DETAIL(
+ publist.Add(new PUB_CAN_SA_DETAIL(
guid: GuidGenerator.Create(),
keyCode: itm.KeyCode,
version: itm.Version,
@@ -96,12 +95,13 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
businessType: itm.BusinessType,
settleDate: itm.SettleDate,
groupNum: itm.GroupNum,
- invGroupNum: itm.InvGroupNum
+ invGroupNum: itm.InvGroupNum,
+ invbillnum: string.Empty
));
}
}
- var entitys = hbpolist;//合并库存调整单和就发票可结算明细数据
+ var entitys = publist;//合并库存调整单和就发票可结算明细数据
var gNumList = entitys.Select(p => p.GroupNum).Distinct().ToList();
//var groupNumList = entitys.Select(p => new { p.GroupNum).Distinct().ToList();
//var notList = _notRepository.Where(p => gNumList.Contains(p.GroupNum)).ToList();//不能结算
@@ -140,11 +140,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
{
if (p_invbillnum.Substring(0, 3) == "INV")//一次开票重开
{
- await ReissueFirstInvoice(dtos,adjlist, version, p_invbillnum);
+ await ReissueFirstInvoice(publist,adjlist,dtos, version, p_invbillnum);
}
else//二次开票
{
- await ReissueSecInvoice(dtos,adjlist, version, p_invbillnum);
+ await ReissueSecInvoice(publist,adjlist, dtos, version, p_invbillnum);
}
}
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_CAN_SA_SERVICE.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_CAN_SA_SERVICE.cs
index 6f0cb6df..0f6bd683 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_CAN_SA_SERVICE.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/PUB_CAN_SA_SERVICE.cs
@@ -6,6 +6,7 @@ using EFCore.BulkExtensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SettleAccount.Domain.BQ;
+using Volo.Abp.Domain.Entities;
using Win.Abp.Snowflakes;
using Win.Sfs.BaseData.ImportExcelCommon;
using Win.Sfs.SettleAccount.Bases;
@@ -120,22 +121,22 @@ namespace Win.Sfs.SettleAccount.Entities.BQ
{
if (main.BusinessType == EnumBusinessType.MaiDanJianHBPO || main.BusinessType == EnumBusinessType.BeiJian)
{
- var strs=await _invmng.MakeInvoice(dtos, main.Version, main.InvGroupNum, string.Empty, main.BusinessType, true);
+ var strs=await _invmng.MakeInvoice(entitys,new List(), dtos, main.Version, main.InvGroupNum, string.Empty, main.BusinessType, true);
}
else
{
- await FirstInvoice(dtos, new List(), main.Version, main.InvGroupNum, string.Empty, main.BusinessType);
+ await FirstInvoice(entitys,new List(), dtos, new List(), main.Version, main.InvGroupNum, string.Empty, main.BusinessType);
}
}
else//二次开票
{
if (main.BusinessType == EnumBusinessType.MaiDanJianHBPO || main.BusinessType==EnumBusinessType.BeiJian )
{
- var strs=await _invmng.MakeInvoice(dtos, main.Version, main.InvGroupNum, string.Empty, main.BusinessType, true);
+ var strs=await _invmng.MakeInvoice(entitys,new List(), dtos, main.Version, main.InvGroupNum, string.Empty, main.BusinessType, true);
}
else
{
- await SecInvoice(dtos, main.Version, main.InvGroupNum, string.Empty, main.BusinessType);
+ await SecInvoice(entitys,new List(), dtos, main.Version, main.InvGroupNum, string.Empty, main.BusinessType);
}
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/VmiAppService.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/VmiAppService.cs
index f9931c25..c9dfd300 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/VmiAppService.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/VmiAppService.cs
@@ -128,7 +128,7 @@ public class VmiAppService : ApplicationService, IVmiService, IJobService, ITran
[DisableValidation]
public virtual Task Invoke(IServiceProvider serviceProvider)
{
- this._hubContext.Clients.All.ServerToClient("JobItem", "refresh", "");
+ //this._hubContext.Clients.All.ServerToClient("JobItem", "refresh", "");
Directory.CreateDirectory(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/files/vmi"));
var date = DateTime.Now.ToString("yyyyMMddHH");
var connectionString = $"Data Source=wwwroot/files/vmi/{date}.db";
@@ -166,7 +166,7 @@ public class VmiAppService : ApplicationService, IVmiService, IJobService, ITran
throw;
}
}
- this._hubContext.Clients.All.ServerToClient("JobItem", "refresh", "");
+ //this._hubContext.Clients.All.ServerToClient("JobItem", "refresh", "");
return Task.CompletedTask;
}
@@ -208,7 +208,18 @@ public class VmiAppService : ApplicationService, IVmiService, IJobService, ITran
var qty = balance.Qty + data.Qty;
balance.InjectFrom(data);
balance.Qty = qty;
- this._balanceRepository.UpdateAsync(balance).Wait();
+ if (balance.Qty == decimal.Zero)
+ {
+ await this._balanceRepository.DeleteAsync(balance).ConfigureAwait(false);
+ }
+ else
+ {
+ await this._balanceRepository.UpdateAsync(balance).ConfigureAwait(false);
+ }
+ if (logType == VmiLogType.Type100 && balance.Qty < decimal.Zero && data.Qty > 0)
+ {
+ log.IsReplenished = true;
+ }
}
await _logRepository.InsertAsync(log).ConfigureAwait(false);
}
@@ -253,7 +264,14 @@ public class VmiAppService : ApplicationService, IVmiService, IJobService, ITran
{
var qty = balance.Qty - data.Qty;
balance.Qty = qty;
- this._balanceRepository.UpdateAsync(balance).Wait();
+ if (balance.Qty == decimal.Zero)
+ {
+ await this._balanceRepository.DeleteAsync(balance).ConfigureAwait(false);
+ }
+ else
+ {
+ await this._balanceRepository.UpdateAsync(balance).ConfigureAwait(false);
+ }
}
await _logRepository.InsertAsync(log).ConfigureAwait(false);
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Bases/EntityBase.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Bases/EntityBase.cs
index 18d09699..bb6fa3de 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Bases/EntityBase.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Bases/EntityBase.cs
@@ -391,7 +391,7 @@ namespace SettleAccount.Bases
///
public decimal Price { set; get; }
///
- /// 可出库结算单
+ /// 发票字段
///
public string BillNum { set; get; }
///
@@ -427,6 +427,9 @@ namespace SettleAccount.Bases
///
public string SettleBillNum { get; set; }
+
+ public string InvbillNum { get; set; }
+
//public SA_CAN_BASE(int version, decimal price, string billNum, DateTime settleDate, string invGroupNum, string lU, string pN, string keyCode, decimal qty, string groupNum)
//{
// Version = version;
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_CAN_SA.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_CAN_SA.cs
index 89b4a4a4..98888d8f 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_CAN_SA.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/BBAC_CAN_SA.cs
@@ -139,9 +139,10 @@ public class BBAC_CAN_SA_DETAIL: SA_CAN_BASE
public BBAC_CAN_SA_DETAIL(Guid guid,string keyCode, int version, string billNum, string settleBillNum, string lU, string pN, string site, decimal qty, decimal price, EnumBusinessType category, bool isReturn,
DateTime settleDate, string groupNum, string invGroupNum
- ,string contactid
+ ,string contactid,string invbillnum
):base(guid)
{
+ InvbillNum = invbillnum;
KeyCode = keyCode;
Version = version;
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/HBPO_CAN_SA.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/HBPO_CAN_SA.cs
index ba0119bb..152fc4a6 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/HBPO_CAN_SA.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/HBPO_CAN_SA.cs
@@ -124,8 +124,9 @@ public class HBPO_CAN_SA_DETAIL:SA_CAN_BASE
///
public EnumBusinessType BusinessType { get; set; }
- public HBPO_CAN_SA_DETAIL(Guid guid ,string keyCode, int version, string billNum, string settleBillNum, string lU, string pN, string site, decimal qty, decimal price, DateTime settleDate, string groupNum, string invGroupNum, EnumBusinessType businessType)
+ public HBPO_CAN_SA_DETAIL(Guid guid ,string keyCode, int version, string billNum, string settleBillNum, string lU, string pN, string site, decimal qty, decimal price, DateTime settleDate, string groupNum, string invGroupNum, EnumBusinessType businessType, string invbillnum)
{
+ InvbillNum=invbillnum;
Id = guid;
KeyCode = keyCode;
Version = version;
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/INVOICE_GRP.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/INVOICE_GRP.cs
index 54796196..efe59362 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/INVOICE_GRP.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/INVOICE_GRP.cs
@@ -7,7 +7,7 @@ namespace SettleAccount.Domain.BQ;
[Display(Name = "发票分组")]
public class INVOICE_GRP : FullAuditedAggregateRoot
{
- [Display(Name = "实际纸质发票号")]
+ [Display(Name = "金税发票号")]
public string RealnvBillNum { get; set; } = null!;
[Display(Name = "系统生成发票号")]
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_CAN_SA_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_CAN_SA_MNG.cs
index 4752bd03..351effa7 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_CAN_SA_MNG.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_CAN_SA_MNG.cs
@@ -254,6 +254,17 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
}
+ ///
+ /// 通过发票号获取结算数据
+ ///
+ ///
+ ///
+ public virtual async Task> GetDetailByInbillNumAsync(List p_invs)
+ {
+ return await _detailRepository.Where(p =>p_invs.Contains(p.BillNum)).ToListAsync();
+ }
+
+
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_NOT_SA_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_NOT_SA_MNG.cs
index 01a059d3..3a39ca0b 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_NOT_SA_MNG.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_NOT_SA_MNG.cs
@@ -69,7 +69,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
settleDate: itm.SettleDate,
groupNum: itm.GroupNum,
invGroupNum: billNumber,
- contactid: itm.ContractDocID
+ contactid: itm.ContractDocID,
+ invbillnum: string.Empty
);
_entityList.Add(_detailEntity);
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_PD_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_PD_MNG.cs
new file mode 100644
index 00000000..5373087e
--- /dev/null
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/BBAC_PD_MNG.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using EFCore.BulkExtensions;
+using Microsoft.EntityFrameworkCore;
+using SettleAccount.Bases;
+using SettleAccount.Domain.BQ;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Domain.Repositories;
+using Volo.Abp.Domain.Services;
+using Win.Sfs.Shared.RepositoryBase;
+
+namespace Win.Sfs.SettleAccount.Entities.BQ.Managers;
+public class BBAC_PD_MNG:DomainService
+
+
+{
+
+ private readonly INormalEfCoreRepository _repository;
+ private readonly INormalEfCoreRepository _detailRepository;
+
+
+
+ protected BBAC_PD_MNG(
+ INormalEfCoreRepository repository,
+
+ INormalEfCoreRepository detailRepository
+
+ )
+ {
+ _repository = repository;
+ _detailRepository = detailRepository;
+ }
+
+ public BBAC_PD_MNG()
+ {
+ }
+
+ public virtual async Task GetMainAsync(string billNum)
+ {
+ return await _repository.Where(p => p.InvGroupNum == billNum).FirstOrDefaultAsync();
+ }
+
+ public virtual async Task> GetDetailAsync(string billNum)
+ {
+ return await _detailRepository.Where(p => p.InvGroupNum == billNum).ToListAsync();
+ }
+
+ public virtual bool InsertMain(BBAC_PD p_pd)
+ {
+ _repository.DbContext.BulkInsert(new List { p_pd });
+ return true;
+ }
+
+ public virtual bool InsertDetail(List p_list)
+ {
+ _repository.DbContext.BulkInsert(p_list);
+ return false;
+ }
+
+
+
+
+
+}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_CAN_SA_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_CAN_SA_MNG.cs
index e7869440..846fe5dc 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_CAN_SA_MNG.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_CAN_SA_MNG.cs
@@ -264,6 +264,15 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
}
+ ///
+ /// 通过发票号获取结算数据
+ ///
+ ///
+ ///
+ public virtual async Task> GetDetailByInbillNumAsync(List p_invs)
+ {
+ return await _detailRepository.Where(p => p_invs.Contains(p.BillNum)).ToListAsync();
+ }
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs
index c035f2ca..2fec26de 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/HBPO_NOT_SA_MNG.cs
@@ -72,7 +72,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
businessType: itm.BusinessType,
qty: itm.Qty,
settleDate: itm.SettleDate,
- site: itm.Site
+ site: itm.Site,
+ invbillnum: string.Empty
);
_entityList.Add(_detailEntity);
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs
index e5180bdf..e68ef06f 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/INV_MNG.cs
@@ -1,4 +1,5 @@
using EFCore.BulkExtensions;
+using EmptyFiles;
using Hangfire;
using Microsoft.AspNetCore.SignalR;
using Microsoft.CodeAnalysis.CSharp.Syntax;
@@ -8,8 +9,10 @@ using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
using SettleAccount.Bases;
using SettleAccount.Domain.BQ;
using System;
+using System.Collections;
using System.Collections.Generic;
using System.Linq;
+using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp;
@@ -31,9 +34,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
private readonly INormalEfCoreRepository _groupRepository;
private readonly INormalEfCoreRepository _detailRepository;
private readonly INormalEfCoreRepository _notRepository;
-
private readonly INormalEfCoreRepository _adjRepository;
+ private readonly INormalEfCoreRepository _pdbbacRepository;
+ private readonly INormalEfCoreRepository _pdhbpoRepository;
+ private readonly INormalEfCoreRepository _pdpubRepository;
private readonly PUB_CAN_SA_MNG _pubMng;
private readonly BBAC_CAN_SA_MNG _bbacMng;
private readonly HBPO_CAN_SA_MNG _hbpoMng;
@@ -42,13 +47,17 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
PUB_CAN_SA_MNG pubMng,
BBAC_CAN_SA_MNG bbacMng,
HBPO_CAN_SA_MNG hbpoMng,
- INormalEfCoreRepository repository,
+ INormalEfCoreRepository pdbbacRepository,
+ INormalEfCoreRepository pdhbpoRepository,
+ INormalEfCoreRepository pdpubRepository,
+ INormalEfCoreRepository repository,
INormalEfCoreRepository groupRepository,
INormalEfCoreRepository detailRepository,
INormalEfCoreRepository notRepository,
INormalEfCoreRepository adjRepository
)
{
+
//_canRepository = canRepository;
_repository = repository;
_detailRepository = detailRepository;
@@ -58,6 +67,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
_pubMng = pubMng;
_bbacMng = bbacMng;
_hbpoMng = hbpoMng;
+ _pdbbacRepository=pdbbacRepository;
+ _pdhbpoRepository=pdhbpoRepository;
+ _pdpubRepository =pdpubRepository;
}
public INV_MNG()
@@ -234,21 +246,22 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
}
break;
}
- var flag = await SetSettleState(p_entiy, p_State, false);
+ //var flag = await SetSettleState(p_entiy, p_State, false);
- if (flag == true)
- {
- var invlist = await _repository.Where(p => p.InvGroupNum == p_entiy.InvGroupNum).ToListAsync();//选择审批时只能整组审批
- foreach (var itm in invlist)
- {
- itm.State = p_entiy.State;
- }
- await _repository.BatchUpdateAsync(invlist);
+ //if (flag == true)
+ //{
+ // var invlist = await _repository.Where(p => p.InvGroupNum == p_entiy.InvGroupNum).ToListAsync();//选择审批时只能整组审批
+ // foreach (var itm in invlist)
+ // {
+ // itm.State = p_entiy.State;
+ // }
+
+ await _repository.BatchUpdateAsync(p_entiy);
return true;
- }
+ //}
- return false;
+
}
@@ -289,172 +302,444 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
}
-
-
-
-
-
-
///
/// 客户已收票
///
/// 发票分组号
///
- public virtual async Task ReceivedAsync(string p_groupbillnum)
+ public virtual async Task ReceivedAsync(List p_invs)
{
+ var invList = _repository.Where(p => p_invs.Contains(p.InvbillNum)).ToList();//所有提交发票信息
+ int count = invList.Select(p => p.InvGroupNum).Distinct().Count();
+ if (count > 1)
+ {
+ throw new UserFriendlyException($"发票不属于一个发票分组");
+ }
+ var lostlist = invList.Where(p => p.InvoiceState == InvoiceBillState.报废).ToList();
+ if (lostlist.Count > 0)
+ {
+ var invs=lostlist.Select(p => p.InvbillNum).ToList();
+ throw new UserFriendlyException($"发票{string.Join(",",invs)}");
+ }
+
+ var inv = invList.FirstOrDefault();
+ if (inv.BusinessType == EnumBusinessType.JisBBAC)
+ {
+ var pdlist = _pdbbacRepository.Where(p => p_invs.Contains(p.BillNum)).ToList();//包含发票号的代扣减单
+ if (pdlist != null && pdlist.Count > 0)
+ {
+ var invs = pdlist.Select(p => p.BillNum).ToList();
+ throw new UserFriendlyException($"发票{string.Join(",", invs)}已经生成待扣减过不能再次提交");
+ }
+ var parentList = invList.Select(p => p.ParentInvbillNum).ToList();//所有发票存在父发票号
+ List oldinvs = new List();
+ oldinvs.AddRange(p_invs);
+ if (parentList != null && parentList.Count > 0)
+ {
+ oldinvs.AddRange(parentList);
+ }
+ List oldlist = new List();//以前提交过的发票
+ List newlist = new List();//没有提交过的发票
+ var pdoldlist = pdlist.Where(p => oldinvs.Contains(p.BillNum)).ToList();
+ if (pdoldlist != null && pdoldlist.Count > 0)
+ {
+ oldlist = pdoldlist.Select(p => p.BillNum).ToList();//已经存在扣减记录,的发票号
+ }
+ newlist = p_invs.Where(p => !oldlist.Contains(p)).ToList();//不存在扣减记录的发票号
- //var inv = _repository.Where(p => p.InvGroupNum == p_groupbillnum).FirstOrDefault();
- //if (inv.BusinessType == EnumBusinessType.JisBBAC)
- //{
- // var entity = await _bbacMng.GetMainAsync(inv.InvGroupNum);
- // if (entity == null)
- // {
+ List entityList = new List();//结算明细
+ var namelist = invList.Select(p => p.InvbillNum).ToList();
+ if (oldlist.Count > 0)
+ {
+ var involdList= invList.Where(p => oldinvs.Contains(p.ParentInvbillNum)).ToList();
+ var involdname=involdList.Select(p => p.InvbillNum);
+ var adjlist=_adjRepository.Where(p => involdname.Contains(p.InvBillNum));
+
+ if (adjlist != null && adjlist.Count() > 0)
+ {
+ foreach (var itm in adjlist)
+ {
+ entityList.Add(new BBAC_CAN_SA_DETAIL(
+ guid: GuidGenerator.Create(),
+ keyCode: itm.KeyCode,
+ version: itm.Version,
+ billNum: itm.InvGroupNum,
+ settleBillNum: itm.SettleBillNum,
+ lU: itm.LU,
+ pN: itm.PN,
+ site: itm.Site,
+ qty: itm.Qty,
+ price: 0,
+ category: itm.BusinessType,
+ isReturn: itm.Qty > 0 ? false : true,
+ settleDate: itm.SettleDate,
+ groupNum: itm.GroupNum,
+ invGroupNum: itm.InvGroupNum,
+ contactid: itm.Extend1,//生产号
+ invbillnum: itm.InvBillNum
+
+ ));
+ }
+ }
+ }
+ if (newlist.Count > 0)
+ {
+ var entitys = invList.Where(p => newlist.Contains(p.InvbillNum)).ToList();
+ var entityDetail = await _bbacMng.GetDetailByInbillNumAsync(newlist);//结算明细
+ var adjlist = _adjRepository.Where(p => newlist.Contains(p.InvBillNum)).ToList();//发票关联调整表明细
+ if (adjlist != null && adjlist.Count() > 0)
+ {
+ foreach (var itm in adjlist)
+ {
+ entityDetail.Add(new BBAC_CAN_SA_DETAIL(
+ guid: GuidGenerator.Create(),
+ keyCode: itm.KeyCode,
+ version: itm.Version,
+ billNum: itm.InvGroupNum,
+ settleBillNum: itm.SettleBillNum,
+ lU: itm.LU,
+ pN: itm.PN,
+ site: itm.Site,
+ qty: itm.Qty,
+ price: 0,
+ category: itm.BusinessType,
+ isReturn: itm.Qty > 0 ? false : true,
+ settleDate: itm.SettleDate,
+ groupNum: itm.GroupNum,
+ invGroupNum: itm.InvGroupNum,
+ contactid: itm.Extend1,//生产号
+ invbillnum: itm.InvBillNum
+
+
+ ));
+ }
+ }
+ entityList.AddRange(entityDetail);
- // var entityDetail = await _bbacMng.GetDetalListAsync(inv.InvGroupNum);
- // var bbac = new BBAC_PD(
- // guid: entity.Id,
- // version: entity.Version,
- // billNum: entity.BillNum,
- // settleBillNum: entity.SettleBillNum,
- // state: SettleBillState.客户已收票,
- // invGroupNum: entity.InvGroupNum,
- // site: entity.Site
- // );
- // var bbacDetail = new List();
-
- // foreach (var itm in entityDetail)
- // {
- // bbacDetail.Add(
- // new BBAC_PD_DETAIL(
- // guid: itm.Id,
- // keyCode: itm.KeyCode,
- // version: itm.Version,
- // billNum: itm.BillNum,
- // lU: itm.LU,
- // rELU: string.Empty,
- // pN: itm.PN,
- // rEPN: string.Empty,
- // site: itm.Site,
- // qty: itm.Qty,
- // price: itm.Price,
- // invGroupNum: itm.InvGroupNum,
- // settleDate: itm.SettleDate,
- // groupNum: itm.GroupNum,
- // extend1: string.Empty,
- // extend2: string.Empty,
- // extend3: string.Empty,
- // extend4: string.Empty
- // ));
- // await _repository.DbContext.BulkInsertAsync(new List() { bbac });
- // await _repository.DbContext.BulkInsertAsync(bbacDetail);
- // return true;
- // }
- // }
- //}
- //else if (inv.BusinessType == EnumBusinessType.JisHBPO)
- //{
- // var entity = await _hbpoMng.GetMainAsync(inv.InvGroupNum);
- // if (entity != null)
- // {
+ }
- // var entityDetail = await _hbpoMng.GetDetalListAsync(inv.InvGroupNum);
- // if (entityDetail != null && entityDetail.Count() > 0)
- // {
- // var hbpo = new HBPO_PD(
- // guid: entity.Id,
- // version: entity.Version,
- // billNum: entity.BillNum,
- // settleBillNum: entity.SettleBillNum,
- // state: SettleBillState.客户已收票,
- // invGroupNum: entity.InvGroupNum,
- // site: entity.Site
- // );
- // var hbpoDetail = new List();
- // foreach (var itm in entityDetail)
- // {
- // hbpoDetail.Add(
- // new HBPO_PD_DETAIL(
- // guid: itm.Id,
- // keyCode: itm.KeyCode,
- // version: itm.Version,
- // billNum: itm.BillNum,
- // lU: itm.LU,
- // rELU: string.Empty,
- // pN: itm.PN,
- // rEPN: string.Empty,
- // site: itm.Site,
- // qty: itm.Qty,
- // price: itm.Price,
- // invGroupNum: itm.InvGroupNum,
- // settleDate: itm.SettleDate,
- // groupNum: itm.GroupNum,
- // extend1: string.Empty,
- // extend2: string.Empty,
- // extend3: string.Empty,
- // extend4: string.Empty
- // ));
- // }
- // await _repository.DbContext.BulkInsertAsync(new List() { hbpo });
- // await _repository.DbContext.BulkInsertAsync(hbpoDetail);
-
- // return true;
- // }
- // }
- //}
- //else
- //{
- // var entity = await _pubMng.GetMainAsync(inv.InvGroupNum);
- // if (entity != null)
- // {
- // var entityDetail = await _pubMng.GetDetalListAsync(inv.InvGroupNum);
- // if (entityDetail != null && entityDetail.Count() > 0)
- // {
- // var pub = new PUB_PD(
- // guid: entity.Id,
- // version: entity.Version,
- // billNum: entity.BillNum,
- // settleBillNum: entity.SettleBillNum,
- // state: SettleBillState.客户已收票,
- // invGroupNum: entity.InvGroupNum,
- // site: entity.Site
- // );
- // var pubDetail = new List();
- // foreach (var itm in entityDetail)
- // {
- // pubDetail.Add(
- // new PUB_PD_DETAIL(
- // guid: itm.Id,
- // keyCode: itm.KeyCode,
- // version: itm.Version,
- // billNum: itm.BillNum,
- // lU: itm.LU,
- // rELU: string.Empty,
- // pN: itm.PN,
- // rEPN: string.Empty,
- // site: itm.Site,
- // qty: itm.Qty,
- // price: itm.Price,
- // invGroupNum: itm.InvGroupNum,
- // settleDate: itm.SettleDate,
- // groupNum: itm.GroupNum,
- // extend1: string.Empty,
- // extend2: string.Empty,
- // extend3: string.Empty,
- // extend4: string.Empty,
- // businessType: itm.BusinessType
- // ));
- // }
- // await _repository.DbContext.BulkInsertAsync(new List() { pub });
- // await _repository.DbContext.BulkInsertAsync(pubDetail);
- // return true;
- // }
- // }
- //}
+ var bbacmainlist = new List();
+ foreach (var itm in invList)
+ {
+ var bbac = new BBAC_PD(
+ guid: itm.Id,
+ version:int.Parse(DateTime.Now.ToString("yyyyMM")),
+ billNum: itm.InvbillNum,
+ settleBillNum: itm.InvGroupNum,
+ state: SettleBillState.客户已收票,
+ invGroupNum: itm.InvGroupNum,
+ site: string.Empty
+ );
+ bbacmainlist.Add( bbac );
+
+ }
+ var bbacDetail = new List();
+ foreach (var itm in entityList)
+ {
+ bbacDetail.Add(
+ new BBAC_PD_DETAIL(
+ guid: itm.Id,
+ keyCode: itm.KeyCode,
+ version: itm.Version,
+ billNum: itm.BillNum,
+ lU: itm.LU,
+ rELU: string.Empty,
+ pN: itm.PN,
+ rEPN: string.Empty,
+ site: itm.Site,
+ qty: itm.Qty,
+ price: 0,
+ invGroupNum: itm.InvGroupNum,
+ settleDate: itm.SettleDate,
+ groupNum: itm.GroupNum,
+ extend1: string.Empty,
+ extend2: string.Empty,
+ extend3: string.Empty,
+ extend4: string.Empty
+ ));
+ }
+ await _repository.DbContext.BulkInsertAsync(bbacmainlist);
+ await _repository.DbContext.BulkInsertAsync(bbacDetail);
+ return true;
+
+ }
+
+
+ else if (inv.BusinessType == EnumBusinessType.JisHBPO)
+ {
+ var pdlist = _pdhbpoRepository.Where(p => p_invs.Contains(p.BillNum)).ToList();//包含发票号的代扣减单
+ if (pdlist != null && pdlist.Count > 0)
+ {
+ var invs = pdlist.Select(p => p.BillNum).ToList();
+ throw new UserFriendlyException($"发票{string.Join(",", invs)}已经生成待扣减过不能再次提交");
+ }
+ var parentList = invList.Select(p => p.ParentInvbillNum).ToList();//所有发票存在父发票号
+ List oldinvs = new List();
+ oldinvs.AddRange(p_invs);
+ if (parentList != null && parentList.Count > 0)
+ {
+ oldinvs.AddRange(parentList);
+ }
+ List oldlist = new List();//以前提交过的发票
+ List newlist = new List();//没有提交过的发票
+ var pdoldlist = pdlist.Where(p => oldinvs.Contains(p.BillNum)).ToList();
+ if (pdoldlist != null && pdoldlist.Count > 0)
+ {
+ oldlist = pdoldlist.Select(p => p.BillNum).ToList();//已经存在扣减记录,的发票号
+ }
+ newlist = p_invs.Where(p => !oldlist.Contains(p)).ToList();//不存在扣减记录的发票号
+
+
+
+ List entityList = new List();//结算明细
+ var namelist = invList.Select(p => p.InvbillNum).ToList();
+ if (oldlist.Count > 0)
+ {
+ var involdList = invList.Where(p => oldinvs.Contains(p.ParentInvbillNum)).ToList();
+ var involdname = involdList.Select(p => p.InvbillNum);
+ var adjlist = _adjRepository.Where(p => involdname.Contains(p.InvBillNum));
+
+ if (adjlist != null && adjlist.Count() > 0)
+ {
+ foreach (var itm in adjlist)
+ {
+ entityList.Add(new HBPO_CAN_SA_DETAIL(
+ guid: GuidGenerator.Create(),
+ keyCode: itm.KeyCode,
+ version: itm.Version,
+ billNum: itm.InvGroupNum,
+ settleBillNum: itm.SettleBillNum,
+ lU: itm.LU,
+ pN: itm.PN,
+ site: itm.Site,
+ qty: itm.Qty,
+ price: 0,
+ businessType: itm.BusinessType,
+ settleDate: itm.SettleDate,
+ groupNum: itm.GroupNum,
+ invGroupNum: itm.InvGroupNum,
+ invbillnum: itm.InvBillNum
+
+ ));
+ }
+ }
+ }
+ if (newlist.Count > 0)
+ {
+ var entitys = invList.Where(p => newlist.Contains(p.InvbillNum)).ToList();
+ var entityDetail = await _hbpoMng.GetDetailByInbillNumAsync(newlist);//结算明细
+ var adjlist = _adjRepository.Where(p => newlist.Contains(p.InvBillNum)).ToList();//发票关联调整表明细
+ if (adjlist != null && adjlist.Count() > 0)
+ {
+ foreach (var itm in adjlist)
+ {
+ entityDetail.Add(new HBPO_CAN_SA_DETAIL(
+ guid: GuidGenerator.Create(),
+ keyCode: itm.KeyCode,
+ version: itm.Version,
+ billNum: itm.InvGroupNum,
+ settleBillNum: itm.SettleBillNum,
+ lU: itm.LU,
+ pN: itm.PN,
+ site: itm.Site,
+ qty: itm.Qty,
+ price: 0,
+ businessType: itm.BusinessType,
+ settleDate: itm.SettleDate,
+ groupNum: itm.GroupNum,
+ invGroupNum: itm.InvGroupNum,
+ invbillnum: itm.InvBillNum
+ ));
+ }
+ }
+ entityList.AddRange(entityDetail);
+
+ }
+
+ var bbacmainlist = new List();
+ foreach (var itm in invList)
+ {
+ var bbac = new HBPO_PD(
+ guid: itm.Id,
+ version: int.Parse(DateTime.Now.ToString("yyyyMM")),
+ billNum: itm.InvbillNum,
+ settleBillNum: itm.InvGroupNum,
+ state: SettleBillState.客户已收票,
+ invGroupNum: itm.InvGroupNum,
+ site: string.Empty
+ );
+ bbacmainlist.Add(bbac);
+
+ }
+ var bbacDetail = new List();
+ foreach (var itm in entityList)
+ {
+ bbacDetail.Add(
+ new HBPO_PD_DETAIL(
+ guid: itm.Id,
+ keyCode: itm.KeyCode,
+ version: itm.Version,
+ billNum: itm.BillNum,
+ lU: itm.LU,
+ rELU: string.Empty,
+ pN: itm.PN,
+ rEPN: string.Empty,
+ site: itm.Site,
+ qty: itm.Qty,
+ price: 0,
+ invGroupNum: itm.InvGroupNum,
+ settleDate: itm.SettleDate,
+ groupNum: itm.GroupNum,
+ extend1: string.Empty,
+ extend2: string.Empty,
+ extend3: string.Empty,
+ extend4: string.Empty
+ ));
+ }
+ await _repository.DbContext.BulkInsertAsync(bbacmainlist);
+ await _repository.DbContext.BulkInsertAsync(bbacDetail);
+ return true;
+ }
+ else
+ {
+ var pdlist = _pdpubRepository.Where(p => p_invs.Contains(p.BillNum)).ToList();//包含发票号的代扣减单
+ if (pdlist != null && pdlist.Count > 0)
+ {
+ var invs = pdlist.Select(p => p.BillNum).ToList();
+ throw new UserFriendlyException($"发票{string.Join(",", invs)}已经生成待扣减过不能再次提交");
+ }
+ var parentList = invList.Select(p => p.ParentInvbillNum).ToList();//所有发票存在父发票号
+ List oldinvs = new List();
+ oldinvs.AddRange(p_invs);
+ if (parentList != null && parentList.Count > 0)
+ {
+ oldinvs.AddRange(parentList);
+ }
+ List oldlist = new List();//以前提交过的发票
+ List newlist = new List();//没有提交过的发票
+ var pdoldlist = pdlist.Where(p => oldinvs.Contains(p.BillNum)).ToList();
+ if (pdoldlist != null && pdoldlist.Count > 0)
+ {
+ oldlist = pdoldlist.Select(p => p.BillNum).ToList();//已经存在扣减记录,的发票号
+ }
+ newlist = p_invs.Where(p => !oldlist.Contains(p)).ToList();//不存在扣减记录的发票号
+
+ List entityList = new List();//结算明细
+ var namelist = invList.Select(p => p.InvbillNum).ToList();
+ if (oldlist.Count > 0)
+ {
+ var involdList = invList.Where(p => oldinvs.Contains(p.ParentInvbillNum)).ToList();
+ var involdname = involdList.Select(p => p.InvbillNum);
+ var adjlist = _adjRepository.Where(p => involdname.Contains(p.InvBillNum));
+
+ if (adjlist != null && adjlist.Count() > 0)
+ {
+ foreach (var itm in adjlist)
+ {
+ entityList.Add(new PUB_CAN_SA_DETAIL(
+ guid: GuidGenerator.Create(),
+ keyCode: itm.KeyCode,
+ version: itm.Version,
+ billNum: itm.InvGroupNum,
+ settleBillNum: itm.SettleBillNum,
+ lU: itm.LU,
+ pN: itm.PN,
+ site: itm.Site,
+ qty: itm.Qty,
+ price: 0,
+ businessType: itm.BusinessType,
+ settleDate: itm.SettleDate,
+ groupNum: itm.GroupNum,
+ invGroupNum: itm.InvGroupNum,
+ invbillnum: itm.InvBillNum
+
+ ));
+ }
+ }
+ }
+ if (newlist.Count > 0)
+ {
+ var entitys = invList.Where(p => newlist.Contains(p.InvbillNum)).ToList();
+ var entityDetail = await _pubMng.GetDetailByInbillNumAsync(newlist);//结算明细
+ var adjlist = _adjRepository.Where(p => newlist.Contains(p.InvBillNum)).ToList();//发票关联调整表明细
+ if (adjlist != null && adjlist.Count() > 0)
+ {
+ foreach (var itm in adjlist)
+ {
+ entityDetail.Add(new PUB_CAN_SA_DETAIL(
+ guid: GuidGenerator.Create(),
+ keyCode: itm.KeyCode,
+ version: itm.Version,
+ billNum: itm.InvGroupNum,
+ settleBillNum: itm.SettleBillNum,
+ lU: itm.LU,
+ pN: itm.PN,
+ site: itm.Site,
+ qty: itm.Qty,
+ price: 0,
+ businessType: itm.BusinessType,
+ settleDate: itm.SettleDate,
+ groupNum: itm.GroupNum,
+ invGroupNum: itm.InvGroupNum,
+ invbillnum: itm.InvBillNum
+ ));
+ }
+ }
+ entityList.AddRange(entityDetail);
+
+ }
+
+ var bbacmainlist = new List();
+ foreach (var itm in invList)
+ {
+ var pub = new PUB_PD(
+ guid: itm.Id,
+ version: int.Parse(DateTime.Now.ToString("yyyyMM")),
+ billNum: itm.InvbillNum,
+ settleBillNum: itm.InvGroupNum,
+ state: SettleBillState.客户已收票,
+ invGroupNum: itm.InvGroupNum,
+ site: string.Empty
+ );
+ bbacmainlist.Add(pub);
+
+ }
+ var bbacDetail = new List();
+ foreach (var itm in entityList)
+ {
+ bbacDetail.Add(
+ new PUB_PD_DETAIL(
+ guid: itm.Id,
+ keyCode: itm.KeyCode,
+ version: itm.Version,
+ billNum: itm.BillNum,
+ lU: itm.LU,
+ rELU: string.Empty,
+ pN: itm.PN,
+ rEPN: string.Empty,
+ site: itm.Site,
+ qty: itm.Qty,
+ price: 0,
+ businessType:itm.BusinessType,
+ invGroupNum: itm.InvGroupNum,
+ settleDate: itm.SettleDate,
+ groupNum: itm.GroupNum,
+ extend1: string.Empty,
+ extend2: string.Empty,
+ extend3: string.Empty,
+ extend4: string.Empty
+ ));
+ }
+ await _repository.DbContext.BulkInsertAsync(bbacmainlist);
+ await _repository.DbContext.BulkInsertAsync(bbacDetail);
+ return true;
+
+ }
return false;
}
public virtual async Task Reject(INVOICE_GRP p_entity)
@@ -572,7 +857,9 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
/// 版本号
/// 发票分组
/// 原发票号
- public async Task> SecInvoice(List dtos, int p_version, string p_InvGroupNum, string p_parentInvBillNum, EnumBusinessType businessType)
+ public async Task> SecInvoice(List p_list, List p_ajdlist, List dtos, int p_version, string p_InvGroupNum, string p_parentInvBillNum, EnumBusinessType businessType)
+ where TDetail : SA_CAN_BASE
+
{
List _invls = new List();
var groups1 = dtos.GroupBy(p => new { p.LU, p.Price, p.BeginDate, p.EndDate, p.ContractDocID }).Select(p => new TMEP_INV
@@ -634,7 +921,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
tempList.Add(group1);
}
invoiceMap.Add(invoiceBillNum, tempList);
- var query = from itm in groups1
+ var query = from itm in groups1 //更新分组
join itm1 in tempList
on new { itm.LU, itm.BeginDate, itm.EndDate, itm.ContractDocID }
equals new { itm1.LU, itm1.BeginDate, itm1.EndDate, itm1.ContractDocID } into temp
@@ -654,15 +941,46 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
}
if (invoiceMap.Count > 0)
{
+
var groupList = new List();
var notDetialList = new List();
var detailList = new List();
var invlist = new List();
+ var salist = new List();
+ var adjlist = new List();
foreach (var group in invoiceMap)
{
var key = group.Key;//发票票号
var ls = group.Value;//发票明细
- List _entityDetailList = new List();
+
+
+ var query = from itm in dtos
+ join itm1 in ls
+ on new { itm.LU, itm.BeginDate, itm.EndDate } equals new { itm1.LU, itm1.BeginDate, itm1.EndDate }
+ join itm2 in p_list on new { itm.LU, itm.SettleDate } equals new { itm2.LU, itm2.SettleDate }
+ select itm2;
+ foreach (var itm in query)
+ {
+ itm.InvbillNum = key;
+ salist.Add(itm);
+ }
+ if (!string.IsNullOrEmpty(p_parentInvBillNum))
+ {
+ var query1 = from itm in dtos
+ join itm1 in ls
+ on new { itm.LU, itm.BeginDate, itm.EndDate } equals new { itm1.LU, itm1.BeginDate, itm1.EndDate }
+ join itm2 in p_ajdlist on new { itm.LU, itm.SettleDate } equals new { itm2.LU, itm2.SettleDate }
+ select itm2;
+
+ foreach (var itm in query1)
+ {
+ itm.InvBillNum = key;
+ adjlist.Add(itm);
+ }
+
+ }
+
+ List < INVOICE_WAIT_DETAIL > _entityDetailList = new List();
foreach (var detail in ls)
{
_entityDetailList.Add(
@@ -730,9 +1048,20 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
);
invlist.Add(invbill);
}
+
+
await _repository.DbContext.BulkInsertAsync(invlist);
await _repository.DbContext.BulkInsertAsync(groupList);
await _repository.DbContext.BulkInsertAsync(detailList);
+ if(salist.Count>0)
+ {
+ await _repository.DbContext.BulkUpdateAsync(salist);
+ }
+ if (adjlist.Count > 0)
+ {
+ await _repository.DbContext.BulkUpdateAsync(adjlist);
+ }
+
//await _repository.DbContext.BulkInsertAsync(notDetialList);
_invls = invlist.Select(p => p.InvbillNum).ToList();
}
@@ -750,7 +1079,7 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
/// 版本号
/// 发票分组
/// 原发票号
- public async Task> MakeInvoice(List dtos, int p_version, string p_InvGroupNum, string p_parentInvBillNum, EnumBusinessType businessType, bool p_first)
+ public async Task> MakeInvoice(List details,List p_adjlist, List dtos, int p_version, string p_InvGroupNum, string p_parentInvBillNum, EnumBusinessType businessType, bool p_first) where TDetail : SA_CAN_BASE
{
List _invls = new List();
var groups1 = dtos.GroupBy(p => new { p.LU, p.Price, p.BeginDate, p.EndDate, p.ContractDocID }).Select(p => new TMEP_INV
@@ -792,7 +1121,6 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
{
invoiceBillNum = OrderNumberGenerator.GenerateOrderNumber("CINV");
}
-
List tempList = new List();
decimal sum = group.Amt;//初始合计金额
int partCount = 0;
@@ -845,10 +1173,39 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
var notDetialList = new List();
var detailList = new List();
var invlist = new List();
+ var salist = new List();
+ var adjlist = new List();
foreach (var group in invoiceMap)
{
var key = group.Key;//发票票号
var ls = group.Value;//发票明细
+
+ //更新结算记录更新
+ var query = from itm in dtos
+ join itm1 in ls
+ on new { itm.LU, itm.BeginDate, itm.EndDate } equals new { itm1.LU, itm1.BeginDate, itm1.EndDate }
+ join itm2 in details on new { itm.LU, itm.SettleDate } equals new { itm2.LU, itm2.SettleDate }
+ select itm2;
+ foreach (var itm in query)
+ {
+ itm.InvbillNum = key;
+ salist.Add(itm);
+ }
+ if (!string.IsNullOrEmpty(p_parentInvBillNum))
+ {
+ var query1 = from itm in dtos
+ join itm1 in ls
+ on new { itm.LU, itm.BeginDate, itm.EndDate } equals new { itm1.LU, itm1.BeginDate, itm1.EndDate }
+ join itm2 in p_adjlist on new { itm.LU, itm.SettleDate } equals new { itm2.LU, itm2.SettleDate }
+ select itm2;
+
+ foreach (var itm in query1)
+ {
+ itm.InvBillNum = key;
+ adjlist.Add(itm);
+ }
+ }
+
List _entityDetailList = new List();
foreach (var detail in ls)
{
@@ -920,6 +1277,14 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
await _repository.DbContext.BulkInsertAsync(invlist);
//await _repository.DbContext.BulkInsertAsync(groupList);
await _repository.DbContext.BulkInsertAsync(detailList);
+ if (salist.Count > 0)
+ {
+ await _repository.DbContext.BulkUpdateAsync(salist);
+ }
+ if (adjlist.Count > 0)
+ {
+ await _repository.DbContext.BulkUpdateAsync(adjlist);
+ }
//await _repository.DbContext.BulkInsertAsync(notDetialList);
_invls = invlist.Select(p => p.InvbillNum).ToList();
}
@@ -942,7 +1307,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
///
///
///
- public async Task> FirstInvoice(List dtos, List p_notlist, int p_version, string p_InvGroupNum, string p_parentInvBillNum, EnumBusinessType businessType)
+ public async Task> FirstInvoice(List p_list,List p_adjlist, List dtos, List p_notlist, int p_version, string p_InvGroupNum, string p_parentInvBillNum, EnumBusinessType businessType)
+ where TDetail:SA_CAN_BASE
{
List _invls = new List();
var _query = dtos.GroupBy(p => new { p.GroupNum }).Select(p => new { GroupNum = p.Key.GroupNum, Amt = p.Sum(itm => itm.Amt) });
@@ -998,14 +1364,29 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
var notDetialList = new List();
var detailList = new List();
var invlist = new List();
+ var salist = new List();
+ var adjlist = new List();
+
foreach (var itm in invoiceMap)//分组影响和
{
var key = itm.Key;//发票票号
var ls = itm.Value;//结算分组号列表
- //if(businessType==EnumBusinessType.JisBBAC)
- //{
-
- //}
+ var invdetails = p_list.Where(p => ls.Contains(p.GroupNum)).ToList();
+ foreach (var detail in invdetails)
+ {
+ detail.InvbillNum = key;
+ salist.Add(detail);
+ }
+ if (!string.IsNullOrEmpty(p_parentInvBillNum))
+ {
+ var adjdetails = p_adjlist.Where(p => ls.Contains(p.GroupNum)).ToList();
+ foreach (var detail in adjdetails)
+ {
+ detail.InvBillNum = key;
+ adjdetails.Add(detail);
+ }
+ }
+
var detailDtos = dtos.Where(p => ls.Contains(p.GroupNum)).GroupBy(p => new { p.InvGroupNum, p.LU, p.Price, p.BeginDate, p.EndDate, p.ContractDocID })
.Select(itm => new
{
@@ -1106,10 +1487,21 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
await _repository.DbContext.BulkInsertAsync(invlist);
await _repository.DbContext.BulkInsertAsync(groupList);
await _repository.DbContext.BulkInsertAsync(detailList);
+
+ if(salist.Count>0)
+ {
+ await _repository.DbContext.BulkUpdateAsync(salist);
+ }
+ if (adjlist.Count > 0)
+ {
+ await _repository.DbContext.BulkUpdateAsync(adjlist);
+ }
if (notDetialList.Count > 0)
{
await _repository.DbContext.BulkInsertAsync(notDetialList);
}
+
+
_invls = invlist.Select(p => p.InvbillNum).ToList();
}
@@ -1124,7 +1516,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
///
///
///
- public async Task ReissueFirstInvoice(List dtos, List p_adjlist, string p_OldInvBillNum, int p_version)
+ public async Task ReissueFirstInvoice(List p_list,List p_adjlist, List dtos, string p_OldInvBillNum, int p_version)
+ where TDetail:SA_CAN_BASE
{
if (!string.IsNullOrEmpty(p_OldInvBillNum))
{
@@ -1143,11 +1536,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
List invlist = new List();
if (inv.BusinessType == EnumBusinessType.MaiDanJianHBPO || inv.BusinessType == EnumBusinessType.BeiJian)
{
- invlist = await MakeInvoice(dtos, p_version, inv.InvGroupNum, string.Empty, inv.BusinessType, true);
+ invlist = await MakeInvoice(p_list,p_adjlist, dtos, p_version, inv.InvGroupNum, string.Empty, inv.BusinessType, true);
}
else
{
- invlist = await FirstInvoice(dtos, new List(), p_version, inv.InvGroupNum, inv.InvbillNum, inv.BusinessType);//重开可以变多张发票
+ invlist = await FirstInvoice(p_list,p_adjlist,dtos, new List(), p_version, inv.InvGroupNum, inv.InvbillNum, inv.BusinessType);//重开可以变多张发票
}
if (invlist.Count == 0)
@@ -1155,12 +1548,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
return false;
}
- foreach (var adj in p_adjlist)
- {
- adj.InvBillNum = string.Join(",", invlist);//调整单更新发票信息
- }
+ //foreach (var adj in p_adjlist)
+ //{
+ // adj.InvBillNum = string.Join(",", invlist);//调整单更新发票信息
+ //}
- _repository.DbContext.BulkUpdate(p_adjlist);
+ //_repository.DbContext.BulkUpdate(p_adjlist);
_repository.DbContext.BulkUpdate(new List { inv });
return true;
@@ -1175,7 +1568,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
///
///
///
- public async Task ReissueSecInvoice(List dtos, List p_adjlist, string p_OldInvBillNum, int p_version)
+ public async Task ReissueSecInvoice(List p_list, List p_adjlist, List dtos, string p_OldInvBillNum, int p_version)
+ where TDetail : SA_CAN_BASE
{
if (!string.IsNullOrEmpty(p_OldInvBillNum))
{
@@ -1194,14 +1588,12 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
List invlist = new List();
if (inv.BusinessType == EnumBusinessType.MaiDanJianHBPO || inv.BusinessType == EnumBusinessType.BeiJian)
{
- invlist = await MakeInvoice(dtos, p_version, inv.InvGroupNum, string.Empty, inv.BusinessType, false);
+ invlist = await MakeInvoice(p_list,p_adjlist, dtos, p_version, inv.InvGroupNum, string.Empty, inv.BusinessType, false);
}
else
{
- invlist = await SecInvoice(dtos, p_version, inv.InvGroupNum, inv.InvbillNum, inv.BusinessType);
+ invlist = await SecInvoice(p_list,p_adjlist,dtos,p_version, inv.InvGroupNum, inv.InvbillNum, inv.BusinessType);
}
-
-
if (invlist.Count == 0)
{
return false;
@@ -1209,11 +1601,11 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
_repository.DbContext.BulkUpdate(new List { inv });
- foreach (var adj in p_adjlist)
- {
- adj.InvBillNum = string.Join(",", invlist);
- }
- _repository.DbContext.BulkUpdate(p_adjlist);
+ //foreach (var adj in p_adjlist)
+ //{
+ // adj.InvBillNum = string.Join(",", invlist);
+ //}
+ //_repository.DbContext.BulkUpdate(p_adjlist);
return true;
}
return false;
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PD_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PD_MNG.cs
index 430c55bb..0099166b 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PD_MNG.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PD_MNG.cs
@@ -5,6 +5,7 @@ using System.Text;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using SettleAccount.Bases;
+using SettleAccount.Domain.BQ;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Domain.Services;
@@ -51,5 +52,9 @@ public class PD_MNG:DomainService
}
+
+
+
+
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_CAN_SA_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_CAN_SA_MNG.cs
index 18020ba6..fe31baeb 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_CAN_SA_MNG.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_CAN_SA_MNG.cs
@@ -256,6 +256,15 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
+ ///
+ /// 通过发票号获取结算数据
+ ///
+ ///
+ ///
+ public virtual async Task> GetDetailByInbillNumAsync(List p_invs)
+ {
+ return await _detailRepository.Where(p => p_invs.Contains(p.BillNum)).ToListAsync();
+ }
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_NOT_SA_MNG.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_NOT_SA_MNG.cs
index b152151a..2221fc9a 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_NOT_SA_MNG.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Managers/PUB_NOT_SA_MNG.cs
@@ -70,8 +70,8 @@ namespace Win.Sfs.SettleAccount.Entities.BQ.Managers
settleDate: itm.SettleDate,
groupNum: itm.GroupNum,
- invGroupNum: billNumber
-
+ invGroupNum: billNumber,
+ invbillnum: string.Empty
);
_entityList.Add(_detailEntity);
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_CAN_SA.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_CAN_SA.cs
index 055047a3..9b70a57e 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_CAN_SA.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/PUB_CAN_SA.cs
@@ -118,8 +118,12 @@ public class PUB_CAN_SA_DETAIL : SA_CAN_BASE
//[Display(Name = "结算分组")]
//public string GroupNum { get; set; } = null!;
- public PUB_CAN_SA_DETAIL(Guid guid, string keyCode, int version, string billNum, string settleBillNum, string lU, string pN, string site, decimal qty, decimal price, string invGroupNum, DateTime settleDate, EnumBusinessType businessType, string groupNum)
+ public PUB_CAN_SA_DETAIL(Guid guid, string keyCode, int version, string billNum, string settleBillNum, string lU, string pN, string site, decimal qty, decimal price, string invGroupNum, DateTime settleDate, EnumBusinessType businessType,
+ string groupNum,
+ string invbillnum
+ )
{
+ InvbillNum=invbillnum;
Id = guid;
KeyCode = keyCode;
Version = version;
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Vmi/JobItem.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Vmi/JobItem.cs
index a4e1fe04..dfe21e2f 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Vmi/JobItem.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/BQ/Vmi/JobItem.cs
@@ -23,6 +23,7 @@ public class JobItem : Entity
public string Service { get; set; }
public bool IsRunning { get; set; }
+ public DateTime? HeartBeat { get; set; }
[Timestamp]
public string ConcurrencyStamp { get; set; }
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/EntityFrameworkCore/SettleAccountDbContextModelCreatingExtensions.cs b/code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/EntityFrameworkCore/SettleAccountDbContextModelCreatingExtensions.cs
index 728ce3d7..a2129419 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/EntityFrameworkCore/SettleAccountDbContextModelCreatingExtensions.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/EntityFrameworkCore/SettleAccountDbContextModelCreatingExtensions.cs
@@ -107,6 +107,9 @@ namespace Win.Sfs.SettleAccount
builder.ConfigurePUB_ADJ_DETAIL(options);
builder.ConfigureBBAC_ADJ_DETAIL(options);
builder.ConfigureHBPO_ADJ_DETAIL(options);
+ builder.ConfigureBBAC_PD(options);
+ builder.ConfigureHBPO_PD(options);
+ builder.ConfigurePUB_PD(options);
//大众发票导入
//builder.ConfigureInvoice(options);
//builder.ConfigureInvoiceVersion(options);
@@ -1209,6 +1212,57 @@ namespace Win.Sfs.SettleAccount
b.Property(x => x.ConcurrencyStamp).HasMaxLength(50);
});
}
+ private static void ConfigureBBAC_PD(this ModelBuilder builder, SettleAccountModelBuilderConfigurationOptions options)
+ {
+
+ builder.Entity(b =>
+ {
+
+ b.ToTable($"{options.TablePrefix}_BBAC_PD", options.Schema);
+
+ b.ConfigureByConvention();
+ b.Property(x => x.BillNum).HasMaxLength(50);
+ b.Property(x => x.SettleBillNum).HasMaxLength(50);
+ b.Property(x => x.InvGroupNum).HasMaxLength(50);
+ b.Property(x => x.Site).HasMaxLength(50);
+ b.Property(x => x.ConcurrencyStamp).HasMaxLength(50);
+ });
+ }
+
+ private static void ConfigureHBPO_PD(this ModelBuilder builder, SettleAccountModelBuilderConfigurationOptions options)
+ {
+
+ builder.Entity(b =>
+ {
+
+ b.ToTable($"{options.TablePrefix}_HBPO_PD", options.Schema);
+
+ b.ConfigureByConvention();
+ b.Property(x => x.BillNum).HasMaxLength(50);
+ b.Property(x => x.SettleBillNum).HasMaxLength(50);
+ b.Property(x => x.InvGroupNum).HasMaxLength(50);
+ b.Property(x => x.Site).HasMaxLength(50);
+ b.Property(x => x.ConcurrencyStamp).HasMaxLength(50);
+ });
+ }
+ private static void ConfigurePUB_PD(this ModelBuilder builder, SettleAccountModelBuilderConfigurationOptions options)
+ {
+
+ builder.Entity(b =>
+ {
+
+ b.ToTable($"{options.TablePrefix}_PUB_PD", options.Schema);
+
+ b.ConfigureByConvention();
+ b.Property(x => x.BillNum).HasMaxLength(50);
+ b.Property(x => x.SettleBillNum).HasMaxLength(50);
+ b.Property(x => x.InvGroupNum).HasMaxLength(50);
+ b.Property(x => x.Site).HasMaxLength(50);
+ b.Property(x => x.ConcurrencyStamp).HasMaxLength(50);
+ });
+ }
+
+
private static void ConfigureBBAC_ADJ_DETAIL(this ModelBuilder builder, SettleAccountModelBuilderConfigurationOptions options)
{
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/20230807063408_vmi10.Designer.cs b/code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/20230807063408_vmi10.Designer.cs
new file mode 100644
index 00000000..9d2ecb54
--- /dev/null
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/20230807063408_vmi10.Designer.cs
@@ -0,0 +1,5051 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Volo.Abp.EntityFrameworkCore;
+using Win.Sfs.SettleAccount;
+
+namespace Win.Sfs.SettleAccount.Migrations
+{
+ [DbContext(typeof(SettleAccountDbContext))]
+ [Migration("20230807063408_vmi10")]
+ partial class vmi10
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.SqlServer)
+ .HasAnnotation("Relational:MaxIdentifierLength", 128)
+ .HasAnnotation("ProductVersion", "5.0.17")
+ .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
+
+ modelBuilder.Entity("SettleAccount.Domain.BQ.BBAC_CAN_SA", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("BillNum")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("BusinessType")
+ .HasColumnType("int");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("ExtraProperties")
+ .HasColumnType("nvarchar(max)")
+ .HasColumnName("ExtraProperties");
+
+ b.Property("InvGroupNum")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("SettleBillNum")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Site")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("State")
+ .HasMaxLength(50)
+ .HasColumnType("int");
+
+ b.Property("Version")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.ToTable("Set_BBAC_CAN_SA");
+ });
+
+ modelBuilder.Entity("SettleAccount.Domain.BQ.BBAC_CAN_SA_DETAIL", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("BillNum")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("BusinessType")
+ .HasColumnType("int");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property("ContractDocID")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("ExtraProperties")
+ .HasColumnType("nvarchar(max)")
+ .HasColumnName("ExtraProperties");
+
+ b.Property("GroupNum")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("InvGroupNum")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("IsReturn")
+ .HasMaxLength(50)
+ .HasColumnType("bit");
+
+ b.Property("KeyCode")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("LU")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("PN")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Price")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("Qty")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("SettleBillNum")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("SettleDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Site")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Version")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.ToTable("Set_BBAC_CAN_SA_DETAIL");
+ });
+
+ modelBuilder.Entity("SettleAccount.Domain.BQ.BBAC_NOT_SA_DETAIL", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("BusinessType")
+ .HasColumnType("int");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property("ContractDocID")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("ExtraProperties")
+ .HasColumnType("nvarchar(max)")
+ .HasColumnName("ExtraProperties");
+
+ b.Property("GroupNum")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("InvGroupNum")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("IsReturn")
+ .HasMaxLength(50)
+ .HasColumnType("bit");
+
+ b.Property("KeyCode")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("LU")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("PN")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Price")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("Qty")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("SettleBillNum")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("SettleDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Site")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Version")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.ToTable("Set_BBAC_NOT_SA_DETAIL");
+ });
+
+ modelBuilder.Entity("SettleAccount.Domain.BQ.BBAC_PD_DETAIL", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("BillNum")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property("DeleterId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("DeleterId");
+
+ b.Property("DeletionTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("DeletionTime");
+
+ b.Property("Extend1")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Extend2")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Extend3")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Extend4")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ExtraProperties")
+ .HasColumnType("nvarchar(max)")
+ .HasColumnName("ExtraProperties");
+
+ b.Property("GroupNum")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("InvGroupNum")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("IsDeleted")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bit")
+ .HasDefaultValue(false)
+ .HasColumnName("IsDeleted");
+
+ b.Property("KeyCode")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("LU")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("LastModificationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("LastModificationTime");
+
+ b.Property("LastModifierId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("LastModifierId");
+
+ b.Property("PN")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Price")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("Qty")
+ .HasColumnType("decimal(18,2)");
+
+ b.Property("RELU")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("REPN")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("SettleDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Site")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Version")
+ .HasColumnType("int");
+
+ b.HasKey("Id");
+
+ b.ToTable("Set_BBAC_PD_DETAIL");
+ });
+
+ modelBuilder.Entity("SettleAccount.Domain.BQ.BBAC_SA", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("BillNum")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("ConcurrencyStamp")
+ .IsConcurrencyToken()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)")
+ .HasColumnName("ConcurrencyStamp");
+
+ b.Property("CreationTime")
+ .HasColumnType("datetime2")
+ .HasColumnName("CreationTime");
+
+ b.Property("CreatorId")
+ .HasColumnType("uniqueidentifier")
+ .HasColumnName("CreatorId");
+
+ b.Property