using cylsg.Core;
using cylsg.Model.ECTEModel;
using EzCoreNet.Redis;
using EzInitqMessageDef;
using EzWechat;
using Furion;
using Furion.FriendlyException;
using InitQ.Abstractions;
using InitQ.Attributes;
using MapsterMapper;
using Models;
using Newtonsoft.Json;
using SqlSugar;
using StackExchange.Profiling.Internal;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EzInitQ
{
///
/// 川印 消息队列处理函数
///
public class CY_MessageServiser: IRedisSubscribe
{
///
/// 川印厂商ID
///
public Guid firmId => new Guid("88B49967-D590-452C-93C6-0049A75FA5FF");
///
/// 司机问题反馈 分发问题
///
///
[Subscribe(InitQMessages.CYOSDeiverWentiFankuai)]
public async void CYOSDeiverWentiFanKui(string msg)
{
ISqlSugarClient _OAsqlSugarClient = App.GetService().AsTenant().GetConnection("ECTESTOADB");
var userdata = JsonConvert.DeserializeObject(msg);
if(userdata ==null)
throw Oops.Oh($"队列CYOSDeiverWentiFankuai 处理失败,请检查消息格式++++++++{msg}");
if(userdata.OA_DeliverPlanPaicheID==null)
throw Oops.Oh($"队列CYOSDeiverWentiFankuai 处理失败,没有获取到派车ID+++++++++{msg}");
//var DbC = new BaseRepository();
var data= await _OAsqlSugarClient.Queryable().Includes(x=>x.Driver).Where(x=>x.Keyid==userdata.OA_DeliverPlanPaicheID).FirstAsync();
if(data==null)
throw Oops.Oh($"队列CYOSDeiverWentiFankuai 处理失败,没有获取到派车信息+++++++++{msg}");
if(data.Driver==null)
{
throw Oops.Oh($"队列CYOSDeiverWentiFankuai 处理失败,没有获取到司机信息+++++++++{msg}");
}
//var WorkReminderDb = new BaseRepository();
//订单ID
var SellerOrderId = await _OAsqlSugarClient.Queryable().Where(x => x.DeliverPlanPaicheid == data.Keyid).Select(x=>x.SellerOrderId).FirstAsync();
string? orderDocumentName = null;
if (SellerOrderId != null)
orderDocumentName = await _OAsqlSugarClient.Queryable().Where(x => x.SellerOrderId == SellerOrderId).Select(x => x.DocumentName).FirstAsync();
//创建人
var creerter = await _OAsqlSugarClient.Queryable().Where(x => x.MemberId == data.Creater).Select(x => x.Name).FirstAsync();
if(creerter!=null)
{
await _OAsqlSugarClient.Insertable(new OA_WorkReminder
{
Content = $" 派送:{data.CompanyName} 地址:{data.Dizhi}, {data.Remark??""} {orderDocumentName??""}。 送货反馈:{userdata.WenTi}",
RemenderObject = creerter,
Remender = data.Driver.Name,
RemenderTime= userdata.CreateTime
}).ExecuteCommandAsync();
}
//派车任务
var PaiCheRenwu= await _OAsqlSugarClient.Queryable().Includes(x=>x.SentStaff).Where(x=>x.DeliverPlanPaicheId==data.Keyid).FirstAsync();
if(PaiCheRenwu!=null)
{
await _OAsqlSugarClient.Insertable(new OA_WorkReminder
{
Content = $" 派送:{data.CompanyName} 地址:{data.Dizhi}, {data.Remark ?? ""} {orderDocumentName ?? ""}。 送货反馈:{userdata.WenTi}",
Remender = data.Driver.Name ,
RemenderObject = PaiCheRenwu?.SentStaff?.Name??"",
RemenderTime = userdata.CreateTime
}).ExecuteCommandAsync();
}
if (data.Zerenren!=null)
{
//var zherenrenDb = new BaseRepository();
var zherenren = await _OAsqlSugarClient.Queryable().Where(x=>x.Keyid==data.Zerenren&&x.FirmId== firmId).Select(x=>x.Name).FirstAsync();
if(zherenren!=null)
{
await _OAsqlSugarClient.Insertable(new OA_WorkReminder
{
Content = $" 派送:{data.CompanyName} 地址:{data.Dizhi}, {data.Remark ?? ""} {orderDocumentName ?? ""}。 送货反馈:{userdata.WenTi}",
RemenderObject = zherenren,
Remender = data.Driver.Name,
RemenderTime = userdata.CreateTime
}).ExecuteCommandAsync();
}
}
}
}
}