From 0fdfaa5b08721e14c41cd89f63bbf2b7ac84691f Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期二, 14 二月 2023 09:01:22 +0800 Subject: [PATCH] 提交 --- zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs | 572 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 456 insertions(+), 116 deletions(-) diff --git a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs index 0b029b5..2574791 100644 --- a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs +++ b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs @@ -50,6 +50,9 @@ 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) @@ -83,6 +86,9 @@ _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) { @@ -132,6 +138,15 @@ { jisuangonglinggongzi(); } + + + _logger.LogInformation("鎶婅秴杩�90澶╄繕娌℃湁杞寲鐨勬。妗堝鎴风殑涓氬姟缁忕悊褰掍负鏃�"); + this.ywjlguiling(); + _logger.LogInformation("鎶婅秴杩�90澶╄繕娌℃湁杞寲鐨勬。妗堝鎴风殑涓氬姟缁忕悊褰掍负鏃犳墽琛岀粨鏉�"); + + _logger.LogInformation("鎶婁細鍛樼郴缁熷拰oa绯荤粺鎵嬫満鍙风浉鍚岀殑瀹㈡埛鍏宠仈璧锋潵"); + this.huiyuanguanlian(); + _logger.LogInformation("鎶婁細鍛樼郴缁熷拰oa绯荤粺鎵嬫満鍙风浉鍚岀殑瀹㈡埛鍏宠仈璧锋潵鎵ц缁撴潫"); } catch (Exception ex) { @@ -205,6 +220,65 @@ return diwutian; } + + //鎶婅秴杩�90澶╄繕娌℃湁杞寲鐨勬。妗堝鎴风殑涓氬姟缁忕悊褰掍负鏃� + public void ywjlguiling() + { + var intentionCustomerDTOs = _intentionCustomerService.GetList().Where(x=>x.Ywjltime < DateTime.Now.AddDays(-90)).ToList(); + + foreach(var intentionCustomerDTO in intentionCustomerDTOs) + { + intentionCustomerDTO.Ywjl = null; + intentionCustomerDTO.Ywjltime = null; + _intentionCustomerService.save(intentionCustomerDTO); + } + } + + + //鎶婁細鍛樼郴缁熷拰oa绯荤粺鎵嬫満鍙风浉鍚岀殑瀹㈡埛鍏宠仈璧锋潵 + public void huiyuanguanlian() + { + var cooperatecustomCustomers = _context.CooperatecustomCustomers.Where(x => x.RecStatus == "A" && x.HuiyuanId == null).ToList(); + var frameworkUsers = _zcUsercontext.FrameworkUsers.Where(x => x.IsValid == true).ToList(); + if (cooperatecustomCustomers != null && cooperatecustomCustomers.Count > 0) + { + foreach (var cooperatecustomCustomer in cooperatecustomCustomers) + { + if (!string.IsNullOrEmpty(cooperatecustomCustomer.Tel)) + { + var frameworkUser = frameworkUsers.Where(x => x.Itcode == cooperatecustomCustomer.Tel).FirstOrDefault(); + if (frameworkUser != null) + { + cooperatecustomCustomer.HuiyuanId = frameworkUser.Id.ToString(); + } + } + + } + _context.SaveChanges(); + } + + + + var intentionCustomers = _context.IntentionCustomers.Where(x => x.RecStatus == "A" && x.HuiyuanId == null).ToList(); + if (intentionCustomers != null && intentionCustomers.Count > 0) + { + foreach (var intentionCustomer in intentionCustomers) + { + if (!string.IsNullOrEmpty(intentionCustomer.Tel)) + { + var frameworkUser = frameworkUsers.Where(x => x.Itcode == intentionCustomer.Tel).FirstOrDefault(); + if (frameworkUser != null) + { + intentionCustomer.HuiyuanId = frameworkUser.Id.ToString(); + } + } + + } + _context.SaveChanges(); + } + + } + //璁$畻鑰冨嫟 public void jisuankaoqin() { @@ -236,14 +310,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); @@ -261,6 +341,7 @@ admAttendanceDTO.Qingjia = 0; admAttendanceDTO.Jiaban = 0; admAttendanceDTO.Xiaojia = 0; + admAttendanceDTO.Daixinjia = 0; admAttendanceDTO.Chidao = 0; admAttendanceDTO.Zaotui = 0; admAttendanceDTO.Kuanggong = 0; @@ -286,6 +367,7 @@ decimal Zaotui = 0; decimal Kuanggong = 0; decimal Xiaojia = 0; + decimal Daixinjia = 0; while (dateminkaoqin < datemaxkaoqin) { @@ -339,7 +421,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(); @@ -373,6 +455,8 @@ decimal Kuanggongtianshu = 0; decimal dangtianqingjia = 0; decimal dangtianxiaojia = 0; + decimal dangtiandaixinjia = 0; + string Iswork = "D"; if (iswork) { @@ -438,17 +522,22 @@ } 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) + if (endttime >= StratTimeWorkingEnd && starttime.HasValue) { break; } @@ -559,17 +648,22 @@ } 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) + if (endttime >= StratTimeOffworkEnd && starttime.HasValue) { break; } @@ -627,7 +721,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) { @@ -688,6 +782,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); @@ -764,10 +915,10 @@ { jiabanshijian = admAskovertimeDTO.Overtime.Value; } - - - - + if (jiabanshijian > new decimal(shangbanshijian) / 60) + { + jiabanshijian = new decimal(shangbanshijian) /60; + } Jiaban += Math.Round(jiabanshijian * 60 / shangbanshijian, 2); } @@ -839,14 +990,19 @@ } 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; } } } @@ -956,14 +1112,19 @@ } 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; } } } @@ -1020,7 +1181,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) { @@ -1081,6 +1242,64 @@ } 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); @@ -1161,10 +1380,10 @@ { jiabanshijian = admAskovertimeDTO.Overtime.Value; } - - - - + if (jiabanshijian > new decimal(shangbanshijian) / 60) + { + jiabanshijian = new decimal(shangbanshijian) / 60; + } Jiaban += Math.Round(jiabanshijian * 60 / shangbanshijian, 2); } } @@ -1192,7 +1411,7 @@ admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut; admAttendanceDtlDTO.Qingjia = dangtianqingjia; admAttendanceDtlDTO.Xiaojia = dangtianxiaojia; - + admAttendanceDtlDTO.Daixinjia = dangtiandaixinjia; @@ -1228,6 +1447,7 @@ admAttendanceDtlDTO.OvertimeIn = admSignInDTO.OvertimeIn; admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut; admAttendanceDtlDTO.Qingjia = dangtianqingjia; + admAttendanceDtlDTO.Daixinjia = dangtiandaixinjia; admAttendanceDtlDTO.Xiaojia = dangtianxiaojia; @@ -1279,6 +1499,7 @@ admAttendanceDTO.Qingjia = Qingjia; + admAttendanceDTO.Daixinjia = Daixinjia; admAttendanceDTO.Xiaojia = Xiaojia; admAttendanceDTO.Chidao = Chidao; admAttendanceDTO.Islock = "A"; @@ -1296,8 +1517,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(); @@ -1354,12 +1582,19 @@ //鏌ヨ褰撳墠鍛樺伐鑱屽姟鐨勫熀鏈伐璧勯厤缃� 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); //鏄惁鍦ㄨ瘯鐢ㄦ湡 @@ -1368,8 +1603,8 @@ { 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; @@ -1377,7 +1612,7 @@ hrSalaryDTO.Jiabangongzi = 0; decimal shiyongqichuqintianshu = 0; decimal shiyongqichuqinlv = 0; - + decimal yingfaheji = 0; decimal BasicPrice = 0; @@ -1453,7 +1688,7 @@ - //yingnashuie = userList[i].ShiyongPrice.Value - Shebaogeren - geshuiqizheng; + @@ -1527,7 +1762,7 @@ - //yingnashuie = BasicPrice - Shebaogeren - geshuiqizheng; + } @@ -1818,6 +2053,50 @@ //var feijijiandengji = fiPiecerateDTOs.Where(x => x.Standard == "A"); //var jijiandengji = fiPiecerateDTOs.Where(x => x.Standard == "A"); + #region 閲囪喘鍏憡褰曞叆 + + var caigougonggaoDTOsyue = _projectService.GetcaigougonggaoListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); + if (caigougonggaoDTOsyue != null && caigougonggaoDTOsyue.Count > 0) + { + var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "閲囪喘鍏憡褰曞叆").FirstOrDefault(); + if (jijianidddd != null) + { + var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); + if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue) + { + if (jixiaotichengfangan.Renwustandard == "01") + { + decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = caigougonggaoDTOsyue.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + + } + else if (jixiaotichengfangan.Renwustandard == "02") + { + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = caigougonggaoDTOsyue.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + } + #endregion + #region 閲囪喘椤圭洰褰曞叆 var projectDTOsyue = _projectService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); @@ -1862,8 +2141,12 @@ } #endregion + + + + #region 瀹㈡埛璧勬枡褰曞叆 - + var _intentionCustomerDTOs = _intentionCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); if (_intentionCustomerDTOs!=null && _intentionCustomerDTOs.Count > 0) { @@ -3445,6 +3728,53 @@ #endregion + + + + #region 涓撳褰曞叆 + + var zhuanjialuruDTOsyue = _expertService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); + if (zhuanjialuruDTOsyue != null && zhuanjialuruDTOsyue.Count > 0) + { + var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "涓撳褰曞叆").FirstOrDefault(); + if (jijianidddd != null) + { + var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); + if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue) + { + if (jixiaotichengfangan.Renwustandard == "01") + { + decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = zhuanjialuruDTOsyue.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + + } + else if (jixiaotichengfangan.Renwustandard == "02") + { + decimal renwujishu = jixiaotichengfangan.Renwu.Value; + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = zhuanjialuruDTOsyue.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + } + #endregion + } @@ -3508,21 +3838,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; @@ -3646,72 +4045,13 @@ } decimal geshui = hrSalaryDTO.Geshui.HasValue ? hrSalaryDTO.Geshui.Value : 0; - hrSalaryDTO.Daozhanggongzi += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou - geshui + ((dianhuabutie - dianhuafei) <= 0 ? (dianhuabutie - dianhuafei) : 0) - queqin - fakuan - peichang + jiucuo; + + + hrSalaryDTO.Daozhanggongzi = yingfaheji - geshui; - hrSalaryDTO.Yufagongzi = userList[i].advancewages; - - if (userList[i].advancewages.HasValue && userList[i].advancewages.Value>0) - { - hrSalaryDTO.Yufagongziheji = 0; - HrSalaryDTO hrSalaryDTOlast = _hrSalaryService.GetListByUser(userList[i].Id, dateminkaoqin.AddMonths(-1).Year, dateminkaoqin.AddMonths(-1).Month); - if(hrSalaryDTOlast!=null && hrSalaryDTOlast.Yufagongziheji.HasValue) - { - hrSalaryDTO.Yufagongziheji = hrSalaryDTOlast.Yufagongziheji; - } - - if (hrSalaryDTO.Yufagongziheji > 0) - { - if (hrSalaryDTO.Daozhanggongzi < hrSalaryDTO.Yufagongzi) - { - hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi); - hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi; - } - else if (hrSalaryDTO.Daozhanggongzi > hrSalaryDTO.Yufagongzi) - { - if(hrSalaryDTO.Yufagongziheji>= (hrSalaryDTO.Daozhanggongzi - hrSalaryDTO.Yufagongzi)) - { - hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi); - hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi; - } - else - { - hrSalaryDTO.Daozhanggongzi -= hrSalaryDTO.Yufagongziheji; - hrSalaryDTO.Yufagongziheji = 0; - } - - - } - - } - else if (hrSalaryDTO.Yufagongziheji == 0) - { - hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi); - if (hrSalaryDTO.Daozhanggongzi < hrSalaryDTO.Yufagongzi) - { - hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi; - } - } - else if (hrSalaryDTO.Yufagongziheji < 0) - { - if (hrSalaryDTO.Daozhanggongzi < hrSalaryDTO.Yufagongzi) - { - if (-hrSalaryDTO.Yufagongziheji >= (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi)) - { - hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi); - hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi; - } - else - { - hrSalaryDTO.Daozhanggongzi += hrSalaryDTO.Yufagongziheji; - hrSalaryDTO.Yufagongziheji = 0; - } - } - - } - - } + hrSalaryDTO.RecStatus = "A"; hrSalaryDTO.Islock = "D"; hrSalaryDTO.Creater = "1"; -- Gitblit v1.9.1