fix 数据赋值,增加餐补数据修复处理
This commit is contained in:
@@ -160,6 +160,38 @@ public class BalanceService : IBalanceService
|
||||
}
|
||||
|
||||
|
||||
public async Task SupplementBalanceAsync(BalanceSupplementRequest request)
|
||||
{
|
||||
var balanceInfo = await _dbContext.Queryable<BalanceRecordEntity>().Where(x => x.No == request.No).SingleAsync();
|
||||
(balanceInfo.Status != BalanceRecordStatusEnumType.Valid).ThrowIfTrue("消费明细状态有误");
|
||||
|
||||
balanceInfo.Status = BalanceRecordStatusEnumType.Obsolute;
|
||||
|
||||
await CommonHelper.RetryAsync(async () =>
|
||||
{
|
||||
var gainfoMeal = await _dbContext.Queryable<GainfoMealEntity>().Where(x => x.UserCode == balanceInfo.UserCode).SingleAsync();
|
||||
var balance = gainfoMeal.Balance + balanceInfo.Amount + request.Amount;
|
||||
|
||||
await _dbContext.Updateable<GainfoMealEntity>()
|
||||
.SetColumns(x => x.Balance == balance)
|
||||
.SetColumns(x => x.Version == x.Version + 1)
|
||||
.SetColumns(x => x.ModifiedTime == DateTime.Now)
|
||||
.Where(x => x.UserCode == balanceInfo.UserCode && x.Version == gainfoMeal.Version)
|
||||
.ExecuteCommandThrowVersionAsync();
|
||||
});
|
||||
|
||||
var newBalanceRecord = balanceInfo.Adapt<BalanceRecordEntity>();
|
||||
newBalanceRecord.Id = 0;
|
||||
newBalanceRecord.No = SnowFlakeHelper.Instance.NextId().ToString();
|
||||
newBalanceRecord.Amount = request.Amount;
|
||||
newBalanceRecord.Remark = balanceInfo.No;
|
||||
newBalanceRecord.Status = BalanceRecordStatusEnumType.Valid;
|
||||
|
||||
await _dbContext.UpdateAsync(balanceInfo);
|
||||
await _dbContext.InsertAsync(newBalanceRecord);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 根据成本中心
|
||||
@@ -561,6 +593,7 @@ public class BalanceService : IBalanceService
|
||||
await _dbContext.Updateable<GainfoMealEntity>()
|
||||
.SetColumns(x => x.Balance == canteenUser.Balance)
|
||||
.SetColumns(x => x.Version == x.Version + 1)
|
||||
.SetColumns(x => x.ModifiedTime == DateTime.Now)
|
||||
.Where(x => x.UserNo == balanceRecord.UserNo && x.Version == canteenUser.Version)
|
||||
.ExecuteCommandThrowVersionAsync();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user