From d86bc04d0b34f2b7d9ddbd30ee703b51d48876e8 Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期三, 05 二月 2025 09:51:15 +0800 Subject: [PATCH] 修改审核中员工排在前边 --- cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs | 237 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 202 insertions(+), 35 deletions(-) diff --git a/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs b/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs index 76f27a1..d1a91ae 100644 --- a/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs +++ b/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs @@ -6,6 +6,7 @@ using EzTencentCloud; using Furion.LinqBuilder; using MapsterMapper; +using Microsoft.IdentityModel.Tokens; using Org.BouncyCastle.Asn1.X509; using SqlSugar.Extensions; using System; @@ -46,11 +47,19 @@ [HttpPost] public async Task<PageResult<OrderDto>> PostListPage(OrderPageSearch page) { + var UserID = App.User?.FindFirstValue("UserID"); + int userid = 0; + if (!string.IsNullOrEmpty(UserID)) + { + userid = int.Parse(UserID); + } + PageResult<OrderDto> result = new PageResult<OrderDto>(); Expression<Func<Order, bool>> expression = t => true; expression = expression.And(t => t.IsDeleted == false && t.IsEn == true && t.OrderStatus == 0); + // expression = expression.And(t => t.WordEndTime >= DateTime.Now.Date.AddDays(-30)); if (!string.IsNullOrEmpty(page.OrderName)) { expression = expression.And(t => t.OrderName.Contains(page.OrderName)); @@ -68,6 +77,7 @@ var orderRepository = new BaseRepository<Order>(); var orderBiddingRepository = new BaseRepository<OrderBidding>(); + var userCompanyRepository = new BaseRepository<UserCompany>(); var data = await orderRepository.Context.Queryable<Order>() .Where(expression) @@ -81,6 +91,41 @@ { var orderBiddings = await orderBiddingRepository.CountAsync(x => x.OrderId == orderDto.Id && x.IsSelected == true && x.IsEn == true && x.IsDeleted == false); orderDto.WorderCounted = orderBiddings; + var userCompany = await userCompanyRepository.GetFirstAsync(x => x.UserId == orderDto.OrderUserId && x.IsDeleted == false && x.IsEn == true); + if (userCompany != null) + { + orderDto.OrderComName = userCompany.Suppliername; + } + if (userid > 0) + { + var orderBidding = await orderBiddingRepository.GetFirstAsync(x => x.OrderId == orderDto.Id && x.WorkerUserId == userid && x.IsEn == true && x.IsDeleted == false); + if (orderBidding != null) + { + if (!orderBidding.IsSelected.HasValue) + { + orderDto.IsSelectedName = "瀹℃牳涓�"; + } + else if (orderBidding.IsSelected.Value == true) + { + orderDto.IsSelectedName = "宸茬‘璁�"; + } + else + { + orderDto.IsSelectedName = "涓嶅綍鐢�"; + } + + } + else + { + orderDto.IsSelectedName = null; + } + } + else + { + orderDto.IsSelectedName = null; + } + + } } @@ -134,6 +179,7 @@ var orderBiddingRepository = new BaseRepository<OrderBidding>(); + var userCompanyRepository = new BaseRepository<UserCompany>(); var data = await orderRepository.Context.Queryable<Order>() .Where(expression) @@ -147,7 +193,7 @@ { switch (orderDto.OrderStatus) { - case (int)OrderStatuses.fabu: orderDto.OrderStatusName = "鍙戝竷"; break; + case (int)OrderStatuses.fabu: orderDto.OrderStatusName = "鍙戝竷涓�"; break; case (int)OrderStatuses.zhaogongwanbi: orderDto.OrderStatusName = "鎷涘伐瀹屾瘯"; break; case (int)OrderStatuses.jiesuanwanbi: orderDto.OrderStatusName = "缁撶畻瀹屾瘯"; break; default: break; @@ -161,14 +207,23 @@ if (orderBidding != null) { orderDto.IsSelected = orderBidding.IsSelected; - if (orderDto.IsSelected.HasValue && orderDto.IsSelected.Value) + if (!orderDto.IsSelected.HasValue ) { - orderDto.IsSelectedName ="宸茬‘璁�"; + orderDto.IsSelectedName = "瀹℃牳涓�"; + } + else if(orderDto.IsSelected.Value) + { + orderDto.IsSelectedName = "宸茬‘璁�"; } else { - orderDto.IsSelectedName = "鏈‘璁�"; + orderDto.IsSelectedName = "涓嶅綍鐢�"; } + } + var userCompany = await userCompanyRepository.GetFirstAsync(x => x.UserId == orderDto.OrderUserId && x.IsDeleted == false && x.IsEn == true); + if (userCompany != null) + { + orderDto.OrderComName = userCompany.Suppliername; } } @@ -204,55 +259,109 @@ OrderDto orderDto = new OrderDto(); var orderRes = new BaseRepository<Order>(); var orderBiddingRes = new BaseRepository<OrderBidding>(); + var userWorkerRes = new BaseRepository<UserWorker>(); + var orderBiddingWorkPriceRepository = new BaseRepository<OrderBiddingWorkPrice>(); var userRes = new BaseRepository<User>(); var order = await orderRes.GetByIdAsync(orderid); + if (order.IsDeleted == true) + { + throw Oops.Oh("璁㈠崟宸茬粡鍒犻櫎鏃犳硶鏌ョ湅锛�"); + } orderDto = _mapper.Map<OrderDto>(order); switch (orderDto.OrderStatus) { - case (int)OrderStatuses.fabu: orderDto.OrderStatusName = "鍙戝竷"; break; + case (int)OrderStatuses.fabu: orderDto.OrderStatusName = "鍙戝竷涓�"; break; case (int)OrderStatuses.zhaogongwanbi: orderDto.OrderStatusName = "鎷涘伐瀹屾瘯"; break; case (int)OrderStatuses.jiesuanwanbi: orderDto.OrderStatusName = "缁撶畻瀹屾瘯"; break; default: break; } - var orderBiddings = await orderBiddingRes.GetListAsync(x => x.OrderId == orderDto.Id && x.IsEn == true && x.IsDeleted == false); + var orderBiddings = await orderBiddingRes.GetListAsync(x => x.OrderId == orderDto.Id && x.IsEn == true && x.IsDeleted == false ); //&& (x.IsSelected ==null || x.IsSelected !=false) var IsSelected = orderBiddings.Count(x => x.IsSelected == true); orderDto.WorderCounted = IsSelected; var orderBidding = orderBiddings.Where(x => x.WorkerUserId == userid).FirstOrDefault(); if (orderBidding != null) { + var dangqianshijian = DateTime.Now.Date; + //褰撳墠鏈夋晥鐨勫伐浠� + var orderBiddingWorkPrices = await orderBiddingWorkPriceRepository.GetListAsync(x => x.OrderBiddingId == orderBidding.Id && x.IsEn == true && x.IsDeleted == false ); + + orderBiddingWorkPrices = orderBiddingWorkPrices.OrderByDescending(x => x.Id).ToList(); + orderDto.orderBiddingWorkPrices = orderBiddingWorkPrices; + var orderBiddingWorkPrice = orderBiddingWorkPrices.Where(x => x.EffectTime <= DateTime.Now.Date).FirstOrDefault(); + if (orderBiddingWorkPrice != null) + { + orderDto.WorkPriceDangqian = orderBiddingWorkPrice.WorkPrice; + } + else + { + orderDto.WorkPriceDangqian = orderDto.WorkPrice; + } + + orderDto.IsSelected = orderBidding.IsSelected; - if (orderDto.IsSelected.HasValue && orderDto.IsSelected.Value) + if (!orderDto.IsSelected.HasValue) + { + orderDto.IsSelectedName = "瀹℃牳涓�"; + } + else if (orderDto.IsSelected.Value) { orderDto.IsSelectedName = "宸茬‘璁�"; } else { - orderDto.IsSelectedName = "鏈‘璁�"; + orderDto.IsSelectedName = "涓嶅綍鐢�"; } } - + orderBiddings = orderBiddings.Where(x => (x.IsSelected == null || x.IsSelected != false)).OrderBy(x=>x.IsSelected).ToList(); var orderBiddingDtos = _mapper.Map<List<OrderBiddingDto>>(orderBiddings); if(orderBiddingDtos != null&& orderBiddingDtos.Count > 0) { foreach (var orderBiddingDto in orderBiddingDtos) { - if (orderBiddingDto.IsSelected.HasValue && orderBiddingDto.IsSelected.Value) + if (!orderBiddingDto.IsSelected.HasValue) + { + orderBiddingDto.IsSelectedName = "瀹℃牳涓�"; + } + else if (orderBiddingDto.IsSelected.Value) { orderBiddingDto.IsSelectedName = "宸茬‘璁�"; } else { - orderBiddingDto.IsSelectedName = "鏈‘璁�"; + orderBiddingDto.IsSelectedName = "涓嶅綍鐢�"; } + var user = await userRes.GetByIdAsync(orderBiddingDto.WorkerUserId); + if (user != null) { - orderBiddingDto.WorkerName = user.name; orderBiddingDto.WorkerAvatar = user.Avatar; } + var userWorker = await userWorkerRes.GetFirstAsync(x => x.UserId == orderBiddingDto.WorkerUserId && x.IsEn == true && x.IsDeleted == false); + if (userWorker != null) + { + orderBiddingDto.WorkerName = userWorker.name; + } + + //褰撳墠鏈夋晥鐨勫伐浠� + var orderBiddingWorkPrices = await orderBiddingWorkPriceRepository.GetListAsync(x => x.OrderBiddingId == orderBiddingDto.Id && x.IsEn == true && x.IsDeleted == false); + orderBiddingWorkPrices = orderBiddingWorkPrices.OrderByDescending(x => x.Id).ToList(); + orderBiddingDto.orderBiddingWorkPrices = orderBiddingWorkPrices; + var orderBiddingWorkPrice = orderBiddingWorkPrices.Where(x => x.EffectTime <= DateTime.Now.Date).FirstOrDefault(); + if (orderBiddingWorkPrice != null) + { + + orderBiddingDto.WorkPrice = orderBiddingWorkPrice.WorkPrice; + } + else + { + orderBiddingDto.WorkPrice = orderDto.WorkPrice; + } + + } } @@ -294,7 +403,7 @@ } var order = await orderRes.GetByIdAsync(baoMingDto.OrderId); - if (order == null || order.OrderStatus>0) + if (order == null || order.OrderStatus>0 || order.IsEn !=true ) { throw Oops.Oh("璇ユ嫑宸ョ姸鎬佸凡缁忔棤娉曟姇閫掞紒"); } @@ -324,7 +433,7 @@ OrderBidding orderBidding1 = new OrderBidding(); orderBidding1.WorkerUserId = userid; orderBidding1.OrderId = baoMingDto.OrderId; - orderBidding1.IsSelected = false; + orderBidding1.IsSelected = null; orderBidding1.UpDataBy = NickName; orderBidding1.UpDataTime = DateTime.Now; orderBidding1.CreateBy = NickName; @@ -437,6 +546,17 @@ { throw Oops.Oh("璇ユ墦鍗¤褰曞凡缁忓鎵癸紝涓嶈兘鎵撳崱锛�"); } + if (orderBiddingDetail != null) + { + var orderBiddingDetailCheck1 = (await OrderBiddingDetailCheckRes.GetListAsync(x => x.OrderBiddingDetailId == orderBiddingDetail.Id && x.IsDeleted == false && x.IsEn == true )).OrderByDescending(x=>x.Checktime).FirstOrDefault(); + if (orderBiddingDetailCheck1 != null && orderBiddingDetailCheck1.Checktime >= DateTime.Now.AddMinutes(-10)) + { + throw Oops.Oh("涓ゆ鎵撳崱鏃堕棿涔嬮棿蹇呴』闂撮殧瓒呰繃10鍒嗛挓锛�"); + } + } + + + //浜鸿劯璇嗗埆 if (App.Configuration["VerifyFace:Enable"].ObjToBool()) { @@ -518,18 +638,22 @@ var orderBiddingDetailCheckRepository = new BaseRepository<OrderBiddingDetailCheck>(); - - var data = await orderRepository.Context.Queryable<Order, OrderBidding, OrderBiddingDetail>((a, b ,c) => + var orderBiddingWorkPriceRepository = new BaseRepository<OrderBiddingWorkPrice>(); + var data = await orderRepository.Context.Queryable<Order, OrderBidding, OrderBiddingDetail ,UserCompany>((a, b ,c ,d) => new JoinQueryInfos(JoinType.Inner, a.Id == b.OrderId , - JoinType.Inner, b.Id == c.OrderBiddingId + JoinType.Inner, b.Id == c.OrderBiddingId , + JoinType.Inner, a.OrderUserId == d.UserId )) - .Where((a, b, c) => a.IsEn == true && a.IsDeleted == false && b.IsEn == true && b.IsDeleted == false && c.IsEn == true && c.IsDeleted == false - && b.IsSelected == true && b.WorkerUserId == userid) - .WhereIF(page.WordDate.HasValue, (a, b, c) => (c.WorkDate == page.WordDate)) - .WhereIF(page.IsJieSuan.HasValue && page.IsJieSuan == true, (a, b, c) => (c.IsShenPi == 2)) - .WhereIF(page.IsJieSuan.HasValue && page.IsJieSuan == false, (a, b, c) => (c.IsShenPi < 2)) - .OrderByDescending((a, b, c) => c.WorkDate) - .Select((a, b, c) => new OrderDakaDto + .Where((a, b, c, d) => a.IsDeleted == false && b.IsEn == true && b.IsDeleted == false && c.IsEn == true && c.IsDeleted == false + && b.IsSelected == true && b.WorkerUserId == userid && d.IsEn == true && d.IsDeleted == false) //a.IsEn == true && + .WhereIF(page.WordDate.HasValue, (a, b, c, d) => (c.WorkDate == page.WordDate)) + .WhereIF(page.WordDateStart.HasValue, (a, b, c, d) => (c.WorkDate >= page.WordDateStart)) + .WhereIF(page.WordDateEnd.HasValue, (a, b, c, d) => (c.WorkDate <= page.WordDateEnd)) + .WhereIF(page.IsJieSuan.HasValue && page.IsJieSuan == true, (a, b, c, d) => (c.IsShenPi == 2)) + .WhereIF(page.IsJieSuan.HasValue && page.IsJieSuan == false, (a, b, c, d) => (c.IsShenPi < 2)) + .WhereIF(!string.IsNullOrEmpty(page.Suppliername), (a, b, c, d) =>d.Suppliername.Contains(page.Suppliername)) + .OrderByDescending((a, b, c, d) => c.WorkDate) + .Select((a, b, c, d) => new OrderDakaDto { OrderBiddingDetailId = c.Id, OrderName = a.OrderName, @@ -540,10 +664,29 @@ TodaySalary = c.TodaySalary, IsShenPi = c.IsShenPi, WorkCount = c.WorkCount, - + Suppliername = d.Suppliername, + OrderBiddingId = c.OrderBiddingId, }) .ToPageListAsync(page.PageIndex, page.PageSize, total); + + + + + var heji = orderRepository.Context.Queryable<Order, OrderBidding, OrderBiddingDetail, UserCompany>((a, b, c, d) => + new JoinQueryInfos(JoinType.Inner, a.Id == b.OrderId, + JoinType.Inner, b.Id == c.OrderBiddingId, + JoinType.Inner, a.OrderUserId == d.UserId + )) + .Where((a, b, c, d) => a.IsEn == true && a.IsDeleted == false && b.IsEn == true && b.IsDeleted == false && c.IsEn == true && c.IsDeleted == false + && b.IsSelected == true && b.WorkerUserId == userid && d.IsEn == true && d.IsDeleted == false) + .WhereIF(page.WordDate.HasValue, (a, b, c, d) => (c.WorkDate == page.WordDate)) + .WhereIF(page.WordDateStart.HasValue, (a, b, c, d) => (c.WorkDate >= page.WordDateStart)) + .WhereIF(page.WordDateEnd.HasValue, (a, b, c, d) => (c.WorkDate <= page.WordDateEnd)) + .WhereIF(page.IsJieSuan.HasValue && page.IsJieSuan == true, (a, b, c, d) => (c.IsShenPi == 2)) + .WhereIF(page.IsJieSuan.HasValue && page.IsJieSuan == false, (a, b, c, d) => (c.IsShenPi < 2)) + .WhereIF(!string.IsNullOrEmpty(page.Suppliername), (a, b, c, d) => d.Suppliername.Contains(page.Suppliername)) + .Sum((a, b, c, d) => c.TodaySalary); if (data != null && data.Count > 0) { @@ -576,6 +719,12 @@ //濡傛灉褰撳ぉ杩樻病鏈夊~鍐欑敵璇凤紝鍒欒绠楀伐浣滄椂闂村拰宸ヨ祫 if(dakaDto.IsShenPi == 0) { + //褰撳墠鏈夋晥鐨勫伐浠� + var orderBiddingWorkPrice = (await orderBiddingWorkPriceRepository.GetListAsync(x => x.OrderBiddingId == dakaDto.OrderBiddingId && x.IsEn == true && x.IsDeleted == false && x.EffectTime <= dakaDto.WorkDate)).OrderByDescending(x => x.Id).FirstOrDefault(); + if (orderBiddingWorkPrice != null) + { + dakaDto.WorkPrice = orderBiddingWorkPrice.WorkPrice; + } dakaDto.WorkTime = hours+(minutes/60); if(dakaDto.WorkerType == 0) { @@ -600,7 +749,7 @@ switch (dakaDto.WorkerType) { case (int)WorkerTypes.time: dakaDto.WorkerTypeName = "璁℃椂"; break; - case (int)WorkerTypes.count: dakaDto.WorkerTypeName = "璁′环"; break; + case (int)WorkerTypes.count: dakaDto.WorkerTypeName = "璁′欢"; break; default: break; } @@ -617,7 +766,7 @@ result.PageIndex = page.PageIndex; result.PageSize = page.PageSize; result.TotalCount = total; - + result.Heji = heji ?? 0; return result; } @@ -648,8 +797,9 @@ var orderRes = new BaseRepository<Order>(); var orderBiddingDetailRes = new BaseRepository<OrderBiddingDetail>(); var OrderBiddingDetailCheckRes = new BaseRepository<OrderBiddingDetailCheck>(); + var orderBiddingWorkPriceRepository = new BaseRepository<OrderBiddingWorkPrice>(); var userRes = new BaseRepository<User>(); - + var userWorkerRes = new BaseRepository<UserWorker>(); var orderBiddingDetail = await orderBiddingDetailRes.GetByIdAsync(dakaDetailDto.OrderBiddingDetailId); var orderBidding = await orderBiddingRes.GetByIdAsync(orderBiddingDetail.OrderBiddingId); @@ -666,15 +816,19 @@ orderDakaMingxiDto.WorkPrice = order.WorkPrice; orderDakaMingxiDto.TodaySalary = orderBiddingDetail.TodaySalary; orderDakaMingxiDto.IsShenPi = orderBiddingDetail.IsShenPi; + orderDakaMingxiDto.ShenPitime = orderBiddingDetail.ShenPitime; orderDakaMingxiDto.WorkCount = orderBiddingDetail.WorkCount; orderDakaMingxiDto.WorkerUserId = orderBidding.WorkerUserId; var user = await userRes.GetByIdAsync(orderDakaMingxiDto.WorkerUserId); if (user != null) { - orderDakaMingxiDto.WorkerUserName = user.name; orderDakaMingxiDto.WorkerUserAvatar = user.Avatar; } - + var userWorker = await userWorkerRes.GetFirstAsync(x => x.UserId == orderDakaMingxiDto.WorkerUserId && x.IsEn == true && x.IsDeleted == false); + if (userWorker != null) + { + orderDakaMingxiDto.WorkerUserName = userWorker.name; + } switch (orderDakaMingxiDto.IsShenPi) @@ -688,7 +842,7 @@ switch (orderDakaMingxiDto.WorkerType) { case (int)WorkerTypes.time: orderDakaMingxiDto.WorkerTypeName = "璁℃椂"; break; - case (int)WorkerTypes.count: orderDakaMingxiDto.WorkerTypeName = "璁′环"; break; + case (int)WorkerTypes.count: orderDakaMingxiDto.WorkerTypeName = "璁′欢"; break; default: break; } @@ -708,7 +862,12 @@ } } - + //褰撳墠鏈夋晥鐨勫伐浠� + var orderBiddingWorkPrice = (await orderBiddingWorkPriceRepository.GetListAsync(x => x.OrderBiddingId == orderBidding.Id && x.IsEn == true && x.IsDeleted == false && x.EffectTime <= orderDakaMingxiDto.WorkDate)).OrderByDescending(x => x.Id).FirstOrDefault(); + if (orderBiddingWorkPrice != null) + { + orderDakaMingxiDto.WorkPrice = orderBiddingWorkPrice.WorkPrice; + } orderDakaMingxiDto.WorkTime = hours + (minutes / 60); if (orderDakaMingxiDto.WorkerType == 0) { @@ -764,7 +923,7 @@ var order = await orderRes.GetByIdAsync(orderBidding.OrderId); - if (order == null || order.OrderStatus > 1 || order.IsDeleted == true || order.IsEn == false ) + if (order == null || order.OrderStatus > 1 || order.IsDeleted == true)// || order.IsEn == false { throw Oops.Oh("璇ユ嫑宸ョ姸鎬佸凡鏃犳硶鎵撳崱纭锛�"); } @@ -773,8 +932,16 @@ orderBiddingDetail.WorkTime = dakaDto.WorkTime; orderBiddingDetail.WorkCount = dakaDto.WorkCount; - orderBiddingDetail.TodaySalary = dakaDto.TodaySalary; - orderBiddingDetail.IsShenPi = 1; + if(order.WorkerType == (int)WorkerTypes.count) + { + orderBiddingDetail.TodaySalary = dakaDto.WorkCount * order.WorkPrice; + } + else + { + orderBiddingDetail.TodaySalary = dakaDto.TodaySalary; + } + + orderBiddingDetail.IsShenPi = (int)IsShenPis.tijiao; orderBiddingDetail.UpDataBy = NickName; orderBiddingDetail.UpDataTime = DateTime.Now; //orderBiddingDetail.CreateBy = NickName; -- Gitblit v1.9.1