From 0a34bec1a557fb95c376a298e0cbdabd46f8a14e Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期五, 03 三月 2023 13:56:51 +0800 Subject: [PATCH] 计算工资更新 --- zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs | 3166 +++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 2,648 insertions(+), 518 deletions(-) diff --git a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs index 92bc0d5..b3e0898 100644 --- a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs +++ b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs @@ -48,6 +48,11 @@ private readonly IDtChannelArticleNewsService _dtChannelArticleNewsService; private readonly IConfiguration _configuration; 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) @@ -79,13 +84,18 @@ _dtChannelArticleNewsService = factory.CreateScope().ServiceProvider.GetRequiredService<IDtChannelArticleNewsService>(); _configuration = factory.CreateScope().ServiceProvider.GetRequiredService<IConfiguration>(); _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) { _logger.LogInformation("MyServiceA is starting."); //stoppingToken.Register(() => File.Create($"E:\\dotnetCore\\Practice\\Practice\\{DateTime.Now.Millisecond}.txt")); - + DateTime datenow = DateTime.Now.Date; while (!stoppingToken.IsCancellationRequested) { @@ -128,6 +138,15 @@ { jisuangonglinggongzi(); } + + + _logger.LogInformation("鎶婅秴杩�90澶╄繕娌℃湁杞寲鐨勬。妗堝鎴风殑涓氬姟缁忕悊褰掍负鏃�"); + this.ywjlguiling(); + _logger.LogInformation("鎶婅秴杩�90澶╄繕娌℃湁杞寲鐨勬。妗堝鎴风殑涓氬姟缁忕悊褰掍负鏃犳墽琛岀粨鏉�"); + + _logger.LogInformation("鎶婁細鍛樼郴缁熷拰oa绯荤粺鎵嬫満鍙风浉鍚岀殑瀹㈡埛鍏宠仈璧锋潵"); + this.huiyuanguanlian(); + _logger.LogInformation("鎶婁細鍛樼郴缁熷拰oa绯荤粺鎵嬫満鍙风浉鍚岀殑瀹㈡埛鍏宠仈璧锋潵鎵ц缁撴潫"); } catch (Exception ex) { @@ -201,6 +220,144 @@ return diwutian; } + + //璁$畻褰撳墠鏃ユ湡鏄惁鏄伐浣滄棩 + public Boolean shifougongzuori(DateTime workdate) + { + var admAttendanceRulesDtlDTOs = _attendanceRuleService.GetDtlList(""); + AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get(""); + var jiejiari = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiejiari").ToList(); + var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList(); + var jiabanri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiabanri").ToList(); + ////鑾峰彇鏈湀鐨勭浜斾釜宸ヤ綔鏃ユ棩鏈熴�� + //DateTime datemin = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); + //DateTime datemax = datemin.AddMonths(1); + //_logger.LogInformation("datemin" + datemin); + //_logger.LogInformation("datemax" + datemax); + Boolean shifoushangban = false; + + //鏄惁涓婄彮鏃ユ湡 + if ((int)workdate.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)workdate.DayOfWeek <= admAttendanceRuleDTO.WeekEnd) + { + //鏄惁鑺傚亣鏃� + if (jiejiari.Exists(x => x.ValueStart <= workdate && x.ValueEnd >= workdate)) + { + shifoushangban = false; + } + else + { + shifoushangban = true; + } + + } + else + { + //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� + if (tiaoxiuri.Exists(x => x.ValueStart <= workdate && x.ValueEnd >= workdate)) + { + shifoushangban = true; + } + //鏄惁鍔犵彮鏃� 鍔犵彮鏃ラ渶瑕佷笂鐝� + if (jiabanri.Exists(x => x.ValueStart <= workdate && x.ValueEnd >= workdate)) + { + shifoushangban = true; + } + } + + + + return shifoushangban; + } + + + //鑾峰彇鏃ユ湡鎵�鍦ㄥ懆鐨勮捣姝㈡棩鏈� + /// <summary> + /// 璁$畻鏈懆璧峰鏃ユ湡锛堟槦鏈熶竴锛� + /// </summary> + /// <param name="dateTime">璇ュ懆涓换鎰忎竴澶�</param> + /// <returns>杩斿洖绀兼嫓涓�鏃ユ湡锛屽悗闈㈢殑鍏蜂綋鏃躲�佸垎銆佺鍜屼紶鍏ュ�肩浉绛�</returns> + public DateTime CalculateFirstDateOfWeek(DateTime dateTime) + { + int i = dateTime.DayOfWeek - DayOfWeek.Monday; + if (i == -1) + i = 6; + TimeSpan ts = new TimeSpan(i, 0, 0, 0); + return dateTime.Subtract(ts); + } + + /// <summary> + /// 璁$畻鏈懆缁撴潫鏃ユ湡锛堢ぜ鎷滄棩鐨勬棩鏈燂級 + /// </summary> + /// <param name="dateTime"> 璇ュ懆涓换鎰忎竴澶�</param> + /// <returns>杩斿洖绀兼嫓鏃ユ棩鏈燂紝鍚庨潰鐨勫叿浣撴椂銆佸垎銆佺鍜屼紶鍏ュ�肩浉绛� </returns> + public DateTime CalculateLastDateOfWeek(DateTime dateTime) + { + int i = dateTime.DayOfWeek - DayOfWeek.Sunday; + if (i != 0) i = 7 - i; // 鍥犱负鏋氫妇鍘熷洜锛孲unday鎺掑湪鏈�鍓嶏紝鐩稿噺闂撮殧瑕佽7鍑忋�� + TimeSpan ts = new TimeSpan(i, 0, 0, 0); + return dateTime.Add(ts); + } + + + + //鎶婅秴杩�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() { @@ -208,6 +365,7 @@ AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get(""); var jiejiari = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiejiari").ToList(); var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList(); + var jiabanri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiabanri").ToList(); //姣忓ぉ鐨勮�冨嫟鏃堕棿鐐� string[] WorkingStart = admAttendanceRuleDTO.WorkingStart.Split('.'); @@ -231,14 +389,20 @@ 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); @@ -256,6 +420,7 @@ admAttendanceDTO.Qingjia = 0; admAttendanceDTO.Jiaban = 0; admAttendanceDTO.Xiaojia = 0; + admAttendanceDTO.Daixinjia = 0; admAttendanceDTO.Chidao = 0; admAttendanceDTO.Zaotui = 0; admAttendanceDTO.Kuanggong = 0; @@ -281,6 +446,7 @@ decimal Zaotui = 0; decimal Kuanggong = 0; decimal Xiaojia = 0; + decimal Daixinjia = 0; while (dateminkaoqin < datemaxkaoqin) { @@ -314,8 +480,8 @@ Offdays += 1; } } - - if(userList[a].Outdate.HasValue && dateminkaoqin >=userList[a].Outdate ) + //绂昏亴褰撳ぉ璁$畻鑰冨嫟 + if(userList[a].Zhiwustatus == "D" && userList[a].Outdate.HasValue && dateminkaoqin >userList[a].Outdate ) { dateminkaoqin = dateminkaoqin.AddDays(1); continue; @@ -334,7 +500,7 @@ 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(); @@ -368,6 +534,8 @@ decimal Kuanggongtianshu = 0; decimal dangtianqingjia = 0; decimal dangtianxiaojia = 0; + decimal dangtiandaixinjia = 0; + string Iswork = "D"; if (iswork) { @@ -433,15 +601,24 @@ } 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 (!starttime.HasValue) + { + starttime = dateBiJiaoDTOs[i].StartTime; + } + } + if (endttime >= StratTimeWorkingEnd && starttime.HasValue) + { + break; } } if (kuanggong) @@ -550,15 +727,24 @@ } 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 (!starttime.HasValue) + { + starttime = dateBiJiaoDTOs[i].StartTime; + } + } + if (endttime >= StratTimeOffworkEnd && starttime.HasValue) + { + break; } } if (kuanggong) @@ -614,7 +800,7 @@ //璁$畻褰撳ぉ璇峰亣 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) { @@ -675,6 +861,63 @@ } 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); @@ -737,245 +980,491 @@ //璁$畻鍔犵彮鏃堕棿 if (admSignInDTO != null && admSignInDTO.OvertimeIn.HasValue && admSignInDTO.OvertimeOut.HasValue) { - DateTime overdate = admSignInDTO.OvertimeIn.Value; - if (admSignInDTO.OvertimeIn.Value< StratTimeOffworkEnd) + var admAskovertimeDTO = _askService.GetAskovertimeByUeridAndjiabantime(userList[a].Id, dateminkaoqin); + if(admAskovertimeDTO!=null&& !string.IsNullOrEmpty(admAskovertimeDTO.Id)) { - overdate = StratTimeOffworkEnd; + DateTime overdate = admSignInDTO.OvertimeIn.Value; + if (admSignInDTO.OvertimeIn.Value < StratTimeOffworkEnd) + { + overdate = StratTimeOffworkEnd; + } + TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate); + decimal jiabanshijian = jiaban.Hours; + if(new decimal(jiaban.Hours) > admAskovertimeDTO.Overtime.Value) + { + jiabanshijian = admAskovertimeDTO.Overtime.Value; + } + if (jiabanshijian > new decimal(shangbanshijian) / 60) + { + jiabanshijian = new decimal(shangbanshijian) /60; + } + Jiaban += Math.Round(jiabanshijian * 60 / shangbanshijian, 2); } - TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate); - - Jiaban += Math.Round((decimal)(jiaban.Hours * 60) / (decimal)shangbanshijian, 2); + + + } } 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) + //鍒ゆ柇浠婂ぉ鏄惁鍏徃瑕佹眰鍔犵彮 + var shifoujiaban = jiabanri.Exists(x => x.ValueStart <= dateminkaoqin && x.ValueEnd >= dateminkaoqin); + if (shifoujiaban) { - 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) + + //鍒ゆ柇鑰冨嫟鏃堕棿鐨勮繛缁�� + + //鍒ゆ柇鏃╀笂鏄惁杩熷埌,鍒ゆ柇鏃╀笂鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊 + 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 = admAskLeaveOff.StratTime; - dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime; + dateBiJiaoDTO.StartTime = admSignInDTO.MorningIn; + dateBiJiaoDTO.EndTime = admSignInDTO.MorningOut; 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++) + foreach (var admAskLeave in admAskLeaveDTOMin) { - if (i == 0) + if (admAskLeave.StratTime < StratTimeWorkingEnd) { - starttime = dateBiJiaoDTOs[i].StartTime; - endttime = dateBiJiaoDTOs[i].EndTime; + DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); + dateBiJiaoDTO.StartTime = admAskLeave.StratTime; + dateBiJiaoDTO.EndTime = admAskLeave.EndTime; + dateBiJiaoDTOs.Add(dateBiJiaoDTO); } - 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) + + foreach (var admAskLeaveOff in admAskLeaveOffDTOMin) { + 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) + { + Kuanggong += new decimal(0.5); Kuanggongtianshu += new decimal(0.5); } else { - decimal shangwukuanggong = 0; - if (starttime > StratTimeWorkingStart) + //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩� + for (int i = 0; i < dateBiJiaoDTOs.Count; i++) { - TimeSpan chidao = starttime.Value.Subtract(StratTimeWorkingStart); - if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism) + if (i == 0) { - if (shangwukuanggong == 0) - { - Kuanggongtianshu += new decimal(0.5); - } - + starttime = dateBiJiaoDTOs[i].StartTime; + endttime = dateBiJiaoDTOs[i].EndTime; } 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) + //if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime) + //{ + // //kuanggong = true; + // break; + //} + //else + if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime) { - Kuanggongtianshu += new decimal(0.5); + endttime = dateBiJiaoDTOs[i].EndTime; } - + if (!starttime.HasValue) + { + starttime = dateBiJiaoDTOs[i].StartTime; + } } - 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) + if (kuanggong) { - starttime = dateBiJiaoDTOs[i].StartTime; - endttime = dateBiJiaoDTOs[i].EndTime; + Kuanggong += new decimal(0.5); + Kuanggongtianshu += new decimal(0.5); } else { - if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime) + decimal shangwukuanggong = 0; + if (starttime > StratTimeWorkingStart) { - kuanggong = true; - break; + TimeSpan chidao = starttime.Value.Subtract(StratTimeWorkingStart); + if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism) + { + if (shangwukuanggong == 0) + { + shangwukuanggong += new decimal(0.5); + Kuanggong += new decimal(0.5); + } + + } + else + { + Chidao += 1; + Shangwuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes; + } } - else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime) + if (shangwukuanggong == 0 && endttime < StratTimeWorkingEnd) { - endttime = dateBiJiaoDTOs[i].EndTime; + TimeSpan zaotui = StratTimeWorkingEnd.Subtract(endttime.Value); + if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism) + { + if (shangwukuanggong == 0) + { + shangwukuanggong += new decimal(0.5); + Kuanggong += new decimal(0.5); + } + + } + else + { + Zaotui += 1; + Shangwuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes; + } + } + Kuanggongtianshu += shangwukuanggong; } } - if (kuanggong) + + + + //鍒ゆ柇涓嬪崍鏄惁杩熷埌,鍒ゆ柇涓嬪崍鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊 + + + starttime = null; + endttime = null; + kuanggong = false; + dateBiJiaoDTOs = new List<DateBiJiaoDTO>(); + if (admSignInDTO != null && admSignInDTO.AfternoonIn.HasValue && admSignInDTO.AfternoonOut.HasValue) { - //Kuanggong += new decimal(0.5); + DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); + dateBiJiaoDTO.StartTime = admSignInDTO.AfternoonIn; + dateBiJiaoDTO.EndTime = admSignInDTO.AfternoonOut; + dateBiJiaoDTOs.Add(dateBiJiaoDTO); + } + foreach (var admAskLeave in admAskLeaveDTOMin) + { + if (admAskLeave.EndTime > StratTimeOffworkStart) + { + DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); + dateBiJiaoDTO.StartTime = admAskLeave.StratTime; + dateBiJiaoDTO.EndTime = admAskLeave.EndTime; + dateBiJiaoDTOs.Add(dateBiJiaoDTO); + } + + } + foreach (var admAskLeaveOff in admAskLeaveOffDTOMin) + { + 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 { - decimal xiawuwukuanggong = 0; - if (starttime > StratTimeOffworkStart) + //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩� + for (int i = 0; i < dateBiJiaoDTOs.Count; i++) { - TimeSpan chidao = starttime.Value.Subtract(StratTimeOffworkStart); - if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism) + if (i == 0) { - if (xiawuwukuanggong == 0) - { - xiawuwukuanggong += new decimal(0.5); - //Kuanggong += new decimal(0.5); - } - + starttime = dateBiJiaoDTOs[i].StartTime; + endttime = dateBiJiaoDTOs[i].EndTime; } else { - Chidao += 1; - Xiawuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes; + //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 (!starttime.HasValue) + { + starttime = dateBiJiaoDTOs[i].StartTime; + } } } - if (xiawuwukuanggong == 0 && endttime < StratTimeOffworkEnd) + if (kuanggong) { - TimeSpan zaotui = StratTimeOffworkEnd.Subtract(endttime.Value); - if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism) + Kuanggong += new decimal(0.5); + Kuanggongtianshu += new decimal(0.5); + } + else + { + decimal xiawuwukuanggong = 0; + if (starttime > StratTimeOffworkStart) { - if (xiawuwukuanggong == 0) + TimeSpan chidao = starttime.Value.Subtract(StratTimeOffworkStart); + if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism) { - xiawuwukuanggong += new decimal(0.5); - //Kuanggong += new decimal(0.5); + 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; } } - else - { - Zaotui += 1; - Xiawuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes; - } - + Kuanggongtianshu += xiawuwukuanggong; } - Kuanggongtianshu += xiawuwukuanggong; } + + + //璁$畻褰撳ぉ璇峰亣 + List<DateBiJiaoDTO> qingjias = new List<DateBiJiaoDTO>(); + + var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4" && x.Lavetype != "7" && x.Lavetype != "3" && x.Lavetype != "9").ToList(); + foreach (var admAskLeave in feichuqinjia) + { + + DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); + dateBiJiaoDTO.StartTime = admAskLeave.StratTime; + dateBiJiaoDTO.EndTime = admAskLeave.EndTime; + qingjias.Add(dateBiJiaoDTO); + + } + + var feichuqinxiaojia = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "2").ToList(); + foreach (var admAskLeaveOff in feichuqinxiaojia) + { + + DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); + dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime; + dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime; + qingjias.Add(dateBiJiaoDTO); + + } + + + foreach (var qingjia in qingjias) + { + if (qingjia.StartTime < StratTimeWorkingStart) + { + qingjia.StartTime = StratTimeWorkingStart; + } + if (qingjia.StartTime > StratTimeWorkingEnd && qingjia.StartTime < StratTimeOffworkStart) + { + qingjia.StartTime = StratTimeOffworkStart; + } + + + if (qingjia.EndTime > StratTimeWorkingEnd && qingjia.EndTime < StratTimeOffworkStart) + { + qingjia.EndTime = StratTimeWorkingEnd; + } + + + if (qingjia.EndTime > StratTimeOffworkEnd) + { + qingjia.EndTime = StratTimeOffworkEnd; + } + TimeSpan qingjiashiijan = qingjia.EndTime.Value.Subtract(qingjia.StartTime.Value); + if (qingjia.StartTime <= StratTimeWorkingEnd && qingjia.EndTime >= StratTimeOffworkStart) + { + TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd); + dangtianqingjia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2); + } + else + { + dangtianqingjia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2); + } + + + + } + + 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); + + + //璁$畻閿�鍋囷紙鍑哄樊锛岃ˉ鍗★級 + List<DateBiJiaoDTO> xiaojias = new List<DateBiJiaoDTO>(); + + var xiaojiala = admAskLeaveOffDTOMin.Where(x => x.Lavetype != "2").ToList(); + foreach (var admAskLeaveOff in xiaojiala) + { + + DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO(); + dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime; + dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime; + xiaojias.Add(dateBiJiaoDTO); + + } + + foreach (var xiaojia in xiaojias) + { + if (xiaojia.StartTime < StratTimeWorkingStart) + { + xiaojia.StartTime = StratTimeWorkingStart; + } + if (xiaojia.StartTime > StratTimeWorkingEnd && xiaojia.StartTime < StratTimeOffworkStart) + { + xiaojia.StartTime = StratTimeOffworkStart; + } + + + if (xiaojia.EndTime > StratTimeWorkingEnd && xiaojia.EndTime < StratTimeOffworkStart) + { + xiaojia.EndTime = StratTimeWorkingEnd; + } + + + if (xiaojia.EndTime > StratTimeOffworkEnd) + { + xiaojia.EndTime = StratTimeOffworkEnd; + } + TimeSpan qingjiashiijan = xiaojia.EndTime.Value.Subtract(xiaojia.StartTime.Value); + if (xiaojia.StartTime <= StratTimeWorkingEnd && xiaojia.EndTime >= StratTimeOffworkStart) + { + TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd); + dangtianxiaojia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2); + } + else + { + dangtianxiaojia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2); + } + + + + } + + Xiaojia += dangtianxiaojia; } + - //璁$畻褰撳ぉ鍔犵彮澶╂暟 - Jiaban += (1 - Kuanggongtianshu ); - Kuanggongtianshu = 0; //鍔犵彮 //璁$畻鍔犵彮鏃堕棿 if (admSignInDTO != null && admSignInDTO.OvertimeIn.HasValue && admSignInDTO.OvertimeOut.HasValue) { - DateTime overdate = admSignInDTO.OvertimeIn.Value; - if (admSignInDTO.OvertimeIn.Value < StratTimeOffworkEnd) + var admAskovertimeDTO = _askService.GetAskovertimeByUeridAndjiabantime(userList[a].Id, dateminkaoqin); + if (admAskovertimeDTO != null && !string.IsNullOrEmpty(admAskovertimeDTO.Id)) { - overdate = StratTimeOffworkEnd; + //濡傛灉褰撳ぉ鏄叕鍙歌姹傚姞鐝�,鍒欒嚜宸辩敵璇风殑鍔犵彮浠庝笅鐝紑濮嬬畻 + DateTime overdate = admSignInDTO.OvertimeIn.Value; + if (shifoujiaban && admSignInDTO.OvertimeIn.Value < StratTimeOffworkEnd) + { + overdate = StratTimeOffworkEnd; + } + TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate); + decimal jiabanshijian = jiaban.Hours; + if (new decimal(jiaban.Hours) > admAskovertimeDTO.Overtime.Value) + { + jiabanshijian = admAskovertimeDTO.Overtime.Value; + } + if (jiabanshijian > new decimal(shangbanshijian) / 60) + { + jiabanshijian = new decimal(shangbanshijian) / 60; + } + Jiaban += Math.Round(jiabanshijian * 60 / shangbanshijian, 2); } - TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate); - - Jiaban += Math.Round((decimal)(jiaban.Hours * 60) / (decimal)shangbanshijian, 2); } @@ -1001,7 +1490,7 @@ admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut; admAttendanceDtlDTO.Qingjia = dangtianqingjia; admAttendanceDtlDTO.Xiaojia = dangtianxiaojia; - + admAttendanceDtlDTO.Daixinjia = dangtiandaixinjia; @@ -1037,6 +1526,7 @@ admAttendanceDtlDTO.OvertimeIn = admSignInDTO.OvertimeIn; admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut; admAttendanceDtlDTO.Qingjia = dangtianqingjia; + admAttendanceDtlDTO.Daixinjia = dangtiandaixinjia; admAttendanceDtlDTO.Xiaojia = dangtianxiaojia; @@ -1088,6 +1578,7 @@ admAttendanceDTO.Qingjia = Qingjia; + admAttendanceDTO.Daixinjia = Daixinjia; admAttendanceDTO.Xiaojia = Xiaojia; admAttendanceDTO.Chidao = Chidao; admAttendanceDTO.Islock = "A"; @@ -1105,8 +1596,15 @@ //璁$畻宸ヨ祫 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(); @@ -1155,18 +1653,27 @@ searchEntity.AttendanceId = admAttendanceDTO.Id; List<AdmAttendanceDtlDTO> admAttendanceDtlDTOs = _admAttendanceDtlService.GetList(searchEntity).OrderBy(x => x.SgninDate).ToList(); + //鏌ヨ鏄惁鏈変笉绉拌亴鐨勫伐浣滆�冭瘎 + var admEvaluateDTOs = _admEvaluateService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x=>x.EvaluateValue == "03").ToList(); //褰撴湀鍑哄嫟鐜� decimal chuqinlv = Math.Round(admAttendanceDTO.Shijichuqin / admAttendanceDTO.Yingchuqin,4); //鏌ヨ褰撳墠鍛樺伐鑱屽姟鐨勫熀鏈伐璧勯厤缃� 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); //鏄惁鍦ㄨ瘯鐢ㄦ湡 @@ -1175,22 +1682,46 @@ { 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.Gongzuobutie = 0; hrSalaryDTO.Jiabangongzi = 0; decimal shiyongqichuqintianshu = 0; decimal shiyongqichuqinlv = 0; - + decimal yingfaheji = 0; + + + decimal BasicPrice = 0; + if (!decimal.TryParse(userList[i].BasicPrice, out BasicPrice)) + { + _logger.LogInformation(userList[i].UserName + ": 鍛樺伐娌℃湁缁存姢宸ヨ祫"); + continue; + } + + + if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && dateminkaoqin>= userList[i].ShiyongDate.Value && dateminkaoqin <= userList[i].ShiyongDateEnd.Value) { + hrSalaryDTO.Jibengongzi = Math.Round(hrJibengongzi.Jibengongzi.Value * chuqinlv * new decimal(0.8), 2) ; + hrSalaryDTO.Baomifei = Math.Round(hrJibengongzi.Baomifei.Value * chuqinlv * new decimal(0.8), 2) ; + decimal ShiyongPrice = 0; if (!userList[i].ShiyongPrice.HasValue) { - _logger.LogInformation(userList[i].UserName + ": 鍛樺伐澶勪簬璇曠敤鏈燂紝浣嗘槸璇曠敤鏈熷伐璧勪负绌�"); - continue; + ShiyongPrice = BasicPrice * new decimal(0.8); + _logger.LogInformation(userList[i].UserName + ": 鍛樺伐澶勪簬璇曠敤鏈燂紝浣嗘槸璇曠敤鏈熷伐璧勪负绌�,瀹氫负姝e紡宸ヨ祫鐨�0.8鍊�"); + } + else + { + ShiyongPrice = userList[i].ShiyongPrice.Value; + } + //鏌ヨ鏄惁鏈変笉绉拌亴鐨勫伐浣滆�冭瘎 + var admEvaluateDTOsshiyongqi = _admEvaluateService.GetListsalary(userList[i].Id, dateminkaoqin, userList[i].ShiyongDateEnd.Value.AddDays(1)).Where(x => x.EvaluateValue == "03").ToList(); + + //璇曠敤鏈熺殑鍑哄嫟鐜� shiyongqichuqinlv = chuqinlv; if(userList[i].ShiyongDateEnd.Value< datemaxkaoqin.AddDays(-1)) @@ -1203,7 +1734,7 @@ shiyongqichuqintianshu += (1 - admAttendanceDtlDTO.Qingjia - admAttendanceDtlDTO.Kuanggongtianshu); if (admAttendanceDtlDTO.Kuanggongtianshu > 0) { - var queqingkoukuan = Math.Round(userList[i].ShiyongPrice.Value / jiabangongzibiaozhun * admAttendanceDtlDTO.Kuanggongtianshu * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2); + var queqingkoukuan = Math.Round(ShiyongPrice / jiabangongzibiaozhun * admAttendanceDtlDTO.Kuanggongtianshu * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2); if (queqingkoukuan > 0) { hrSalaryDTO.Queqin += queqingkoukuan; @@ -1211,44 +1742,59 @@ } } } + + + + shiyongqichuqinlv = Math.Round(shiyongqichuqintianshu / admAttendanceDTO.Yingchuqin, 4); + + //宸ヤ綔璇勪环涓嶅悎鏍肩綒娆� + hrSalaryDTO.Fakuan += Math.Round(ShiyongPrice * admEvaluateDTOsshiyongqi.Count / admAttendanceDTO.Yingchuqin + BasicPrice * (admEvaluateDTOs.Count - admEvaluateDTOsshiyongqi.Count) / admAttendanceDTO.Yingchuqin, 2); + } else { if (admAttendanceDTO.Kuanggong > 0) { - var queqingkoukuan = Math.Round(userList[i].ShiyongPrice.Value / jiabangongzibiaozhun * admAttendanceDTO.Kuanggong * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2); + var queqingkoukuan = Math.Round(ShiyongPrice / jiabangongzibiaozhun * admAttendanceDTO.Kuanggong * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2); if (queqingkoukuan > 0) { hrSalaryDTO.Queqin += queqingkoukuan; } } - hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * userList[i].ShiyongPrice.Value, 2); + if (hrJibengongzi.Jiabangongzi.HasValue) + { + hrSalaryDTO.Jiabangongzi += Math.Round(admAttendanceDTO.Jiaban * hrJibengongzi.Jiabangongzi.Value, 2); //(admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * userList[i].ShiyongPrice.Value + } + + + + //宸ヤ綔璇勪环涓嶅悎鏍肩綒娆� + hrSalaryDTO.Fakuan += Math.Round(ShiyongPrice * admEvaluateDTOs.Count / admAttendanceDTO.Yingchuqin, 2); } - hrSalaryDTO.Gongzuobutie += Math.Round( (userList[i].ShiyongPrice.Value - hrJibengongzi.Baomifei.Value- hrJibengongzi.Jibengongzi.Value ) * shiyongqichuqinlv, 2); + hrSalaryDTO.Gongzuobutie += Math.Round( (ShiyongPrice - hrSalaryDTO.Baomifei.Value- hrSalaryDTO.Jibengongzi.Value ) * shiyongqichuqinlv, 2); - - //yingnashuie = userList[i].ShiyongPrice.Value - Shebaogeren - geshuiqizheng; + + } + else + { + //宸ヤ綔璇勪环缃氭 + hrSalaryDTO.Fakuan += Math.Round(BasicPrice * admEvaluateDTOs.Count/ admAttendanceDTO.Yingchuqin , 2); + } if(true) { - decimal BasicPrice = 0; - if(!decimal.TryParse(userList[i].BasicPrice,out BasicPrice)) - { - _logger.LogInformation(userList[i].UserName + ": 鍛樺伐娌℃湁缁存姢宸ヨ祫"); - continue; - } //杞鍚庣殑鍑哄嫟鐜� decimal zhuanzhengchuqinlv = chuqinlv- shiyongqichuqinlv; if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && userList[i].ShiyongDateEnd.Value >= dateminkaoqin && userList[i].ShiyongDateEnd.Value <= datemaxkaoqin.AddDays(-1)) @@ -1299,16 +1845,20 @@ hrSalaryDTO.Queqin += queqingkoukuan; } } - hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * BasicPrice, 2); + if (hrJibengongzi.Jiabangongzi.HasValue) + { + hrSalaryDTO.Jiabangongzi += Math.Round(admAttendanceDTO.Jiaban * hrJibengongzi.Jiabangongzi.Value, 2); // hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * BasicPrice, 2); + } + } - hrSalaryDTO.Gongzuobutie += Math.Round((BasicPrice - hrJibengongzi.Baomifei.Value - hrJibengongzi.Jibengongzi.Value) * zhuanzhengchuqinlv, 2); + hrSalaryDTO.Gongzuobutie += Math.Round((BasicPrice - hrSalaryDTO.Baomifei.Value - hrSalaryDTO.Jibengongzi.Value) * zhuanzhengchuqinlv, 2); - //yingnashuie = BasicPrice - Shebaogeren - geshuiqizheng; + } @@ -1538,9 +2088,17 @@ hrSalaryDTO.Dianhuafei = SimCost.bill_amount; } + if(admAttendanceDTO.Shijichuqin>=admAttendanceDTO.Yingchuqin + && hrSalaryDTO.Queqin <=0) + { + hrSalaryDTO.Quanqinjiang = hrJibengongzi.Quanqingjiang; + } + else + { + hrSalaryDTO.Quanqinjiang = 0; + } - - hrSalaryDTO.Quanqinjiang = hrJibengongzi.Quanqingjiang; + if ("A".Equals(userList[i].Istravelsubsidy)) { hrSalaryDTO.Jiaotngbutie = hrJibengongzi.Jiaotongbutie; @@ -1552,7 +2110,6 @@ - hrSalaryDTO.Fakuan = 0; //宸ヤ綔瀹夋帓缃氭 List<AdmMemoBookDTO> admMemoBookDTOs = _DailyManageService.GetRemindsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin,"2"); if (admMemoBookDTOs.Count > 0) @@ -1592,6 +2149,77 @@ //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") + { + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while(kaishijisuan < datemaxkaoqin) + { + try + { + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var caigougonggaoDTOsri = caigougonggaoDTOsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = caigougonggaoDTOsri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); + } + //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); @@ -1605,16 +2233,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = projectDTOsyue.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var projectDTOri = projectDTOsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = projectDTOri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = projectDTOsyue.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -1636,8 +2291,12 @@ } #endregion + + + + #region 瀹㈡埛璧勬枡褰曞叆 - + var _intentionCustomerDTOs = _intentionCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); if (_intentionCustomerDTOs!=null && _intentionCustomerDTOs.Count > 0) { @@ -1649,16 +2308,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = _intentionCustomerDTOs.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var _intentionCustomerDTOsri = _intentionCustomerDTOs.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = _intentionCustomerDTOsri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = _intentionCustomerDTOs.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -1695,16 +2381,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = groupTopicDTOs.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var groupTopicDTOsri = groupTopicDTOs.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = groupTopicDTOsri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = groupTopicDTOs.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -1739,16 +2452,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = intentionVisitDTOs.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var intentionVisitDTOsri = intentionVisitDTOs.Where(x => x.Vistime >= kaishijisuan && x.Vistime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = intentionVisitDTOsri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = intentionVisitDTOs.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -1783,16 +2523,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = duanxinsyue.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var duanxinsri = duanxinsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = duanxinsri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = duanxinsyue.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -1814,6 +2581,80 @@ } #endregion + + #region 娣诲姞寰俊瀹㈡埛 + TongjiBaoBiaoDTO weixnDTO = new TongjiBaoBiaoDTO(); + weixnDTO.gongzuo = "娣诲姞寰俊瀹㈡埛"; + //鏈湀鏁伴噺 + var cooperweixinDTOsyue = _cooperatecustomCustomerService.GetListsalaryweixin(userList[i].Id, dateminkaoqin, datemaxkaoqin); + var intentionweixinDTOsyue = _intentionCustomerService.GetListsalaryweixin(userList[i].Id, dateminkaoqin, datemaxkaoqin); + var jijianiweixn = fiPiecerateDTOs.Where(x => x.Project == "娣诲姞寰俊瀹㈡埛").FirstOrDefault(); + if (jijianiweixn != null) + { + var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianiweixn.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); + if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue) + { + if (jixiaotichengfangan.Renwustandard == "01") + { + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) + { + try + { + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperweixinDTOsri = cooperweixinDTOsyue.Where(x => x.Weixintime >= kaishijisuan && x.Weixintime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var intentionweixinDTOsri = intentionweixinDTOsyue.Where(x => x.Weixintime >= kaishijisuan && x.Weixintime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = cooperweixinDTOsri.Count + intentionweixinDTOsri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); + } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = cooperweixinDTOsyue.Count+ intentionweixinDTOsyue.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 = cooperweixinDTOsyue.Count + intentionweixinDTOsyue.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + + #endregion + #region 缇ゅ彂閭欢 var youjiansyue = _cusFangwenjiluService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.Fasongfangshi == "02").ToList(); @@ -1827,16 +2668,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = youjiansyue.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var youjiansri = youjiansyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = youjiansri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = youjiansyue.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -1871,16 +2739,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = yixiangsyue.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var yixiangsri = yixiangsyue.Where(x => x.Yixiangtime >= kaishijisuan && x.Yixiangtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = yixiangsri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = yixiangsyue.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -1960,16 +2855,44 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = zhucehuiyuansyue.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var zhucehuiyuansyueri = zhucehuiyuansyue.Where(x => x.CreatTime >= kaishijisuan && x.CreatTime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = zhucehuiyuansyueri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = zhucehuiyuansyue.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -2005,16 +2928,44 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = qianyueDTOsyue.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var qianyueDTOsri = qianyueDTOsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = qianyueDTOsri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = qianyueDTOsyue.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -2050,16 +3001,44 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = intentionVisitDTOsshangmen.Count + cooperVisitDTOs.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperVisitDTOsri = cooperVisitDTOs.Where(x => x.Vistime >= kaishijisuan && x.Vistime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var intentionVisitDTOsshangmenri = intentionVisitDTOsshangmen.Where(x => x.Vistime >= kaishijisuan && x.Vistime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = cooperVisitDTOsri.Count + intentionVisitDTOsshangmenri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = intentionVisitDTOsshangmen.Count + cooperVisitDTOs.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -2073,6 +3052,42 @@ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); } + } + } + + else if (jixiaotichengfangan.Renwustandard == "05") + { + + var cooperVisitDTOszhou = _cooperVisitService.GetListsalary(userList[i].Id, dateminkaoqin.AddMonths(-1), datemaxkaoqin).Where(x => x.VisType == "02").ToList(); + var intentionVisitDTOsshangmenzhou = _intentionVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.VisType == "02").ToList(); + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) + { + var zhoukaishidate = CalculateFirstDateOfWeek(kaishijisuan); + var zhoujieshudate = CalculateLastDateOfWeek(kaishijisuan); + + try + { + if(zhoujieshudate < datemaxkaoqin) + { + var cooperVisitDTOsri = cooperVisitDTOszhou.Where(x => x.Vistime >= zhoukaishidate && x.Vistime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var intentionVisitDTOsshangmenri = intentionVisitDTOsshangmenzhou.Where(x => x.Vistime >= zhoukaishidate && x.Vistime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = cooperVisitDTOsri.Count + intentionVisitDTOsshangmenri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = zhoujieshudate.AddDays(1); } } } @@ -2100,16 +3115,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = dtChannelArticleNewsDTOs.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var dtChannelArticleNewsDTOsri = dtChannelArticleNewsDTOs.Where(x => x.AddTime >= kaishijisuan && x.AddTime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = dtChannelArticleNewsDTOsri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = dtChannelArticleNewsDTOs.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -2150,16 +3192,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = dianxinanDTOs.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var dianxinanDTOsri = dianxinanDTOs.Where(x => x.AddTime >= kaishijisuan && x.AddTime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = dianxinanDTOsri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = dianxinanDTOs.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -2200,16 +3269,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = zhengcaizhishiDTOs.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var zhengcaizhishiDTOsri = zhengcaizhishiDTOs.Where(x => x.AddTime >= kaishijisuan && x.AddTime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = zhengcaizhishiDTOsri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = zhengcaizhishiDTOs.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -2244,16 +3340,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = xinzengwendaDTOsyue.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var xinzengwendaDTOsri = xinzengwendaDTOsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = xinzengwendaDTOsri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = xinzengwendaDTOsyue.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -2288,16 +3411,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = shenhewendaDTOsyue.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var shenhewendaDTOsri = shenhewendaDTOsyue.Where(x => x.Shenhetime >= kaishijisuan && x.Shenhetime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = shenhewendaDTOsri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = shenhewendaDTOsyue.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -2379,6 +3529,7 @@ #endregion //鍚堜綔瀹㈡埛璁㈠崟 List<CooperOrderDTO> cooperOrderDTOs = _cooperOrderService.GetList(userList[i].Id, dateminkaoqin, datemaxkaoqin); + List<CooperOrderDTO> cooperOrderDTOszhouyue = _cooperOrderService.GetList(userList[i].Id, dateminkaoqin.AddMinutes(-1), datemaxkaoqin); #region 鍥句功閿�鍞� var cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "01").ToList(); @@ -2390,17 +3541,44 @@ { if(jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if(jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = cooperOrdertushu.Count - renwujishu ; - if (youxiaojijian>0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushusri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = cooperOrdertushusri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } - + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } - + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + // if(jixiaotichengfangan.Tichengstandard == "01") + // { + // decimal youxiaojijian = cooperOrdertushu.Count - renwujishu ; + // if (youxiaojijian>0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + // } + } else if (jixiaotichengfangan.Renwustandard == "02") { @@ -2417,19 +3595,49 @@ } else if (jixiaotichengfangan.Renwustandard == "03") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") { - var dingdanjine = cooperOrdertushu.Sum(x => x.Money); - var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; - //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); - //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - - decimal youxiaojijian = dingdanjinezhenshi - renwujishu; - if (youxiaojijian > 0) + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian* new decimal(0.01), 2); + try + { + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushusri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var dingdanjine = cooperOrdertushusri.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + if (jixiaotichengfangan.Tichengstandard == "02") + { + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + //decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + //if (youxiaojijian > 0) + //{ + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian* new decimal(0.01), 2); + //} } } @@ -2448,6 +3656,44 @@ { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); } + } + } + else if (jixiaotichengfangan.Renwustandard == "06") + { + + var cooperOrderDTOszhou = cooperOrderDTOszhouyue.Where(x => x.OrderType == "01").ToList(); + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) + { + var zhoukaishidate = CalculateFirstDateOfWeek(kaishijisuan); + var zhoujieshudate = CalculateLastDateOfWeek(kaishijisuan); + + try + { + if (zhoujieshudate < datemaxkaoqin) + { + var cooperOrdertushusri = cooperOrderDTOszhou.Where(x => x.Createtime >= zhoukaishidate && x.Createtime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var dingdanjine = cooperOrdertushusri.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + if (jixiaotichengfangan.Tichengstandard == "02") + { + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + + + + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = zhoujieshudate.AddDays(1); } } } @@ -2464,16 +3710,44 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -2491,19 +3765,49 @@ } else if (jixiaotichengfangan.Renwustandard == "03") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "02") { - var dingdanjine = cooperOrdertushu.Sum(x => x.Money); - var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; - //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); - //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - - decimal youxiaojijian = dingdanjinezhenshi - renwujishu; - if (youxiaojijian > 0) + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + try + { + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var dingdanjine = cooperOrdertushuri.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + if (jixiaotichengfangan.Tichengstandard == "02") + { + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + //decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + //if (youxiaojijian > 0) + //{ + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + //} } } @@ -2522,6 +3826,44 @@ { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); } + } + } + else if (jixiaotichengfangan.Renwustandard == "06") + { + + var cooperOrderDTOszhou = cooperOrderDTOszhouyue.Where(x => x.OrderType == "02").ToList(); + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) + { + var zhoukaishidate = CalculateFirstDateOfWeek(kaishijisuan); + var zhoujieshudate = CalculateLastDateOfWeek(kaishijisuan); + + try + { + if (zhoujieshudate < datemaxkaoqin) + { + var cooperOrdertushusri = cooperOrderDTOszhou.Where(x => x.Createtime >= zhoukaishidate && x.Createtime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var dingdanjine = cooperOrdertushusri.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + if (jixiaotichengfangan.Tichengstandard == "02") + { + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + + + + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = zhoujieshudate.AddDays(1); } } } @@ -2539,16 +3881,44 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -2566,19 +3936,49 @@ } else if (jixiaotichengfangan.Renwustandard == "03") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; if (jixiaotichengfangan.Tichengstandard == "02") { - var dingdanjine = cooperOrdertushu.Sum(x => x.Money); - var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; - //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); - //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - - decimal youxiaojijian = dingdanjinezhenshi - renwujishu; - if (youxiaojijian > 0) + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + try + { + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var dingdanjine = cooperOrdertushuri.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + if (jixiaotichengfangan.Tichengstandard == "02") + { + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + + //var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + //decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + //if (youxiaojijian > 0) + //{ + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + //} } } @@ -2599,6 +3999,44 @@ } } } + else if (jixiaotichengfangan.Renwustandard == "06") + { + + var cooperOrderDTOszhou = cooperOrderDTOszhouyue.Where(x => x.OrderType == "03").ToList(); + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) + { + var zhoukaishidate = CalculateFirstDateOfWeek(kaishijisuan); + var zhoujieshudate = CalculateLastDateOfWeek(kaishijisuan); + + try + { + if (zhoujieshudate < datemaxkaoqin) + { + var cooperOrdertushusri = cooperOrderDTOszhou.Where(x => x.Createtime >= zhoukaishidate && x.Createtime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var dingdanjine = cooperOrdertushusri.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + if (jixiaotichengfangan.Tichengstandard == "02") + { + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + + + + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = zhoujieshudate.AddDays(1); + } + } } } @@ -2614,16 +4052,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -2641,19 +4106,49 @@ } else if (jixiaotichengfangan.Renwustandard == "03") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; if (jixiaotichengfangan.Tichengstandard == "02") { - var dingdanjine = cooperOrdertushu.Sum(x => x.Money); - var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; - //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); - //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - - decimal youxiaojijian = dingdanjinezhenshi - renwujishu; - if (youxiaojijian > 0) + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + try + { + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var dingdanjine = cooperOrdertushuri.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + if (jixiaotichengfangan.Tichengstandard == "02") + { + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + + //var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + //decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + //if (youxiaojijian > 0) + //{ + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + //} } } @@ -2689,16 +4184,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushusri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = cooperOrdertushusri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -2731,19 +4253,48 @@ } else if (jixiaotichengfangan.Renwustandard == "03") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; if (jixiaotichengfangan.Tichengstandard == "02") { - var dingdanjine = cooperOrdertushu.Sum(x => x.Money); - var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; - //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); - //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - - decimal youxiaojijian = dingdanjinezhenshi - renwujishu; - if (youxiaojijian > 0) + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + try + { + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var dingdanjine = cooperOrdertushuri.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + if (jixiaotichengfangan.Tichengstandard == "02") + { + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + //decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + //if (youxiaojijian > 0) + //{ + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + //} } } @@ -2764,6 +4315,47 @@ } } } + + else if (jixiaotichengfangan.Renwustandard == "05") + { + + var cooperOrderDTOszhou = cooperOrderDTOszhouyue.Where(x => x.OrderType == "05").OrderBy(x => x.Createtime).ToList(); + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) + { + var zhoukaishidate = CalculateFirstDateOfWeek(kaishijisuan); + var zhoujieshudate = CalculateLastDateOfWeek(kaishijisuan); + + try + { + if (zhoujieshudate < datemaxkaoqin) + { + var cooperOrdertushusri = cooperOrderDTOszhou.Where(x => x.Createtime >= zhoukaishidate && x.Createtime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + //if (jixiaotichengfangan.Tichengstandard == "02") + if (cooperOrdertushusri.Count > renwujishu) + { + List<CooperOrderDTO> cooperOrdertushuyouxiao = new List<CooperOrderDTO>(); + for (int j = Convert.ToInt32(renwujishu); j < cooperOrdertushusri.Count; j++) + { + cooperOrdertushuyouxiao.Add(cooperOrdertushusri[j]); + } + var dingdanjine = cooperOrdertushuyouxiao.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * dingdanjinezhenshi * new decimal(0.01), 2); + } + + + + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = zhoujieshudate.AddDays(1); + } + } } } @@ -2779,14 +4371,41 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; if (jixiaotichengfangan.Tichengstandard == "01") { - decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; - if (youxiaojijian > 0) + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + try + { + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; + //if (youxiaojijian > 0) + //{ + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + //} } @@ -2806,19 +4425,48 @@ } else if (jixiaotichengfangan.Renwustandard == "03") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; if (jixiaotichengfangan.Tichengstandard == "02") { - var dingdanjine = cooperOrdertushu.Sum(x => x.Money); - var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; - //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); - //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - - decimal youxiaojijian = dingdanjinezhenshi - renwujishu; - if (youxiaojijian > 0) + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + try + { + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var dingdanjine = cooperOrdertushuri.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + if (jixiaotichengfangan.Tichengstandard == "02") + { + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + //decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + //if (youxiaojijian > 0) + //{ + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + //} } } @@ -2854,14 +4502,42 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; if (jixiaotichengfangan.Tichengstandard == "01") { - decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; - if (youxiaojijian > 0) + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + try + { + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + + //decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; + //if (youxiaojijian > 0) + //{ + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + //} } @@ -2881,19 +4557,50 @@ } else if (jixiaotichengfangan.Renwustandard == "03") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; if (jixiaotichengfangan.Tichengstandard == "02") { - var dingdanjine = cooperOrdertushu.Sum(x => x.Money); - var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; - //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); - //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - - decimal youxiaojijian = dingdanjinezhenshi - renwujishu; - if (youxiaojijian > 0) + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + try + { + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var dingdanjine = cooperOrdertushuri.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + if (jixiaotichengfangan.Tichengstandard == "02") + { + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + + + //var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + //decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + //if (youxiaojijian > 0) + //{ + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + //} } } @@ -2929,16 +4636,44 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Wangongtime >= kaishijisuan && x.Wangongtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -2956,19 +4691,48 @@ } else if (jixiaotichengfangan.Renwustandard == "03") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; if (jixiaotichengfangan.Tichengstandard == "02") { - var dingdanjine = cooperOrdertushu.Sum(x => x.Money); - var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; - //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); - //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - - decimal youxiaojijian = dingdanjinezhenshi - renwujishu; - if (youxiaojijian > 0) + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + try + { + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Wangongtime >= kaishijisuan && x.Wangongtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var dingdanjine = cooperOrdertushuri.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + if (jixiaotichengfangan.Tichengstandard == "02") + { + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + //decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + //if (youxiaojijian > 0) + //{ + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + //} } } @@ -3004,16 +4768,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -3031,19 +4822,48 @@ } else if (jixiaotichengfangan.Renwustandard == "03") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; if (jixiaotichengfangan.Tichengstandard == "02") { - var dingdanjine = cooperOrdertushu.Sum(x => x.Money); - var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; - //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); - //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - - decimal youxiaojijian = dingdanjinezhenshi - renwujishu; - if (youxiaojijian > 0) + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + try + { + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var dingdanjine = cooperOrdertushuri.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + if (jixiaotichengfangan.Tichengstandard == "02") + { + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + //decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + //if (youxiaojijian > 0) + //{ + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + //} } } @@ -3079,16 +4899,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -3106,19 +4953,48 @@ } else if (jixiaotichengfangan.Renwustandard == "03") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; if (jixiaotichengfangan.Tichengstandard == "02") { - var dingdanjine = cooperOrdertushu.Sum(x => x.Money); - var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; - //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); - //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - - decimal youxiaojijian = dingdanjinezhenshi - renwujishu; - if (youxiaojijian > 0) + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + try + { + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var dingdanjine = cooperOrdertushuri.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + if (jixiaotichengfangan.Tichengstandard == "02") + { + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + //decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + //if (youxiaojijian > 0) + //{ + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + //} } } @@ -3154,16 +5030,43 @@ { if (jixiaotichengfangan.Renwustandard == "01") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "01") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "01") + //{ + // decimal youxiaojijian = cooperOrdertushu.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + //} } else if (jixiaotichengfangan.Renwustandard == "02") @@ -3181,20 +5084,50 @@ } else if (jixiaotichengfangan.Renwustandard == "03") { - decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; - if (jixiaotichengfangan.Tichengstandard == "02") + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) { - var dingdanjine = cooperOrdertushu.Sum(x => x.Money); - var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; - //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); - //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - - decimal youxiaojijian = dingdanjinezhenshi - renwujishu; - if (youxiaojijian > 0) + try { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + var dingdanjine = cooperOrdertushuri.Sum(x => x.Money); + var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + if (jixiaotichengfangan.Tichengstandard == "02") + { + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + } + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); } + + //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + //if (jixiaotichengfangan.Tichengstandard == "02") + //{ + // var dingdanjine = cooperOrdertushu.Sum(x => x.Money); + // var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0; + // //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + // //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; + + // decimal youxiaojijian = dingdanjinezhenshi - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + // } + //} } else if (jixiaotichengfangan.Renwustandard == "04") @@ -3219,9 +5152,105 @@ #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") + { + DateTime kaishijisuan = new DateTime(Year, Month, 1); + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + while (kaishijisuan < datemaxkaoqin) + { + try + { + var gongzuoshijian = shifougongzuori(kaishijisuan); + if (gongzuoshijian) + { + var zhuanjialuruDTOsri = zhuanjialuruDTOsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1)); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = zhuanjialuruDTOsri.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + } + } + + } + catch (Exception ex) + { + _logger.LogInformation(ex.ToString()); + } + kaishijisuan = kaishijisuan.AddDays(1); + } + + //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 + } + //璇曠敤鏈熺哗鏁堜负0.8鍊� + if (hrSalaryDTO.Jixiaoticheng.HasValue) + { + if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && dateminkaoqin >= userList[i].ShiyongDate.Value && dateminkaoqin <= userList[i].ShiyongDateEnd.Value) + { + if (userList[i].ShiyongDateEnd.Value < datemaxkaoqin.AddDays(-1)) + { + var a = userList[i].ShiyongDateEnd.Value.Day; + var b = datemaxkaoqin.AddDays(-1).Day; + var shiyongqijixiao = new decimal(a) / new decimal(b) * hrSalaryDTO.Jixiaoticheng.Value * new decimal(0.8); + var zhengshijixiao =(new decimal(1) - new decimal(a) / new decimal(b)) * hrSalaryDTO.Jixiaoticheng.Value; + hrSalaryDTO.Jixiaoticheng = Math.Round(shiyongqijixiao + zhengshijixiao, 2); + + } + else + { + hrSalaryDTO.Jixiaoticheng = Math.Round(hrSalaryDTO.Jixiaoticheng.Value * new decimal(0.8), 2); + } + } + } + hrSalaryDTO.Daozhanggongzi = 0; @@ -3245,7 +5274,7 @@ decimal jiucuo = hrSalaryDTO.Jiucuo.HasValue ? hrSalaryDTO.Jiucuo.Value : 0; //璁$畻淇濆簳骞磋柂 - if (userList[i].Indate.HasValue && userList[i].miniyearsalary.HasValue) + if (userList[i].Indate.HasValue && userList[i].miniyearsalary.HasValue && userList[i].miniyearsalary.Value>0) { DateTime jixinue = userList[i].Indate.Value; if (userList[i].Indate.Value.Day != 1) @@ -3282,21 +5311,90 @@ 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; @@ -3307,32 +5405,53 @@ 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 { @@ -3340,7 +5459,7 @@ } 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; @@ -3349,7 +5468,7 @@ } 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; @@ -3357,7 +5476,7 @@ } 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; @@ -3365,7 +5484,7 @@ } 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; @@ -3373,35 +5492,39 @@ } 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) - { - 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.Daozhanggongzi- hrSalaryDTO.Yufagongzi); - } + hrSalaryDTO.RecStatus = "A"; hrSalaryDTO.Islock = "D"; hrSalaryDTO.Creater = "1"; @@ -3448,6 +5571,8 @@ var jiejiari = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiejiari").ToList(); var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList(); + + var jiabanri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiabanri").ToList(); //姣忓ぉ鐨勮�冨嫟鏃堕棿鐐� string[] WorkingStart = admAttendanceRuleDTO.WorkingStart.Split('.'); @@ -3557,9 +5682,11 @@ } else { + //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� - if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) + if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date) + || jiabanri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) { if (StratTime <= StratTimeWorkingStart) { @@ -3655,7 +5782,8 @@ { //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� - if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date)) + if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date) + || jiabanri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date)) { if (EndTime >= EndTimeOffworkEnd) { @@ -3717,7 +5845,8 @@ { //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� - if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) + if (tiaoxiuri.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueEnd >= dateTimenow.Date) + || jiabanri.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueEnd >= dateTimenow.Date)) { LavehTime += shangbanshijian; } @@ -3746,7 +5875,8 @@ else { //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� - if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) + if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date) + || jiabanri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) { LavehTime -= shangbanshijian; } -- Gitblit v1.9.1