From 8af8ce4a3d7096966a346224dd606beaf8d73c59 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Thu, 29 Aug 2024 22:17:34 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E7=A7=BB=E9=99=A4=E5=B0=96=E5=B1=B1?= =?UTF-8?q?=E5=8D=95=E7=8B=AC=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Jobs/MealHainingSupplementHandlerJob.cs | 330 +++++++++--------- .../Jobs/MealSupplementHandlerJob.cs | 3 - 2 files changed, 165 insertions(+), 168 deletions(-) diff --git a/Src/Dlhis.ScheduledTask/Jobs/MealHainingSupplementHandlerJob.cs b/Src/Dlhis.ScheduledTask/Jobs/MealHainingSupplementHandlerJob.cs index 9d4f987d..50b47133 100644 --- a/Src/Dlhis.ScheduledTask/Jobs/MealHainingSupplementHandlerJob.cs +++ b/Src/Dlhis.ScheduledTask/Jobs/MealHainingSupplementHandlerJob.cs @@ -1,165 +1,165 @@ -using Dlhis.Canteen.Api; -using Dlhis.Canteen.Api.Request; -using Dlhis.Entity.Basic.Entity; -using Dlhis.Entity.Basic.Enums; -using Dlhis.Entity.Canteen.Entities; -using Dlhis.Entity.Canteen.Enums; -using Dlhis.ScheduledTask.Attributes; -using Dlhis.ScheduledTask.Common.Request; -using Dlhis.ScheduledTask.Common.Services; -using Hangfire; -using Kurisu.AspNetCore.DataAccess.SqlSugar.Extensions; -using Kurisu.AspNetCore.Utils; -using Kurisu.AspNetCore.Utils.Extensions; - -namespace Dlhis.ScheduledTask.Jobs; - -/// -/// 餐补核算 -/// -[RecurringJob(nameof(MealHainingSupplementHandlerJob), "0 0/30 * * * ?", Name = "海宁餐补核算")] -public class MealHainingSupplementHandlerJob : BaseJob -{ - private readonly IHainingMealSupplementApi _hainingMealSupplementApi; - private readonly IJinkoJIPService _jinkoJIPService; - - public MealHainingSupplementHandlerJob(IServiceProvider serviceProvider, - IHainingMealSupplementApi hainingMealSupplementApi, - IJinkoJIPService jinkoJIPService) : base(serviceProvider) - { - _hainingMealSupplementApi = hainingMealSupplementApi; - _jinkoJIPService = jinkoJIPService; - } - - protected override async Task RunAsync(IServiceProvider serviceProvider) - { - //查询待处理餐补 - var mealSupplements = await DbContext.Queryable() - .Where(x => x.Status == MealSupplementStatusEnumtype.Wait || x.Status == MealSupplementStatusEnumtype.Error) - .Where(x => x.Workplace == "5" && x.Factory != "501") //非储能 - .Where(x => !x.Sync) - .ToListAsync(); - - foreach (var item in mealSupplements) - { - var gainfo = await DbContext.Queryable().Where(x => x.Code == item.Code).SingleAsync(); - if (gainfo == null) - { - gainfo = await DbContext.Queryable().AS("GainfoLeave").Where(x => x.Code == item.Code).SingleAsync(); - - if (gainfo == null) - { - await DbContext.Updateable() - .SetColumns(x => x.Status == MealSupplementStatusEnumtype.Error) - .SetColumns(x => x.Result == "人员档案不存在") - .SetColumns(x => x.ModifiedTime == DateTime.Now) - .Where(x => x.UniqueId == item.UniqueId) - .ExecuteCommandAsync(); - - //后台任务获取人员 - BackgroundJob.Enqueue(x => x.TodoByCodeAsync(item.Code)); - - continue; - } - - if (gainfo.ResignationDate < item.Date) - { - try - { - var r = await _jinkoJIPService.SyncMealSupplementRecordsAsync(new List - { - new() - { - UniqueId = item.UniqueId, - Status = "FAIL", - Msg = "人员离职" - } - }); - - await DbContext.Updateable() - .SetColumns(x => x.Result == r) - .SetColumns(x => x.Status == MealSupplementStatusEnumtype.Success) - .SetColumns(x => x.Sync == true) - .SetColumns(x => x.ModifiedTime == DateTime.Now) - .Where(x => x.UniqueId == item.UniqueId) - .ExecuteCommandAsync(); - } - catch - { - } - - continue; - } - } - - - //创建余额数据 - var mealUser = await DbContext.Queryable().Where(x => x.UserCode == gainfo.Code).SingleAsync(); - if (mealUser == null) - { - mealUser = new GainfoMealEntity - { - Balance = 0, - BalanceOfRecharge = 0, - BalanceOfSubsidies = 0, - UserCode = gainfo.Code, - Version = 0, - }; - - await DbContext.InsertAsync(mealUser); - } - - await SetHainingMealSupplementAsync(item); - } - } - - private async Task SetHainingMealSupplementAsync(MealSupplementRecordEntity mealSupplement) - { - await DbContext.Client.Ado.BeginTranAsync(); - try - { - var hnResponse = await _hainingMealSupplementApi.AddMealSupplementAsync(new AddHainingMealSupplementRequest - { - Code = mealSupplement.Code, - Amount = mealSupplement.Amount, - Date = mealSupplement.Date.Date, - Remark = mealSupplement.Remark, - UniqueId = mealSupplement.UniqueId - }); - - (hnResponse == null || hnResponse.Code != 200).ThrowIfTrue("海宁餐补写入失败:" + hnResponse?.Message); - - var r = await _jinkoJIPService.SyncMealSupplementRecordsAsync(new List - { - new() - { - UniqueId = mealSupplement.UniqueId, - Status = "SUCCESS", - Msg = "操作成功" - } - }); - - //更新餐补信息为成功(同步成功) - await DbContext.Updateable() - .SetColumns(x => x.Result == r) - .SetColumns(x => x.Status == MealSupplementStatusEnumtype.Success) - .SetColumns(x => x.Sync == true) - .SetColumns(x => x.ModifiedTime == DateTime.Now) - .Where(x => x.UniqueId == mealSupplement.UniqueId) - .ExecuteCommandAsync(); - - await DbContext.Client.Ado.CommitTranAsync(); - } - catch (Exception ex) - { - await DbContext.Client.Ado.RollbackTranAsync(); - - await DbContext.Updateable() - .SetColumns(x => x.Status == MealSupplementStatusEnumtype.Error) - .SetColumns(x => x.Result == ex.Message + " " + ex.StackTrace) - .SetColumns(x => x.ModifiedTime == DateTime.Now) - .Where(x => x.UniqueId == mealSupplement.UniqueId) - .ExecuteCommandAsync(); - } - } -} \ No newline at end of file +// using Dlhis.Canteen.Api; +// using Dlhis.Canteen.Api.Request; +// using Dlhis.Entity.Basic.Entity; +// using Dlhis.Entity.Basic.Enums; +// using Dlhis.Entity.Canteen.Entities; +// using Dlhis.Entity.Canteen.Enums; +// using Dlhis.ScheduledTask.Attributes; +// using Dlhis.ScheduledTask.Common.Request; +// using Dlhis.ScheduledTask.Common.Services; +// using Hangfire; +// using Kurisu.AspNetCore.DataAccess.SqlSugar.Extensions; +// using Kurisu.AspNetCore.Utils; +// using Kurisu.AspNetCore.Utils.Extensions; +// +// namespace Dlhis.ScheduledTask.Jobs; +// +// /// +// /// 餐补核算 +// /// +// [RecurringJob(nameof(MealHainingSupplementHandlerJob), "0 0/30 * * * ?", Name = "海宁餐补核算")] +// public class MealHainingSupplementHandlerJob : BaseJob +// { +// private readonly IHainingMealSupplementApi _hainingMealSupplementApi; +// private readonly IJinkoJIPService _jinkoJIPService; +// +// public MealHainingSupplementHandlerJob(IServiceProvider serviceProvider, +// IHainingMealSupplementApi hainingMealSupplementApi, +// IJinkoJIPService jinkoJIPService) : base(serviceProvider) +// { +// _hainingMealSupplementApi = hainingMealSupplementApi; +// _jinkoJIPService = jinkoJIPService; +// } +// +// protected override async Task RunAsync(IServiceProvider serviceProvider) +// { +// //查询待处理餐补 +// var mealSupplements = await DbContext.Queryable() +// .Where(x => x.Status == MealSupplementStatusEnumtype.Wait || x.Status == MealSupplementStatusEnumtype.Error) +// .Where(x => x.Workplace == "5" && x.Factory != "501") //非储能 +// .Where(x => !x.Sync) +// .ToListAsync(); +// +// foreach (var item in mealSupplements) +// { +// var gainfo = await DbContext.Queryable().Where(x => x.Code == item.Code).SingleAsync(); +// if (gainfo == null) +// { +// gainfo = await DbContext.Queryable().AS("GainfoLeave").Where(x => x.Code == item.Code).SingleAsync(); +// +// if (gainfo == null) +// { +// await DbContext.Updateable() +// .SetColumns(x => x.Status == MealSupplementStatusEnumtype.Error) +// .SetColumns(x => x.Result == "人员档案不存在") +// .SetColumns(x => x.ModifiedTime == DateTime.Now) +// .Where(x => x.UniqueId == item.UniqueId) +// .ExecuteCommandAsync(); +// +// //后台任务获取人员 +// BackgroundJob.Enqueue(x => x.TodoByCodeAsync(item.Code)); +// +// continue; +// } +// +// if (gainfo.ResignationDate < item.Date) +// { +// try +// { +// var r = await _jinkoJIPService.SyncMealSupplementRecordsAsync(new List +// { +// new() +// { +// UniqueId = item.UniqueId, +// Status = "FAIL", +// Msg = "人员离职" +// } +// }); +// +// await DbContext.Updateable() +// .SetColumns(x => x.Result == r) +// .SetColumns(x => x.Status == MealSupplementStatusEnumtype.Success) +// .SetColumns(x => x.Sync == true) +// .SetColumns(x => x.ModifiedTime == DateTime.Now) +// .Where(x => x.UniqueId == item.UniqueId) +// .ExecuteCommandAsync(); +// } +// catch +// { +// } +// +// continue; +// } +// } +// +// +// //创建余额数据 +// var mealUser = await DbContext.Queryable().Where(x => x.UserCode == gainfo.Code).SingleAsync(); +// if (mealUser == null) +// { +// mealUser = new GainfoMealEntity +// { +// Balance = 0, +// BalanceOfRecharge = 0, +// BalanceOfSubsidies = 0, +// UserCode = gainfo.Code, +// Version = 0, +// }; +// +// await DbContext.InsertAsync(mealUser); +// } +// +// await SetHainingMealSupplementAsync(item); +// } +// } +// +// private async Task SetHainingMealSupplementAsync(MealSupplementRecordEntity mealSupplement) +// { +// await DbContext.Client.Ado.BeginTranAsync(); +// try +// { +// var hnResponse = await _hainingMealSupplementApi.AddMealSupplementAsync(new AddHainingMealSupplementRequest +// { +// Code = mealSupplement.Code, +// Amount = mealSupplement.Amount, +// Date = mealSupplement.Date.Date, +// Remark = mealSupplement.Remark, +// UniqueId = mealSupplement.UniqueId +// }); +// +// (hnResponse == null || hnResponse.Code != 200).ThrowIfTrue("海宁餐补写入失败:" + hnResponse?.Message); +// +// var r = await _jinkoJIPService.SyncMealSupplementRecordsAsync(new List +// { +// new() +// { +// UniqueId = mealSupplement.UniqueId, +// Status = "SUCCESS", +// Msg = "操作成功" +// } +// }); +// +// //更新餐补信息为成功(同步成功) +// await DbContext.Updateable() +// .SetColumns(x => x.Result == r) +// .SetColumns(x => x.Status == MealSupplementStatusEnumtype.Success) +// .SetColumns(x => x.Sync == true) +// .SetColumns(x => x.ModifiedTime == DateTime.Now) +// .Where(x => x.UniqueId == mealSupplement.UniqueId) +// .ExecuteCommandAsync(); +// +// await DbContext.Client.Ado.CommitTranAsync(); +// } +// catch (Exception ex) +// { +// await DbContext.Client.Ado.RollbackTranAsync(); +// +// await DbContext.Updateable() +// .SetColumns(x => x.Status == MealSupplementStatusEnumtype.Error) +// .SetColumns(x => x.Result == ex.Message + " " + ex.StackTrace) +// .SetColumns(x => x.ModifiedTime == DateTime.Now) +// .Where(x => x.UniqueId == mealSupplement.UniqueId) +// .ExecuteCommandAsync(); +// } +// } +// } \ No newline at end of file diff --git a/Src/Dlhis.ScheduledTask/Jobs/MealSupplementHandlerJob.cs b/Src/Dlhis.ScheduledTask/Jobs/MealSupplementHandlerJob.cs index e3f97db9..8a67cd70 100644 --- a/Src/Dlhis.ScheduledTask/Jobs/MealSupplementHandlerJob.cs +++ b/Src/Dlhis.ScheduledTask/Jobs/MealSupplementHandlerJob.cs @@ -27,12 +27,9 @@ public class MealSupplementHandlerJob : BaseJob protected override async Task RunAsync(IServiceProvider serviceProvider) { - var others = new[] { "502", "503", "504", "505" }; - //查询待处理餐补 var mealSupplements = await DbContext.Queryable() .Where(x => x.Status == MealSupplementStatusEnumtype.Wait || x.Status == MealSupplementStatusEnumtype.Error) - .Where(x => !others.Contains(x.Factory)) .Where(x => !x.Sync) .ToListAsync();