using Dlhis.Basic.Api;
using Dlhis.Basic.Api.Requests;
using Dlhis.Entity.Basic.Entity;
using Dlhis.ScheduledTask.Attributes;
namespace Dlhis.ScheduledTask.Jobs;
///
/// 发送信息到网格长
///
[RecurringJob(nameof(SendMsgToWorkGridLeaderJob), "0 0 18 * * ? ", Name = "发送信息到网格长")]
public class SendMsgToWorkGridLeaderJob : BaseJob
{
public SendMsgToWorkGridLeaderJob(IServiceProvider serviceProvider) : base(serviceProvider)
{
}
protected override async Task RunAsync(IServiceProvider serviceProvider)
{
var infos = await DbContext.Queryable()
.LeftJoin((x, ga) => x.LeaderUserCode == ga.Code)
.Select((x, ga) => new
{
x.LeaderUserCode,
WorkGridName = x.Name,
UserName = x.Name,
})
.ToListAsync();
var dingtalkApi = serviceProvider.GetService();
foreach (var items in infos.Chunk(5))
{
await dingtalkApi.SendWorkMessageByWorkGridAsync(new JinkoSendWorkMessageRequest
{
Content = "你好,网格长,请看到消息后,前往人脸应用平台,执行明天的排班,已排班的请忽略!",
WorkCodes = items.Select(x => x.LeaderUserCode).ToList()
});
}
}
}