fix 余额导入重新核算
This commit is contained in:
@@ -144,37 +144,8 @@ public class MealSupplementRecordService : IMealSupplementRecordService
|
|||||||
(_currentUser.GetStringTenantId() != gainfo.Factory).ThrowIfTrue($"工号{request.Code}属于{gainfo.Factory}人员,无法导入");
|
(_currentUser.GetStringTenantId() != gainfo.Factory).ThrowIfTrue($"工号{request.Code}属于{gainfo.Factory}人员,无法导入");
|
||||||
(gainfo.Name != request.Name).ThrowIfTrue($"工号{request.Code}姓名不一致");
|
(gainfo.Name != request.Name).ThrowIfTrue($"工号{request.Code}姓名不一致");
|
||||||
|
|
||||||
await CommonHelper.RetryAsync(async () =>
|
|
||||||
{
|
|
||||||
var mealUser = await _dbContext.Queryable<GainfoMealEntity>().Where(x => x.UserCode == request.Code).FirstAsync();
|
|
||||||
if (mealUser == null)
|
|
||||||
{
|
|
||||||
mealUser = new GainfoMealEntity
|
|
||||||
{
|
|
||||||
UserNo = gainfo.No,
|
|
||||||
UserCode = gainfo.Code,
|
|
||||||
Balance = 0,
|
|
||||||
BalanceOfRecharge = 0,
|
|
||||||
BalanceOfSubsidies = 0,
|
|
||||||
Version = 0
|
|
||||||
};
|
|
||||||
|
|
||||||
await _dbContext.InsertAsync(mealUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
var b = mealUser.Balance += request.Balance;
|
|
||||||
|
|
||||||
await _dbContext.Updateable<GainfoMealEntity>()
|
|
||||||
.SetColumns(x => x.Version == x.Version + 1)
|
|
||||||
.SetColumns(x => x.Balance == b)
|
|
||||||
.SetColumns(x => x.ModifiedTime == DateTime.Now)
|
|
||||||
.Where(x => x.UserCode == mealUser.UserCode && x.Version == mealUser.Version)
|
|
||||||
.ExecuteCommandThrowVersionAsync();
|
|
||||||
}, 5);
|
|
||||||
|
|
||||||
(await _dbContext.Queryable<BalanceRecordEntity>().Where(x => x.UserCode == request.Code).Where(x => x.Remark == "期初导入").AnyAsync()).ThrowIfTrue($"工号{request.Code}已导入期初余额");
|
(await _dbContext.Queryable<BalanceRecordEntity>().Where(x => x.UserCode == request.Code).Where(x => x.Remark == "期初导入").AnyAsync()).ThrowIfTrue($"工号{request.Code}已导入期初余额");
|
||||||
|
|
||||||
|
|
||||||
await _dbContext.InsertAsync(new BalanceRecordEntity
|
await _dbContext.InsertAsync(new BalanceRecordEntity
|
||||||
{
|
{
|
||||||
Amount = request.Balance,
|
Amount = request.Balance,
|
||||||
@@ -199,8 +170,40 @@ public class MealSupplementRecordService : IMealSupplementRecordService
|
|||||||
Name = gainfo.Name,
|
Name = gainfo.Name,
|
||||||
IsCostCrossTenant = false,
|
IsCostCrossTenant = false,
|
||||||
DepartmentNo = gainfo.DepartmentNo,
|
DepartmentNo = gainfo.DepartmentNo,
|
||||||
DeviceUniqueNo = null,
|
DeviceUniqueNo = null
|
||||||
});
|
});
|
||||||
|
|
||||||
|
await CommonHelper.RetryAsync(async () =>
|
||||||
|
{
|
||||||
|
var mealUser = await _dbContext.Queryable<GainfoMealEntity>().Where(x => x.UserCode == request.Code).FirstAsync();
|
||||||
|
if (mealUser == null)
|
||||||
|
{
|
||||||
|
mealUser = new GainfoMealEntity
|
||||||
|
{
|
||||||
|
UserNo = gainfo.No,
|
||||||
|
UserCode = gainfo.Code,
|
||||||
|
Balance = 0,
|
||||||
|
BalanceOfRecharge = 0,
|
||||||
|
BalanceOfSubsidies = 0,
|
||||||
|
Version = 0
|
||||||
|
};
|
||||||
|
|
||||||
|
await _dbContext.InsertAsync(mealUser);
|
||||||
|
}
|
||||||
|
|
||||||
|
//重新核算
|
||||||
|
var balance = await _dbContext.Queryable<BalanceRecordEntity>()
|
||||||
|
.Where(x => x.UserCode == request.Code)
|
||||||
|
.Where(x => x.Status == BalanceRecordStatusEnumType.Valid)
|
||||||
|
.SumAsync(x => x.Amount);
|
||||||
|
|
||||||
|
await _dbContext.Updateable<GainfoMealEntity>()
|
||||||
|
.SetColumns(x => x.Version == x.Version + 1)
|
||||||
|
.SetColumns(x => x.Balance == balance)
|
||||||
|
.SetColumns(x => x.ModifiedTime == DateTime.Now)
|
||||||
|
.Where(x => x.UserCode == mealUser.UserCode && x.Version == mealUser.Version)
|
||||||
|
.ExecuteCommandThrowVersionAsync();
|
||||||
|
}, 5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user