From 072169e3c5446f94e2cf4e570e5c7952bb5b15b9 Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期二, 27 七月 2021 14:47:44 +0800 Subject: [PATCH] 今日开发 考勤规则里增加 公司安排加班 调整请假时间计算 加班日考勤计算 --- zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs | 1594 ++++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 1,243 insertions(+), 351 deletions(-) diff --git a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs index fcac78b..1444423 100644 --- a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs +++ b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs @@ -1,12 +1,17 @@ 锘縰sing DTO; using IServices; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.IO; using System.Linq; +using System.Net.Http; +using System.Net.Http.Headers; using System.Threading; using System.Threading.Tasks; using System.Transactions; @@ -37,6 +42,13 @@ private readonly ICooperVisitService _cooperVisitService; private readonly IIntentionCustomerService _intentionCustomerService; private readonly IIntentionVisitService _intentionVisitService; + private readonly IProjectService _projectService; + private readonly ICusFangwenjiluService _cusFangwenjiluService; + private readonly ILiaotianService _liaotianService; + private readonly IDtChannelArticleNewsService _dtChannelArticleNewsService; + private readonly IConfiguration _configuration; + private readonly IHttpClientFactory _clientFactory; + private readonly IAskService _askService; private readonly decimal jiabangongzibiaozhun = new decimal(21.5); public TimedBackgroundService(ILogger<TimedBackgroundService> logger, IServiceScopeFactory factory) @@ -61,6 +73,14 @@ _cooperVisitService = factory.CreateScope().ServiceProvider.GetRequiredService<ICooperVisitService>(); _intentionCustomerService = factory.CreateScope().ServiceProvider.GetRequiredService<IIntentionCustomerService>(); _intentionVisitService = factory.CreateScope().ServiceProvider.GetRequiredService<IIntentionVisitService>(); + + _projectService = factory.CreateScope().ServiceProvider.GetRequiredService<IProjectService>(); + _cusFangwenjiluService = factory.CreateScope().ServiceProvider.GetRequiredService<ICusFangwenjiluService>(); + _liaotianService = factory.CreateScope().ServiceProvider.GetRequiredService<ILiaotianService>(); + _dtChannelArticleNewsService = factory.CreateScope().ServiceProvider.GetRequiredService<IDtChannelArticleNewsService>(); + _configuration = factory.CreateScope().ServiceProvider.GetRequiredService<IConfiguration>(); + _clientFactory = factory.CreateScope().ServiceProvider.GetRequiredService<IHttpClientFactory>(); + _askService= factory.CreateScope().ServiceProvider.GetRequiredService<IAskService>(); } protected override async Task ExecuteAsync(CancellationToken stoppingToken) { @@ -92,7 +112,7 @@ //using (TransactionScope scope = new TransactionScope()) //{ this.jisuankaoqin(); - this.jisuangongzi(); + await this.jisuangongziAsync(); //scope.Complete(); //} @@ -190,6 +210,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('.'); @@ -719,245 +740,423 @@ //璁$畻鍔犵彮鏃堕棿 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; + } + + + + + 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) { - Kuanggongtianshu += new decimal(0.5); + kuanggong = true; + break; } - + else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime) + { + endttime = dateBiJiaoDTOs[i].EndTime; + } } - 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 (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").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; + //璁$畻褰撳ぉ鍑哄嫟澶╂暟 + 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; - } - TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate); + //濡傛灉褰撳ぉ鏄叕鍙歌姹傚姞鐝�,鍒欒嚜宸辩敵璇风殑鍔犵彮浠庝笅鐝紑濮嬬畻 + 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; + } - Jiaban += Math.Round((decimal)(jiaban.Hours * 60) / (decimal)shangbanshijian, 2); + + + + Jiaban += Math.Round(jiabanshijian * 60 / shangbanshijian, 2); + } } @@ -1085,7 +1284,7 @@ //璁$畻宸ヨ祫 - public void jisuangongzi() + public async Task jisuangongziAsync() { //鏌ヨ鎵�鏈夌殑鏈夋晥浜哄憳 DateTime dateminkaoqin = new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1); @@ -1574,13 +1773,12 @@ //var feijijiandengji = fiPiecerateDTOs.Where(x => x.Standard == "A"); //var jijiandengji = fiPiecerateDTOs.Where(x => x.Standard == "A"); - #region 涓婇棬鎷滆瀹㈡埛 + #region 閲囪喘椤圭洰褰曞叆 - var cooperVisitDTOs = _cooperVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); - var intentionVisitDTOs = _intentionVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); - if ( cooperVisitDTOs.Count > 0 || intentionVisitDTOs.Count > 0) + var projectDTOsyue = _projectService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); + if (projectDTOsyue!=null && projectDTOsyue.Count > 0 ) { - var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "涓婇棬鎷滆瀹㈡埛").FirstOrDefault(); + 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(); @@ -1591,7 +1789,7 @@ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; if (jixiaotichengfangan.Tichengstandard == "01") { - decimal youxiaojijian = intentionVisitDTOs.Count + cooperVisitDTOs.Count - renwujishu; + decimal youxiaojijian = projectDTOsyue.Count - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); @@ -1605,51 +1803,7 @@ decimal renwujishu = jixiaotichengfangan.Renwu.Value; if (jixiaotichengfangan.Tichengstandard == "01") { - decimal youxiaojijian = intentionVisitDTOs.Count + cooperVisitDTOs.Count - renwujishu; - if (youxiaojijian > 0) - { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } - - } - } - } - - } - } - #endregion - - #region 鏂板姞缇ょ粍 - - var groupTopicDTOs = _groupTopicService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); - if (groupTopicDTOs != null && groupTopicDTOs.Count > 0) - { - var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && 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 = groupTopicDTOs.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 = groupTopicDTOs.Count - renwujishu; + decimal youxiaojijian = projectDTOsyue.Count - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); @@ -1664,58 +1818,11 @@ #endregion #region 瀹㈡埛璧勬枡褰曞叆 - var cooperatecustomCustomerDTOs = _cooperatecustomCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); - var _intentionCustomerDTOs = _intentionCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); - if ( cooperatecustomCustomerDTOs.Count > 0 || _intentionCustomerDTOs.Count > 0) - { - var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "瀹㈡埛璧勬枡褰曞叆").FirstOrDefault(); - if (jijianidddd != null) - { - 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 = _intentionCustomerDTOs.Count + cooperatecustomCustomerDTOs.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 = _intentionCustomerDTOs.Count + cooperatecustomCustomerDTOs.Count - renwujishu; - if (youxiaojijian > 0) - { - hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); - } - - } - } - } - } - } - - - #endregion - - - #region 褰曞叆瀹㈡埛绛惧崟 - - var cooperatecustomCustomers = _cooperatecustomCustomerService.GetListsalaryqiandan(userList[i].Id, dateminkaoqin, datemaxkaoqin); - if (cooperatecustomCustomers != null && cooperatecustomCustomers.Count > 0) + var _intentionCustomerDTOs = _intentionCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); + if (_intentionCustomerDTOs!=null && _intentionCustomerDTOs.Count > 0) { - var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "褰曞叆瀹㈡埛绛惧崟").FirstOrDefault(); + 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(); @@ -1726,7 +1833,7 @@ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value; if (jixiaotichengfangan.Tichengstandard == "01") { - decimal youxiaojijian = cooperatecustomCustomers.Count - renwujishu; + decimal youxiaojijian = _intentionCustomerDTOs.Count - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); @@ -1740,7 +1847,7 @@ decimal renwujishu = jixiaotichengfangan.Renwu.Value; if (jixiaotichengfangan.Tichengstandard == "01") { - decimal youxiaojijian = cooperatecustomCustomers.Count - renwujishu; + decimal youxiaojijian = _intentionCustomerDTOs.Count - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); @@ -1751,6 +1858,689 @@ } } } + + + + #endregion + + #region 鏂板姞缇ょ粍 + + var groupTopicDTOs = _groupTopicService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); + if (groupTopicDTOs != null && groupTopicDTOs.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 = groupTopicDTOs.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 = groupTopicDTOs.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + } + #endregion + + #region 鐢佃瘽鎺ㄥ箍 + + var intentionVisitDTOs = _intentionVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.VisType == "01").ToList(); + if (intentionVisitDTOs != null && intentionVisitDTOs.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 = intentionVisitDTOs.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 = intentionVisitDTOs.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + } + #endregion + + #region 缇ゅ彂鐭俊 + + var duanxinsyue = _cusFangwenjiluService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.Fasongfangshi == "01").ToList(); + if (duanxinsyue != null && duanxinsyue.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 = duanxinsyue.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 = duanxinsyue.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(); + if (youjiansyue != null && youjiansyue.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 = youjiansyue.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 = youjiansyue.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + } + #endregion + + #region 鏂板鎰忓悜瀹㈡埛锛堣鍗曪級 + + var yixiangsyue = _intentionCustomerService.GetListsalaryyixiang(userList[i].Id, dateminkaoqin, datemaxkaoqin); + if (yixiangsyue != null && yixiangsyue.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 = yixiangsyue.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 = yixiangsyue.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + } + #endregion + + + #region 鏂板娉ㄥ唽浼氬憳 + + //鏈湀鏁伴噺 + List<YaoQingYongHuDTO> zhucehuiyuansyue = new List<YaoQingYongHuDTO>(); + try + { + //var pltUserDTO = _userService.GetPltUserEntity(userList[i].Id); + string huiyuanurl = _configuration.GetSection("huiyuanurl").Value; + string GetYGYaoQingYonghu = _configuration.GetSection("GetYGYaoQingYonghu").Value; + Uri postUrl2 = new Uri(huiyuanurl + GetYGYaoQingYonghu); + + JObject questions2 = new JObject(); + questions2.Add("UserID", userList[i].Id); + questions2.Add("StartTime", dateminkaoqin.ToString("yyyy-MM-dd HH:mm:ss")); + questions2.Add("EndTime", datemaxkaoqin.ToString("yyyy-MM-dd HH:mm:ss")); + + string requestJson2 = questions2.ToString(); + string result2 = string.Empty; + + using (HttpContent httpContent = new StringContent(requestJson2)) + { + httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); + + var httpClient2 = _clientFactory.CreateClient(); + httpClient2.Timeout = new TimeSpan(0, 0, 10); + var Result2 = await httpClient2.PostAsync(postUrl2, httpContent); + result2 = Result2.Content.ReadAsStringAsync().Result; + } + + _logger.LogInformation("result2:" + result2); + JObject jobjectresult = (JObject)JsonConvert.DeserializeObject(result2); + + if (jobjectresult["code"] != null && jobjectresult["code"].ToString() == "1") + { + + zhucehuiyuansyue = JsonConvert.DeserializeObject<List<YaoQingYongHuDTO>>(jobjectresult["data"].ToString()); + + } + + } + catch (Exception ex) + { + + } + + + //var qianyueDTOsyue = _cooperatecustomCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); + if (zhucehuiyuansyue != null && zhucehuiyuansyue.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 = zhucehuiyuansyue.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 = zhucehuiyuansyue.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + } + #endregion + + + #region 鏂板绛剧害瀹㈡埛 + + var qianyueDTOsyue = _cooperatecustomCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); + if (qianyueDTOsyue != null && qianyueDTOsyue.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 = qianyueDTOsyue.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 = qianyueDTOsyue.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + } + #endregion + + #region 涓婇棬鎷滆瀹㈡埛 + + var cooperVisitDTOs = _cooperVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.VisType == "02").ToList(); + var intentionVisitDTOsshangmen = _intentionVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.VisType == "02").ToList(); + if ( cooperVisitDTOs.Count > 0 || intentionVisitDTOsshangmen.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 = intentionVisitDTOsshangmen.Count + cooperVisitDTOs.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 = intentionVisitDTOsshangmen.Count + cooperVisitDTOs.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + } + #endregion + + #region 鏂伴椈璧勮 + //鏈湀鏁伴噺 + DtChannelArticleNewsDTOSearch searchEntity1 = new DtChannelArticleNewsDTOSearch(); + searchEntity1.EndTime = datemaxkaoqin; + searchEntity1.AddTime = dateminkaoqin; + searchEntity1.UserName = userList[i].UserSn; + searchEntity1.CategoryId = 3; + var dtChannelArticleNewsDTOs = _dtChannelArticleNewsService.GetList(searchEntity1); + + if (dtChannelArticleNewsDTOs != null && dtChannelArticleNewsDTOs.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 = dtChannelArticleNewsDTOs.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 = dtChannelArticleNewsDTOs.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + } + #endregion + + #region 鍏稿瀷妗堜緥 + //鏈湀鏁伴噺 + searchEntity1 = new DtChannelArticleNewsDTOSearch(); + searchEntity1.EndTime = datemaxkaoqin; + searchEntity1.AddTime = dateminkaoqin; + searchEntity1.UserName = userList[i].UserSn; + searchEntity1.CategoryId = 85; + var dianxinanDTOs = _dtChannelArticleNewsService.GetList(searchEntity1); + + if (dianxinanDTOs != null && dianxinanDTOs.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 = dianxinanDTOs.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 = dianxinanDTOs.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + } + #endregion + + #region 鏀块噰鐭ヨ瘑 + //鏈湀鏁伴噺 + searchEntity1 = new DtChannelArticleNewsDTOSearch(); + searchEntity1.EndTime = datemaxkaoqin; + searchEntity1.AddTime = dateminkaoqin; + searchEntity1.UserName = userList[i].UserSn; + searchEntity1.CategoryId = 73; + var zhengcaizhishiDTOs = _dtChannelArticleNewsService.GetList(searchEntity1); + + if (zhengcaizhishiDTOs != null && zhengcaizhishiDTOs.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 = zhengcaizhishiDTOs.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 = zhengcaizhishiDTOs.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + } + #endregion + + #region 鏂板灏忛噰闂 + + var xinzengwendaDTOsyue = _liaotianService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); + if (xinzengwendaDTOsyue != null && xinzengwendaDTOsyue.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 = xinzengwendaDTOsyue.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 = xinzengwendaDTOsyue.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + } + #endregion + + #region 瀹℃牳灏忛噰绛旈棶 + + var shenhewendaDTOsyue = _liaotianService.GetListsalaryshenhe(userList[i].Id, dateminkaoqin, datemaxkaoqin); + if (shenhewendaDTOsyue != null && shenhewendaDTOsyue.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 = shenhewendaDTOsyue.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 = shenhewendaDTOsyue.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + } + + } + } + #endregion + + #region 褰曞叆瀹㈡埛绛惧崟 + + //var cooperatecustomCustomers = _cooperatecustomCustomerService.GetListsalaryqiandan(userList[i].Id, dateminkaoqin, datemaxkaoqin); + // if (cooperatecustomCustomers != null && cooperatecustomCustomers.Count > 0) + // { + // var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && 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 = cooperatecustomCustomers.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 = cooperatecustomCustomers.Count - renwujishu; + // if (youxiaojijian > 0) + // { + // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + // } + + // } + // } + // } + // } + // } #endregion @@ -1773,7 +2563,7 @@ #region 鍥句功閿�鍞� var cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "01").ToList(); - var jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "鍥句功閿�鍞�").FirstOrDefault(); + var jijianid = fiPiecerateDTOs.Where(x => x.Project == "鍥句功閿�鍞�").FirstOrDefault(); if (jijianid != null && cooperOrdertushu.Count>0) { var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); @@ -1813,10 +2603,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian* new decimal(0.01), 2); @@ -1831,10 +2621,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -1847,7 +2637,7 @@ #region 鏀块噰鍜ㄨ cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "02").ToList(); - jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "鏀块噰鍜ㄨ").FirstOrDefault(); + jijianid = fiPiecerateDTOs.Where(x => x.Project == "鏀块噰鍜ㄨ").FirstOrDefault(); if (jijianid != null && cooperOrdertushu.Count > 0) { var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); @@ -1887,10 +2677,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -1905,10 +2695,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -1922,7 +2712,7 @@ #region 鏍囦功鍒朵綔璁㈠崟 cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "03").ToList(); - jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "鏍囦功鍒朵綔璁㈠崟").FirstOrDefault(); + jijianid = fiPiecerateDTOs.Where(x => x.Project == "鏍囦功鍒朵綔璁㈠崟").FirstOrDefault(); if (jijianid != null && cooperOrdertushu.Count > 0) { var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); @@ -1962,10 +2752,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -1980,10 +2770,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -1997,7 +2787,7 @@ #region 鍩硅 cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "04").ToList(); - jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "鍩硅").FirstOrDefault(); + jijianid = fiPiecerateDTOs.Where(x => x.Project == "鍩硅").FirstOrDefault(); if (jijianid != null && cooperOrdertushu.Count > 0) { var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); @@ -2037,10 +2827,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -2055,10 +2845,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -2071,8 +2861,8 @@ #endregion #region 濂楅浼氬憳 - cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "05").ToList(); - jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "濂楅浼氬憳").FirstOrDefault(); + cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "05").OrderBy(x=>x.Createtime).ToList(); + jijianid = fiPiecerateDTOs.Where(x => x.Project == "濂楅浼氬憳").FirstOrDefault(); if (jijianid != null && cooperOrdertushu.Count > 0) { var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); @@ -2104,6 +2894,21 @@ } } + else if (jixiaotichengfangan.Tichengstandard == "02") + { + + if (cooperOrdertushu.Count > renwujishu) + { + List<CooperOrderDTO> cooperOrdertushuyouxiao = new List<CooperOrderDTO>(); + for (int j = Convert.ToInt32(renwujishu); j < cooperOrdertushu.Count; j++) + { + cooperOrdertushuyouxiao.Add(cooperOrdertushu[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); + } + } } else if (jixiaotichengfangan.Renwustandard == "03") { @@ -2112,10 +2917,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -2130,15 +2935,15 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); } - } + } } } } @@ -2147,7 +2952,7 @@ #region 涓撳鐢宠 cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "06").ToList(); - jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "涓撳鐢宠").FirstOrDefault(); + jijianid = fiPiecerateDTOs.Where(x => x.Project == "涓撳鐢宠").FirstOrDefault(); if (jijianid != null && cooperOrdertushu.Count > 0) { var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); @@ -2187,10 +2992,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -2205,10 +3010,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -2222,7 +3027,7 @@ #region 灞ョ害绾犵悍 cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "07").ToList(); - jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "灞ョ害绾犵悍").FirstOrDefault(); + jijianid = fiPiecerateDTOs.Where(x => x.Project == "灞ョ害绾犵悍").FirstOrDefault(); if (jijianid != null && cooperOrdertushu.Count > 0) { var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); @@ -2262,10 +3067,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -2280,10 +3085,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -2297,7 +3102,7 @@ #region 椋庨櫓浠g悊 cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "08").ToList(); - jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "椋庨櫓浠g悊").FirstOrDefault(); + jijianid = fiPiecerateDTOs.Where(x => x.Project == "椋庨櫓浠g悊").FirstOrDefault(); if (jijianid != null && cooperOrdertushu.Count > 0) { var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); @@ -2337,10 +3142,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -2355,10 +3160,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -2372,7 +3177,7 @@ #region 杞欢閿�鍞彁鎴� cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "09").ToList(); - jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "杞欢閿�鍞彁鎴�").FirstOrDefault(); + jijianid = fiPiecerateDTOs.Where(x => x.Project == "杞欢閿�鍞彁鎴�").FirstOrDefault(); if (jijianid != null && cooperOrdertushu.Count > 0) { var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); @@ -2412,10 +3217,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -2430,10 +3235,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -2447,7 +3252,7 @@ #region 鍏朵粬涓氬姟 cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "10").ToList(); - jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "鍏朵粬涓氬姟").FirstOrDefault(); + jijianid = fiPiecerateDTOs.Where(x => x.Project == "鍏朵粬涓氬姟").FirstOrDefault(); if (jijianid != null && cooperOrdertushu.Count > 0) { var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); @@ -2487,10 +3292,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -2505,10 +3310,10 @@ { 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; + //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui); + //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0; - decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu; + decimal youxiaojijian = dingdanjinezhenshi - renwujishu; if (youxiaojijian > 0) { hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); @@ -2519,6 +3324,82 @@ } #endregion + + #region 鏁版嵁鍒嗘瀽 + cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "11").ToList(); + jijianid = fiPiecerateDTOs.Where(x => x.Project == "鏁版嵁鍒嗘瀽").FirstOrDefault(); + if (jijianid != null && cooperOrdertushu.Count > 0) + { + var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.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 = cooperOrdertushu.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 = cooperOrdertushu.Count - renwujishu; + if (youxiaojijian > 0) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); + } + + } + } + 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) + { + hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2); + } + } + + } + else if (jixiaotichengfangan.Renwustandard == "04") + { + decimal renwujishu = 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); + } + } + } + } + } + + #endregion + } @@ -2701,6 +3582,10 @@ } hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Daozhanggongzi- hrSalaryDTO.Yufagongzi); + if (hrSalaryDTO.Daozhanggongzi < hrSalaryDTO.Yufagongzi) + { + hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi; + } } hrSalaryDTO.RecStatus = "A"; hrSalaryDTO.Islock = "D"; @@ -2748,6 +3633,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('.'); @@ -2857,9 +3744,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) { @@ -2955,7 +3844,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) { @@ -3017,7 +3907,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; } @@ -3046,7 +3937,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