| | |
| | | private readonly ICooperatecustomCustomerService _cooperatecustomCustomerService; |
| | | private readonly IGroupTopicService _groupTopicService; |
| | | private readonly ICooperVisitService _cooperVisitService; |
| | | private readonly IIntentionCustomerService _intentionCustomerService; |
| | | private readonly IIntentionVisitService _intentionVisitService; |
| | | |
| | | private readonly decimal jiabangongzibiaozhun = new decimal(21.5); |
| | | public TimedBackgroundService(ILogger<TimedBackgroundService> logger, IServiceScopeFactory factory) |
| | |
| | | _cooperatecustomCustomerService = factory.CreateScope().ServiceProvider.GetRequiredService<ICooperatecustomCustomerService>(); |
| | | _groupTopicService = factory.CreateScope().ServiceProvider.GetRequiredService<IGroupTopicService>(); |
| | | _cooperVisitService = factory.CreateScope().ServiceProvider.GetRequiredService<ICooperVisitService>(); |
| | | _intentionCustomerService = factory.CreateScope().ServiceProvider.GetRequiredService<IIntentionCustomerService>(); |
| | | _intentionVisitService = factory.CreateScope().ServiceProvider.GetRequiredService<IIntentionVisitService>(); |
| | | } |
| | | protected override async Task ExecuteAsync(CancellationToken stoppingToken) |
| | | { |
| | |
| | | |
| | | //stoppingToken.Register(() => File.Create($"E:\\dotnetCore\\Practice\\Practice\\{DateTime.Now.Millisecond}.txt")); |
| | | |
| | | DateTime datenow = DateTime.Now.Date; |
| | | while (!stoppingToken.IsCancellationRequested) |
| | | { |
| | | _logger.LogInformation("MyServiceA 开始执行"); |
| | | _logger.LogInformation(datenow.ToString("yyyy-MM-dd HH:mm:ss")); |
| | | //每天的0点开始计算 |
| | | if (DateTime.Now.Hour == 0) |
| | | if (datenow <= DateTime.Now.Date && DateTime.Now.Hour == 0) |
| | | //if (true) |
| | | { |
| | | |
| | | try |
| | | { |
| | | _logger.LogInformation("判断是否是第五个工作日结束"); |
| | | DateTime diwutian = this.diwugongzuori(); |
| | | //第五个工作日结束后开始计算 |
| | | if (DateTime.Now.Date == diwutian.AddDays(1)) |
| | |
| | | { |
| | | try |
| | | { |
| | | _logger.LogInformation("计算考勤工资"); |
| | | //using (TransactionScope scope = new TransactionScope()) |
| | | //{ |
| | | this.jisuankaoqin(); |
| | | this.jisuankaoqin(); |
| | | this.jisuangongzi(); |
| | | //scope.Complete(); |
| | | //} |
| | |
| | | _logger.LogInformation(ex.ToString()); |
| | | } |
| | | } |
| | | |
| | | |
| | | _logger.LogInformation("判断是否计算工龄工资"); |
| | | if (DateTime.Now.Date.Month==1 && DateTime.Now.Date.Day == 31) |
| | | //if (true) |
| | | { |
| | | jisuangonglinggongzi(); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _logger.LogInformation(ex.ToString()); |
| | | } |
| | | |
| | | |
| | | datenow = DateTime.Now.Date.AddDays(1); |
| | | } |
| | | |
| | | |
| | | await Task.Delay(TimeSpan.FromMinutes(59), stoppingToken); |
| | | await Task.Delay(TimeSpan.FromMinutes(10), stoppingToken); |
| | | |
| | | _logger.LogInformation("继续执行"); |
| | | } |
| | |
| | | } |
| | | else |
| | | { |
| | | |
| | | //判断考勤时间的连续性 |
| | | |
| | | //判断早上是否迟到,判断早上是否早退,早退矿工处理 |
| | | DateTime? starttime = null; |
| | | DateTime? endttime = null; |
| | | bool kuanggong = false; |
| | | List<DateBiJiaoDTO> dateBiJiaoDTOs = new List<DateBiJiaoDTO>(); |
| | | if (admSignInDTO != null && admSignInDTO.MorningIn.HasValue && admSignInDTO.MorningOut.HasValue) |
| | | { |
| | | DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); |
| | | dateBiJiaoDTO.StartTime = admSignInDTO.MorningIn; |
| | | dateBiJiaoDTO.EndTime = admSignInDTO.MorningOut; |
| | | dateBiJiaoDTOs.Add(dateBiJiaoDTO); |
| | | } |
| | | var jiabanbuka = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "3").ToList(); |
| | | foreach (var admAskLeaveOff in jiabanbuka) |
| | | { |
| | | if (admAskLeaveOff.StratTime < StratTimeWorkingEnd) |
| | | { |
| | | DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); |
| | | dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime; |
| | | dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime; |
| | | dateBiJiaoDTOs.Add(dateBiJiaoDTO); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList(); |
| | | if (dateBiJiaoDTOs.Count == 0) |
| | | { |
| | | Kuanggongtianshu += new decimal(0.5); |
| | | } |
| | | else |
| | | { |
| | | //判断上午考勤时间是否全覆盖 |
| | | for (int i = 0; i < dateBiJiaoDTOs.Count; i++) |
| | | { |
| | | if (i == 0) |
| | | { |
| | | starttime = dateBiJiaoDTOs[i].StartTime; |
| | | 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) |
| | | { |
| | | endttime = dateBiJiaoDTOs[i].EndTime; |
| | | } |
| | | } |
| | | } |
| | | if (kuanggong) |
| | | { |
| | | Kuanggongtianshu += new decimal(0.5); |
| | | } |
| | | else |
| | | { |
| | | decimal shangwukuanggong = 0; |
| | | if (starttime > StratTimeWorkingStart) |
| | | { |
| | | TimeSpan chidao = starttime.Value.Subtract(StratTimeWorkingStart); |
| | | if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism) |
| | | { |
| | | if (shangwukuanggong == 0) |
| | | { |
| | | Kuanggongtianshu += new decimal(0.5); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | Chidao += 1; |
| | | Shangwuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes; |
| | | } |
| | | } |
| | | if (shangwukuanggong == 0 && endttime < StratTimeWorkingEnd) |
| | | { |
| | | TimeSpan zaotui = StratTimeWorkingEnd.Subtract(endttime.Value); |
| | | if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism) |
| | | { |
| | | if (shangwukuanggong == 0) |
| | | { |
| | | Kuanggongtianshu += new decimal(0.5); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | Zaotui += 1; |
| | | Shangwuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes; |
| | | } |
| | | |
| | | } |
| | | Kuanggongtianshu += shangwukuanggong; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | //判断下午是否迟到,判断下午是否早退,早退矿工处理 |
| | | |
| | | |
| | | starttime = null; |
| | | endttime = null; |
| | | kuanggong = false; |
| | | dateBiJiaoDTOs = new List<DateBiJiaoDTO>(); |
| | | if (admSignInDTO != null && admSignInDTO.AfternoonIn.HasValue && admSignInDTO.AfternoonOut.HasValue) |
| | | { |
| | | DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); |
| | | dateBiJiaoDTO.StartTime = admSignInDTO.AfternoonIn; |
| | | dateBiJiaoDTO.EndTime = admSignInDTO.AfternoonOut; |
| | | dateBiJiaoDTOs.Add(dateBiJiaoDTO); |
| | | } |
| | | var jiabanbukaxiawu = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "3").ToList(); |
| | | foreach (var admAskLeaveOff in jiabanbukaxiawu) |
| | | { |
| | | if (admAskLeaveOff.EndTime > StratTimeOffworkStart) |
| | | { |
| | | DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); |
| | | dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime; |
| | | dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime; |
| | | dateBiJiaoDTOs.Add(dateBiJiaoDTO); |
| | | } |
| | | |
| | | } |
| | | |
| | | dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList(); |
| | | if (dateBiJiaoDTOs.Count == 0) |
| | | { |
| | | //Kuanggong += new decimal(0.5); |
| | | Kuanggongtianshu += new decimal(0.5); |
| | | } |
| | | else |
| | | { |
| | | //判断上午考勤时间是否全覆盖 |
| | | for (int i = 0; i < dateBiJiaoDTOs.Count; i++) |
| | | { |
| | | if (i == 0) |
| | | { |
| | | starttime = dateBiJiaoDTOs[i].StartTime; |
| | | 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) |
| | | { |
| | | endttime = dateBiJiaoDTOs[i].EndTime; |
| | | } |
| | | } |
| | | } |
| | | if (kuanggong) |
| | | { |
| | | //Kuanggong += new decimal(0.5); |
| | | Kuanggongtianshu += new decimal(0.5); |
| | | } |
| | | else |
| | | { |
| | | decimal xiawuwukuanggong = 0; |
| | | if (starttime > StratTimeOffworkStart) |
| | | { |
| | | TimeSpan chidao = starttime.Value.Subtract(StratTimeOffworkStart); |
| | | if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism) |
| | | { |
| | | if (xiawuwukuanggong == 0) |
| | | { |
| | | xiawuwukuanggong += new decimal(0.5); |
| | | //Kuanggong += new decimal(0.5); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | Chidao += 1; |
| | | Xiawuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes; |
| | | } |
| | | } |
| | | if (xiawuwukuanggong == 0 && endttime < StratTimeOffworkEnd) |
| | | { |
| | | TimeSpan zaotui = StratTimeOffworkEnd.Subtract(endttime.Value); |
| | | if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism) |
| | | { |
| | | if (xiawuwukuanggong == 0) |
| | | { |
| | | xiawuwukuanggong += new decimal(0.5); |
| | | //Kuanggong += new decimal(0.5); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | Zaotui += 1; |
| | | Xiawuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes; |
| | | } |
| | | |
| | | } |
| | | Kuanggongtianshu += xiawuwukuanggong; |
| | | } |
| | | } |
| | | |
| | | //计算当天加班天数 |
| | | Jiaban += (1 - Kuanggongtianshu ); |
| | | |
| | | Kuanggongtianshu = 0; |
| | | |
| | | //加班 |
| | | //计算加班时间 |
| | | if (admSignInDTO != null && admSignInDTO.OvertimeIn.HasValue && admSignInDTO.OvertimeOut.HasValue) |
| | | { |
| | | TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(admSignInDTO.OvertimeIn.Value); |
| | | DateTime overdate = admSignInDTO.OvertimeIn.Value; |
| | | if (admSignInDTO.OvertimeIn.Value < StratTimeOffworkEnd) |
| | | { |
| | | overdate = StratTimeOffworkEnd; |
| | | } |
| | | TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate); |
| | | |
| | | Jiaban += Math.Round((decimal)(jiaban.Hours * 60+ jiaban.Minutes) / (decimal)shangbanshijian, 2); |
| | | Jiaban += Math.Round((decimal)(jiaban.Hours * 60) / (decimal)shangbanshijian, 2); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | //hrSalaryDTO.Jiucuo |
| | | hrSalaryDTO.Jiucuo = 0; |
| | | |
| | | //计算绩效提成 |
| | | hrSalaryDTO.Jixiaoticheng = 0; |
| | |
| | | #region 上门拜访客户 |
| | | |
| | | var cooperVisitDTOs = _cooperVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); |
| | | if (cooperVisitDTOs != null && cooperVisitDTOs.Count > 0) |
| | | var intentionVisitDTOs = _intentionVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); |
| | | if ( cooperVisitDTOs.Count > 0 || intentionVisitDTOs.Count > 0) |
| | | { |
| | | var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "上门拜访客户").FirstOrDefault(); |
| | | if (jijianidddd != null) |
| | |
| | | decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; |
| | | if (jixiaotichengfangan.Tichengstandard == "01") |
| | | { |
| | | decimal youxiaojijian = cooperVisitDTOs.Count - renwujishu; |
| | | decimal youxiaojijian = intentionVisitDTOs.Count + cooperVisitDTOs.Count - renwujishu; |
| | | if (youxiaojijian > 0) |
| | | { |
| | | hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); |
| | |
| | | decimal renwujishu = jixiaotichengfangan.Renwu.Value; |
| | | if (jixiaotichengfangan.Tichengstandard == "01") |
| | | { |
| | | decimal youxiaojijian = cooperVisitDTOs.Count - renwujishu; |
| | | decimal youxiaojijian = intentionVisitDTOs.Count + cooperVisitDTOs.Count - renwujishu; |
| | | if (youxiaojijian > 0) |
| | | { |
| | | hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); |
| | |
| | | |
| | | #region 客户资料录入 |
| | | var cooperatecustomCustomerDTOs = _cooperatecustomCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); |
| | | if (cooperatecustomCustomerDTOs != null && cooperatecustomCustomerDTOs.Count > 0) |
| | | var _intentionCustomerDTOs = _intentionCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); |
| | | if ( cooperatecustomCustomerDTOs.Count > 0 || _intentionCustomerDTOs.Count > 0) |
| | | { |
| | | var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "客户资料录入").FirstOrDefault(); |
| | | if (jijianidddd != null) |
| | |
| | | decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; |
| | | if (jixiaotichengfangan.Tichengstandard == "01") |
| | | { |
| | | decimal youxiaojijian = cooperatecustomCustomerDTOs.Count - renwujishu; |
| | | decimal youxiaojijian = _intentionCustomerDTOs.Count + cooperatecustomCustomerDTOs.Count - renwujishu; |
| | | if (youxiaojijian > 0) |
| | | { |
| | | hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); |
| | |
| | | decimal renwujishu = jixiaotichengfangan.Renwu.Value; |
| | | if (jixiaotichengfangan.Tichengstandard == "01") |
| | | { |
| | | decimal youxiaojijian = cooperatecustomCustomerDTOs.Count - renwujishu; |
| | | decimal youxiaojijian = _intentionCustomerDTOs.Count + cooperatecustomCustomerDTOs.Count - renwujishu; |
| | | if (youxiaojijian > 0) |
| | | { |
| | | hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | #endregion |
| | | |
| | | |
| | | #region 录入客户签单 |
| | | |
| | | |
| | | var cooperatecustomCustomers = _cooperatecustomCustomerService.GetListsalaryqiandan(userList[i].Id, dateminkaoqin, datemaxkaoqin); |
| | | if (cooperatecustomCustomers != null && cooperatecustomCustomers.Count > 0) |
| | | { |
| | |
| | | decimal peichang = hrSalaryDTO.Peichang.HasValue ? hrSalaryDTO.Peichang.Value : 0; |
| | | decimal jiucuo = hrSalaryDTO.Jiucuo.HasValue ? hrSalaryDTO.Jiucuo.Value : 0; |
| | | |
| | | yingnashuie = jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + dianhuabutie + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou - dianhuafei - queqin - fakuan - peichang + jiucuo - geshuiqizheng; |
| | | //计算保底年薪 |
| | | if (userList[i].Indate.HasValue && userList[i].miniyearsalary.HasValue) |
| | | { |
| | | DateTime jixinue = userList[i].Indate.Value; |
| | | if (userList[i].Indate.Value.Day != 1) |
| | | { |
| | | jixinue = new DateTime(userList[i].Indate.Value.AddMonths(1).Year, userList[i].Indate.Value.AddMonths(1).Month, 1); |
| | | } |
| | | int months = ((datemaxkaoqin.Year - jixinue.Year) * 12) + datemaxkaoqin.Month - jixinue.Month; |
| | | |
| | | if(months % 12>=1 && months % 12 == 0) |
| | | { |
| | | decimal baodinianxin = 0; |
| | | //查询过去12个月的工资 |
| | | for(int z = 1; z <= 12; z++) |
| | | { |
| | | var hrSalaryDTO1 = _hrSalaryService.GetListByUser(userList[i].Id, dateminkaoqin.AddMonths(-z).Year, dateminkaoqin.AddMonths(-z).Month); |
| | | if (hrSalaryDTO1 != null) |
| | | { |
| | | decimal jibengongzi1 = hrSalaryDTO1.Jibengongzi.HasValue ? hrSalaryDTO1.Jibengongzi.Value : 0; |
| | | decimal baomifei1 = hrSalaryDTO1.Baomifei.HasValue ? hrSalaryDTO1.Baomifei.Value : 0; |
| | | decimal gongzuobutie1 = hrSalaryDTO1.Gongzuobutie.HasValue ? hrSalaryDTO1.Gongzuobutie.Value : 0; |
| | | decimal jiabangongzi1 = hrSalaryDTO1.Jiabangongzi.HasValue ? hrSalaryDTO1.Jiabangongzi.Value : 0; |
| | | decimal shebao1 = hrSalaryDTO1.Shebao.HasValue ? hrSalaryDTO1.Shebao.Value : 0; |
| | | decimal dianhuabutie1 = hrSalaryDTO1.Dianhuabutie.HasValue ? hrSalaryDTO1.Dianhuabutie.Value : 0; |
| | | decimal quanqinjiang1 = hrSalaryDTO1.Quanqinjiang.HasValue ? hrSalaryDTO1.Quanqinjiang.Value : 0; |
| | | decimal jiaotngbutie1 = hrSalaryDTO1.Jiaotngbutie.HasValue ? hrSalaryDTO1.Jiaotngbutie.Value : 0; |
| | | decimal jixiaoticheng1 = hrSalaryDTO1.Jixiaoticheng.HasValue ? hrSalaryDTO1.Jixiaoticheng.Value : 0; |
| | | decimal jiangjin1 = hrSalaryDTO1.Jiangjin.HasValue ? hrSalaryDTO1.Jiangjin.Value : 0; |
| | | decimal bufagongzi1 = hrSalaryDTO1.Bufagongzi.HasValue ? hrSalaryDTO1.Bufagongzi.Value : 0; |
| | | decimal shebaokou1 = hrSalaryDTO1.Shebaokou.HasValue ? hrSalaryDTO1.Shebaokou.Value : 0; |
| | | |
| | | decimal dianhuafei1 = hrSalaryDTO1.Dianhuafei.HasValue ? hrSalaryDTO1.Dianhuafei.Value : 0; |
| | | decimal queqin1 = hrSalaryDTO1.Queqin.HasValue ? hrSalaryDTO1.Queqin.Value : 0; |
| | | decimal fakuan1 = hrSalaryDTO1.Fakuan.HasValue ? hrSalaryDTO1.Fakuan.Value : 0; |
| | | 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 += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi + jiucuo; |
| | | if(baodinianxin < userList[i].miniyearsalary.Value) |
| | | { |
| | | jiucuo = userList[i].miniyearsalary.Value - baodinianxin; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | yingnashuie = jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou + ( (dianhuabutie - dianhuafei)<=0? (dianhuabutie - dianhuafei) : 0) - queqin - fakuan - peichang + jiucuo - geshuiqizheng; |
| | | |
| | | |
| | | hrSalaryDTO.Geshui = 0; |
| | |
| | | } |
| | | decimal geshui = hrSalaryDTO.Geshui.HasValue ? hrSalaryDTO.Geshui.Value : 0; |
| | | |
| | | hrSalaryDTO.Daozhanggongzi += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + dianhuabutie + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou - geshui - dianhuafei - queqin - fakuan - peichang + jiucuo; |
| | | hrSalaryDTO.Daozhanggongzi += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou - geshui + ((dianhuabutie - dianhuafei) <= 0 ? (dianhuabutie - dianhuafei) : 0) - queqin - fakuan - peichang + jiucuo; |
| | | |
| | | |
| | | |
| | |
| | | |
| | | |
| | | |
| | | //计算是否涨工龄工资 |
| | | public void jisuangonglinggongzi() |
| | | { |
| | | _logger.LogInformation("计算是否涨工龄工资"); |
| | | List<PltUserDTO> userList = _userService.GetList();//.Where(x => x.UserSn == "yang").ToList(); |
| | | foreach(var userDTO in userList) |
| | | { |
| | | if (userDTO.senioritywages.HasValue && userDTO.Indate.HasValue) |
| | | { |
| | | int year = DateTime.Now.Year - (userDTO.Indate.Value.Year+1); |
| | | if (userDTO.Indate.Value.Month==1 && userDTO.Indate.Value.Day == 1) |
| | | { |
| | | year = DateTime.Now.Year - userDTO.Indate.Value.Year ; |
| | | } |
| | | if ( year >= 1) |
| | | { |
| | | userDTO.BasicPrice += userDTO.senioritywages.Value; |
| | | _userService.savePltUser(userDTO); |
| | | _logger.LogInformation(userDTO.Name +"涨工龄工资"+ userDTO.senioritywages.HasValue +" 之后月薪" + userDTO.BasicPrice); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | public AdmAskLeaveDTO jisianChecktime(DateTime StratTime, DateTime EndTime) |
| | | { |
| | | //string dateDiff = null; |