| | |
| | | private readonly IHttpClientFactory _clientFactory; |
| | | private readonly IAskService _askService; |
| | | private readonly IAdmEvaluateService _admEvaluateService; |
| | | private readonly IExpertService _expertService; |
| | | private readonly zhengcaioaContext _context; |
| | | private readonly zcUserInfoN_dbContext _zcUsercontext; |
| | | |
| | | private readonly decimal jiabangongzibiaozhun = new decimal(21.5); |
| | | public TimedBackgroundService(ILogger<TimedBackgroundService> logger, IServiceScopeFactory factory) |
| | |
| | | _clientFactory = factory.CreateScope().ServiceProvider.GetRequiredService<IHttpClientFactory>(); |
| | | _askService= factory.CreateScope().ServiceProvider.GetRequiredService<IAskService>(); |
| | | _admEvaluateService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmEvaluateService>(); |
| | | _expertService = factory.CreateScope().ServiceProvider.GetRequiredService<IExpertService>(); |
| | | _context = factory.CreateScope().ServiceProvider.GetRequiredService<zhengcaioaContext>(); |
| | | _zcUsercontext = factory.CreateScope().ServiceProvider.GetRequiredService<zcUserInfoN_dbContext>(); |
| | | } |
| | | protected override async Task ExecuteAsync(CancellationToken stoppingToken) |
| | | { |
| | |
| | | { |
| | | jisuangonglinggongzi(); |
| | | } |
| | | |
| | | |
| | | _logger.LogInformation("把超过90天还没有转化的档案客户的业务经理归为无"); |
| | | this.ywjlguiling(); |
| | | _logger.LogInformation("把超过90天还没有转化的档案客户的业务经理归为无执行结束"); |
| | | |
| | | _logger.LogInformation("把会员系统和oa系统手机号相同的客户关联起来"); |
| | | this.huiyuanguanlian(); |
| | | _logger.LogInformation("把会员系统和oa系统手机号相同的客户关联起来执行结束"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | return diwutian; |
| | | } |
| | | |
| | | |
| | | //把超过90天还没有转化的档案客户的业务经理归为无 |
| | | public void ywjlguiling() |
| | | { |
| | | var intentionCustomerDTOs = _intentionCustomerService.GetList().Where(x=>x.Ywjltime < DateTime.Now.AddDays(-90)).ToList(); |
| | | |
| | | foreach(var intentionCustomerDTO in intentionCustomerDTOs) |
| | | { |
| | | intentionCustomerDTO.Ywjl = null; |
| | | intentionCustomerDTO.Ywjltime = null; |
| | | _intentionCustomerService.save(intentionCustomerDTO); |
| | | } |
| | | } |
| | | |
| | | |
| | | //把会员系统和oa系统手机号相同的客户关联起来 |
| | | public void huiyuanguanlian() |
| | | { |
| | | var cooperatecustomCustomers = _context.CooperatecustomCustomers.Where(x => x.RecStatus == "A" && x.HuiyuanId == null).ToList(); |
| | | var frameworkUsers = _zcUsercontext.FrameworkUsers.Where(x => x.IsValid == true).ToList(); |
| | | if (cooperatecustomCustomers != null && cooperatecustomCustomers.Count > 0) |
| | | { |
| | | foreach (var cooperatecustomCustomer in cooperatecustomCustomers) |
| | | { |
| | | if (!string.IsNullOrEmpty(cooperatecustomCustomer.Tel)) |
| | | { |
| | | var frameworkUser = frameworkUsers.Where(x => x.Itcode == cooperatecustomCustomer.Tel).FirstOrDefault(); |
| | | if (frameworkUser != null) |
| | | { |
| | | cooperatecustomCustomer.HuiyuanId = frameworkUser.Id.ToString(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | _context.SaveChanges(); |
| | | } |
| | | |
| | | |
| | | |
| | | var intentionCustomers = _context.IntentionCustomers.Where(x => x.RecStatus == "A" && x.HuiyuanId == null).ToList(); |
| | | if (intentionCustomers != null && intentionCustomers.Count > 0) |
| | | { |
| | | foreach (var intentionCustomer in intentionCustomers) |
| | | { |
| | | if (!string.IsNullOrEmpty(intentionCustomer.Tel)) |
| | | { |
| | | var frameworkUser = frameworkUsers.Where(x => x.Itcode == intentionCustomer.Tel).FirstOrDefault(); |
| | | if (frameworkUser != null) |
| | | { |
| | | intentionCustomer.HuiyuanId = frameworkUser.Id.ToString(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | _context.SaveChanges(); |
| | | } |
| | | |
| | | } |
| | | |
| | | //计算考勤 |
| | | public void jisuankaoqin() |
| | | { |
| | |
| | | |
| | | ResultEntity resultEntity = new ResultEntity(); |
| | | resultEntity.Result = false; |
| | | |
| | | var Month = DateTime.Now.Month - 1; |
| | | var Year = DateTime.Now.Year; |
| | | if (Month == 0) |
| | | { |
| | | Month = 12; |
| | | Year = Year - 1; |
| | | } |
| | | //查询所有的有效人员 |
| | | List<PltUserDTO> userList = _userService.GetListjisuankaoqin(new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1), new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1).AddMonths(1));//.Where(x => x.UserSn == "yang").ToList(); |
| | | List<PltUserDTO> userList = _userService.GetListjisuankaoqin(new DateTime(Year, Month, 1), new DateTime(Year, Month, 1).AddMonths(1));//.Where(x => x.UserSn == "yang").ToList(); |
| | | for (int a = 0; a < userList.Count; a++) |
| | | { |
| | | _logger.LogInformation("开始计算" + userList[a].UserName + "考勤"); |
| | | //开始计算考勤 |
| | | DateTime dateminkaoqin = new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1); |
| | | DateTime dateminkaoqin = new DateTime(Year, Month, 1); |
| | | DateTime datemaxkaoqin = dateminkaoqin.AddMonths(1); |
| | | List<AdmAskLeaveDTO> admAskLeaveDTOs = _signinService.GetAskLeaveByUserId(userList[a].Id); |
| | | List<AdmAskLeaveOffDTO> admAskLeaveOffDTOs = _signinService.GetAskLeaveOffByUserId(userList[a].Id); |
| | |
| | | admAttendanceDTO.Qingjia = 0; |
| | | admAttendanceDTO.Jiaban = 0; |
| | | admAttendanceDTO.Xiaojia = 0; |
| | | admAttendanceDTO.Daixinjia = 0; |
| | | admAttendanceDTO.Chidao = 0; |
| | | admAttendanceDTO.Zaotui = 0; |
| | | admAttendanceDTO.Kuanggong = 0; |
| | |
| | | decimal Zaotui = 0; |
| | | decimal Kuanggong = 0; |
| | | decimal Xiaojia = 0; |
| | | decimal Daixinjia = 0; |
| | | |
| | | while (dateminkaoqin < datemaxkaoqin) |
| | | { |
| | |
| | | admSignInDTO = new AdmSignInDTO(); |
| | | } |
| | | //查询请假 请假时间不能重叠 |
| | | List<AdmAskLeaveDTO> admAskLeaveDTOMin = admAskLeaveDTOs.Where(x =>x.Lavetype != "2" && x.StratTime < dateminkaoqin.AddDays(1) && x.EndTime > dateminkaoqin).OrderByDescending(x=>x.Createtime).ToList(); |
| | | List<AdmAskLeaveDTO> admAskLeaveDTOMin = admAskLeaveDTOs.Where(x => x.Lavetype != "2" && x.StratTime < dateminkaoqin.AddDays(1) && x.EndTime > dateminkaoqin).OrderByDescending(x=>x.Createtime).ToList(); |
| | | //查询销假 销假时间不能重叠 |
| | | List<AdmAskLeaveOffDTO> admAskLeaveOffDTOMin = admAskLeaveOffDTOs.Where(x => x.StratTime < dateminkaoqin.AddDays(1) && x.EndTime > dateminkaoqin).OrderByDescending(x => x.Createtime).ToList(); |
| | | |
| | |
| | | decimal Kuanggongtianshu = 0; |
| | | decimal dangtianqingjia = 0; |
| | | decimal dangtianxiaojia = 0; |
| | | decimal dangtiandaixinjia = 0; |
| | | |
| | | string Iswork = "D"; |
| | | if (iswork) |
| | | { |
| | |
| | | } |
| | | else |
| | | { |
| | | if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime) |
| | | { |
| | | kuanggong = true; |
| | | break; |
| | | } |
| | | else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime) |
| | | //if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime) |
| | | //{ |
| | | // //kuanggong = true; |
| | | // break; |
| | | //} |
| | | //else |
| | | if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime) |
| | | { |
| | | endttime = dateBiJiaoDTOs[i].EndTime; |
| | | } |
| | | } |
| | | if (endttime >= StratTimeWorkingEnd) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | if (kuanggong) |
| | |
| | | } |
| | | else |
| | | { |
| | | if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime) |
| | | { |
| | | kuanggong = true; |
| | | break; |
| | | } |
| | | else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime) |
| | | //if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime) |
| | | //{ |
| | | // //kuanggong = true; |
| | | // break; |
| | | //} |
| | | //else |
| | | if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime) |
| | | { |
| | | endttime = dateBiJiaoDTOs[i].EndTime; |
| | | } |
| | | } |
| | | if (endttime >= StratTimeOffworkEnd) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | if (kuanggong) |
| | |
| | | //计算当天请假 |
| | | List<DateBiJiaoDTO> qingjias = new List<DateBiJiaoDTO>(); |
| | | |
| | | var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4").ToList(); |
| | | var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4" && x.Lavetype != "7" && x.Lavetype != "3" && x.Lavetype != "9").ToList(); |
| | | foreach (var admAskLeave in feichuqinjia) |
| | | { |
| | | |
| | |
| | | } |
| | | |
| | | Qingjia += dangtianqingjia; |
| | | |
| | | |
| | | |
| | | //计算当天带薪假 |
| | | List<DateBiJiaoDTO> daixinjias = new List<DateBiJiaoDTO>(); |
| | | |
| | | var chauxndaixinjias = admAskLeaveDTOMin.Where(x => x.Lavetype == "4" || x.Lavetype == "7" || x.Lavetype == "3" || x.Lavetype == "9").ToList(); |
| | | foreach (var admAskLeave in chauxndaixinjias) |
| | | { |
| | | |
| | | DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); |
| | | dateBiJiaoDTO.StartTime = admAskLeave.StratTime; |
| | | dateBiJiaoDTO.EndTime = admAskLeave.EndTime; |
| | | daixinjias.Add(dateBiJiaoDTO); |
| | | |
| | | } |
| | | |
| | | foreach (var daixinjia in daixinjias) |
| | | { |
| | | if (daixinjia.StartTime < StratTimeWorkingStart) |
| | | { |
| | | daixinjia.StartTime = StratTimeWorkingStart; |
| | | } |
| | | if (daixinjia.StartTime > StratTimeWorkingEnd && daixinjia.StartTime < StratTimeOffworkStart) |
| | | { |
| | | daixinjia.StartTime = StratTimeOffworkStart; |
| | | } |
| | | |
| | | |
| | | if (daixinjia.EndTime > StratTimeWorkingEnd && daixinjia.EndTime < StratTimeOffworkStart) |
| | | { |
| | | daixinjia.EndTime = StratTimeWorkingEnd; |
| | | } |
| | | |
| | | |
| | | if (daixinjia.EndTime > StratTimeOffworkEnd) |
| | | { |
| | | daixinjia.EndTime = StratTimeOffworkEnd; |
| | | } |
| | | TimeSpan daixinjiashiijan = daixinjia.EndTime.Value.Subtract(daixinjia.StartTime.Value); |
| | | if (daixinjia.StartTime <= StratTimeWorkingEnd && daixinjia.EndTime >= StratTimeOffworkStart) |
| | | { |
| | | TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd); |
| | | dangtiandaixinjia += Math.Round(((decimal)(daixinjiashiijan.Hours * 60 + daixinjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2); |
| | | } |
| | | else |
| | | { |
| | | dangtiandaixinjia += Math.Round(((decimal)(daixinjiashiijan.Hours * 60 + daixinjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | Daixinjia += dangtiandaixinjia; |
| | | |
| | | |
| | | //计算当天出勤天数 |
| | | Shijichuqin += (1 - Kuanggongtianshu - dangtianqingjia); |
| | | |
| | |
| | | { |
| | | jiabanshijian = admAskovertimeDTO.Overtime.Value; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | if (jiabanshijian > new decimal(shangbanshijian) / 60) |
| | | { |
| | | jiabanshijian = new decimal(shangbanshijian) /60; |
| | | } |
| | | Jiaban += Math.Round(jiabanshijian * 60 / shangbanshijian, 2); |
| | | } |
| | | |
| | |
| | | } |
| | | else |
| | | { |
| | | if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime) |
| | | { |
| | | kuanggong = true; |
| | | break; |
| | | } |
| | | else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime) |
| | | //if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime) |
| | | //{ |
| | | // //kuanggong = true; |
| | | // break; |
| | | //} |
| | | //else |
| | | if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime) |
| | | { |
| | | endttime = dateBiJiaoDTOs[i].EndTime; |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime) |
| | | { |
| | | kuanggong = true; |
| | | break; |
| | | } |
| | | else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime) |
| | | //if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime) |
| | | //{ |
| | | // //kuanggong = true; |
| | | // break; |
| | | //} |
| | | //else |
| | | if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime) |
| | | { |
| | | endttime = dateBiJiaoDTOs[i].EndTime; |
| | | } |
| | |
| | | //计算当天请假 |
| | | List<DateBiJiaoDTO> qingjias = new List<DateBiJiaoDTO>(); |
| | | |
| | | var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4").ToList(); |
| | | var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4" && x.Lavetype != "7" && x.Lavetype != "3" && x.Lavetype != "9").ToList(); |
| | | foreach (var admAskLeave in feichuqinjia) |
| | | { |
| | | |
| | |
| | | } |
| | | |
| | | Qingjia += dangtianqingjia; |
| | | |
| | | |
| | | |
| | | //计算当天带薪假 |
| | | List<DateBiJiaoDTO> daixinjias = new List<DateBiJiaoDTO>(); |
| | | |
| | | var chauxndaixinjias = admAskLeaveDTOMin.Where(x => x.Lavetype == "4" || x.Lavetype == "7" || x.Lavetype == "3" || x.Lavetype == "9").ToList(); |
| | | foreach (var admAskLeave in chauxndaixinjias) |
| | | { |
| | | |
| | | DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); |
| | | dateBiJiaoDTO.StartTime = admAskLeave.StratTime; |
| | | dateBiJiaoDTO.EndTime = admAskLeave.EndTime; |
| | | daixinjias.Add(dateBiJiaoDTO); |
| | | |
| | | } |
| | | |
| | | foreach (var daixinjia in daixinjias) |
| | | { |
| | | if (daixinjia.StartTime < StratTimeWorkingStart) |
| | | { |
| | | daixinjia.StartTime = StratTimeWorkingStart; |
| | | } |
| | | if (daixinjia.StartTime > StratTimeWorkingEnd && daixinjia.StartTime < StratTimeOffworkStart) |
| | | { |
| | | daixinjia.StartTime = StratTimeOffworkStart; |
| | | } |
| | | |
| | | |
| | | if (daixinjia.EndTime > StratTimeWorkingEnd && daixinjia.EndTime < StratTimeOffworkStart) |
| | | { |
| | | daixinjia.EndTime = StratTimeWorkingEnd; |
| | | } |
| | | |
| | | |
| | | if (daixinjia.EndTime > StratTimeOffworkEnd) |
| | | { |
| | | daixinjia.EndTime = StratTimeOffworkEnd; |
| | | } |
| | | TimeSpan daixinjiashiijan = daixinjia.EndTime.Value.Subtract(daixinjia.StartTime.Value); |
| | | if (daixinjia.StartTime <= StratTimeWorkingEnd && daixinjia.EndTime >= StratTimeOffworkStart) |
| | | { |
| | | TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd); |
| | | dangtiandaixinjia += Math.Round(((decimal)(daixinjiashiijan.Hours * 60 + daixinjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2); |
| | | } |
| | | else |
| | | { |
| | | dangtiandaixinjia += Math.Round(((decimal)(daixinjiashiijan.Hours * 60 + daixinjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | Daixinjia += dangtiandaixinjia; |
| | | |
| | | |
| | | |
| | | //计算当天出勤天数 |
| | | Jiaban += (1 - Kuanggongtianshu - dangtianqingjia); |
| | | |
| | |
| | | { |
| | | jiabanshijian = admAskovertimeDTO.Overtime.Value; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | if (jiabanshijian > new decimal(shangbanshijian) / 60) |
| | | { |
| | | jiabanshijian = new decimal(shangbanshijian) / 60; |
| | | } |
| | | Jiaban += Math.Round(jiabanshijian * 60 / shangbanshijian, 2); |
| | | } |
| | | } |
| | |
| | | admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut; |
| | | admAttendanceDtlDTO.Qingjia = dangtianqingjia; |
| | | admAttendanceDtlDTO.Xiaojia = dangtianxiaojia; |
| | | |
| | | admAttendanceDtlDTO.Daixinjia = dangtiandaixinjia; |
| | | |
| | | |
| | | |
| | |
| | | admAttendanceDtlDTO.OvertimeIn = admSignInDTO.OvertimeIn; |
| | | admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut; |
| | | admAttendanceDtlDTO.Qingjia = dangtianqingjia; |
| | | admAttendanceDtlDTO.Daixinjia = dangtiandaixinjia; |
| | | admAttendanceDtlDTO.Xiaojia = dangtianxiaojia; |
| | | |
| | | |
| | |
| | | |
| | | |
| | | admAttendanceDTO.Qingjia = Qingjia; |
| | | admAttendanceDTO.Daixinjia = Daixinjia; |
| | | admAttendanceDTO.Xiaojia = Xiaojia; |
| | | admAttendanceDTO.Chidao = Chidao; |
| | | admAttendanceDTO.Islock = "A"; |
| | |
| | | //计算工资 |
| | | public async Task jisuangongziAsync() |
| | | { |
| | | var Month = DateTime.Now.Month - 1; |
| | | var Year = DateTime.Now.Year; |
| | | if (Month == 0) |
| | | { |
| | | Month = 12; |
| | | Year = Year - 1; |
| | | } |
| | | //查询所有的有效人员 |
| | | DateTime dateminkaoqin = new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1); |
| | | DateTime dateminkaoqin = new DateTime(Year, Month, 1); |
| | | DateTime datemaxkaoqin = dateminkaoqin.AddMonths(1); |
| | | List<PltUserDTO> userList = _userService.GetListjisuankaoqin(dateminkaoqin, datemaxkaoqin);//.Where(x => x.UserSn == "yang").ToList(); |
| | | List<HrJibengongziDTO> hrJibengongziDTOs = _JibengongziService.GetList().Where(x=> x.Effecttime < datemaxkaoqin).ToList(); |
| | |
| | | //查询当前员工职务的基本工资配置 |
| | | |
| | | var hrJibengongzi = hrJibengongziDTOs.Where(x=>x.PostId == userList[i].HrPosition ).OrderByDescending(x=>x.Effecttime).FirstOrDefault(); |
| | | |
| | | |
| | | if (hrJibengongzi == null) |
| | | { |
| | | _logger.LogInformation(userList[i].UserName + ": 职务所属资本工资为空"); |
| | | continue; |
| | | } |
| | | var shebaoDTO = _JibengongziService.GetListShebao().FirstOrDefault(); |
| | | if (shebaoDTO == null) |
| | | { |
| | | _logger.LogInformation(userList[i].UserName + ": 社保维护为空"); |
| | | continue; |
| | | } |
| | | |
| | | hrSalaryDTO.Jibengongzi = Math.Round( hrJibengongzi.Jibengongzi.Value * chuqinlv, 2); |
| | | hrSalaryDTO.Baomifei = Math.Round(hrJibengongzi.Baomifei.Value * chuqinlv, 2); |
| | | //是否在试用期 |
| | |
| | | { |
| | | geshuiqizheng = userList[i].geshuiqizheng.Value; |
| | | } |
| | | var Shebaodanwei = hrJibengongzi.Shebaodanwei.HasValue ? hrJibengongzi.Shebaodanwei.Value : 0; |
| | | var Shebaogeren = hrJibengongzi.Shebaogeren.HasValue ? hrJibengongzi.Shebaogeren.Value : 0; |
| | | var Shebaodanwei = shebaoDTO.Shebaodanwei.HasValue ? shebaoDTO.Shebaodanwei.Value : 0; |
| | | var Shebaogeren = shebaoDTO.Shebaogeren.HasValue ? shebaoDTO.Shebaogeren.Value : 0; |
| | | decimal yingnashuie = 0; |
| | | hrSalaryDTO.Queqin = 0; |
| | | hrSalaryDTO.Fakuan = 0; |
| | |
| | | hrSalaryDTO.Jiabangongzi = 0; |
| | | decimal shiyongqichuqintianshu = 0; |
| | | decimal shiyongqichuqinlv = 0; |
| | | |
| | | decimal yingfaheji = 0; |
| | | |
| | | |
| | | decimal BasicPrice = 0; |
| | |
| | | |
| | | |
| | | |
| | | //yingnashuie = userList[i].ShiyongPrice.Value - Shebaogeren - geshuiqizheng; |
| | | |
| | | |
| | | |
| | | |
| | |
| | | |
| | | |
| | | |
| | | //yingnashuie = BasicPrice - Shebaogeren - geshuiqizheng; |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | //var feijijiandengji = fiPiecerateDTOs.Where(x => x.Standard == "A"); |
| | | //var jijiandengji = fiPiecerateDTOs.Where(x => x.Standard == "A"); |
| | | |
| | | #region 采购公告录入 |
| | | |
| | | var caigougonggaoDTOsyue = _projectService.GetcaigougonggaoListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); |
| | | if (caigougonggaoDTOsyue != null && caigougonggaoDTOsyue.Count > 0) |
| | | { |
| | | var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "采购公告录入").FirstOrDefault(); |
| | | if (jijianidddd != null) |
| | | { |
| | | var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); |
| | | if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue) |
| | | { |
| | | if (jixiaotichengfangan.Renwustandard == "01") |
| | | { |
| | | decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; |
| | | if (jixiaotichengfangan.Tichengstandard == "01") |
| | | { |
| | | decimal youxiaojijian = caigougonggaoDTOsyue.Count - renwujishu; |
| | | if (youxiaojijian > 0) |
| | | { |
| | | hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | else if (jixiaotichengfangan.Renwustandard == "02") |
| | | { |
| | | decimal renwujishu = jixiaotichengfangan.Renwu.Value; |
| | | if (jixiaotichengfangan.Tichengstandard == "01") |
| | | { |
| | | decimal youxiaojijian = caigougonggaoDTOsyue.Count - renwujishu; |
| | | if (youxiaojijian > 0) |
| | | { |
| | | hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 采购项目录入 |
| | | |
| | | var projectDTOsyue = _projectService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); |
| | |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | #region 客户资料录入 |
| | | |
| | | |
| | | var _intentionCustomerDTOs = _intentionCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); |
| | | if (_intentionCustomerDTOs!=null && _intentionCustomerDTOs.Count > 0) |
| | | { |
| | |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | |
| | | #region 专家录入 |
| | | |
| | | var zhuanjialuruDTOsyue = _expertService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); |
| | | if (zhuanjialuruDTOsyue != null && zhuanjialuruDTOsyue.Count > 0) |
| | | { |
| | | var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "专家录入").FirstOrDefault(); |
| | | if (jijianidddd != null) |
| | | { |
| | | var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); |
| | | if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue) |
| | | { |
| | | if (jixiaotichengfangan.Renwustandard == "01") |
| | | { |
| | | decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; |
| | | if (jixiaotichengfangan.Tichengstandard == "01") |
| | | { |
| | | decimal youxiaojijian = zhuanjialuruDTOsyue.Count - renwujishu; |
| | | if (youxiaojijian > 0) |
| | | { |
| | | hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | else if (jixiaotichengfangan.Renwustandard == "02") |
| | | { |
| | | decimal renwujishu = jixiaotichengfangan.Renwu.Value; |
| | | if (jixiaotichengfangan.Tichengstandard == "01") |
| | | { |
| | | decimal youxiaojijian = zhuanjialuruDTOsyue.Count - renwujishu; |
| | | if (youxiaojijian > 0) |
| | | { |
| | | hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | decimal peichang1 = hrSalaryDTO1.Peichang.HasValue ? hrSalaryDTO1.Peichang.Value : 0; |
| | | decimal jiucuo1 = hrSalaryDTO1.Jiucuo.HasValue ? hrSalaryDTO1.Jiucuo.Value : 0; |
| | | |
| | | baodinianxin += jibengongzi1 + baomifei1 + gongzuobutie1 + jiabangongzi1 + shebao1 + quanqinjiang1 + jiaotngbutie1 + jixiaoticheng1 + jiangjin1 + bufagongzi1 + jiucuo1; |
| | | baodinianxin += jibengongzi1 + baomifei1 + gongzuobutie1 + jiabangongzi1 + shebao1 + quanqinjiang1 + jiaotngbutie1 + jixiaoticheng1 + jiangjin1 + bufagongzi1 + jiucuo1+ peichang1; |
| | | } |
| | | } |
| | | baodinianxin += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi + jiucuo; |
| | | if(baodinianxin < userList[i].miniyearsalary.Value) |
| | | baodinianxin += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi + jiucuo + peichang; |
| | | if (baodinianxin < userList[i].miniyearsalary.Value) |
| | | { |
| | | jiucuo = userList[i].miniyearsalary.Value - baodinianxin; |
| | | } |
| | | } |
| | | } |
| | | |
| | | yingfaheji = jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou + ((dianhuabutie - dianhuafei) <= 0 ? (dianhuabutie - dianhuafei) : 0) - queqin - fakuan + peichang + jiucuo; |
| | | |
| | | |
| | | hrSalaryDTO.Yufagongzi = userList[i].advancewages; |
| | | |
| | | if (userList[i].advancewages.HasValue && userList[i].advancewages.Value > 0) |
| | | { |
| | | hrSalaryDTO.Yufagongziheji = 0; |
| | | HrSalaryDTO hrSalaryDTOlast = _hrSalaryService.GetListByUser(userList[i].Id, dateminkaoqin.AddMonths(-1).Year, dateminkaoqin.AddMonths(-1).Month); |
| | | if (hrSalaryDTOlast != null && hrSalaryDTOlast.Yufagongziheji.HasValue) |
| | | { |
| | | hrSalaryDTO.Yufagongziheji = hrSalaryDTOlast.Yufagongziheji; |
| | | } |
| | | |
| | | if (hrSalaryDTO.Yufagongziheji > 0) |
| | | { |
| | | if (yingfaheji < (hrSalaryDTO.Yufagongzi+shebao- shebaokou)) |
| | | { |
| | | hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi + shebao - shebaokou - yingfaheji); |
| | | yingfaheji = (hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou); |
| | | } |
| | | else if (yingfaheji > (hrSalaryDTO.Yufagongzi + shebao - shebaokou)) |
| | | { |
| | | if (hrSalaryDTO.Yufagongziheji >= (yingfaheji - (hrSalaryDTO.Yufagongzi + shebao - shebaokou))) |
| | | { |
| | | hrSalaryDTO.Yufagongziheji += ((hrSalaryDTO.Yufagongzi + shebao - shebaokou) - yingfaheji); |
| | | yingfaheji = (hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou); |
| | | } |
| | | else |
| | | { |
| | | yingfaheji -= hrSalaryDTO.Yufagongziheji.Value; |
| | | hrSalaryDTO.Yufagongziheji = 0; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | } |
| | | else if (hrSalaryDTO.Yufagongziheji == 0) |
| | | { |
| | | hrSalaryDTO.Yufagongziheji += ((hrSalaryDTO.Yufagongzi + shebao - shebaokou) - yingfaheji); |
| | | if (yingfaheji < (hrSalaryDTO.Yufagongzi + shebao - shebaokou)) |
| | | { |
| | | yingfaheji = (hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou); |
| | | } |
| | | } |
| | | else if (hrSalaryDTO.Yufagongziheji < 0) |
| | | { |
| | | if (yingfaheji < (hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou)) |
| | | { |
| | | if (-hrSalaryDTO.Yufagongziheji >= ((hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou) - yingfaheji)) |
| | | { |
| | | hrSalaryDTO.Yufagongziheji += ((hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou) - yingfaheji); |
| | | yingfaheji = (hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou); |
| | | } |
| | | else |
| | | { |
| | | yingfaheji += hrSalaryDTO.Yufagongziheji.Value; |
| | | hrSalaryDTO.Yufagongziheji = 0; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | yingnashuie = jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou + ( (dianhuabutie - dianhuafei)<=0? (dianhuabutie - dianhuafei) : 0) - queqin - fakuan - peichang + jiucuo - geshuiqizheng; |
| | | |
| | | |
| | | |
| | | |
| | | yingnashuie = yingfaheji - geshuiqizheng; |
| | | |
| | | |
| | | hrSalaryDTO.Geshui = 0; |
| | |
| | | decimal yingnashuie3 = 0; |
| | | decimal yingnashuie4 = 0; |
| | | decimal yingnashuie5 = 0; |
| | | if (yingnashuie > 39250) |
| | | decimal yingnashuie6 = 0; |
| | | decimal yingnashuie7 = 0; |
| | | if (yingnashuie > 80000) |
| | | { |
| | | yingnashuie1 = 4750; |
| | | yingnashuie2 = (9250 - 4750); |
| | | yingnashuie3 = (25250 - 9250); |
| | | yingnashuie4 = (39250 - 25250); |
| | | yingnashuie5 = (yingnashuie - 39250); |
| | | yingnashuie1 = 3000; |
| | | yingnashuie2 = (12000 - 3000); |
| | | yingnashuie3 = (25000 - 12000); |
| | | yingnashuie4 = (35000 - 25000); |
| | | yingnashuie5 = (55000 - 35000); |
| | | yingnashuie6 = (80000 - 55000); |
| | | yingnashuie7 = (yingnashuie - 55000); |
| | | } |
| | | else if (yingnashuie > 25250) |
| | | if (yingnashuie > 55000) |
| | | { |
| | | yingnashuie1 = 4750; |
| | | yingnashuie2 = (9250 - 4750); |
| | | yingnashuie3 = (25250 - 9250); |
| | | yingnashuie4 = (yingnashuie - 25250); |
| | | yingnashuie1 = 3000; |
| | | yingnashuie2 = (12000 - 3000); |
| | | yingnashuie3 = (25000 - 12000); |
| | | yingnashuie4 = (35000 - 25000); |
| | | yingnashuie5 = (55000 - 35000); |
| | | yingnashuie6 = (yingnashuie - 55000); |
| | | } |
| | | if (yingnashuie > 35000) |
| | | { |
| | | yingnashuie1 = 3000; |
| | | yingnashuie2 = (12000 - 3000); |
| | | yingnashuie3 = (25000 - 12000); |
| | | yingnashuie4 = (35000 - 25000); |
| | | yingnashuie5 = (yingnashuie - 35000); |
| | | } |
| | | else if (yingnashuie > 25000) |
| | | { |
| | | yingnashuie1 = 3000; |
| | | yingnashuie2 = (12000 - 3000); |
| | | yingnashuie3 = (25000 - 12000); |
| | | yingnashuie4 = (yingnashuie - 25000); |
| | | |
| | | } |
| | | else if (yingnashuie > 9250) |
| | | else if (yingnashuie > 12000) |
| | | { |
| | | yingnashuie1 = 4750; |
| | | yingnashuie2 = (9250 - 4750); |
| | | yingnashuie3 = (yingnashuie - 9250); |
| | | yingnashuie1 = 3000; |
| | | yingnashuie2 = (12000 - 3000); |
| | | yingnashuie3 = (yingnashuie - 12000); |
| | | } |
| | | else if (yingnashuie > 4750) |
| | | else if (yingnashuie > 3000) |
| | | { |
| | | yingnashuie1 = 4750; |
| | | yingnashuie2 = (yingnashuie - 4750); |
| | | yingnashuie1 = 3000; |
| | | yingnashuie2 = (yingnashuie - 3000); |
| | | } |
| | | else |
| | | { |
| | |
| | | } |
| | | if (yingnashuie1 > 0) |
| | | { |
| | | var yingjiao1 = Math.Round(yingnashuie1 * new decimal(0.05) - 0, 2); |
| | | var yingjiao1 = Math.Round(yingnashuie1 * new decimal(0.03) - 0, 2); |
| | | if (yingjiao1 > 0) |
| | | { |
| | | hrSalaryDTO.Geshui += yingjiao1; |
| | |
| | | } |
| | | if (yingnashuie2 > 0) |
| | | { |
| | | var yingjiao2 = Math.Round(yingnashuie2 * new decimal(0.1) - 250, 2); |
| | | var yingjiao2 = Math.Round(yingnashuie2 * new decimal(0.1) - 0, 2); |
| | | if (yingjiao2 > 0) |
| | | { |
| | | hrSalaryDTO.Geshui += yingjiao2; |
| | |
| | | } |
| | | if (yingnashuie3 > 0) |
| | | { |
| | | var yingjiao3 = Math.Round(yingnashuie3 * new decimal(0.2) - 1250, 2); |
| | | var yingjiao3 = Math.Round(yingnashuie3 * new decimal(0.2) - 0, 2); |
| | | if (yingjiao3 > 0) |
| | | { |
| | | hrSalaryDTO.Geshui += yingjiao3; |
| | |
| | | } |
| | | if (yingnashuie4 > 0) |
| | | { |
| | | var yingjiao4 = Math.Round(yingnashuie4 * new decimal(0.3) - 4250, 2); |
| | | var yingjiao4 = Math.Round(yingnashuie4 * new decimal(0.25) - 0, 2); |
| | | if (yingjiao4 > 0) |
| | | { |
| | | hrSalaryDTO.Geshui += yingjiao4; |
| | |
| | | } |
| | | if (yingnashuie5 > 0) |
| | | { |
| | | var yingjiao5 = Math.Round(yingnashuie5 * new decimal(0.35) - 6750, 2); |
| | | var yingjiao5 = Math.Round(yingnashuie5 * new decimal(0.30) - 0, 2); |
| | | if (yingjiao5 > 0) |
| | | { |
| | | hrSalaryDTO.Geshui += yingjiao5; |
| | | } |
| | | } |
| | | |
| | | |
| | | if (yingnashuie6 > 0) |
| | | { |
| | | var yingjiao6 = Math.Round(yingnashuie6 * new decimal(0.35) - 0, 2); |
| | | if (yingjiao6 > 0) |
| | | { |
| | | hrSalaryDTO.Geshui += yingjiao6; |
| | | } |
| | | } |
| | | if (yingnashuie7 > 0) |
| | | { |
| | | var yingjiao7 = Math.Round(yingnashuie7 * new decimal(0.45) - 0, 2); |
| | | if (yingjiao7 > 0) |
| | | { |
| | | hrSalaryDTO.Geshui += yingjiao7; |
| | | } |
| | | } |
| | | |
| | | } |
| | | decimal geshui = hrSalaryDTO.Geshui.HasValue ? hrSalaryDTO.Geshui.Value : 0; |
| | | |
| | | hrSalaryDTO.Daozhanggongzi += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou - geshui + ((dianhuabutie - dianhuafei) <= 0 ? (dianhuabutie - dianhuafei) : 0) - queqin - fakuan - peichang + jiucuo; |
| | | |
| | | |
| | | hrSalaryDTO.Daozhanggongzi = yingfaheji - geshui; |
| | | |
| | | |
| | | |
| | | hrSalaryDTO.Yufagongzi = userList[i].advancewages; |
| | | |
| | | if (userList[i].advancewages.HasValue && userList[i].advancewages.Value>0) |
| | | { |
| | | hrSalaryDTO.Yufagongziheji = 0; |
| | | HrSalaryDTO hrSalaryDTOlast = _hrSalaryService.GetListByUser(userList[i].Id, dateminkaoqin.AddMonths(-1).Year, dateminkaoqin.AddMonths(-1).Month); |
| | | if(hrSalaryDTOlast!=null && hrSalaryDTOlast.Yufagongziheji.HasValue) |
| | | { |
| | | hrSalaryDTO.Yufagongziheji = hrSalaryDTOlast.Yufagongziheji; |
| | | } |
| | | |
| | | hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi ); |
| | | if (hrSalaryDTO.Daozhanggongzi < hrSalaryDTO.Yufagongzi) |
| | | { |
| | | hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi; |
| | | } |
| | | } |
| | | |
| | | hrSalaryDTO.RecStatus = "A"; |
| | | hrSalaryDTO.Islock = "D"; |
| | | hrSalaryDTO.Creater = "1"; |