From 8c92db325f7c801d2df095763a17673fa6c92085 Mon Sep 17 00:00:00 2001 From: 移动系统liao <liaoxujun@qq.com> Date: 星期五, 07 三月 2025 18:56:09 +0800 Subject: [PATCH] 物流配送第一点 --- cylsg/cylsg.Application/CyOS/CyOSStaffController.cs | 261 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 260 insertions(+), 1 deletions(-) diff --git a/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs b/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs index a888020..f710ad4 100644 --- a/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs +++ b/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs @@ -7,6 +7,8 @@ using ECTESTOA; using EzCoreNet.Redis; using Furion.LinqBuilder; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Models; using System; using System.Collections.Generic; using System.Linq; @@ -22,6 +24,7 @@ /// 宸濆嵃鏅�氬憳宸ユ帶鍒跺櫒 /// </summary> [Authorize] + [ApiDescriptionSettings("CYOA")] public class CyOSStaffController : IDynamicApiController { private readonly IOAServices _OAServices; @@ -302,7 +305,7 @@ } /// <summary> - /// 鑾峰彇璇︽儏 + /// 鑾峰彇璐㈠姟鐢宠鍗曡鎯� /// </summary> /// <param name="id"></param> /// <returns></returns> @@ -343,6 +346,228 @@ return true; } + + /// <summary> + /// 鑾峰彇棰勭害閰嶉�佷俊鎭� + /// </summary> + /// <param name="Param"></param> + /// <returns></returns> + [HttpPost] + public async Task<AppointmentDeliverRet> GetListAppointmentDeliverList(ApoointmentDeliverSearchParam Param) + { + + if (!await CheckRols()) + { + throw Oops.Oh("娌℃湁鏉冮檺"); + } + + Expression<Func<OA_DeliverTixing, bool>> SearchList = (x) => true; + SearchList = SearchList.And(x => x.FirmId == _OAServices.firmId); + SearchList = SearchList.And(x => x.Creater == Permissions.MemberId); + if (!string.IsNullOrEmpty(Param.Content)) + { + SearchList = SearchList.And(x => x.Remark.Contains(Param.Content)); + } + if (Param.MemberId != null) + { + SearchList = SearchList.And(x => x.FirmId == Param.MemberId); + } + if (Param.TimeStart !=null) + { + SearchList = SearchList.And(x => x.CreateTime> Param.TimeStart); + } + if (Param.TimeEnd != null) + { + SearchList = SearchList.And(x => x.CreateTime < Param.TimeEnd.Value.AddDays(1)); + } + + + + if (Param.DeliverState != null) + { + SearchList = SearchList.And(x => x.Chulistatus == Param.DeliverState); + } + //寮哄埗澧炲姞鍛樺伐杩囨护 + RefAsync<int> totle = 0; + var data = await _SugarClient.Queryable<OA_DeliverTixing>() + .Where(SearchList).OrderByDescending(x => x.ChuliTime).ToPageListAsync(Param.page.PageIndex, Param.page.PageSize, totle); + + Param.page.TotalCount = totle; + + return new AppointmentDeliverRet + + { + Data = data, + page= Param.page, + + }; + } + + + /// <summary> + /// 鍒涘缓涓�涓绾﹂厤閫� + /// </summary> + /// <param name="Param"></param> + /// <returns></returns> + [LimitFilter(LimiType = Limttype.User,timespan =5,ResponseMeg ="璇峰嬁鍦�5鍐呴噸澶嶈姹�",InCount =1)] + public async Task<int> CreatAppointmentDeliver(OA_DeliverTixing Param) + { + if( string.IsNullOrEmpty(Param.Remark)) + throw Oops.Oh("鍐呭蹇呭~"); + + if (!await CheckRols()) + { + throw Oops.Oh("娌℃湁鏉冮檺"); + } + + Param.FirmId = _OAServices.firmId; + Param.CreateTime = DateTime.Now; + Param.Creater = Permissions.MemberId; + Param.Chulistatus = AppointmentDeliverState.unAccept; + + return await _SugarClient.Insertable(Param).ExecuteCommandAsync(); + } + + /// <summary> + /// 淇敼棰勭害鎻愰啋 + /// </summary> + /// <param name="Param"></param> + /// <returns></returns> + public async Task<int> UpDataAppointmentDeliver(OA_DeliverTixing Param) + { + if( Param.Chulistatus== AppointmentDeliverState.Accept) + throw Oops.Oh("鐘舵�佷笉鍙慨鏀逛负鍙楃悊鐘舵��"); + if (!(Param.Keyid>0)) + throw Oops.Oh("Keyid涓嶈兘涓虹┖"); + if (string.IsNullOrEmpty(Param.Remark)) + throw Oops.Oh("鍐呭蹇呭~"); + + if (!await CheckRols()) + { + throw Oops.Oh("娌℃湁鏉冮檺"); + } + var data= await _SugarClient.Queryable<OA_DeliverTixing>().Where(x => x.Keyid == Param.Keyid&&x.FirmId==_OAServices.firmId&&x.Creater==Permissions.MemberId).FirstAsync(); + if (data == null) + throw Oops.Oh("娌℃壘鍒版暟鎹�"); + if(data.Chulistatus == AppointmentDeliverState.Accept) + throw Oops.Oh("宸插彈鐞嗙姸鎬佷笉鍙慨鏀�"); + if (data.Remark!=Param.Remark) + { + data.Remark = Param.Remark; + data.LastUpdateTime = DateTime.Now; + data.Updater = Permissions.MemberId; + return await _SugarClient.Updateable(data).ExecuteCommandAsync(); + } + return 1; + + + } + /// <summary> + /// 鍒犻櫎棰勭害鎻愰啋 + /// </summary> + /// <param name="Param"></param> + /// <returns></returns> + public async Task<int> DelAppointmentDeliver(OA_DeliverTixing Param) + { + if (!(Param.Keyid > 0)) + throw Oops.Oh("Keyid涓嶈兘涓虹┖"); + + + if (!await CheckRols()) + { + throw Oops.Oh("娌℃湁鏉冮檺"); + } + var data = await _SugarClient.Queryable<OA_DeliverTixing>().Where(x => x.Keyid == Param.Keyid && x.Creater == Permissions.MemberId&&x.FirmId==_OAServices.firmId).FirstAsync(); + if (data == null) + throw Oops.Oh("娌℃壘鍒版暟鎹垨鑰呮病鏈夋潈闄�"); + if( data.Chulistatus!= AppointmentDeliverState.unAccept) + throw Oops.Oh("宸插彈鐞嗙姸鎬佷笉鍙垹闄�"); + + return await _SugarClient.Deleteable(data).ExecuteCommandAsync(); + + + } + + /// <summary> + /// 鑾峰彇閫佽揣鍗� + /// </summary> + /// <returns></returns> + [HttpPost] + public async Task<DeliverOderPageRet> GetDeliverPlans(DeliverPlanSearchParam Param) + { + if (!await CheckRols()) + { + throw Oops.Oh("娌℃湁鏉冮檺"); + } + + Expression<Func<OA_DeliverPlan, bool>> SearchList = (x) => true; + SearchList = SearchList.And(x => x.FirmId == _OAServices.firmId); + SearchList = SearchList.And(x => x.Creater == Permissions.MemberId);//鍙湅鑷繁 + SearchList = SearchList.And(x => x.ShifouDelivery !=2);//杩囨护鏈夋晥 + if (Param.DeliverKeyID!=null) + { + SearchList = SearchList.And(x => x.DriverId == Param.DeliverKeyID); + } + //瀹㈡埛鍚嶇О + if (!string.IsNullOrEmpty(Param.CorporateClient)) + { + SearchList = SearchList.And(x => x.CompanyName.Contains(Param.CorporateClient)); + } + if (Param.TimeStart != null) + { + SearchList = SearchList.And(x => x.CreateTime > Param.TimeStart); + } + if (Param.TimeEnd != null) + { + SearchList = SearchList.And(x => x.CreateTime < Param.TimeEnd.Value.AddDays(1)); + } + if (Param.DeliveredState != null) + { + if (Param.DeliveredState != DeliveredType.Delivered) + { + SearchList = SearchList.And(x => x.Deliveredstatus != DeliveredType.Delivered); + } + else + { + SearchList = SearchList.And(x => x.Deliveredstatus == DeliveredType.Delivered); + } + } + + //寮哄埗澧炲姞鍛樺伐杩囨护 + RefAsync<int> totle = 0; + var data = await _SugarClient.Queryable<OA_DeliverPlan>().Includes(x => x.Driver) + .Where(SearchList).OrderByDescending(x => x.CreateTime.Value.Date).OrderBy(x=>SqlFunc.Asc(x.Sort)).ToPageListAsync(Param.page.PageIndex, Param.page.PageSize, totle); + + Param.page.TotalCount = totle; + + + return new DeliverOderPageRet + + { + Data = data, + page = Param.page, + + }; + + + } + + /// <summary> + /// 鑾峰彇閫佽揣鍗曡鎯� + /// </summary> + /// <param name="KeyId"></param> + /// <returns></returns> + public async Task<OA_DeliverPlan> GetDeliverPlanInfo(Guid KeyId) + { + + if (!await CheckRols()) + { + throw Oops.Oh("娌℃湁鏉冮檺"); + } + return await _SugarClient.Queryable<OA_DeliverPlan>().Includes(x => x.Attachments).Includes(x=>x.Driver).Includes(x=>x.Manager) + .Where(x => x.Creater == Permissions.MemberId && x.Keyid == KeyId && x.ShifouDelivery != 2).FirstAsync(); + + } /// <summary> /// 鍒ゆ柇鏄惁鍏锋湁鏉冮檺 @@ -427,4 +652,38 @@ public decimal TotalMoney { get; set; } = 0; } + + /// <summary> + /// 閰嶉�侀绾� + /// </summary> + public class AppointmentDeliverRet + { + /// <summary> + /// 鏁版嵁鍒楄〃 + /// </summary> + public List<OA_DeliverTixing> Data { get; set; } + + /// <summary> + /// 椤甸潰鍙傛暟 + /// </summary> + public PageModel page { get; set; } + + } + + + /// <summary> + /// 閰嶉�佸崟鏁版嵁杩斿洖 + /// </summary> + public class DeliverOderPageRet + { + /// <summary> + /// 鏁版嵁鍒楄〃 + /// </summary> + public List<OA_DeliverPlan> Data { get; set; } + + /// <summary> + /// 椤甸潰鍙傛暟 + /// </summary> + public PageModel page { get; set; } + } } -- Gitblit v1.9.1