From 152f48ca3cae46bbffca3fa0af4bc9e8216fafff Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期五, 11 十月 2024 10:39:28 +0800 Subject: [PATCH] 两次打卡必须超过10分钟! --- cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs | 139 +++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 124 insertions(+), 15 deletions(-) diff --git a/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs b/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs index ab236aa..d246803 100644 --- a/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs +++ b/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs @@ -47,6 +47,13 @@ [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; @@ -89,6 +96,36 @@ { 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; + } + + } } @@ -170,13 +207,17 @@ 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); @@ -219,6 +260,7 @@ 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); orderDto = _mapper.Map<OrderDto>(order); @@ -229,38 +271,64 @@ 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)).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); @@ -273,6 +341,23 @@ { 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; + } + + } } @@ -314,7 +399,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("璇ユ嫑宸ョ姸鎬佸凡缁忔棤娉曟姇閫掞紒"); } @@ -344,7 +429,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; @@ -457,6 +542,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()) { @@ -538,7 +634,7 @@ var orderBiddingDetailCheckRepository = new BaseRepository<OrderBiddingDetailCheck>(); - + 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 , @@ -565,6 +661,7 @@ IsShenPi = c.IsShenPi, WorkCount = c.WorkCount, Suppliername = d.Suppliername, + OrderBiddingId = c.OrderBiddingId, }) .ToPageListAsync(page.PageIndex, page.PageSize, total); @@ -618,6 +715,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) { @@ -642,7 +745,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; } @@ -690,6 +793,7 @@ 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>(); @@ -733,7 +837,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; } @@ -753,7 +857,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) { -- Gitblit v1.9.1