username@email.com
2026-04-07 327a841a996e9e727d854baa449b5253035c4cf4
增加灵活用工
4个文件已修改
164 ■■■■■ 已修改文件
cylsg/cylsg.Application/Orders/Dtos/OrderDto.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/cylsg.Application/Orders/OrderCompanyAppService.cs 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/cylsg.Model/OrderModel/OrderBidding.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cylsg/cylsg.Application/Orders/Dtos/OrderDto.cs
@@ -359,6 +359,12 @@
        /// <summary>
        /// 是否半固定
        /// </summary>
        public bool? IsGuding { get; set; }
        /// <summary>
        /// 历史工价
        /// </summary>
        public List<OrderBiddingWorkPrice> orderBiddingWorkPrices { get; set; }
@@ -390,7 +396,11 @@
        /// </summary>
        public int OrderBiddingId { get; set; }
        /// <summary>
        /// 是否固定
        /// </summary>
        public bool? IsGuding { get; set; }
@@ -410,6 +420,23 @@
        /// 是否收藏
        /// </summary>
        public bool IsCollect { get; set; }
    }
    public class BangudingDto
    {
        /// <summary>
        /// 招工明细OrderBiddingId
        /// </summary>
        public int OrderBiddingId { get; set; }
        /// <summary>
        /// 是否固定
        /// </summary>
        public bool IsGuding { get; set; }
    }
@@ -668,7 +695,13 @@
        /// 招工公司名称
        /// </summary>
        public string Suppliername { get; set; }
        /// <summary>
        /// 是否灵活用工
        /// </summary>
        public bool? IsGuding { get; set; }
    }
cylsg/cylsg.Application/Orders/OrderCompanyAppService.cs
@@ -307,7 +307,8 @@
            orderBidding.Selectedtime = DateTime.Now;
            orderBidding.UpDataBy = NickName;
            orderBidding.UpDataTime = DateTime.Now;
            //是否是半固定临时工
            orderBidding.IsGuding = queRenDto.IsGuding;
            res = await orderBiddingRes.UpdateAsync(orderBidding);
@@ -330,6 +331,51 @@
            orderBiddingWorkPrice.CreateBy = NickName;
            orderBiddingWorkPrice.CreateTime = DateTime.Now;
            res = await orderBiddingWorkPriceRes.InsertAsync(orderBiddingWorkPrice);
            return res;
        }
        /// <summary>
        /// 设置员工是半固定临时工是否是
        /// </summary>
        /// <returns></returns>
        [Authorize]
        [HttpPost]
        public async Task<bool> GudingGongren(BangudingDto bangudingDto)
        {
            var UserID = App.User?.FindFirstValue("UserID");
            int userid = 0;
            string NickName = App.User?.FindFirstValue("NickName");
            if (!string.IsNullOrEmpty(UserID))
            {
                userid = int.Parse(UserID);
            }
            var orderBiddingRes = new BaseRepository<OrderBidding>();
            var orderBidding = await orderBiddingRes.GetByIdAsync(bangudingDto.OrderBiddingId);
            if (orderBidding == null || orderBidding.IsEn != true || orderBidding.IsDeleted == true)
            {
                throw Oops.Oh("该投递已经无效!");
            }
            bool res;
            orderBidding.IsGuding = bangudingDto.IsGuding;
            orderBidding.UpDataBy = NickName;
            orderBidding.UpDataTime = DateTime.Now;
            res = await orderBiddingRes.UpdateAsync(orderBidding);
            return res;
        }
@@ -651,6 +697,8 @@
            var orderBiddingWorkPriceRepository = new BaseRepository<OrderBiddingWorkPrice>();
            var orderBiddingDetailCheckRepository = new BaseRepository<OrderBiddingDetailCheck>();
            var userWorkerRes = new BaseRepository<UserWorker>();
            var orderBiddingRes = new BaseRepository<OrderBidding>();
            var data = await orderRepository.Context.Queryable<Order, OrderBidding, OrderBiddingDetail, UserWorker>((a, b, c, d) =>
                 new JoinQueryInfos(JoinType.Inner, a.Id == b.OrderId,
                 JoinType.Inner, b.Id == c.OrderBiddingId,
@@ -681,6 +729,7 @@
                          WorkerUserId = b.WorkerUserId,
                          WorkerUserName = d.name,
                          OrderBiddingId = c.OrderBiddingId,
                          IsGuding = b.IsGuding,
                      })
                      
                    .ToPageListAsync(page.PageIndex, page.PageSize, total);
@@ -709,6 +758,10 @@
                {
                    int hours = 0;
                    int minutes = 0;
                    int jiabanhours = 0;
                    int jiabanminutes = 0;
                    var orderBiddingDetailChecks = await orderBiddingDetailCheckRepository.GetListAsync(x => x.OrderBiddingDetailId == dakaDto.OrderBiddingDetailId && x.IsEn == true && x.IsDeleted == false);
                    string DakaMingxi = "";
                    for (int i = 0; i < orderBiddingDetailChecks.Count; i++)
@@ -728,14 +781,37 @@
                            hours += timeDifference.Hours;
                            minutes += timeDifference.Minutes;
                            // 获取当前时间
                            DateTime now = DateTime.Now;
                            // 创建一个表示晚上8点的时间(假定今天)
                            DateTime eveningTime = new DateTime(now.Year, now.Month, now.Day, 20, 0, 0); // 20:00:0
                            //计算是否为晚上8点后的加班时间
                            if (orderBiddingDetailChecks[i].Checktime.Value > eveningTime )
                            {
                                var timeDifferencejiaban = orderBiddingDetailChecks[i].Checktime.Value - eveningTime;
                                jiabanhours += timeDifferencejiaban.Hours;
                                jiabanminutes += timeDifferencejiaban.Minutes;
                            }
                        }
                    }
                    var orderBidding = await orderBiddingRes.GetByIdAsync(dakaDto.OrderBiddingId);
                    //当前有效的工价
                    var orderBiddingWorkPrices = await orderBiddingWorkPriceRepository.GetListAsync(x => x.OrderBiddingId == dakaDto.OrderBiddingId && x.IsEn == true && x.IsDeleted == false && x.EffectTime <= dakaDto.WorkDate);
                    var orderBiddingWorkPrice = orderBiddingWorkPrices.OrderByDescending(x => x.Id).FirstOrDefault();
                    if (orderBiddingWorkPrice != null)
                    {
                        dakaDto.WorkPrice = orderBiddingWorkPrice.WorkPrice;
                        //如果为半固定的临时工,工价固定11块
                        if (orderBidding != null && orderBidding.IsGuding.HasValue && orderBidding.IsGuding.Value == true)
                        {
                            dakaDto.WorkPrice = 11;
                        }
                        else
                        {
                            dakaDto.WorkPrice = orderBiddingWorkPrice.WorkPrice;
                        }
                    }
                    //如果当天还没有填写申请,则计算工作时间和工资
                    if (dakaDto.IsShenPi == 0)
@@ -746,6 +822,13 @@
                        if (dakaDto.WorkerType == 0)
                        {
                            dakaDto.TodaySalary = dakaDto.WorkTime * dakaDto.WorkPrice;
                            //如果为半固定的临时工,加班每个小时增加4块钱
                            if (orderBidding != null && orderBidding.IsGuding.HasValue && orderBidding.IsGuding.Value == true)
                            {
                                var jiabanshijian = jiabanhours + (jiabanminutes / 60);
                                dakaDto.TodaySalary += (jiabanshijian * 4);
                            }
                        }
                        else
                        {
cylsg/cylsg.Application/Orders/OrderWorkerAppService.cs
@@ -636,9 +636,10 @@
            
            RefAsync<int> total = 0;
            var orderBiddingDetailCheckRepository = new BaseRepository<OrderBiddingDetailCheck>();
            var orderBiddingWorkPriceRepository = new BaseRepository<OrderBiddingWorkPrice>();
            var orderBiddingRes = new BaseRepository<OrderBidding>();
            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 ,
@@ -666,6 +667,7 @@
                          WorkCount = c.WorkCount,
                          Suppliername = d.Suppliername,
                          OrderBiddingId = c.OrderBiddingId,
                          IsGuding = b.IsGuding,
                      })
                     
                    .ToPageListAsync(page.PageIndex, page.PageSize, total);
@@ -696,6 +698,10 @@
                    string DakaMingxi = "";
                    int hours = 0;
                    int minutes = 0;
                    int jiabanhours = 0;
                    int jiabanminutes = 0;
                    for (int i = 0; i < orderBiddingDetailChecks.Count; i++)
                    {
                      
@@ -714,21 +720,49 @@
                            hours += timeDifference.Hours;
                            minutes += timeDifference.Minutes;
                            // 获取当前时间
                            DateTime now = DateTime.Now;
                            // 创建一个表示晚上8点的时间(假定今天)
                            DateTime eveningTime = new DateTime(now.Year, now.Month, now.Day, 20, 0, 0); // 20:00:0
                            //计算是否为晚上8点后的加班时间
                            if (orderBiddingDetailChecks[i].Checktime.Value > eveningTime)
                            {
                                var timeDifferencejiaban = orderBiddingDetailChecks[i].Checktime.Value - eveningTime;
                                jiabanhours += timeDifferencejiaban.Hours;
                                jiabanminutes += timeDifferencejiaban.Minutes;
                            }
                        }
                    }
                    //如果当天还没有填写申请,则计算工作时间和工资
                    if(dakaDto.IsShenPi == 0)
                    {
                        var orderBidding = await orderBiddingRes.GetByIdAsync(dakaDto.OrderBiddingId);
                        //当前有效的工价
                        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;
                            //如果为半固定的临时工,工价固定11块
                            if (orderBidding != null && orderBidding.IsGuding.HasValue && orderBidding.IsGuding.Value == true)
                            {
                                dakaDto.WorkPrice = 11;
                            }
                            else
                            {
                                dakaDto.WorkPrice = orderBiddingWorkPrice.WorkPrice;
                            }
                        }
                        dakaDto.WorkTime = hours+(minutes/60);
                        if(dakaDto.WorkerType == 0)
                        {
                            dakaDto.TodaySalary = dakaDto.WorkTime * dakaDto.WorkPrice;
                            //如果为半固定的临时工,加班每个小时增加4块钱
                            if (orderBidding != null && orderBidding.IsGuding.HasValue && orderBidding.IsGuding.Value == true)
                            {
                                var jiabanshijian = jiabanhours + (jiabanminutes / 60);
                                dakaDto.TodaySalary += (jiabanshijian * 4);
                            }
                        }
                        else
                        {
cylsg/cylsg.Model/OrderModel/OrderBidding.cs
@@ -69,7 +69,7 @@
        /// <summary>
        /// 是否固定
        /// 是否固定  晚上8点之后15块    早八点到晚八点11块
        /// </summary>
        [SugarColumn(ColumnDescription = "是否固定", IsNullable = true)]
        public bool? IsGuding { get; set; }