From 4a09eb013e5cf2163cb2a6f32bb865e01a1c865d Mon Sep 17 00:00:00 2001 From: liguoyang Date: Wed, 19 Jun 2024 19:40:26 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BD=99=E9=A2=9D=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E6=A0=B8=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/MealSupplementRecordService.cs | 63 ++++++++++--------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/Src/Dlhis.Canteen/MealSupplementRecord/Services/Implements/MealSupplementRecordService.cs b/Src/Dlhis.Canteen/MealSupplementRecord/Services/Implements/MealSupplementRecordService.cs index 2175617f..4176fec9 100644 --- a/Src/Dlhis.Canteen/MealSupplementRecord/Services/Implements/MealSupplementRecordService.cs +++ b/Src/Dlhis.Canteen/MealSupplementRecord/Services/Implements/MealSupplementRecordService.cs @@ -144,37 +144,8 @@ public class MealSupplementRecordService : IMealSupplementRecordService (_currentUser.GetStringTenantId() != gainfo.Factory).ThrowIfTrue($"工号{request.Code}属于{gainfo.Factory}人员,无法导入"); (gainfo.Name != request.Name).ThrowIfTrue($"工号{request.Code}姓名不一致"); - await CommonHelper.RetryAsync(async () => - { - var mealUser = await _dbContext.Queryable().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() - .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().Where(x => x.UserCode == request.Code).Where(x => x.Remark == "期初导入").AnyAsync()).ThrowIfTrue($"工号{request.Code}已导入期初余额"); - await _dbContext.InsertAsync(new BalanceRecordEntity { Amount = request.Balance, @@ -199,8 +170,40 @@ public class MealSupplementRecordService : IMealSupplementRecordService Name = gainfo.Name, IsCostCrossTenant = false, DepartmentNo = gainfo.DepartmentNo, - DeviceUniqueNo = null, + DeviceUniqueNo = null }); + + await CommonHelper.RetryAsync(async () => + { + var mealUser = await _dbContext.Queryable().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() + .Where(x => x.UserCode == request.Code) + .Where(x => x.Status == BalanceRecordStatusEnumType.Valid) + .SumAsync(x => x.Amount); + + await _dbContext.Updateable() + .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); } } } \ No newline at end of file