新增定时属性销售订单累计核销金额字段,
修复发票反审核时没有刷新累计开票金额字段的问题, 修改累计开票金额取数逻辑 TODO:销售发票提交校验逻辑修改
This commit is contained in:
@@ -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 = $@"
|
||||
|
||||
Reference in New Issue
Block a user