diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfoMealController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfoMealController.cs index b93a4490..ba1aa625 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/GainfoMealController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/GainfoMealController.cs @@ -37,7 +37,7 @@ public class GainfoMealController : ControllerBase /// /// 迁移 /// - [Authorize(Roles = "admin")] + /// [Transactional] [Authorize(Roles = "admin,tenant-admin")] [HttpPost("migration")] diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/MealUserService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/MealUserService.cs index e9789d4c..6efd6968 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/MealUserService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/MealUserService.cs @@ -54,6 +54,7 @@ public class MealUserService : IMealUserService /// public async Task MigrationAsync(GainfoBalanceMigrationRequest request) { + //只能针对离职人员 var gainfoLeave = await _dbContext.Queryable().Where(x => x.Code == request.BeforeCode).SingleAsync(); gainfoLeave.ThrowIfNull("需要对已离职人员迁移"); @@ -63,9 +64,6 @@ public class MealUserService : IMealUserService return; } - var gainfo = await _dbContext.Queryable().Where(x => x.Code == request.NowCode).SingleAsync(); - gainfo.ThrowIfNull("目标人员不存在"); - //清空余额 await _dbContext.Updateable() .SetColumns(x => x.Balance == 0) @@ -73,6 +71,10 @@ public class MealUserService : IMealUserService .SetColumns(x => x.Version == x.Version + 1) .Where(x => x.UserCode == request.BeforeCode) //不需要判断version .ExecuteCommandAsync(); + + //转移到现有人员 + var gainfo = await _dbContext.Queryable().Where(x => x.Code == request.NowCode).SingleAsync(); + gainfo.ThrowIfNull("目标人员不存在"); var now = DateTime.Now;