| | |
| | | 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); |
| | | && userids.Contains(t.OrderUserId)); //t.OrderUserId == userid |
| | | |
| | | if (!string.IsNullOrEmpty(page.OrderName)) |
| | | { |
| | |
| | | { |
| | | 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) |
| | | { |
| | | throw Oops.Oh("已经确认招工人员,不能修改!"); |
| | | } |
| | | |
| | | order.OrderName = orderDto.OrderName; |
| | | order.WordStartTime = orderDto.WordStartTime; |
| | | order.WordEndTime = orderDto.WordEndTime; |
| | |
| | | |
| | | |
| | | |
| | | /// <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 = false; |
| | | 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; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 查询公司下工人的打卡记录 |
| | |
| | | |
| | | 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>((a, b, c) => |
| | | new JoinQueryInfos(JoinType.Inner, a.Id == b.OrderId, |
| | | JoinType.Inner, b.Id == c.OrderBiddingId |
| | | )) |
| | | .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) |
| | | && b.IsSelected == true && userids.Contains(a.OrderUserId)) //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)) |
| | |
| | | TodaySalary = c.TodaySalary, |
| | | IsShenPi = c.IsShenPi, |
| | | WorkCount = c.WorkCount, |
| | | WorkerUserId = b.WorkerUserId, |
| | | }) |
| | | |
| | | .ToPageListAsync(page.PageIndex, page.PageSize, total); |
| | |
| | | |
| | | |
| | | 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; |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | 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 = NickName; |
| | | userTiXianDetail.UpDataTime = DateTime.Now; |
| | | userTiXianDetail.CreateBy = NickName; |
| | | 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; |
| | | } |
| | | } |
| | | } |