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 |  104 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 100 insertions(+), 4 deletions(-)

diff --git a/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs b/cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs
index a9a3a13..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;
+                    }
+                  
+
                 }
 
             }
@@ -223,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);
@@ -233,13 +271,30 @@
                 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 && (x.IsSelected ==null || x.IsSelected !=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)
                 {
@@ -255,7 +310,7 @@
                 }
             }
 
-
+            orderBiddings = orderBiddings.Where(x => (x.IsSelected == null || x.IsSelected != false)).ToList();
             var orderBiddingDtos = _mapper.Map<List<OrderBiddingDto>>(orderBiddings);
             if(orderBiddingDtos != null&& orderBiddingDtos.Count > 0)
             {
@@ -286,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;
+                        }
+                    
+                   
 
                 }
             }
@@ -470,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())
             {
@@ -551,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 ,
@@ -578,6 +661,7 @@
                           IsShenPi = c.IsShenPi,
                           WorkCount = c.WorkCount,
                           Suppliername = d.Suppliername,
+                          OrderBiddingId = c.OrderBiddingId,
                       })
                      
                     .ToPageListAsync(page.PageIndex, page.PageSize, total);
@@ -631,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)
                         {
@@ -703,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>();
 
@@ -766,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