新增定时属性销售订单累计核销金额字段,

修复发票反审核时没有刷新累计开票金额字段的问题,
修改累计开票金额取数逻辑

TODO:销售发票提交校验逻辑修改
This commit is contained in:
2025-07-31 17:39:21 +08:00
parent b47838589d
commit a18026e5bc
5 changed files with 74 additions and 20 deletions

View File

@@ -29,20 +29,61 @@ namespace GZ_LTHPilot_ORDER.ScheduleService
var orgList = orgService.GetOrgList();
var tableName = tempTableService.CreateTempTable();
CreateTempTable(ctx, tableName);
var advanceAays = GetAdvanceAays(schedule);
var planStartDate = DateTime.Now;
foreach (var item in orgList)
{
var advanceAays = GetAdvanceAays(schedule);
// 获取组织Id
var orgId = item["FORGID"].ToString();
// 提前天的日期
var startDate = DateTime.Now.Date.AddDays(-advanceAays - 1);
var endDate = DateTime.Now;
var receiveAmountList = saleOrderService.GetSaleOrderReceiveAmountByDate(orgId, startDate, endDate);
InsertDataToTempTable(ctx, tableName, orgId, receiveAmountList);
// 循环查询销售订单执行明细表,每次查询一个月的数据, 将数据插入自定义临时表中
var startDate = planStartDate.AddDays(-advanceAays);
var endDate = startDate.AddMonths(1);
// 如果开始时间大于计划开始时间,说明结束了
while (startDate > planStartDate)
{
var receiveAmountList = saleOrderService.GetSaleOrderReceiveAmountByDate(orgId, startDate, endDate);
InsertDataToTempTable(ctx, tableName, orgId, receiveAmountList);
startDate = startDate.AddMonths(1);
endDate = startDate.AddMonths(1);
}
}
UpdateSaleOrderReceiveAmount(ctx, tableName);
tempTableService.DropTempTable(tableName);
}
/// <summary>
/// 更新销售订单累计核销金额
/// </summary>
/// <param name="ctx"></param>
/// <param name="tableName"></param>
/// <returns></returns>
private int UpdateSaleOrderReceiveAmount(Context ctx, string tableName)
{
var sql = $@"
UPDATE t1
SET
t1.F_AMOUNT = FAMOUNT
FROM
T_SAL_ORDER t1
INNER JOIN {tableName} t2 ON t1.FSALEORGID = t2.FORGID
AND t1.FBILLNO = t2.FBILLNO
";
return DBServiceHelper.Execute(ctx, sql);
}
/// <summary>
/// 将查询的数据插入临时表
/// </summary>
/// <param name="ctx"></param>
/// <param name="tableName"></param>
/// <param name="orgId"></param>
/// <param name="saleExecuteOuts"></param>
/// <returns></returns>
private int InsertDataToTempTable(Context ctx, string tableName, string orgId, List<SaleExecuteOut> saleExecuteOuts)
{
var values = saleExecuteOuts.Select(n => $"({orgId},'{n.FSALEORGNAME}','{n.FBILLNO}',{n.FALLMATCHAMOUNT},'{n.FDate}')");
@@ -56,6 +97,11 @@ VALUES
return DBServiceHelper.Execute(ctx, sqlTemp);
}
/// <summary>
/// 创建临时表
/// </summary>
/// <param name="ctx"></param>
/// <param name="tableName"></param>
private void CreateTempTable(Context ctx, string tableName)
{
var sql = $@"