小飞侠
2026-04-07 4fa007df2dd1b9666f414954464db1d4e8a7e1e0
cylsg/cylsg.Application/CyOS/CyOSSDriver.cs
@@ -2,6 +2,7 @@
using cylsg.Model.utilityViewModel;
using ECTESTOA;
using EzCoreNet.Redis;
using EzInitqMessageDef;
using Furion.LinqBuilder;
using Microsoft.AspNetCore.Http.HttpResults;
using Models;
@@ -47,7 +48,7 @@
            Expression<Func<OA_DeliverPlanPaiche, bool>> SearchList = (x) => true;
            SearchList = SearchList.And(x => x.FirmId == _oAServices.firmId);
            SearchList = SearchList.And(x => x.DriverId == Permissions.KeyId);//只看自己
            SearchList = SearchList.And(x => x.ShifouDelivery != 2);//过滤有效
            SearchList = SearchList.And(x => x.ShifouDelivery != 2 && x.ShifouDelivery != 0);//过滤有效
            if (Param.DeliverKeyID != null)
            {
                SearchList = SearchList.And(x => x.DriverId == Param.DeliverKeyID);
@@ -121,11 +122,19 @@
        public async Task<int > StartDeliverPlan(Guid KeyId)
        {
            if (!await CheckRols())
            {
                throw Oops.Oh("没有权限");
            }
             var a= await _client.Queryable<OA_DeliverPlanPaiche>().Where(x => x.DriverId == Permissions.KeyId && x.Keyid == KeyId && x.ShifouDelivery != 2).FirstAsync();
      DateTime specificDateTime = new DateTime(2025, 4, 9, 23, 59, 59);//2025年4月10 日之后的,必须一单一单点击完成后才能送货
            var count = await _client.Queryable<OA_DeliverPlanPaiche>().Where(x => x.DriverId == Permissions.KeyId && x.Keyid != KeyId && x.ShifouDelivery != 2 && x.Deliveredstatus == DeliveredType.Deliver&&x.DeliverTime> specificDateTime).CountAsync();
            if(count > 0)
            {
                throw Oops.Oh($"你还有{count}送货任务没有确认完成,不能开始新的任务");
            }
            var a= await _client.Queryable<OA_DeliverPlanPaiche>().Where(x => x.DriverId == Permissions.KeyId && x.Keyid == KeyId && x.ShifouDelivery != 2).FirstAsync();
            if(a==null)
                throw Oops.Oh("没有权限");
            if(a.Deliveredstatus!= DeliveredType.Undeliver)
@@ -206,6 +215,18 @@
            if(Param.Deliveredstatus== DeliveredType.Delivered)
            a.DeliveredTime = DateTime.Now;
            a.Wentifankui = Param.Wentifankui;
            if( !string.IsNullOrEmpty( Param.Wentifankui))
            {
                //问题反馈不为空,则插入反馈信息
                await InitQMessages.SendMessageAsync<CY_OSDeiverWentiFankuaiModes>(InitQMessages.CYOSDeiverWentiFankuai, new CY_OSDeiverWentiFankuaiModes
                {
                    CreateTime = DateTime.Now,
                    OA_DeliverPlanPaicheID = a.Keyid,
                    WenTi = Param.Wentifankui,
                });
            }
            a.Deliveredstatus= Param.Deliveredstatus;
            a.Attachments = Param.Attachments;