| | |
| | | using System.Security.Claims; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using static SKIT.FlurlHttpClient.Wechat.Api.Models.CgibinAccountGetAccountBasicInfoResponse.Types; |
| | | |
| | | namespace cylsg.Application.Orders |
| | | { |
| | |
| | | |
| | | PageResult<OrderDto> result = new PageResult<OrderDto>(); |
| | | var orderRepository = new BaseRepository<Order>(); |
| | | var userCompanyRes = new BaseRepository<UserCompany>(); |
| | | |
| | | //查询公司的所有员工的所有招工订单 |
| | | var userCompany = await userCompanyRes.GetFirstAsync(x => x.UserId == userid && x.IsEn == true && x.IsDeleted == false); |
| | | if (userCompany == null) |
| | | { |
| | | throw Oops.Oh("你没有公司!"); |
| | | } |
| | | var userCompanies = await userCompanyRes.GetListAsync(x => x.Suppliercode == userCompany.Suppliercode && x.IsEn == true && x.IsDeleted == false); |
| | | var userids = userCompanies.Select(x => x.UserId).ToList(); |
| | | |
| | | Expression<Func<Order, bool>> expression = t => true; |
| | | |
| | | expression = expression.And(t => t.IsDeleted == false && t.IsEn == true |
| | | && t.OrderUserId == userid); |
| | | expression = expression.And(t => t.IsDeleted == false /*&& t.IsEn == true*/ |
| | | && userids.Contains(t.OrderUserId)); //t.OrderUserId == userid |
| | | |
| | | if (!string.IsNullOrEmpty(page.OrderName)) |
| | | { |
| | |
| | | { |
| | | expression = expression.And(t => t.WordStartTime <= page.WordEndTime); |
| | | } |
| | | if (page.IsEn.HasValue) |
| | | { |
| | | expression = expression.And(t => t.IsEn == page.IsEn); |
| | | } |
| | | |
| | | |
| | | RefAsync<int> total = 0; |
| | | |
| | |
| | | default: break; |
| | | } |
| | | |
| | | var orderBiddings = await orderBiddingRepository.CountAsync(x => x.OrderId == orderDto.Id && x.IsSelected == true && x.IsEn == true && x.IsDeleted == false); |
| | | orderDto.WorderCounted = orderBiddings; |
| | | var orderBidds = await orderBiddingRepository.GetListAsync(x => x.OrderId == orderDto.Id && x.IsEn == true && x.IsDeleted == false); |
| | | |
| | | //var orderBiddings = await orderBiddingRepository.CountAsync(x => x.OrderId == orderDto.Id && x.IsSelected == true && x.IsEn == true && x.IsDeleted == false); |
| | | orderDto.WorderCounted = orderBidds.Count(x=> x.IsSelected == true); |
| | | //var orderBiddingbaomings = await orderBiddingRepository.CountAsync(x => x.OrderId == orderDto.Id && x.IsEn == true && x.IsDeleted == false); |
| | | orderDto.BaoMingCount = orderBidds.Count; |
| | | // var orderBiddingbaomings = await orderBiddingRepository.CountAsync(x => x.OrderId == orderDto.Id && x.IsEn == true && x.IsDeleted == false); |
| | | orderDto.WorkerDaiCount = orderBidds.Count(x => x.IsSelected == null); |
| | | |
| | | } |
| | | |
| | |
| | | |
| | | var UserID = App.User?.FindFirstValue("UserID"); |
| | | int userid = 0; |
| | | string ITCode = App.User?.FindFirstValue("ITCode"); |
| | | string NickName = App.User?.FindFirstValue("NickName"); |
| | | if (!string.IsNullOrEmpty(UserID)) |
| | | { |
| | | userid = int.Parse(UserID); |
| | | } |
| | | |
| | | |
| | | if (!string.IsNullOrEmpty(orderDto.OrderName) && orderDto.OrderName.Length > 100) |
| | | { |
| | | throw Oops.Oh("招工名称长度过长!"); |
| | | } |
| | | if (!string.IsNullOrEmpty(orderDto.Demand) && orderDto.Demand.Length > 2000) |
| | | { |
| | | throw Oops.Oh("需求长度过长!"); |
| | | } |
| | | if (!string.IsNullOrEmpty(orderDto.WorderAddress) && orderDto.WorderAddress.Length > 500) |
| | | { |
| | | throw Oops.Oh("工作地点长度过长!"); |
| | | } |
| | | if (!string.IsNullOrEmpty(orderDto.ContactPhone) && orderDto.ContactPhone.Length > 30) |
| | | { |
| | | throw Oops.Oh("联系电话长度过长!"); |
| | | } |
| | | |
| | | var userCompanyRes = new BaseRepository<UserCompany>(); |
| | | var userCompany = await userCompanyRes.GetFirstAsync(p => p.UserId == userid && p.IsEn == true && p.IsDeleted == false); |
| | | if (userCompany == null || string.IsNullOrEmpty(userCompany.BusinessLicense)) |
| | |
| | | |
| | | var orderRes = new BaseRepository<Order>(); |
| | | bool res; |
| | | if (!orderDto.Zixinganpai.HasValue) |
| | | { |
| | | orderDto.Zixinganpai = false; |
| | | } |
| | | if (orderDto.Id > 0) |
| | | { |
| | | var order = await orderRes.GetByIdAsync(orderDto.Id); |
| | | if (order.OrderStatus > 0) |
| | | if (order.OrderStatus > 0 && order.IsEn == true) |
| | | { |
| | | throw Oops.Oh("招工已经结束不能修改!"); |
| | | } |
| | | var orderBiddingRes = new BaseRepository<OrderBidding>(); |
| | | var count = await orderBiddingRes.CountAsync(x=>x.OrderId == orderDto.Id && x.IsEn == true && x.IsDeleted == true && x.IsSelected == true); |
| | | if (count > 0 && order.IsEn == true) |
| | | { |
| | | throw Oops.Oh("已经确认招工人员,不能修改!"); |
| | | } |
| | | |
| | | |
| | | if (order.IsEn == false) |
| | | { |
| | | var orderBiddings = await orderBiddingRes.GetListAsync(x => x.OrderId == orderDto.Id); |
| | | foreach (var orderBidding in orderBiddings) |
| | | { |
| | | res = await orderBiddingRes.DeleteByIdAsync(orderBidding.Id); |
| | | } |
| | | } |
| | | |
| | | order.OrderName = orderDto.OrderName; |
| | | order.WordStartTime = orderDto.WordStartTime; |
| | | order.WordEndTime = orderDto.WordEndTime; |
| | | order.StartTime = orderDto.StartTime; |
| | | order.EndTime = orderDto.EndTime; |
| | | order.Demand = orderDto.Demand; |
| | | order.WorderCount = orderDto.WorderCount; |
| | | order.WorderAddress = orderDto.WorderAddress; |
| | | order.ContactPhone = orderDto.ContactPhone; |
| | | order.WorkerType = orderDto.WorkerType; |
| | | order.WorkPrice = orderDto.WorkPrice; |
| | | |
| | | |
| | | order.UpDataBy = ITCode; |
| | | order.WorkPriceMax = orderDto.WorkPriceMax; |
| | | order.Zixinganpai = orderDto.Zixinganpai; |
| | | order.OrderStatus = 0; |
| | | order.IsEn = true; |
| | | order.UpDataBy = NickName; |
| | | order.UpDataTime = DateTime.Now; |
| | | res = await orderRes.UpdateAsync(order); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | else |
| | | { |
| | | var order = _mapper.Map<Order>(orderDto); |
| | | order.UpDataBy = ITCode; |
| | | order.UpDataBy = NickName; |
| | | order.UpDataTime = DateTime.Now; |
| | | order.CreateBy = ITCode; |
| | | order.CreateBy = NickName; |
| | | order.CreateTime = DateTime.Now; |
| | | order.OrderStatus = 0; |
| | | order.OrderUserId = userid; |
| | | order.IsEn = true; |
| | | res = await orderRes.InsertAsync(order); |
| | | } |
| | | |
| | |
| | | |
| | | var UserID = App.User?.FindFirstValue("UserID"); |
| | | int userid = 0; |
| | | string ITCode = App.User?.FindFirstValue("ITCode"); |
| | | string NickName = App.User?.FindFirstValue("NickName"); |
| | | if (!string.IsNullOrEmpty(UserID)) |
| | | { |
| | | userid = int.Parse(UserID); |
| | |
| | | |
| | | var orderBiddingRes = new BaseRepository<OrderBidding>(); |
| | | var orderRes = new BaseRepository<Order>(); |
| | | var orderBiddingWorkPriceRes = new BaseRepository<OrderBiddingWorkPrice>(); |
| | | |
| | | var orderBidding = await orderBiddingRes.GetByIdAsync(queRenDto.OrderBiddingId); |
| | | if (orderBidding == null || orderBidding.IsEn != true || orderBidding.IsDeleted == true ) |
| | |
| | | |
| | | orderBidding.IsSelected = true; |
| | | orderBidding.Selectedtime = DateTime.Now; |
| | | orderBidding.UpDataBy = ITCode; |
| | | orderBidding.UpDataBy = NickName; |
| | | orderBidding.UpDataTime = DateTime.Now; |
| | | |
| | | |
| | |
| | | order.OrderStatus = 1; |
| | | res = await orderRes.UpdateAsync(order); |
| | | } |
| | | |
| | | |
| | | //add 存储工人的工价 |
| | | var orderBiddingWorkPrice = new OrderBiddingWorkPrice(); |
| | | orderBiddingWorkPrice.OrderBiddingId = queRenDto.OrderBiddingId; |
| | | orderBiddingWorkPrice.WorkPrice = order.WorkPrice; |
| | | orderBiddingWorkPrice.EffectTime = DateTime.Now.Date; |
| | | |
| | | |
| | | orderBiddingWorkPrice.UpDataBy = NickName; |
| | | orderBiddingWorkPrice.UpDataTime = DateTime.Now; |
| | | orderBiddingWorkPrice.CreateBy = NickName; |
| | | orderBiddingWorkPrice.CreateTime = DateTime.Now; |
| | | res = await orderBiddingWorkPriceRes.InsertAsync(orderBiddingWorkPrice); |
| | | |
| | | return res; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 公司修改工人工价 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [Authorize] |
| | | [HttpPost] |
| | | public async Task<bool> saveWorkPrice(WorkPriceDto workPriceDto) |
| | | { |
| | | |
| | | 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 orderRes = new BaseRepository<Order>(); |
| | | var orderBiddingWorkPriceRes = new BaseRepository<OrderBiddingWorkPrice>(); |
| | | |
| | | var orderBidding = await orderBiddingRes.GetByIdAsync(workPriceDto.OrderBiddingId); |
| | | if (orderBidding == null || orderBidding.IsEn != true || orderBidding.IsDeleted == true) |
| | | { |
| | | throw Oops.Oh("该投递已经无效!"); |
| | | } |
| | | if (orderBidding.IsSelected != true) |
| | | { |
| | | throw Oops.Oh("该投递没有确认,不能修改工价!"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | bool res; |
| | | |
| | | |
| | | |
| | | //add 存储工人的工价 |
| | | var orderBiddingWorkPrice = new OrderBiddingWorkPrice(); |
| | | orderBiddingWorkPrice.OrderBiddingId = workPriceDto.OrderBiddingId; |
| | | orderBiddingWorkPrice.WorkPrice = workPriceDto.WorkPrice; |
| | | orderBiddingWorkPrice.EffectTime = DateTime.Now.Date.AddDays(1); |
| | | |
| | | |
| | | orderBiddingWorkPrice.UpDataBy = NickName; |
| | | orderBiddingWorkPrice.UpDataTime = DateTime.Now; |
| | | orderBiddingWorkPrice.CreateBy = NickName; |
| | | orderBiddingWorkPrice.CreateTime = DateTime.Now; |
| | | res = await orderBiddingWorkPriceRes.InsertAsync(orderBiddingWorkPrice); |
| | | |
| | | return res; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 公司不录用一个工人 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [Authorize] |
| | | [HttpPost] |
| | | public async Task<bool> saveBuLuYong(QueRenDto queRenDto) |
| | | { |
| | | |
| | | 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 orderRes = new BaseRepository<Order>(); |
| | | |
| | | var orderBidding = await orderBiddingRes.GetByIdAsync(queRenDto.OrderBiddingId); |
| | | if (orderBidding == null || orderBidding.IsEn != true || orderBidding.IsDeleted == true) |
| | | { |
| | | throw Oops.Oh("该投递已经无效!"); |
| | | } |
| | | if (orderBidding.IsSelected == true) |
| | | { |
| | | throw Oops.Oh("该投递已经审核,不能不录用!"); |
| | | } |
| | | |
| | | var order = await orderRes.GetByIdAsync(orderBidding.OrderId); |
| | | if (order == null || order.OrderStatus > 0) |
| | | { |
| | | throw Oops.Oh("该招工状态已经无法投递!"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | bool res; |
| | | |
| | | orderBidding.IsSelected = false; |
| | | //orderBidding.Selectedtime = DateTime.Now; |
| | | orderBidding.UpDataBy = NickName; |
| | | orderBidding.UpDataTime = DateTime.Now; |
| | | |
| | | |
| | | res = await orderBiddingRes.UpdateAsync(orderBidding); |
| | | |
| | | |
| | | |
| | | return res; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 公司取消选择工人 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [Authorize] |
| | | [HttpPost] |
| | | public async Task<bool> saveQuXiao(QueRenDto queRenDto) |
| | | { |
| | | |
| | | 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 orderRes = new BaseRepository<Order>(); |
| | | var orderBiddingDetailRes = new BaseRepository<OrderBiddingDetail>(); |
| | | |
| | | var orderBidding = await orderBiddingRes.GetByIdAsync(queRenDto.OrderBiddingId); |
| | | if (orderBidding == null || orderBidding.IsEn != true || orderBidding.IsDeleted == true) |
| | | { |
| | | throw Oops.Oh("该投递已经无效!"); |
| | | } |
| | | if (orderBidding.IsSelected != true) |
| | | { |
| | | throw Oops.Oh("该投递没有确认,不能取消!"); |
| | | } |
| | | |
| | | var count = await orderBiddingDetailRes.CountAsync(x => x.OrderBiddingId == orderBidding.Id && x.IsEn == true && x.IsDeleted == false); |
| | | if (count>0) |
| | | { |
| | | throw Oops.Oh("该工人已有打卡信息,不能取消招工!"); |
| | | } |
| | | |
| | | var order = await orderRes.GetByIdAsync(orderBidding.OrderId); |
| | | |
| | | |
| | | |
| | | bool res; |
| | | |
| | | orderBidding.IsSelected = null; |
| | | orderBidding.Selectedtime = null; |
| | | orderBidding.UpDataBy = NickName; |
| | | orderBidding.UpDataTime = DateTime.Now; |
| | | |
| | | |
| | | res = await orderBiddingRes.UpdateAsync(orderBidding); |
| | | if (!res) |
| | | { |
| | | throw Oops.Oh("取消工人招工失败!"); |
| | | } |
| | | order.OrderStatus = 0; |
| | | res = await orderRes.UpdateAsync(order); |
| | | |
| | | return res; |
| | | } |
| | |
| | | |
| | | PageResult<OrderDakaDto> result = new PageResult<OrderDakaDto>(); |
| | | var orderRepository = new BaseRepository<Order>(); |
| | | var userCompanyRes = new BaseRepository<UserCompany>(); |
| | | //查询公司的所有员工的所有招工订单 |
| | | var userCompany = await userCompanyRes.GetFirstAsync(x => x.UserId == userid && x.IsEn == true && x.IsDeleted == false); |
| | | if (userCompany == null) |
| | | { |
| | | throw Oops.Oh("你没有公司!"); |
| | | } |
| | | var userCompanies = await userCompanyRes.GetListAsync(x => x.Suppliercode == userCompany.Suppliercode && x.IsEn == true && x.IsDeleted == false); |
| | | var userids = userCompanies.Select(x => x.UserId).ToList(); |
| | | |
| | | RefAsync<int> total = 0; |
| | | |
| | | |
| | | var orderBiddingWorkPriceRepository = new BaseRepository<OrderBiddingWorkPrice>(); |
| | | var orderBiddingDetailCheckRepository = new BaseRepository<OrderBiddingDetailCheck>(); |
| | | |
| | | var data = await orderRepository.Context.Queryable<Order, OrderBidding, OrderBiddingDetail>((a, b, c) => |
| | | var userWorkerRes = new BaseRepository<UserWorker>(); |
| | | 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 |
| | | JoinType.Inner, b.Id == c.OrderBiddingId, |
| | | JoinType.Inner, b.WorkerUserId == 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 && a.OrderUserId == 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)) |
| | | .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 && userids.Contains(a.OrderUserId)) //a.OrderUserId == userid |
| | | .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.WorkerUserName), (a, b, c, d) => (d.name.Contains(page.WorkerUserName))) |
| | | .WhereIF(page.WorkerUserId >0 , (a, b, c, d) => (b.WorkerUserId == page.WorkerUserId)) |
| | | .OrderByDescending((a,b,c) => c.WorkDate) |
| | | .Select((a, b, c) => new OrderDakaDto |
| | | .Select((a, b, c, d) => new OrderDakaDto |
| | | { |
| | | OrderBiddingDetailId = c.Id, |
| | | OrderName = a.OrderName, |
| | |
| | | TodaySalary = c.TodaySalary, |
| | | IsShenPi = c.IsShenPi, |
| | | WorkCount = c.WorkCount, |
| | | WorkerUserId = b.WorkerUserId, |
| | | WorkerUserName = d.name, |
| | | OrderBiddingId = c.OrderBiddingId, |
| | | }) |
| | | |
| | | .ToPageListAsync(page.PageIndex, page.PageSize, total); |
| | | |
| | | |
| | | |
| | | var heji = 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, |
| | | JoinType.Inner, b.WorkerUserId == 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 && userids.Contains(a.OrderUserId)) //a.OrderUserId == userid |
| | | .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.WorkerUserName), (a, b, c, d) => (d.name.Contains(page.WorkerUserName))) |
| | | .WhereIF(page.WorkerUserId > 0, (a, b, c, d) => (b.WorkerUserId == page.WorkerUserId)) |
| | | .Sum((a, b, c, d) => c.TodaySalary); |
| | | |
| | | if (data != null && data.Count > 0) |
| | | { |
| | |
| | | //如果当天还没有填写申请,则计算工作时间和工资 |
| | | if (dakaDto.IsShenPi == 0) |
| | | { |
| | | //当前有效的工价 |
| | | 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; |
| | | } |
| | | |
| | | dakaDto.WorkTime = hours + (minutes / 60); |
| | | if (dakaDto.WorkerType == 0) |
| | | { |
| | |
| | | |
| | | switch (dakaDto.IsShenPi) |
| | | { |
| | | case (int)IsShenPis.baocun: dakaDto.IsShenPiName = "未结算"; break; |
| | | case (int)IsShenPis.tijiao: dakaDto.IsShenPiName = "未结算"; break; |
| | | case (int)IsShenPis.yishenpi: dakaDto.IsShenPiName = "已结算"; break; |
| | | case (int)IsShenPis.baocun: dakaDto.IsShenPiName = "未审核"; break; |
| | | case (int)IsShenPis.tijiao: dakaDto.IsShenPiName = "未审核"; break; |
| | | case (int)IsShenPis.yishenpi: dakaDto.IsShenPiName = "已审核"; break; |
| | | default: break; |
| | | } |
| | | |
| | | 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; |
| | | } |
| | | |
| | |
| | | |
| | | dakaDto.DakaMingxi = DakaMingxi; |
| | | |
| | | |
| | | //var userWorker = await userWorkerRes.GetFirstAsync(x => x.UserId == dakaDto.WorkerUserId && x.IsEn == true && x.IsDeleted == false ); |
| | | //if (userWorker != null) |
| | | //{ |
| | | // dakaDto.WorkerUserName = userWorker.name; |
| | | //} |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | result.PageIndex = page.PageIndex; |
| | | result.PageSize = page.PageSize; |
| | | result.TotalCount = total; |
| | | |
| | | result.Heji = heji ?? 0; |
| | | return result; |
| | | } |
| | | |
| | |
| | | |
| | | var UserID = App.User?.FindFirstValue("UserID"); |
| | | int userid = 0; |
| | | string ITCode = App.User?.FindFirstValue("ITCode"); |
| | | string NickName = App.User?.FindFirstValue("NickName"); |
| | | if (!string.IsNullOrEmpty(UserID)) |
| | | { |
| | | userid = int.Parse(UserID); |
| | |
| | | //{ |
| | | // throw Oops.Oh("该招工状态已无法打卡确认!"); |
| | | //} |
| | | if (orderBiddingDetail.IsShenPi.HasValue && orderBiddingDetail.IsShenPi == (int)IsShenPis.yishenpi && orderBiddingDetail.ShenPitime.HasValue && orderBiddingDetail.ShenPitime <= DateTime.Now.AddMinutes(-5)) |
| | | { |
| | | throw Oops.Oh("审批时间已经超过5分钟,无法重新审批!"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | var res = false; |
| | | try |
| | | { |
| | |
| | | orderBiddingDetail.TodaySalary = dakaDto.TodaySalary; |
| | | orderBiddingDetail.IsShenPi = (int)IsShenPis.yishenpi; |
| | | orderBiddingDetail.ShenPitime = DateTime.Now; |
| | | orderBiddingDetail.UpDataBy = ITCode; |
| | | orderBiddingDetail.UpDataBy = NickName; |
| | | orderBiddingDetail.UpDataTime = DateTime.Now; |
| | | orderBiddingDetail.IsTiXian = true; |
| | | orderBiddingDetail.TiXiantime = DateTime.Now; |
| | | //orderBiddingDetail.CreateBy = ITCode; |
| | | //orderBiddingDetail.CreateBy = NickName; |
| | | //orderBiddingDetail.CreateTime = DateTime.Now; |
| | | res = await orderBiddingDetailRes.UpdateAsync(orderBiddingDetail); |
| | | if (!res) |
| | |
| | | } |
| | | |
| | | var userCompany = await userCompanyRes.GetFirstAsync(x => x.UserId == order.OrderUserId); |
| | | if(userCompany!=null && userCompany.IsTiXian == true) |
| | | |
| | | if (userCompany!=null ) |
| | | { |
| | | //插入用户的结算金额 |
| | | UserTiXianDetail userTiXianDetail = new UserTiXianDetail(); |
| | | userTiXianDetail.UserId = orderBidding.WorkerUserId; |
| | | userTiXianDetail.YiTiXianJine = TodaySalary; |
| | | userTiXianDetail.ZhiChuShouRu = (int)ZhiChuShouRus.shouru; |
| | | userTiXianDetail.Remark = "招工订单" + order.OrderName + orderBiddingDetail.WorkDate.Value.ToString("yyyy-MM-dd") + "工资结算"; |
| | | userTiXianDetail.UpDataBy = ITCode; |
| | | userTiXianDetail.UpDataTime = DateTime.Now; |
| | | userTiXianDetail.CreateBy = ITCode; |
| | | userTiXianDetail.CreateTime = DateTime.Now; |
| | | |
| | | res = await userTiXianDetailRes.InsertAsync(userTiXianDetail); |
| | | if (!res) |
| | | var userCompanies = await userCompanyRes.CountAsync(x => x.Suppliercode == userCompany.Suppliercode && x.IsEn == true && x.IsDeleted == false && x.IsTiXian == true); |
| | | if (userCompanies > 0) |
| | | { |
| | | orderRes.Context.Ado.RollbackTran(); |
| | | throw Oops.Oh("结算失败!"); |
| | | } |
| | | var userWorker = await userWorkerRes.GetFirstAsync(x => x.UserId == orderBidding.WorkerUserId); |
| | | if (userWorker != null) |
| | | { |
| | | var TiXianZonge = userWorker.TiXianZonge ?? 0; |
| | | //插入用户的结算金额 |
| | | UserTiXianDetail userTiXianDetail = new UserTiXianDetail(); |
| | | userTiXianDetail.UserId = orderBidding.WorkerUserId; |
| | | userTiXianDetail.YiTiXianJine = TodaySalary; |
| | | userTiXianDetail.ZhiChuShouRu = (int)ZhiChuShouRus.shouru; |
| | | userTiXianDetail.Remark = userCompany.Suppliername + " " + orderBiddingDetail.WorkDate.Value.ToString("yyyy-MM-dd"); |
| | | userTiXianDetail.UpDataBy = NickName; |
| | | userTiXianDetail.UpDataTime = DateTime.Now; |
| | | userTiXianDetail.CreateBy = NickName; |
| | | userTiXianDetail.CreateTime = DateTime.Now; |
| | | |
| | | userWorker.TiXianZonge = TiXianZonge + TodaySalary; |
| | | res = await userWorkerRes.UpdateAsync(userWorker); |
| | | res = await userTiXianDetailRes.InsertAsync(userTiXianDetail); |
| | | if (!res) |
| | | { |
| | | orderRes.Context.Ado.RollbackTran(); |
| | | throw Oops.Oh("结算失败!"); |
| | | } |
| | | var userWorker = await userWorkerRes.GetFirstAsync(x => x.UserId == orderBidding.WorkerUserId); |
| | | if (userWorker != null) |
| | | { |
| | | var TiXianZonge = userWorker.TiXianZonge ?? 0; |
| | | |
| | | userWorker.TiXianZonge = TiXianZonge + TodaySalary; |
| | | res = await userWorkerRes.UpdateAsync(userWorker); |
| | | if (!res) |
| | | { |
| | | orderRes.Context.Ado.RollbackTran(); |
| | | throw Oops.Oh("结算失败!"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | return res; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 查询公司下所有员工 |
| | | /// </summary> |
| | | /// <param name="page"></param> |
| | | /// <returns></returns> |
| | | [Authorize] |
| | | [HttpPost] |
| | | public async Task<List<UserCompanyDto>> PostMystaffList() |
| | | { |
| | | var UserID = App.User?.FindFirstValue("UserID"); |
| | | int userid = 0; |
| | | if (!string.IsNullOrEmpty(UserID)) |
| | | { |
| | | userid = int.Parse(UserID); |
| | | } |
| | | |
| | | |
| | | var userCompanyRes = new BaseRepository<UserCompany>(); |
| | | var userRes = new BaseRepository<User>(); |
| | | |
| | | |
| | | var userCompany = await userCompanyRes.GetFirstAsync(x => x.UserId == userid && x.IsEn == true && x.IsDeleted == false); |
| | | if (userCompany == null) |
| | | { |
| | | throw Oops.Oh("你没有公司!"); |
| | | } |
| | | var userCompanies = await userCompanyRes.GetListAsync(x => x.Suppliercode == userCompany.Suppliercode && x.IsEn == true && x.IsDeleted == false); |
| | | |
| | | var datadtos = _mapper.Map<List<UserCompanyDto>>(userCompanies); |
| | | |
| | | foreach (var datadto in datadtos) |
| | | { |
| | | var user = await userRes.GetByIdAsync(datadto.UserId); |
| | | datadto.Nickname = user.Nickname; |
| | | } |
| | | |
| | | |
| | | return datadtos; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 保存公司下所有员工是否管理员 |
| | | /// </summary> |
| | | /// <param name="staffAdminDto"></param> |
| | | /// <returns></returns> |
| | | [Authorize] |
| | | [HttpPost] |
| | | public async Task<bool> SaveStaffAdmin(StaffAdminDto staffAdminDto) |
| | | { |
| | | |
| | | var UserID = App.User?.FindFirstValue("UserID"); |
| | | int userid = 0; |
| | | string NickName = App.User?.FindFirstValue("NickName"); |
| | | if (!string.IsNullOrEmpty(UserID)) |
| | | { |
| | | userid = int.Parse(UserID); |
| | | } |
| | | var userCompanyRes = new BaseRepository<UserCompany>(); |
| | | |
| | | |
| | | var res = false; |
| | | |
| | | var userCompany = await userCompanyRes.GetByIdAsync(staffAdminDto.ComId); |
| | | if(staffAdminDto.IsAdmin == false) |
| | | { |
| | | var userCompanies = await userCompanyRes.CountAsync(x => x.Suppliercode == userCompany.Suppliercode && x.Id != userCompany.Id && x.IsAdmin == true && x.IsEn == true && x.IsDeleted == false); |
| | | if (userCompanies <= 0) |
| | | { |
| | | throw Oops.Oh("一个公司必须至少一个管理员!"); |
| | | } |
| | | } |
| | | |
| | | if (userCompany != null) |
| | | { |
| | | userCompany.IsAdmin = staffAdminDto.IsAdmin; |
| | | userCompany.UpDataBy = NickName; |
| | | userCompany.UpDataTime = DateTime.Now; |
| | | res = await userCompanyRes.UpdateAsync(userCompany); |
| | | } |
| | | |
| | | |
| | | |
| | | return res; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 职位删除功能 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [Authorize] |
| | | [HttpPost] |
| | | public async Task<bool> deleteOrder(BaoMingDto baoMingDto) |
| | | { |
| | | |
| | | 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 orderRes = new BaseRepository<Order>(); |
| | | //var userWorkerRes = new BaseRepository<UserWorker>(); |
| | | |
| | | |
| | | var order = await orderRes.GetByIdAsync(baoMingDto.OrderId); |
| | | if (order.OrderStatus > 0) |
| | | { |
| | | throw Oops.Oh("已经招工完毕或者结算,无法下架"); |
| | | } |
| | | |
| | | bool res; |
| | | order.IsEn = false; |
| | | order.UpDataBy = NickName; |
| | | order.UpDataTime = DateTime.Now; |
| | | |
| | | res = await orderRes.UpdateAsync(order); |
| | | |
| | | return res; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 查询公司下工人的工资额度 |
| | | /// </summary> |
| | | /// <param name="page"></param> |
| | | /// <returns></returns> |
| | | [Authorize] |
| | | [HttpPost] |
| | | public async Task<PageResult<OrderDakaDto>> PostMyComGongZiListPage(OrderDakaPageSearch page) |
| | | { |
| | | var UserID = App.User?.FindFirstValue("UserID"); |
| | | int userid = 0; |
| | | if (!string.IsNullOrEmpty(UserID)) |
| | | { |
| | | userid = int.Parse(UserID); |
| | | } |
| | | |
| | | PageResult<OrderDakaDto> result = new PageResult<OrderDakaDto>(); |
| | | var orderRepository = new BaseRepository<Order>(); |
| | | var userCompanyRes = new BaseRepository<UserCompany>(); |
| | | //查询公司的所有员工的所有招工订单 |
| | | var userCompany = await userCompanyRes.GetFirstAsync(x => x.UserId == userid && x.IsEn == true && x.IsDeleted == false); |
| | | if (userCompany == null) |
| | | { |
| | | throw Oops.Oh("你没有公司!"); |
| | | } |
| | | var userCompanies = await userCompanyRes.GetListAsync(x => x.Suppliercode == userCompany.Suppliercode && x.IsEn == true && x.IsDeleted == false); |
| | | var userids = userCompanies.Select(x => x.UserId).ToList(); |
| | | |
| | | RefAsync<int> total = 0; |
| | | |
| | | |
| | | var orderBiddingDetailCheckRepository = new BaseRepository<OrderBiddingDetailCheck>(); |
| | | var userWorkerRes = new BaseRepository<UserWorker>(); |
| | | 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, |
| | | JoinType.Inner, b.WorkerUserId == 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 && c.IsShenPi == 2 && userids.Contains(a.OrderUserId)) //a.OrderUserId == userid |
| | | .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(!string.IsNullOrEmpty(page.WorkerUserName), (a, b, c, d) => (d.name.Contains(page.WorkerUserName))) |
| | | .GroupBy((a, b, c, d) => new { b.WorkerUserId, d.name }) |
| | | |
| | | .Select((a, b, c, d) => new OrderDakaDto |
| | | { |
| | | |
| | | TodaySalary = SqlFunc.AggregateSumNoNull(c.TodaySalary), |
| | | WorkerUserId = b.WorkerUserId, |
| | | WorkerUserName = d.name, |
| | | }) |
| | | |
| | | .ToPageListAsync(page.PageIndex, page.PageSize, total); |
| | | |
| | | |
| | | |
| | | |
| | | var heji = 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, |
| | | JoinType.Inner, b.WorkerUserId == 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 && c.IsShenPi == 2 && userids.Contains(a.OrderUserId)) //a.OrderUserId == userid |
| | | .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(!string.IsNullOrEmpty(page.WorkerUserName), (a, b, c, d) => (d.name.Contains(page.WorkerUserName))) |
| | | .Sum((a, b, c, d) => c.TodaySalary); |
| | | |
| | | result.Items = data; |
| | | result.PageIndex = page.PageIndex; |
| | | result.PageSize = page.PageSize; |
| | | result.TotalCount = total; |
| | | result.Heji = heji ?? 0; |
| | | return result; |
| | | } |
| | | } |
| | | } |