username@email.com
2023-03-14 bf14008acffe7a9a7ac6e2eeb38ce3552b71b33a
zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
@@ -1,12 +1,17 @@
using 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,17 @@
        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 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)
@@ -61,13 +77,25 @@
            _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>();
            _admEvaluateService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmEvaluateService>();
            _expertService = factory.CreateScope().ServiceProvider.GetRequiredService<IExpertService>();
            _context = factory.CreateScope().ServiceProvider.GetRequiredService<zhengcaioaContext>();
            _zcUsercontext = factory.CreateScope().ServiceProvider.GetRequiredService<zcUserInfoN_dbContext>();
        }
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            _logger.LogInformation("MyServiceA is starting.");
            //stoppingToken.Register(() => File.Create($"E:\\dotnetCore\\Practice\\Practice\\{DateTime.Now.Millisecond}.txt"));
            DateTime datenow = DateTime.Now.Date;
            while (!stoppingToken.IsCancellationRequested)
            {
@@ -92,7 +120,7 @@
                                //using (TransactionScope scope = new TransactionScope())
                                //{
                                this.jisuankaoqin();
                                    this.jisuangongzi();
                                 await   this.jisuangongziAsync();
                                    //scope.Complete();
                                //}
@@ -110,6 +138,15 @@
                        {
                            jisuangonglinggongzi();
                        }
                        _logger.LogInformation("把超过90天还没有转化的档案客户的业务经理归为无");
                        this.ywjlguiling();
                        _logger.LogInformation("把超过90天还没有转化的档案客户的业务经理归为无执行结束");
                        _logger.LogInformation("把会员系统和oa系统手机号相同的客户关联起来");
                        this.huiyuanguanlian();
                        _logger.LogInformation("把会员系统和oa系统手机号相同的客户关联起来执行结束");
                    }
                    catch (Exception ex)
                    {
@@ -183,6 +220,144 @@
            return diwutian;
        }
        //计算当前日期是否是工作日
        public Boolean shifougongzuori(DateTime workdate)
        {
            var admAttendanceRulesDtlDTOs = _attendanceRuleService.GetDtlList("");
            AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get("");
            var jiejiari = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiejiari").ToList();
            var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList();
            var jiabanri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiabanri").ToList();
            ////获取本月的第五个工作日日期。
            //DateTime datemin = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
            //DateTime datemax = datemin.AddMonths(1);
            //_logger.LogInformation("datemin" + datemin);
            //_logger.LogInformation("datemax" + datemax);
            Boolean shifoushangban = false;
            //是否上班日期
            if ((int)workdate.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)workdate.DayOfWeek <= admAttendanceRuleDTO.WeekEnd)
            {
                //是否节假日
                if (jiejiari.Exists(x => x.ValueStart <= workdate && x.ValueEnd >= workdate))
                {
                    shifoushangban = false;
                }
                else
                {
                    shifoushangban = true;
                }
            }
            else
            {
                //是否调休日  调休日需要上班
                if (tiaoxiuri.Exists(x => x.ValueStart <= workdate && x.ValueEnd >= workdate))
                {
                    shifoushangban = true;
                }
                //是否加班日  加班日需要上班
                if (jiabanri.Exists(x => x.ValueStart <= workdate && x.ValueEnd >= workdate))
                {
                    shifoushangban = true;
                }
            }
            return shifoushangban;
        }
        //获取日期所在周的起止日期
        /// <summary>
        /// 计算本周起始日期(星期一)
        /// </summary>
        /// <param name="dateTime">该周中任意一天</param>
        /// <returns>返回礼拜一日期,后面的具体时、分、秒和传入值相等</returns>
        public  DateTime CalculateFirstDateOfWeek(DateTime dateTime)
        {
            int i = dateTime.DayOfWeek - DayOfWeek.Monday;
            if (i == -1)
                i = 6;
            TimeSpan ts = new TimeSpan(i, 0, 0, 0);
            return dateTime.Subtract(ts);
        }
        /// <summary>
        /// 计算本周结束日期(礼拜日的日期)
        /// </summary>
        /// <param name="dateTime"> 该周中任意一天</param>
        /// <returns>返回礼拜日日期,后面的具体时、分、秒和传入值相等 </returns>
        public  DateTime CalculateLastDateOfWeek(DateTime dateTime)
        {
            int i = dateTime.DayOfWeek - DayOfWeek.Sunday;
            if (i != 0) i = 7 - i; // 因为枚举原因,Sunday排在最前,相减间隔要被7减。
            TimeSpan ts = new TimeSpan(i, 0, 0, 0);
            return dateTime.Add(ts);
        }
        //把超过90天还没有转化的档案客户的业务经理归为无
        public void ywjlguiling()
        {
          var intentionCustomerDTOs  =  _intentionCustomerService.GetList().Where(x=>x.Ywjltime < DateTime.Now.AddDays(-90)).ToList();
            foreach(var intentionCustomerDTO in intentionCustomerDTOs)
            {
                intentionCustomerDTO.Ywjl = null;
                intentionCustomerDTO.Ywjltime = null;
                _intentionCustomerService.save(intentionCustomerDTO);
            }
        }
        //把会员系统和oa系统手机号相同的客户关联起来
        public void huiyuanguanlian()
        {
            var cooperatecustomCustomers = _context.CooperatecustomCustomers.Where(x => x.RecStatus == "A" && x.HuiyuanId == null).ToList();
            var frameworkUsers = _zcUsercontext.FrameworkUsers.Where(x => x.IsValid == true).ToList();
            if (cooperatecustomCustomers != null && cooperatecustomCustomers.Count > 0)
            {
                foreach (var cooperatecustomCustomer in cooperatecustomCustomers)
                {
                    if (!string.IsNullOrEmpty(cooperatecustomCustomer.Tel))
                    {
                        var frameworkUser = frameworkUsers.Where(x => x.Itcode == cooperatecustomCustomer.Tel).FirstOrDefault();
                        if (frameworkUser != null)
                        {
                            cooperatecustomCustomer.HuiyuanId = frameworkUser.Id.ToString();
                        }
                    }
                }
                _context.SaveChanges();
            }
            var intentionCustomers = _context.IntentionCustomers.Where(x => x.RecStatus == "A" && x.HuiyuanId == null).ToList();
            if (intentionCustomers != null && intentionCustomers.Count > 0)
            {
                foreach (var intentionCustomer in intentionCustomers)
                {
                    if (!string.IsNullOrEmpty(intentionCustomer.Tel))
                    {
                        var frameworkUser = frameworkUsers.Where(x => x.Itcode == intentionCustomer.Tel).FirstOrDefault();
                        if (frameworkUser != null)
                        {
                            intentionCustomer.HuiyuanId = frameworkUser.Id.ToString();
                        }
                    }
                }
                _context.SaveChanges();
            }
        }
        //计算考勤
        public void jisuankaoqin()
        {
@@ -190,6 +365,7 @@
            AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get("");
            var jiejiari = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiejiari").ToList();
            var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList();
            var jiabanri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiabanri").ToList();
            //每天的考勤时间点
            string[] WorkingStart = admAttendanceRuleDTO.WorkingStart.Split('.');
@@ -213,14 +389,20 @@
            ResultEntity resultEntity = new ResultEntity();
            resultEntity.Result = false;
            var Month = DateTime.Now.Month - 1;
            var Year = DateTime.Now.Year;
            if (Month == 0)
            {
                Month = 12;
                Year = Year - 1;
            }
            //查询所有的有效人员
            List<PltUserDTO> userList = _userService.GetListjisuankaoqin(new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1), new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1).AddMonths(1));//.Where(x => x.UserSn == "yang").ToList();
            List<PltUserDTO> userList = _userService.GetListjisuankaoqin(new DateTime(Year, Month, 1), new DateTime(Year, Month, 1).AddMonths(1));//.Where(x => x.UserSn == "yang").ToList();
            for (int a = 0; a < userList.Count; a++)
            {
                _logger.LogInformation("开始计算" + userList[a].UserName + "考勤");
                //开始计算考勤
                DateTime dateminkaoqin = new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1);
                DateTime dateminkaoqin = new DateTime(Year, Month, 1);
                DateTime datemaxkaoqin = dateminkaoqin.AddMonths(1);
                List<AdmAskLeaveDTO> admAskLeaveDTOs = _signinService.GetAskLeaveByUserId(userList[a].Id);
                List<AdmAskLeaveOffDTO> admAskLeaveOffDTOs = _signinService.GetAskLeaveOffByUserId(userList[a].Id);
@@ -238,6 +420,7 @@
                    admAttendanceDTO.Qingjia = 0;
                    admAttendanceDTO.Jiaban = 0;
                    admAttendanceDTO.Xiaojia = 0;
                    admAttendanceDTO.Daixinjia = 0;
                    admAttendanceDTO.Chidao = 0;
                    admAttendanceDTO.Zaotui = 0;
                    admAttendanceDTO.Kuanggong = 0;
@@ -263,6 +446,7 @@
                decimal Zaotui = 0;
                decimal Kuanggong = 0;
                decimal Xiaojia = 0;
                decimal Daixinjia = 0;
                while (dateminkaoqin < datemaxkaoqin)
                {
@@ -296,8 +480,8 @@
                            Offdays += 1;
                        }
                    }
                    if(userList[a].Outdate.HasValue && dateminkaoqin >=userList[a].Outdate   )
                    //离职当天计算考勤
                    if(userList[a].Zhiwustatus == "D" && userList[a].Outdate.HasValue && dateminkaoqin >userList[a].Outdate   )
                    {
                        dateminkaoqin = dateminkaoqin.AddDays(1);
                        continue;
@@ -316,7 +500,7 @@
                        admSignInDTO = new AdmSignInDTO();
                    }
                    //查询请假   请假时间不能重叠
                    List<AdmAskLeaveDTO> admAskLeaveDTOMin = admAskLeaveDTOs.Where(x =>x.Lavetype != "2" &&  x.StratTime < dateminkaoqin.AddDays(1) && x.EndTime > dateminkaoqin).OrderByDescending(x=>x.Createtime).ToList();
                    List<AdmAskLeaveDTO> admAskLeaveDTOMin = admAskLeaveDTOs.Where(x => x.Lavetype != "2" && x.StratTime < dateminkaoqin.AddDays(1) && x.EndTime > dateminkaoqin).OrderByDescending(x=>x.Createtime).ToList();
                    //查询销假   销假时间不能重叠
                    List<AdmAskLeaveOffDTO> admAskLeaveOffDTOMin = admAskLeaveOffDTOs.Where(x => x.StratTime < dateminkaoqin.AddDays(1) && x.EndTime > dateminkaoqin).OrderByDescending(x => x.Createtime).ToList();
                   
@@ -350,6 +534,8 @@
                    decimal Kuanggongtianshu = 0;
                    decimal dangtianqingjia = 0;
                    decimal dangtianxiaojia = 0;
                    decimal dangtiandaixinjia = 0;
                    string Iswork = "D";
                    if (iswork)
                    {
@@ -415,15 +601,24 @@
                                }
                                else
                                {
                                    if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
                                    {
                                        kuanggong = true;
                                        break;
                                    }
                                    else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
                                    //if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
                                    //{
                                    //    //kuanggong = true;
                                    //    break;
                                    //}
                                    //else
                                    if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
                                    {
                                        endttime = dateBiJiaoDTOs[i].EndTime;
                                    }
                                    if (!starttime.HasValue)
                                    {
                                        starttime = dateBiJiaoDTOs[i].StartTime;
                                    }
                                }
                                if (endttime >= StratTimeWorkingEnd && starttime.HasValue)
                                {
                                    break;
                                }
                            }
                            if (kuanggong)
@@ -532,15 +727,24 @@
                                }
                                else
                                {
                                    if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
                                    {
                                        kuanggong = true;
                                        break;
                                    }
                                    else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
                                    //if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
                                    //{
                                    //    //kuanggong = true;
                                    //    break;
                                    //}
                                    //else
                                    if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
                                    {
                                        endttime = dateBiJiaoDTOs[i].EndTime;
                                    }
                                    if (!starttime.HasValue)
                                    {
                                        starttime = dateBiJiaoDTOs[i].StartTime;
                                    }
                                }
                                if (endttime >= StratTimeOffworkEnd && starttime.HasValue)
                                {
                                    break;
                                }
                            }
                            if (kuanggong)
@@ -596,7 +800,7 @@
                        //计算当天请假
                        List<DateBiJiaoDTO> qingjias = new List<DateBiJiaoDTO>();
                        var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4").ToList();
                        var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4" && x.Lavetype != "7" && x.Lavetype != "3" && x.Lavetype != "9").ToList();
                        foreach (var admAskLeave in feichuqinjia)
                        {
                            
@@ -657,6 +861,63 @@
                        }
                        Qingjia += dangtianqingjia;
                        //计算当天带薪假
                        List<DateBiJiaoDTO> daixinjias = new List<DateBiJiaoDTO>();
                        var chauxndaixinjias = admAskLeaveDTOMin.Where(x => x.Lavetype == "4" || x.Lavetype == "7" || x.Lavetype == "3" || x.Lavetype == "9").ToList();
                        foreach (var admAskLeave in chauxndaixinjias)
                        {
                            DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                            dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
                            dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
                            daixinjias.Add(dateBiJiaoDTO);
                        }
                        foreach (var daixinjia in daixinjias)
                        {
                            if (daixinjia.StartTime < StratTimeWorkingStart)
                            {
                                daixinjia.StartTime = StratTimeWorkingStart;
                            }
                            if (daixinjia.StartTime > StratTimeWorkingEnd && daixinjia.StartTime < StratTimeOffworkStart)
                            {
                                daixinjia.StartTime = StratTimeOffworkStart;
                            }
                            if (daixinjia.EndTime > StratTimeWorkingEnd && daixinjia.EndTime < StratTimeOffworkStart)
                            {
                                daixinjia.EndTime = StratTimeWorkingEnd;
                            }
                            if (daixinjia.EndTime > StratTimeOffworkEnd)
                            {
                                daixinjia.EndTime = StratTimeOffworkEnd;
                            }
                            TimeSpan daixinjiashiijan = daixinjia.EndTime.Value.Subtract(daixinjia.StartTime.Value);
                            if (daixinjia.StartTime <= StratTimeWorkingEnd && daixinjia.EndTime >= StratTimeOffworkStart)
                            {
                                TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd);
                                dangtiandaixinjia += Math.Round(((decimal)(daixinjiashiijan.Hours * 60 + daixinjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2);
                            }
                            else
                            {
                                dangtiandaixinjia += Math.Round(((decimal)(daixinjiashiijan.Hours * 60 + daixinjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2);
                            }
                        }
                        Daixinjia += dangtiandaixinjia;
                        //计算当天出勤天数
                        Shijichuqin += (1 - Kuanggongtianshu - dangtianqingjia);
@@ -719,245 +980,491 @@
                        //计算加班时间
                        if (admSignInDTO != null && admSignInDTO.OvertimeIn.HasValue && admSignInDTO.OvertimeOut.HasValue)
                        {
                            DateTime overdate = admSignInDTO.OvertimeIn.Value;
                            if (admSignInDTO.OvertimeIn.Value< StratTimeOffworkEnd)
                            var admAskovertimeDTO  = _askService.GetAskovertimeByUeridAndjiabantime(userList[a].Id, dateminkaoqin);
                            if(admAskovertimeDTO!=null&& !string.IsNullOrEmpty(admAskovertimeDTO.Id))
                            {
                                overdate = StratTimeOffworkEnd;
                                DateTime overdate = admSignInDTO.OvertimeIn.Value;
                                if (admSignInDTO.OvertimeIn.Value < StratTimeOffworkEnd)
                                {
                                    overdate = StratTimeOffworkEnd;
                                }
                                TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate);
                                decimal jiabanshijian = jiaban.Hours;
                                if(new decimal(jiaban.Hours) > admAskovertimeDTO.Overtime.Value)
                                {
                                    jiabanshijian = admAskovertimeDTO.Overtime.Value;
                                }
                                if (jiabanshijian > new decimal(shangbanshijian) / 60)
                                {
                                    jiabanshijian = new decimal(shangbanshijian) /60;
                                }
                                Jiaban += Math.Round(jiabanshijian * 60 / shangbanshijian, 2);
                            }
                            TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate);
                            Jiaban += Math.Round((decimal)(jiaban.Hours * 60) / (decimal)shangbanshijian, 2);
                        }
                    }
                    else
                    {
                        //判断考勤时间的连续性
                        //判断早上是否迟到,判断早上是否早退,早退矿工处理
                        DateTime? starttime = null;
                        DateTime? endttime = null;
                        bool kuanggong = false;
                        List<DateBiJiaoDTO> dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
                        if (admSignInDTO != null && admSignInDTO.MorningIn.HasValue && admSignInDTO.MorningOut.HasValue)
                        //判断今天是否公司要求加班
                        var shifoujiaban = jiabanri.Exists(x => x.ValueStart <= dateminkaoqin && x.ValueEnd >= dateminkaoqin);
                        if (shifoujiaban)
                        {
                            DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                            dateBiJiaoDTO.StartTime = admSignInDTO.MorningIn;
                            dateBiJiaoDTO.EndTime = admSignInDTO.MorningOut;
                            dateBiJiaoDTOs.Add(dateBiJiaoDTO);
                        }
                        var jiabanbuka = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "3").ToList();
                        foreach (var admAskLeaveOff in jiabanbuka)
                        {
                            if (admAskLeaveOff.StratTime < StratTimeWorkingEnd)
                            //判断考勤时间的连续性
                            //判断早上是否迟到,判断早上是否早退,早退矿工处理
                            DateTime? starttime = null;
                            DateTime? endttime = null;
                            bool kuanggong = false;
                            List<DateBiJiaoDTO> dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
                            if (admSignInDTO != null && admSignInDTO.MorningIn.HasValue && admSignInDTO.MorningOut.HasValue)
                            {
                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                                dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
                                dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
                                dateBiJiaoDTO.StartTime = admSignInDTO.MorningIn;
                                dateBiJiaoDTO.EndTime = admSignInDTO.MorningOut;
                                dateBiJiaoDTOs.Add(dateBiJiaoDTO);
                            }
                        }
                        dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
                        if (dateBiJiaoDTOs.Count == 0)
                        {
                            Kuanggongtianshu += new decimal(0.5);
                        }
                        else
                        {
                            //判断上午考勤时间是否全覆盖
                            for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
                            foreach (var admAskLeave in admAskLeaveDTOMin)
                            {
                                if (i == 0)
                                if (admAskLeave.StratTime < StratTimeWorkingEnd)
                                {
                                    starttime = dateBiJiaoDTOs[i].StartTime;
                                    endttime = dateBiJiaoDTOs[i].EndTime;
                                    DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                                    dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
                                    dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
                                    dateBiJiaoDTOs.Add(dateBiJiaoDTO);
                                }
                                else
                                {
                                    if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
                                    {
                                        kuanggong = true;
                                        break;
                                    }
                                    else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
                                    {
                                        endttime = dateBiJiaoDTOs[i].EndTime;
                                    }
                                }
                            }
                            if (kuanggong)
                            foreach (var admAskLeaveOff in admAskLeaveOffDTOMin)
                            {
                                if (admAskLeaveOff.StratTime < StratTimeWorkingEnd)
                                {
                                    DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                                    dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
                                    dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
                                    dateBiJiaoDTOs.Add(dateBiJiaoDTO);
                                }
                            }
                            dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
                            if (dateBiJiaoDTOs.Count == 0)
                            {
                                Kuanggong += new decimal(0.5);
                                Kuanggongtianshu += new decimal(0.5);
                            }
                            else
                            {
                                decimal shangwukuanggong = 0;
                                if (starttime > StratTimeWorkingStart)
                                //判断上午考勤时间是否全覆盖
                                for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
                                {
                                    TimeSpan chidao = starttime.Value.Subtract(StratTimeWorkingStart);
                                    if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
                                    if (i == 0)
                                    {
                                        if (shangwukuanggong == 0)
                                        {
                                            Kuanggongtianshu += new decimal(0.5);
                                        }
                                        starttime = dateBiJiaoDTOs[i].StartTime;
                                        endttime = dateBiJiaoDTOs[i].EndTime;
                                    }
                                    else
                                    {
                                        Chidao += 1;
                                        Shangwuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
                                    }
                                }
                                if (shangwukuanggong == 0 && endttime < StratTimeWorkingEnd)
                                {
                                    TimeSpan zaotui = StratTimeWorkingEnd.Subtract(endttime.Value);
                                    if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
                                    {
                                        if (shangwukuanggong == 0)
                                        //if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
                                        //{
                                        //    //kuanggong = true;
                                        //    break;
                                        //}
                                        //else
                                        if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
                                        {
                                            Kuanggongtianshu += new decimal(0.5);
                                            endttime = dateBiJiaoDTOs[i].EndTime;
                                        }
                                        if (!starttime.HasValue)
                                        {
                                            starttime = dateBiJiaoDTOs[i].StartTime;
                                        }
                                    }
                                    else
                                    {
                                        Zaotui += 1;
                                        Shangwuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
                                    }
                                }
                                Kuanggongtianshu += shangwukuanggong;
                            }
                        }
                        //判断下午是否迟到,判断下午是否早退,早退矿工处理
                        starttime = null;
                        endttime = null;
                        kuanggong = false;
                        dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
                        if (admSignInDTO != null && admSignInDTO.AfternoonIn.HasValue && admSignInDTO.AfternoonOut.HasValue)
                        {
                            DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                            dateBiJiaoDTO.StartTime = admSignInDTO.AfternoonIn;
                            dateBiJiaoDTO.EndTime = admSignInDTO.AfternoonOut;
                            dateBiJiaoDTOs.Add(dateBiJiaoDTO);
                        }
                        var jiabanbukaxiawu = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "3").ToList();
                        foreach (var admAskLeaveOff in jiabanbukaxiawu)
                        {
                            if (admAskLeaveOff.EndTime > StratTimeOffworkStart)
                            {
                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                                dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
                                dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
                                dateBiJiaoDTOs.Add(dateBiJiaoDTO);
                            }
                        }
                        dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
                        if (dateBiJiaoDTOs.Count == 0)
                        {
                            //Kuanggong += new decimal(0.5);
                            Kuanggongtianshu += new decimal(0.5);
                        }
                        else
                        {
                            //判断上午考勤时间是否全覆盖
                            for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
                            {
                                if (i == 0)
                                if (kuanggong)
                                {
                                    starttime = dateBiJiaoDTOs[i].StartTime;
                                    endttime = dateBiJiaoDTOs[i].EndTime;
                                    Kuanggong += new decimal(0.5);
                                    Kuanggongtianshu += new decimal(0.5);
                                }
                                else
                                {
                                    if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
                                    decimal shangwukuanggong = 0;
                                    if (starttime > StratTimeWorkingStart)
                                    {
                                        kuanggong = true;
                                        break;
                                        TimeSpan chidao = starttime.Value.Subtract(StratTimeWorkingStart);
                                        if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
                                        {
                                            if (shangwukuanggong == 0)
                                            {
                                                shangwukuanggong += new decimal(0.5);
                                                Kuanggong += new decimal(0.5);
                                            }
                                        }
                                        else
                                        {
                                            Chidao += 1;
                                            Shangwuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
                                        }
                                    }
                                    else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
                                    if (shangwukuanggong == 0 && endttime < StratTimeWorkingEnd)
                                    {
                                        endttime = dateBiJiaoDTOs[i].EndTime;
                                        TimeSpan zaotui = StratTimeWorkingEnd.Subtract(endttime.Value);
                                        if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
                                        {
                                            if (shangwukuanggong == 0)
                                            {
                                                shangwukuanggong += new decimal(0.5);
                                                Kuanggong += new decimal(0.5);
                                            }
                                        }
                                        else
                                        {
                                            Zaotui += 1;
                                            Shangwuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
                                        }
                                    }
                                    Kuanggongtianshu += shangwukuanggong;
                                }
                            }
                            if (kuanggong)
                            //判断下午是否迟到,判断下午是否早退,早退矿工处理
                            starttime = null;
                            endttime = null;
                            kuanggong = false;
                            dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
                            if (admSignInDTO != null && admSignInDTO.AfternoonIn.HasValue && admSignInDTO.AfternoonOut.HasValue)
                            {
                                //Kuanggong += new decimal(0.5);
                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                                dateBiJiaoDTO.StartTime = admSignInDTO.AfternoonIn;
                                dateBiJiaoDTO.EndTime = admSignInDTO.AfternoonOut;
                                dateBiJiaoDTOs.Add(dateBiJiaoDTO);
                            }
                            foreach (var admAskLeave in admAskLeaveDTOMin)
                            {
                                if (admAskLeave.EndTime > StratTimeOffworkStart)
                                {
                                    DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                                    dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
                                    dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
                                    dateBiJiaoDTOs.Add(dateBiJiaoDTO);
                                }
                            }
                            foreach (var admAskLeaveOff in admAskLeaveOffDTOMin)
                            {
                                if (admAskLeaveOff.EndTime > StratTimeOffworkStart)
                                {
                                    DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                                    dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
                                    dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
                                    dateBiJiaoDTOs.Add(dateBiJiaoDTO);
                                }
                            }
                            dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
                            if (dateBiJiaoDTOs.Count == 0)
                            {
                                Kuanggong += new decimal(0.5);
                                Kuanggongtianshu += new decimal(0.5);
                            }
                            else
                            {
                                decimal xiawuwukuanggong = 0;
                                if (starttime > StratTimeOffworkStart)
                                //判断上午考勤时间是否全覆盖
                                for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
                                {
                                    TimeSpan chidao = starttime.Value.Subtract(StratTimeOffworkStart);
                                    if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
                                    if (i == 0)
                                    {
                                        if (xiawuwukuanggong == 0)
                                        {
                                            xiawuwukuanggong += new decimal(0.5);
                                            //Kuanggong += new decimal(0.5);
                                        }
                                        starttime = dateBiJiaoDTOs[i].StartTime;
                                        endttime = dateBiJiaoDTOs[i].EndTime;
                                    }
                                    else
                                    {
                                        Chidao += 1;
                                        Xiawuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
                                        //if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
                                        //{
                                        //    //kuanggong = true;
                                        //    break;
                                        //}
                                        //else
                                        if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
                                        {
                                            endttime = dateBiJiaoDTOs[i].EndTime;
                                        }
                                        if (!starttime.HasValue)
                                        {
                                            starttime = dateBiJiaoDTOs[i].StartTime;
                                        }
                                    }
                                }
                                if (xiawuwukuanggong == 0 && endttime < StratTimeOffworkEnd)
                                if (kuanggong)
                                {
                                    TimeSpan zaotui = StratTimeOffworkEnd.Subtract(endttime.Value);
                                    if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
                                    Kuanggong += new decimal(0.5);
                                    Kuanggongtianshu += new decimal(0.5);
                                }
                                else
                                {
                                    decimal xiawuwukuanggong = 0;
                                    if (starttime > StratTimeOffworkStart)
                                    {
                                        if (xiawuwukuanggong == 0)
                                        TimeSpan chidao = starttime.Value.Subtract(StratTimeOffworkStart);
                                        if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
                                        {
                                            xiawuwukuanggong += new decimal(0.5);
                                            //Kuanggong += new decimal(0.5);
                                            if (xiawuwukuanggong == 0)
                                            {
                                                xiawuwukuanggong += new decimal(0.5);
                                                Kuanggong += new decimal(0.5);
                                            }
                                        }
                                        else
                                        {
                                            Chidao += 1;
                                            Xiawuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
                                        }
                                    }
                                    if (xiawuwukuanggong == 0 && endttime < StratTimeOffworkEnd)
                                    {
                                        TimeSpan zaotui = StratTimeOffworkEnd.Subtract(endttime.Value);
                                        if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
                                        {
                                            if (xiawuwukuanggong == 0)
                                            {
                                                xiawuwukuanggong += new decimal(0.5);
                                                Kuanggong += new decimal(0.5);
                                            }
                                        }
                                        else
                                        {
                                            Zaotui += 1;
                                            Xiawuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
                                        }
                                    }
                                    else
                                    {
                                        Zaotui += 1;
                                        Xiawuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
                                    }
                                    Kuanggongtianshu += xiawuwukuanggong;
                                }
                                Kuanggongtianshu += xiawuwukuanggong;
                            }
                            //计算当天请假
                            List<DateBiJiaoDTO> qingjias = new List<DateBiJiaoDTO>();
                            var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4" && x.Lavetype != "7" && x.Lavetype != "3" && x.Lavetype != "9").ToList();
                            foreach (var admAskLeave in feichuqinjia)
                            {
                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                                dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
                                dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
                                qingjias.Add(dateBiJiaoDTO);
                            }
                            var feichuqinxiaojia = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "2").ToList();
                            foreach (var admAskLeaveOff in feichuqinxiaojia)
                            {
                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                                dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
                                dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
                                qingjias.Add(dateBiJiaoDTO);
                            }
                            foreach (var qingjia in qingjias)
                            {
                                if (qingjia.StartTime < StratTimeWorkingStart)
                                {
                                    qingjia.StartTime = StratTimeWorkingStart;
                                }
                                if (qingjia.StartTime > StratTimeWorkingEnd && qingjia.StartTime < StratTimeOffworkStart)
                                {
                                    qingjia.StartTime = StratTimeOffworkStart;
                                }
                                if (qingjia.EndTime > StratTimeWorkingEnd && qingjia.EndTime < StratTimeOffworkStart)
                                {
                                    qingjia.EndTime = StratTimeWorkingEnd;
                                }
                                if (qingjia.EndTime > StratTimeOffworkEnd)
                                {
                                    qingjia.EndTime = StratTimeOffworkEnd;
                                }
                                TimeSpan qingjiashiijan = qingjia.EndTime.Value.Subtract(qingjia.StartTime.Value);
                                if (qingjia.StartTime <= StratTimeWorkingEnd && qingjia.EndTime >= StratTimeOffworkStart)
                                {
                                    TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd);
                                    dangtianqingjia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2);
                                }
                                else
                                {
                                    dangtianqingjia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2);
                                }
                            }
                            Qingjia += dangtianqingjia;
                            //计算当天带薪假
                            List<DateBiJiaoDTO> daixinjias = new List<DateBiJiaoDTO>();
                            var chauxndaixinjias = admAskLeaveDTOMin.Where(x => x.Lavetype == "4" || x.Lavetype == "7" || x.Lavetype == "3" || x.Lavetype == "9").ToList();
                            foreach (var admAskLeave in chauxndaixinjias)
                            {
                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                                dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
                                dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
                                daixinjias.Add(dateBiJiaoDTO);
                            }
                            foreach (var daixinjia in daixinjias)
                            {
                                if (daixinjia.StartTime < StratTimeWorkingStart)
                                {
                                    daixinjia.StartTime = StratTimeWorkingStart;
                                }
                                if (daixinjia.StartTime > StratTimeWorkingEnd && daixinjia.StartTime < StratTimeOffworkStart)
                                {
                                    daixinjia.StartTime = StratTimeOffworkStart;
                                }
                                if (daixinjia.EndTime > StratTimeWorkingEnd && daixinjia.EndTime < StratTimeOffworkStart)
                                {
                                    daixinjia.EndTime = StratTimeWorkingEnd;
                                }
                                if (daixinjia.EndTime > StratTimeOffworkEnd)
                                {
                                    daixinjia.EndTime = StratTimeOffworkEnd;
                                }
                                TimeSpan daixinjiashiijan = daixinjia.EndTime.Value.Subtract(daixinjia.StartTime.Value);
                                if (daixinjia.StartTime <= StratTimeWorkingEnd && daixinjia.EndTime >= StratTimeOffworkStart)
                                {
                                    TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd);
                                    dangtiandaixinjia += Math.Round(((decimal)(daixinjiashiijan.Hours * 60 + daixinjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2);
                                }
                                else
                                {
                                    dangtiandaixinjia += Math.Round(((decimal)(daixinjiashiijan.Hours * 60 + daixinjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2);
                                }
                            }
                            Daixinjia += dangtiandaixinjia;
                            //计算当天出勤天数
                            Jiaban += (1 - Kuanggongtianshu - dangtianqingjia);
                            //计算销假(出差,补卡)
                            List<DateBiJiaoDTO> xiaojias = new List<DateBiJiaoDTO>();
                            var xiaojiala = admAskLeaveOffDTOMin.Where(x => x.Lavetype != "2").ToList();
                            foreach (var admAskLeaveOff in xiaojiala)
                            {
                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                                dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
                                dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
                                xiaojias.Add(dateBiJiaoDTO);
                            }
                            foreach (var xiaojia in xiaojias)
                            {
                                if (xiaojia.StartTime < StratTimeWorkingStart)
                                {
                                    xiaojia.StartTime = StratTimeWorkingStart;
                                }
                                if (xiaojia.StartTime > StratTimeWorkingEnd && xiaojia.StartTime < StratTimeOffworkStart)
                                {
                                    xiaojia.StartTime = StratTimeOffworkStart;
                                }
                                if (xiaojia.EndTime > StratTimeWorkingEnd && xiaojia.EndTime < StratTimeOffworkStart)
                                {
                                    xiaojia.EndTime = StratTimeWorkingEnd;
                                }
                                if (xiaojia.EndTime > StratTimeOffworkEnd)
                                {
                                    xiaojia.EndTime = StratTimeOffworkEnd;
                                }
                                TimeSpan qingjiashiijan = xiaojia.EndTime.Value.Subtract(xiaojia.StartTime.Value);
                                if (xiaojia.StartTime <= StratTimeWorkingEnd && xiaojia.EndTime >= StratTimeOffworkStart)
                                {
                                    TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd);
                                    dangtianxiaojia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2);
                                }
                                else
                                {
                                    dangtianxiaojia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2);
                                }
                            }
                            Xiaojia += dangtianxiaojia;
                        }
                        //计算当天加班天数
                        Jiaban += (1 - Kuanggongtianshu );
                        Kuanggongtianshu = 0;
                        //加班
                        //计算加班时间
                        if (admSignInDTO != null && admSignInDTO.OvertimeIn.HasValue && admSignInDTO.OvertimeOut.HasValue)
                        {
                            DateTime overdate = admSignInDTO.OvertimeIn.Value;
                            if (admSignInDTO.OvertimeIn.Value < StratTimeOffworkEnd)
                            var admAskovertimeDTO = _askService.GetAskovertimeByUeridAndjiabantime(userList[a].Id, dateminkaoqin);
                            if (admAskovertimeDTO != null && !string.IsNullOrEmpty(admAskovertimeDTO.Id))
                            {
                                overdate = StratTimeOffworkEnd;
                                //如果当天是公司要求加班,则自己申请的加班从下班开始算
                                DateTime overdate = admSignInDTO.OvertimeIn.Value;
                                if (shifoujiaban && admSignInDTO.OvertimeIn.Value < StratTimeOffworkEnd)
                                {
                                    overdate = StratTimeOffworkEnd;
                                }
                                TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate);
                                decimal jiabanshijian = jiaban.Hours;
                                if (new decimal(jiaban.Hours) > admAskovertimeDTO.Overtime.Value)
                                {
                                    jiabanshijian = admAskovertimeDTO.Overtime.Value;
                                }
                                if (jiabanshijian > new decimal(shangbanshijian) / 60)
                                {
                                    jiabanshijian = new decimal(shangbanshijian) / 60;
                                }
                                Jiaban += Math.Round(jiabanshijian * 60 / shangbanshijian, 2);
                            }
                            TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate);
                            Jiaban += Math.Round((decimal)(jiaban.Hours * 60) / (decimal)shangbanshijian, 2);
                        }
                        
@@ -983,7 +1490,7 @@
                        admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut;
                        admAttendanceDtlDTO.Qingjia = dangtianqingjia;
                        admAttendanceDtlDTO.Xiaojia = dangtianxiaojia;
                        admAttendanceDtlDTO.Daixinjia = dangtiandaixinjia;
@@ -1019,6 +1526,7 @@
                        admAttendanceDtlDTO.OvertimeIn = admSignInDTO.OvertimeIn;
                        admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut;
                        admAttendanceDtlDTO.Qingjia = dangtianqingjia;
                        admAttendanceDtlDTO.Daixinjia = dangtiandaixinjia;
                        admAttendanceDtlDTO.Xiaojia = dangtianxiaojia;
                        
@@ -1070,6 +1578,7 @@
                admAttendanceDTO.Qingjia = Qingjia;
                admAttendanceDTO.Daixinjia = Daixinjia;
                admAttendanceDTO.Xiaojia = Xiaojia;
                admAttendanceDTO.Chidao = Chidao;
                admAttendanceDTO.Islock = "A";
@@ -1085,10 +1594,17 @@
        //计算工资
        public void jisuangongzi()
        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();
@@ -1137,18 +1653,27 @@
                searchEntity.AttendanceId = admAttendanceDTO.Id;
                List<AdmAttendanceDtlDTO> admAttendanceDtlDTOs = _admAttendanceDtlService.GetList(searchEntity).OrderBy(x => x.SgninDate).ToList();
                //查询是否有不称职的工作考评
               var admEvaluateDTOs = _admEvaluateService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x=>x.EvaluateValue == "03").ToList();
                //当月出勤率
                decimal chuqinlv = Math.Round(admAttendanceDTO.Shijichuqin / admAttendanceDTO.Yingchuqin,4); 
                //查询当前员工职务的基本工资配置
               var hrJibengongzi = hrJibengongziDTOs.Where(x=>x.PostId == userList[i].HrPosition ).OrderByDescending(x=>x.Effecttime).FirstOrDefault();
                if (hrJibengongzi == null)
                {
                    _logger.LogInformation(userList[i].UserName + ": 职务所属资本工资为空");
                    continue;
                }
                var shebaoDTO = _JibengongziService.GetListShebao().FirstOrDefault();
                if (shebaoDTO == null)
                {
                    _logger.LogInformation(userList[i].UserName + ": 社保维护为空");
                    continue;
                }
                hrSalaryDTO.Jibengongzi = Math.Round( hrJibengongzi.Jibengongzi.Value * chuqinlv, 2);
                hrSalaryDTO.Baomifei = Math.Round(hrJibengongzi.Baomifei.Value * chuqinlv, 2);
                //是否在试用期
@@ -1157,22 +1682,46 @@
                {
                    geshuiqizheng = userList[i].geshuiqizheng.Value;
                }
                var Shebaodanwei = hrJibengongzi.Shebaodanwei.HasValue ? hrJibengongzi.Shebaodanwei.Value : 0;
                var Shebaogeren = hrJibengongzi.Shebaogeren.HasValue ? hrJibengongzi.Shebaogeren.Value : 0;
                var Shebaodanwei = shebaoDTO.Shebaodanwei.HasValue ? shebaoDTO.Shebaodanwei.Value : 0;
                var Shebaogeren = shebaoDTO.Shebaogeren.HasValue ? shebaoDTO.Shebaogeren.Value : 0;
                decimal yingnashuie = 0;
                hrSalaryDTO.Queqin = 0;
                hrSalaryDTO.Fakuan = 0;
                hrSalaryDTO.Gongzuobutie = 0;
                hrSalaryDTO.Jiabangongzi = 0;
                decimal shiyongqichuqintianshu = 0;
                decimal shiyongqichuqinlv = 0;
                if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && dateminkaoqin>= userList[i].ShiyongDate.Value && dateminkaoqin <= userList[i].ShiyongDateEnd.Value)
                decimal yingfaheji = 0;
                decimal BasicPrice = 0;
                if (!decimal.TryParse(userList[i].BasicPrice, out BasicPrice))
                {
                    _logger.LogInformation(userList[i].UserName + ": 员工没有维护工资");
                    continue;
                }
                if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && datemaxkaoqin> userList[i].ShiyongDate.Value && dateminkaoqin <= userList[i].ShiyongDateEnd.Value)
                {
                    hrSalaryDTO.Jibengongzi = Math.Round(hrJibengongzi.Jibengongzi.Value * chuqinlv * new decimal(0.8), 2) ;
                    hrSalaryDTO.Baomifei = Math.Round(hrJibengongzi.Baomifei.Value * chuqinlv * new decimal(0.8), 2) ;
                    decimal ShiyongPrice = 0;
                    if (!userList[i].ShiyongPrice.HasValue)
                    {
                        _logger.LogInformation(userList[i].UserName + ": 员工处于试用期,但是试用期工资为空");
                        continue;
                        ShiyongPrice = BasicPrice * new decimal(0.8);
                        _logger.LogInformation(userList[i].UserName + ": 员工处于试用期,但是试用期工资为空,定为正式工资的0.8倍");
                    }
                    else
                    {
                        ShiyongPrice = userList[i].ShiyongPrice.Value;
                    }
                    //查询是否有不称职的工作考评
                    var admEvaluateDTOsshiyongqi = _admEvaluateService.GetListsalary(userList[i].Id, dateminkaoqin, userList[i].ShiyongDateEnd.Value.AddDays(1)).Where(x => x.EvaluateValue == "03").ToList();
                    //试用期的出勤率
                    shiyongqichuqinlv = chuqinlv;
                    if(userList[i].ShiyongDateEnd.Value< datemaxkaoqin.AddDays(-1))
@@ -1185,7 +1734,7 @@
                                    shiyongqichuqintianshu += (1 - admAttendanceDtlDTO.Qingjia - admAttendanceDtlDTO.Kuanggongtianshu);
                                    if (admAttendanceDtlDTO.Kuanggongtianshu > 0)
                                    {
                                        var queqingkoukuan = Math.Round(userList[i].ShiyongPrice.Value / jiabangongzibiaozhun * admAttendanceDtlDTO.Kuanggongtianshu * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2);
                                        var queqingkoukuan = Math.Round(ShiyongPrice / jiabangongzibiaozhun * admAttendanceDtlDTO.Kuanggongtianshu * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2);
                                        if (queqingkoukuan > 0)
                                        {
                                            hrSalaryDTO.Queqin += queqingkoukuan;
@@ -1193,44 +1742,59 @@
                                    }
                            }
                        }
                        shiyongqichuqinlv = Math.Round(shiyongqichuqintianshu / admAttendanceDTO.Yingchuqin, 4);
                        //工作评价不合格罚款
                        hrSalaryDTO.Fakuan += Math.Round(ShiyongPrice * admEvaluateDTOsshiyongqi.Count / admAttendanceDTO.Yingchuqin + BasicPrice * (admEvaluateDTOs.Count - admEvaluateDTOsshiyongqi.Count) / admAttendanceDTO.Yingchuqin, 2);
                    }
                    else
                    {
                        if (admAttendanceDTO.Kuanggong > 0)
                        {
                            var queqingkoukuan = Math.Round(userList[i].ShiyongPrice.Value / jiabangongzibiaozhun * admAttendanceDTO.Kuanggong * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2);
                            var queqingkoukuan = Math.Round(ShiyongPrice / jiabangongzibiaozhun * admAttendanceDTO.Kuanggong * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2);
                            if (queqingkoukuan > 0)
                            {
                                hrSalaryDTO.Queqin += queqingkoukuan;
                            }
                        }
                        hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * userList[i].ShiyongPrice.Value, 2);
                        if (hrJibengongzi.Jiabangongzi.HasValue)
                        {
                            hrSalaryDTO.Jiabangongzi += Math.Round(admAttendanceDTO.Jiaban * hrJibengongzi.Jiabangongzi.Value, 2);  //(admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * userList[i].ShiyongPrice.Value
                        }
                        //工作评价不合格罚款
                        hrSalaryDTO.Fakuan += Math.Round(ShiyongPrice * admEvaluateDTOs.Count / admAttendanceDTO.Yingchuqin, 2);
                    }
                    hrSalaryDTO.Gongzuobutie += Math.Round( (userList[i].ShiyongPrice.Value - hrJibengongzi.Baomifei.Value- hrJibengongzi.Jibengongzi.Value ) * shiyongqichuqinlv, 2);
                    hrSalaryDTO.Gongzuobutie += Math.Round( (ShiyongPrice * shiyongqichuqinlv - hrSalaryDTO.Baomifei.Value- hrSalaryDTO.Jibengongzi.Value ) , 2);
                    //yingnashuie = userList[i].ShiyongPrice.Value - Shebaogeren - geshuiqizheng;
                }
                else
                {
                    //工作评价罚款
                    hrSalaryDTO.Fakuan += Math.Round(BasicPrice * admEvaluateDTOs.Count/ admAttendanceDTO.Yingchuqin , 2);
                }
                
                if(true)
                {
                    decimal BasicPrice = 0;
                    if(!decimal.TryParse(userList[i].BasicPrice,out BasicPrice))
                    {
                        _logger.LogInformation(userList[i].UserName + ": 员工没有维护工资");
                        continue;
                    }
                    //转正后的出勤率
                    decimal zhuanzhengchuqinlv = chuqinlv- shiyongqichuqinlv;
                    if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && userList[i].ShiyongDateEnd.Value >= dateminkaoqin && userList[i].ShiyongDateEnd.Value <= datemaxkaoqin.AddDays(-1))
@@ -1281,16 +1845,20 @@
                                hrSalaryDTO.Queqin += queqingkoukuan;
                            }
                        }
                        hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * BasicPrice, 2);
                        if (hrJibengongzi.Jiabangongzi.HasValue)
                        {
                            hrSalaryDTO.Jiabangongzi += Math.Round(admAttendanceDTO.Jiaban * hrJibengongzi.Jiabangongzi.Value, 2);  //   hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * BasicPrice, 2);
                        }
                    }
                    hrSalaryDTO.Gongzuobutie += Math.Round((BasicPrice - hrJibengongzi.Baomifei.Value - hrJibengongzi.Jibengongzi.Value) * zhuanzhengchuqinlv, 2);
                    hrSalaryDTO.Gongzuobutie += Math.Round((BasicPrice * zhuanzhengchuqinlv - hrSalaryDTO.Baomifei.Value - hrSalaryDTO.Jibengongzi.Value) , 2);
                  
                    //yingnashuie = BasicPrice - Shebaogeren - geshuiqizheng;
                    
                }
@@ -1520,9 +2088,17 @@
                    hrSalaryDTO.Dianhuafei = SimCost.bill_amount;
                }
              
                if(admAttendanceDTO.Shijichuqin>=admAttendanceDTO.Yingchuqin
                    && hrSalaryDTO.Queqin <=0)
                {
                    hrSalaryDTO.Quanqinjiang = hrJibengongzi.Quanqingjiang;
                }
                else
                {
                    hrSalaryDTO.Quanqinjiang = 0;
                }
                hrSalaryDTO.Quanqinjiang = hrJibengongzi.Quanqingjiang;
                if ("A".Equals(userList[i].Istravelsubsidy))
                {
                    hrSalaryDTO.Jiaotngbutie = hrJibengongzi.Jiaotongbutie;
@@ -1534,7 +2110,6 @@
                hrSalaryDTO.Fakuan = 0;
                //工作安排罚款
                List<AdmMemoBookDTO> admMemoBookDTOs =  _DailyManageService.GetRemindsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin,"2");
                if (admMemoBookDTOs.Count > 0)
@@ -1574,13 +2149,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 caigougonggaoDTOsyue = _projectService.GetcaigougonggaoListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    if (caigougonggaoDTOsyue != null && caigougonggaoDTOsyue.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();
@@ -1588,16 +2162,43 @@
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while(kaishijisuan < datemaxkaoqin)
                                    {
                                        decimal youxiaojijian = intentionVisitDTOs.Count + cooperVisitDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        try
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var caigougonggaoDTOsri = caigougonggaoDTOsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = caigougonggaoDTOsri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = caigougonggaoDTOsyue.Count - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
@@ -1605,7 +2206,7 @@
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = intentionVisitDTOs.Count + cooperVisitDTOs.Count - renwujishu;
                                        decimal youxiaojijian = caigougonggaoDTOsyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
@@ -1617,6 +2218,156 @@
                        }
                    }
                    #endregion
                    #region 采购项目录入
                    var projectDTOsyue = _projectService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    var zhengfuprojectDTOsyue = _projectService.GetListsalaryzhengfu(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    if ((projectDTOsyue!=null && projectDTOsyue.Count > 0 ) || (zhengfuprojectDTOsyue != null && zhengfuprojectDTOsyue.Count > 0))
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "采购项目录入").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var projectDTOri = projectDTOsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                var zhengfuprojectDTOri = zhengfuprojectDTOsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList();
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = projectDTOri.Count + zhengfuprojectDTOri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = projectDTOsyue.Count - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = projectDTOsyue.Count + zhengfuprojectDTOsyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 客户资料录入
                    var _intentionCustomerDTOs = _intentionCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    if (_intentionCustomerDTOs!=null && _intentionCustomerDTOs.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "客户资料录入").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var _intentionCustomerDTOsri = _intentionCustomerDTOs.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = _intentionCustomerDTOsri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = _intentionCustomerDTOs.Count   - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = _intentionCustomerDTOs.Count   - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 新加群组
@@ -1624,7 +2375,7 @@
                    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();
                        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();
@@ -1632,16 +2383,43 @@
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        decimal youxiaojijian = groupTopicDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        try
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var groupTopicDTOsri = groupTopicDTOs.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = groupTopicDTOsri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = groupTopicDTOs.Count - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
@@ -1663,12 +2441,12 @@
                    }
                    #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)
                    #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.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();
@@ -1676,16 +2454,43 @@
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        decimal youxiaojijian = _intentionCustomerDTOs.Count + cooperatecustomCustomerDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        try
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var intentionVisitDTOsri = intentionVisitDTOs.Where(x => x.Vistime >= kaishijisuan && x.Vistime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = intentionVisitDTOsri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = intentionVisitDTOs.Count - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
@@ -1693,7 +2498,7 @@
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = _intentionCustomerDTOs.Count +  cooperatecustomCustomerDTOs.Count - renwujishu;
                                        decimal youxiaojijian = intentionVisitDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
@@ -1702,55 +2507,1011 @@
                                    }
                                }
                            }
                        }
                        }
                    }
                    #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")
                                {
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var duanxinsri = duanxinsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = duanxinsri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = duanxinsyue.Count - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    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 添加微信客户
                    TongjiBaoBiaoDTO weixnDTO = new TongjiBaoBiaoDTO();
                    weixnDTO.gongzuo = "添加微信客户";
                    //本月数量
                    var cooperweixinDTOsyue = _cooperatecustomCustomerService.GetListsalaryweixin(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    var intentionweixinDTOsyue = _intentionCustomerService.GetListsalaryweixin(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    var jijianiweixn = fiPiecerateDTOs.Where(x => x.Project == "添加微信客户").FirstOrDefault();
                    if (jijianiweixn != null)
                    {
                        var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianiweixn.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                        if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                        {
                            if (jixiaotichengfangan.Renwustandard == "01")
                            {
                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                while (kaishijisuan < datemaxkaoqin)
                                {
                                    try
                                    {
                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
                                        if (gongzuoshijian)
                                        {
                                            var cooperweixinDTOsri = cooperweixinDTOsyue.Where(x => x.Weixintime >= kaishijisuan && x.Weixintime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                            var intentionweixinDTOsri = intentionweixinDTOsyue.Where(x => x.Weixintime >= kaishijisuan && x.Weixintime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                            if (jixiaotichengfangan.Tichengstandard == "01")
                                            {
                                                decimal youxiaojijian = cooperweixinDTOsri.Count + intentionweixinDTOsri.Count - renwujishu;
                                                if (youxiaojijian > 0)
                                                {
                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogInformation(ex.ToString());
                                    }
                                    kaishijisuan = kaishijisuan.AddDays(1);
                                }
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //if (jixiaotichengfangan.Tichengstandard == "01")
                                //{
                                //    decimal youxiaojijian = cooperweixinDTOsyue.Count+ intentionweixinDTOsyue.Count - renwujishu;
                                //    if (youxiaojijian > 0)
                                //    {
                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                //    }
                                //}
                            }
                            else if (jixiaotichengfangan.Renwustandard == "02")
                            {
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "01")
                                {
                                    decimal youxiaojijian = cooperweixinDTOsyue.Count + intentionweixinDTOsyue.Count - renwujishu;
                                    if (youxiaojijian > 0)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 群发邮件
                    var youjiansyue = _cusFangwenjiluService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.Fasongfangshi == "02").ToList();
                    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")
                                {
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var youjiansri = youjiansyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = youjiansri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = youjiansyue.Count - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    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")
                                {
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var yixiangsri = yixiangsyue.Where(x => x.Yixiangtime >= kaishijisuan && x.Yixiangtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = yixiangsri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = yixiangsyue.Count - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    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")
                                {
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var zhucehuiyuansyueri = zhucehuiyuansyue.Where(x => x.CreatTime >= kaishijisuan && x.CreatTime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = zhucehuiyuansyueri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = zhucehuiyuansyue.Count - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    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")
                                {
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var qianyueDTOsri = qianyueDTOsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = qianyueDTOsri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = qianyueDTOsyue.Count - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    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")
                                {
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var cooperVisitDTOsri = cooperVisitDTOs.Where(x => x.Vistime >= kaishijisuan && x.Vistime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                var intentionVisitDTOsshangmenri = intentionVisitDTOsshangmen.Where(x => x.Vistime >= kaishijisuan && x.Vistime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = cooperVisitDTOsri.Count + intentionVisitDTOsshangmenri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = intentionVisitDTOsshangmen.Count + cooperVisitDTOs.Count - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    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);
                                        }
                                    }
                                }
                                else if (jixiaotichengfangan.Renwustandard == "05")
                                {
                                    var cooperVisitDTOszhou = _cooperVisitService.GetListsalary(userList[i].Id, dateminkaoqin.AddMonths(-1), datemaxkaoqin).Where(x => x.VisType == "02").ToList();
                                    var intentionVisitDTOsshangmenzhou = _intentionVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.VisType == "02").ToList();
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        var zhoukaishidate = CalculateFirstDateOfWeek(kaishijisuan);
                                        var zhoujieshudate = CalculateLastDateOfWeek(kaishijisuan);
                                        try
                                        {
                                            if(zhoujieshudate < datemaxkaoqin)
                                            {
                                                var cooperVisitDTOsri = cooperVisitDTOszhou.Where(x => x.Vistime >= zhoukaishidate && x.Vistime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                var intentionVisitDTOsshangmenri = intentionVisitDTOsshangmenzhou.Where(x => x.Vistime >= zhoukaishidate && x.Vistime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = cooperVisitDTOsri.Count + intentionVisitDTOsshangmenri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = zhoujieshudate.AddDays(1);
                                    }
                                }
                            }
                        }
                    }
                    #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")
                                {
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var dtChannelArticleNewsDTOsri = dtChannelArticleNewsDTOs.Where(x => x.AddTime >= kaishijisuan && x.AddTime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = dtChannelArticleNewsDTOsri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = dtChannelArticleNewsDTOs.Count - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    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")
                                {
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var dianxinanDTOsri = dianxinanDTOs.Where(x => x.AddTime >= kaishijisuan && x.AddTime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = dianxinanDTOsri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = dianxinanDTOs.Count - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    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")
                                {
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var zhengcaizhishiDTOsri = zhengcaizhishiDTOs.Where(x => x.AddTime >= kaishijisuan && x.AddTime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = zhengcaizhishiDTOsri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = zhengcaizhishiDTOs.Count - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    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")
                                {
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var xinzengwendaDTOsri = xinzengwendaDTOsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = xinzengwendaDTOsri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = xinzengwendaDTOsyue.Count - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    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")
                                {
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var shenhewendaDTOsri = shenhewendaDTOsyue.Where(x => x.Shenhetime >= kaishijisuan && x.Shenhetime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = shenhewendaDTOsri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = shenhewendaDTOsyue.Count - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    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);
                                        }
                    //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);
                                        }
                    //             }
                    //             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
@@ -1770,10 +3531,11 @@
                    #endregion
                    //合作客户订单
                    List<CooperOrderDTO> cooperOrderDTOs =  _cooperOrderService.GetList(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    List<CooperOrderDTO> cooperOrderDTOszhouyue = _cooperOrderService.GetList(userList[i].Id, dateminkaoqin.AddMinutes(-1), datemaxkaoqin);
                    #region 图书销售
                    var cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "01").ToList();
                    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();
@@ -1781,17 +3543,44 @@
                        {
                            if(jixiaotichengfangan.Renwustandard == "01")
                            {
                              decimal renwujishu =   admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if(jixiaotichengfangan.Tichengstandard == "01")
                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                while (kaishijisuan < datemaxkaoqin)
                                {
                                decimal youxiaojijian =     cooperOrdertushu.Count - renwujishu ;
                                    if (youxiaojijian>0)
                                    try
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
                                        if (gongzuoshijian)
                                        {
                                            var cooperOrdertushusri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                            if (jixiaotichengfangan.Tichengstandard == "01")
                                            {
                                                decimal youxiaojijian = cooperOrdertushusri.Count - renwujishu;
                                                if (youxiaojijian > 0)
                                                {
                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogInformation(ex.ToString());
                                    }
                                    kaishijisuan = kaishijisuan.AddDays(1);
                                }
                                //decimal renwujishu =   admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //  if(jixiaotichengfangan.Tichengstandard == "01")
                                //  {
                                //  decimal youxiaojijian =     cooperOrdertushu.Count - renwujishu ;
                                //      if (youxiaojijian>0)
                                //      {
                                //          hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                //      }
                                //  }
                            }
                            else if (jixiaotichengfangan.Renwustandard == "02")
                            {
@@ -1808,19 +3597,49 @@
                            }
                            else if (jixiaotichengfangan.Renwustandard == "03")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "02")
                                {
                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
                                    if (youxiaojijian > 0)
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian* new decimal(0.01), 2);
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var cooperOrdertushusri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                var dingdanjine = cooperOrdertushusri.Sum(x => x.Money);
                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                                if (jixiaotichengfangan.Tichengstandard == "02")
                                                {
                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                    //if (youxiaojijian > 0)
                                    //{
                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian* new decimal(0.01), 2);
                                    //}
                                }
                            }
@@ -1831,14 +3650,52 @@
                                {
                                    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);
                                    }
                                }
                            }
                            else if (jixiaotichengfangan.Renwustandard == "06")
                            {
                                var cooperOrderDTOszhou = cooperOrderDTOszhouyue.Where(x => x.OrderType == "01").ToList();
                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                while (kaishijisuan < datemaxkaoqin)
                                {
                                    var zhoukaishidate = CalculateFirstDateOfWeek(kaishijisuan);
                                    var zhoujieshudate = CalculateLastDateOfWeek(kaishijisuan);
                                    try
                                    {
                                        if (zhoujieshudate < datemaxkaoqin)
                                        {
                                            var cooperOrdertushusri = cooperOrderDTOszhou.Where(x => x.Createtime >= zhoukaishidate && x.Createtime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                            var dingdanjine = cooperOrdertushusri.Sum(x => x.Money);
                                            var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                            if (jixiaotichengfangan.Tichengstandard == "02")
                                            {
                                                decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                                if (youxiaojijian > 0)
                                                {
                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogInformation(ex.ToString());
                                    }
                                    kaishijisuan = zhoujieshudate.AddDays(1);
                                }
                            }
                        }
@@ -1847,7 +3704,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();
@@ -1855,16 +3712,44 @@
                        {
                            if (jixiaotichengfangan.Renwustandard == "01")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "01")
                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                while (kaishijisuan < datemaxkaoqin)
                                {
                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                    if (youxiaojijian > 0)
                                    try
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    }
                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
                                        if (gongzuoshijian)
                                        {
                                            var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                            if (jixiaotichengfangan.Tichengstandard == "01")
                                            {
                                                decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
                                                if (youxiaojijian > 0)
                                                {
                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogInformation(ex.ToString());
                                    }
                                    kaishijisuan = kaishijisuan.AddDays(1);
                                }
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //if (jixiaotichengfangan.Tichengstandard == "01")
                                //{
                                //    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                //    if (youxiaojijian > 0)
                                //    {
                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                //    }
                                //}
                            }
                            else if (jixiaotichengfangan.Renwustandard == "02")
@@ -1882,19 +3767,49 @@
                            }
                            else if (jixiaotichengfangan.Renwustandard == "03")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "02")
                                {
                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
                                    if (youxiaojijian > 0)
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                                if (jixiaotichengfangan.Tichengstandard == "02")
                                                {
                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                    //if (youxiaojijian > 0)
                                    //{
                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                    //}
                                }
                            }
@@ -1905,14 +3820,52 @@
                                {
                                    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);
                                    }
                                }
                            }
                            else if (jixiaotichengfangan.Renwustandard == "06")
                            {
                                var cooperOrderDTOszhou = cooperOrderDTOszhouyue.Where(x => x.OrderType == "02").ToList();
                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                while (kaishijisuan < datemaxkaoqin)
                                {
                                    var zhoukaishidate = CalculateFirstDateOfWeek(kaishijisuan);
                                    var zhoujieshudate = CalculateLastDateOfWeek(kaishijisuan);
                                    try
                                    {
                                        if (zhoujieshudate < datemaxkaoqin)
                                        {
                                            var cooperOrdertushusri = cooperOrderDTOszhou.Where(x => x.Createtime >= zhoukaishidate && x.Createtime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                            var dingdanjine = cooperOrdertushusri.Sum(x => x.Money);
                                            var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                            if (jixiaotichengfangan.Tichengstandard == "02")
                                            {
                                                decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                                if (youxiaojijian > 0)
                                                {
                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogInformation(ex.ToString());
                                    }
                                    kaishijisuan = zhoujieshudate.AddDays(1);
                                }
                            }
                        }
@@ -1922,7 +3875,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();
@@ -1930,16 +3883,44 @@
                        {
                            if (jixiaotichengfangan.Renwustandard == "01")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "01")
                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                while (kaishijisuan < datemaxkaoqin)
                                {
                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                    if (youxiaojijian > 0)
                                    try
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    }
                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
                                        if (gongzuoshijian)
                                        {
                                            var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                            if (jixiaotichengfangan.Tichengstandard == "01")
                                            {
                                                decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
                                                if (youxiaojijian > 0)
                                                {
                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogInformation(ex.ToString());
                                    }
                                    kaishijisuan = kaishijisuan.AddDays(1);
                                }
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //if (jixiaotichengfangan.Tichengstandard == "01")
                                //{
                                //    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                //    if (youxiaojijian > 0)
                                //    {
                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                //    }
                                //}
                            }
                            else if (jixiaotichengfangan.Renwustandard == "02")
@@ -1957,19 +3938,49 @@
                            }
                            else if (jixiaotichengfangan.Renwustandard == "03")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "02")
                                {
                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
                                    if (youxiaojijian > 0)
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                                if (jixiaotichengfangan.Tichengstandard == "02")
                                                {
                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                    //if (youxiaojijian > 0)
                                    //{
                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                    //}
                                }
                            }
@@ -1980,14 +3991,52 @@
                                {
                                    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);
                                    }
                                }
                            }
                            else if (jixiaotichengfangan.Renwustandard == "06")
                            {
                                var cooperOrderDTOszhou = cooperOrderDTOszhouyue.Where(x => x.OrderType == "03").ToList();
                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                while (kaishijisuan < datemaxkaoqin)
                                {
                                    var zhoukaishidate = CalculateFirstDateOfWeek(kaishijisuan);
                                    var zhoujieshudate = CalculateLastDateOfWeek(kaishijisuan);
                                    try
                                    {
                                        if (zhoujieshudate < datemaxkaoqin)
                                        {
                                            var cooperOrdertushusri = cooperOrderDTOszhou.Where(x => x.Createtime >= zhoukaishidate && x.Createtime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                            var dingdanjine = cooperOrdertushusri.Sum(x => x.Money);
                                            var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                            if (jixiaotichengfangan.Tichengstandard == "02")
                                            {
                                                decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                                if (youxiaojijian > 0)
                                                {
                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogInformation(ex.ToString());
                                    }
                                    kaishijisuan = zhoujieshudate.AddDays(1);
                                }
                            }
                        }
@@ -1997,7 +4046,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();
@@ -2005,16 +4054,43 @@
                        {
                            if (jixiaotichengfangan.Renwustandard == "01")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "01")
                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                while (kaishijisuan < datemaxkaoqin)
                                {
                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                    if (youxiaojijian > 0)
                                    try
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    }
                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
                                        if (gongzuoshijian)
                                        {
                                            var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                            if (jixiaotichengfangan.Tichengstandard == "01")
                                            {
                                                decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
                                                if (youxiaojijian > 0)
                                                {
                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogInformation(ex.ToString());
                                    }
                                    kaishijisuan = kaishijisuan.AddDays(1);
                                }
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //if (jixiaotichengfangan.Tichengstandard == "01")
                                //{
                                //    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                //    if (youxiaojijian > 0)
                                //    {
                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                //    }
                                //}
                            }
                            else if (jixiaotichengfangan.Renwustandard == "02")
@@ -2032,19 +4108,49 @@
                            }
                            else if (jixiaotichengfangan.Renwustandard == "03")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "02")
                                {
                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
                                    if (youxiaojijian > 0)
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                                if (jixiaotichengfangan.Tichengstandard == "02")
                                                {
                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                    //if (youxiaojijian > 0)
                                    //{
                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                    //}
                                }
                            }
@@ -2055,10 +4161,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 +4177,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();
@@ -2080,16 +4186,43 @@
                        {
                            if (jixiaotichengfangan.Renwustandard == "01")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "01")
                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                while (kaishijisuan < datemaxkaoqin)
                                {
                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                    if (youxiaojijian > 0)
                                    try
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    }
                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
                                        if (gongzuoshijian)
                                        {
                                            var cooperOrdertushusri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                            if (jixiaotichengfangan.Tichengstandard == "01")
                                            {
                                                decimal youxiaojijian = cooperOrdertushusri.Count - renwujishu;
                                                if (youxiaojijian > 0)
                                                {
                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogInformation(ex.ToString());
                                    }
                                    kaishijisuan = kaishijisuan.AddDays(1);
                                }
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //if (jixiaotichengfangan.Tichengstandard == "01")
                                //{
                                //    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                //    if (youxiaojijian > 0)
                                //    {
                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                //    }
                                //}
                            }
                            else if (jixiaotichengfangan.Renwustandard == "02")
@@ -2104,22 +4237,66 @@
                                    }
                                }
                                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")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "02")
                                {
                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
                                    if (youxiaojijian > 0)
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                                if (jixiaotichengfangan.Tichengstandard == "02")
                                                {
                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                    //if (youxiaojijian > 0)
                                    //{
                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                    //}
                                }
                            }
@@ -2130,14 +4307,55 @@
                                {
                                    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);
                                    }
                                }
                            }
                            else if (jixiaotichengfangan.Renwustandard == "05")
                            {
                                var cooperOrderDTOszhou = cooperOrderDTOszhouyue.Where(x => x.OrderType == "05").OrderBy(x => x.Createtime).ToList();
                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                while (kaishijisuan < datemaxkaoqin)
                                {
                                    var zhoukaishidate = CalculateFirstDateOfWeek(kaishijisuan);
                                    var zhoujieshudate = CalculateLastDateOfWeek(kaishijisuan);
                                    try
                                    {
                                        if (zhoujieshudate < datemaxkaoqin)
                                        {
                                            var cooperOrdertushusri = cooperOrderDTOszhou.Where(x => x.Createtime >= zhoukaishidate && x.Createtime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                            //if (jixiaotichengfangan.Tichengstandard == "02")
                                            if (cooperOrdertushusri.Count > renwujishu)
                                            {
                                                List<CooperOrderDTO> cooperOrdertushuyouxiao = new List<CooperOrderDTO>();
                                                for (int j = Convert.ToInt32(renwujishu); j < cooperOrdertushusri.Count; j++)
                                                {
                                                    cooperOrdertushuyouxiao.Add(cooperOrdertushusri[j]);
                                                }
                                                var dingdanjine = cooperOrdertushuyouxiao.Sum(x => x.Money);
                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                                hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * dingdanjinezhenshi * new decimal(0.01), 2);
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogInformation(ex.ToString());
                                    }
                                    kaishijisuan = zhoujieshudate.AddDays(1);
                                }
                            }
                        }
@@ -2147,7 +4365,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();
@@ -2155,14 +4373,41 @@
                        {
                            if (jixiaotichengfangan.Renwustandard == "01")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "01")
                                {
                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                    if (youxiaojijian > 0)
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                    //if (youxiaojijian > 0)
                                    //{
                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //}
                                }
@@ -2182,19 +4427,48 @@
                            }
                            else if (jixiaotichengfangan.Renwustandard == "03")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "02")
                                {
                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
                                    if (youxiaojijian > 0)
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                                if (jixiaotichengfangan.Tichengstandard == "02")
                                                {
                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                    //if (youxiaojijian > 0)
                                    //{
                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                    //}
                                }
                            }
@@ -2205,10 +4479,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 +4496,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();
@@ -2230,14 +4504,42 @@
                        {
                            if (jixiaotichengfangan.Renwustandard == "01")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "01")
                                {
                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                    if (youxiaojijian > 0)
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                    //if (youxiaojijian > 0)
                                    //{
                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //}
                                }
@@ -2257,19 +4559,50 @@
                            }
                            else if (jixiaotichengfangan.Renwustandard == "03")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "02")
                                {
                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
                                    if (youxiaojijian > 0)
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                                if (jixiaotichengfangan.Tichengstandard == "02")
                                                {
                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                    //if (youxiaojijian > 0)
                                    //{
                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                    //}
                                }
                            }
@@ -2280,10 +4613,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 +4630,7 @@
                    #region 风险代理
                    cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "08").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();
@@ -2305,16 +4638,44 @@
                        {
                            if (jixiaotichengfangan.Renwustandard == "01")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "01")
                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                while (kaishijisuan < datemaxkaoqin)
                                {
                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                    if (youxiaojijian > 0)
                                    try
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    }
                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
                                        if (gongzuoshijian)
                                        {
                                            var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Wangongtime >= kaishijisuan && x.Wangongtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                            if (jixiaotichengfangan.Tichengstandard == "01")
                                            {
                                                decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
                                                if (youxiaojijian > 0)
                                                {
                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogInformation(ex.ToString());
                                    }
                                    kaishijisuan = kaishijisuan.AddDays(1);
                                }
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //if (jixiaotichengfangan.Tichengstandard == "01")
                                //{
                                //    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                //    if (youxiaojijian > 0)
                                //    {
                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                //    }
                                //}
                            }
                            else if (jixiaotichengfangan.Renwustandard == "02")
@@ -2332,19 +4693,48 @@
                            }
                            else if (jixiaotichengfangan.Renwustandard == "03")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "02")
                                {
                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
                                    if (youxiaojijian > 0)
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Wangongtime >= kaishijisuan && x.Wangongtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                                if (jixiaotichengfangan.Tichengstandard == "02")
                                                {
                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                    //if (youxiaojijian > 0)
                                    //{
                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                    //}
                                }
                            }
@@ -2355,10 +4745,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 +4762,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();
@@ -2380,16 +4770,43 @@
                        {
                            if (jixiaotichengfangan.Renwustandard == "01")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "01")
                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                while (kaishijisuan < datemaxkaoqin)
                                {
                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                    if (youxiaojijian > 0)
                                    try
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    }
                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
                                        if (gongzuoshijian)
                                        {
                                            var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                            if (jixiaotichengfangan.Tichengstandard == "01")
                                            {
                                                decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
                                                if (youxiaojijian > 0)
                                                {
                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogInformation(ex.ToString());
                                    }
                                    kaishijisuan = kaishijisuan.AddDays(1);
                                }
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //if (jixiaotichengfangan.Tichengstandard == "01")
                                //{
                                //    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                //    if (youxiaojijian > 0)
                                //    {
                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                //    }
                                //}
                            }
                            else if (jixiaotichengfangan.Renwustandard == "02")
@@ -2407,19 +4824,48 @@
                            }
                            else if (jixiaotichengfangan.Renwustandard == "03")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "02")
                                {
                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
                                    if (youxiaojijian > 0)
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                                if (jixiaotichengfangan.Tichengstandard == "02")
                                                {
                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                    //if (youxiaojijian > 0)
                                    //{
                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                    //}
                                }
                            }
@@ -2430,10 +4876,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 +4893,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();
@@ -2455,16 +4901,43 @@
                        {
                            if (jixiaotichengfangan.Renwustandard == "01")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "01")
                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                while (kaishijisuan < datemaxkaoqin)
                                {
                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                    if (youxiaojijian > 0)
                                    try
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    }
                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
                                        if (gongzuoshijian)
                                        {
                                            var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                            if (jixiaotichengfangan.Tichengstandard == "01")
                                            {
                                                decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
                                                if (youxiaojijian > 0)
                                                {
                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogInformation(ex.ToString());
                                    }
                                    kaishijisuan = kaishijisuan.AddDays(1);
                                }
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //if (jixiaotichengfangan.Tichengstandard == "01")
                                //{
                                //    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                //    if (youxiaojijian > 0)
                                //    {
                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                //    }
                                //}
                            }
                            else if (jixiaotichengfangan.Renwustandard == "02")
@@ -2482,19 +4955,48 @@
                            }
                            else if (jixiaotichengfangan.Renwustandard == "03")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "02")
                                {
                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
                                    if (youxiaojijian > 0)
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                                if (jixiaotichengfangan.Tichengstandard == "02")
                                                {
                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                    //if (youxiaojijian > 0)
                                    //{
                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                    //}
                                }
                            }
@@ -2505,10 +5007,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,9 +5021,238 @@
                    }
                    #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")
                            {
                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                while (kaishijisuan < datemaxkaoqin)
                                {
                                    try
                                    {
                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
                                        if (gongzuoshijian)
                                        {
                                            var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                            if (jixiaotichengfangan.Tichengstandard == "01")
                                            {
                                                decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
                                                if (youxiaojijian > 0)
                                                {
                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogInformation(ex.ToString());
                                    }
                                    kaishijisuan = kaishijisuan.AddDays(1);
                                }
                                //decimal 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")
                            {
                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                while (kaishijisuan < datemaxkaoqin)
                                {
                                    try
                                    {
                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
                                        if (gongzuoshijian)
                                        {
                                            var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                            var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
                                            var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                            if (jixiaotichengfangan.Tichengstandard == "02")
                                            {
                                                decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                                if (youxiaojijian > 0)
                                                {
                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        _logger.LogInformation(ex.ToString());
                                    }
                                    kaishijisuan = kaishijisuan.AddDays(1);
                                }
                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                //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
                    #region 专家录入
                    var zhuanjialuruDTOsyue = _expertService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    if (zhuanjialuruDTOsyue != null && zhuanjialuruDTOsyue.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "专家录入").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    while (kaishijisuan < datemaxkaoqin)
                                    {
                                        try
                                        {
                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
                                            if (gongzuoshijian)
                                            {
                                                var zhuanjialuruDTOsri = zhuanjialuruDTOsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
                                                if (jixiaotichengfangan.Tichengstandard == "01")
                                                {
                                                    decimal youxiaojijian = zhuanjialuruDTOsri.Count - renwujishu;
                                                    if (youxiaojijian > 0)
                                                    {
                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                                    }
                                                }
                                            }
                                        }
                                        catch (Exception ex)
                                        {
                                            _logger.LogInformation(ex.ToString());
                                        }
                                        kaishijisuan = kaishijisuan.AddDays(1);
                                    }
                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    //if (jixiaotichengfangan.Tichengstandard == "01")
                                    //{
                                    //    decimal youxiaojijian = zhuanjialuruDTOsyue.Count - renwujishu;
                                    //    if (youxiaojijian > 0)
                                    //    {
                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    //    }
                                    //}
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = zhuanjialuruDTOsyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                }
                //试用期绩效为0.8倍
                if (hrSalaryDTO.Jixiaoticheng.HasValue)
                {
                    if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && dateminkaoqin >= userList[i].ShiyongDate.Value && dateminkaoqin <= userList[i].ShiyongDateEnd.Value)
                    {
                        if (userList[i].ShiyongDateEnd.Value < datemaxkaoqin.AddDays(-1))
                        {
                            var a = userList[i].ShiyongDateEnd.Value.Day;
                            var b = datemaxkaoqin.AddDays(-1).Day;
                            var shiyongqijixiao = new decimal(a) / new decimal(b) * hrSalaryDTO.Jixiaoticheng.Value * new decimal(0.8);
                            var zhengshijixiao =(new decimal(1) - new decimal(a) / new decimal(b)) * hrSalaryDTO.Jixiaoticheng.Value;
                            hrSalaryDTO.Jixiaoticheng = Math.Round(shiyongqijixiao + zhengshijixiao, 2);
                        }
                        else
                        {
                            hrSalaryDTO.Jixiaoticheng = Math.Round(hrSalaryDTO.Jixiaoticheng.Value * new decimal(0.8), 2);
                        }
                    }
                }
                hrSalaryDTO.Daozhanggongzi = 0;
@@ -2545,7 +5276,7 @@
                decimal jiucuo = hrSalaryDTO.Jiucuo.HasValue ? hrSalaryDTO.Jiucuo.Value : 0;
                //计算保底年薪
                if (userList[i].Indate.HasValue && userList[i].miniyearsalary.HasValue)
                if (userList[i].Indate.HasValue && userList[i].miniyearsalary.HasValue && userList[i].miniyearsalary.Value>0)
                {
                    DateTime jixinue = userList[i].Indate.Value;
                    if (userList[i].Indate.Value.Day != 1)
@@ -2582,21 +5313,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;
@@ -2607,32 +5407,53 @@
                    decimal yingnashuie3 = 0;
                    decimal yingnashuie4 = 0;
                    decimal yingnashuie5 = 0;
                    if (yingnashuie > 39250)
                    decimal yingnashuie6 = 0;
                    decimal yingnashuie7 = 0;
                    if (yingnashuie > 80000)
                    {
                        yingnashuie1 = 4750;
                        yingnashuie2 = (9250 - 4750);
                        yingnashuie3 = (25250 - 9250);
                        yingnashuie4 = (39250 - 25250);
                        yingnashuie5 = (yingnashuie - 39250);
                        yingnashuie1 = 3000;
                        yingnashuie2 = (12000 - 3000);
                        yingnashuie3 = (25000 - 12000);
                        yingnashuie4 = (35000 - 25000);
                        yingnashuie5 = (55000 - 35000);
                        yingnashuie6 = (80000 - 55000);
                        yingnashuie7 = (yingnashuie - 55000);
                    }
                    else if (yingnashuie > 25250)
                    if (yingnashuie > 55000)
                    {
                        yingnashuie1 = 4750;
                        yingnashuie2 = (9250 - 4750);
                        yingnashuie3 = (25250 - 9250);
                        yingnashuie4 = (yingnashuie - 25250);
                        yingnashuie1 = 3000;
                        yingnashuie2 = (12000 - 3000);
                        yingnashuie3 = (25000 - 12000);
                        yingnashuie4 = (35000 - 25000);
                        yingnashuie5 = (55000 - 35000);
                        yingnashuie6 = (yingnashuie - 55000);
                    }
                    if (yingnashuie > 35000)
                    {
                        yingnashuie1 = 3000;
                        yingnashuie2 = (12000 - 3000);
                        yingnashuie3 = (25000 - 12000);
                        yingnashuie4 = (35000 - 25000);
                        yingnashuie5 = (yingnashuie - 35000);
                    }
                    else if (yingnashuie > 25000)
                    {
                        yingnashuie1 = 3000;
                        yingnashuie2 = (12000 - 3000);
                        yingnashuie3 = (25000 - 12000);
                        yingnashuie4 = (yingnashuie - 25000);
                    }
                    else if (yingnashuie > 9250)
                    else if (yingnashuie > 12000)
                    {
                        yingnashuie1 = 4750;
                        yingnashuie2 = (9250 - 4750);
                        yingnashuie3 = (yingnashuie - 9250);
                        yingnashuie1 = 3000;
                        yingnashuie2 = (12000 - 3000);
                        yingnashuie3 = (yingnashuie - 12000);
                    }
                    else if (yingnashuie > 4750)
                    else if (yingnashuie > 3000)
                    {
                        yingnashuie1 = 4750;
                        yingnashuie2 = (yingnashuie - 4750);
                        yingnashuie1 = 3000;
                        yingnashuie2 = (yingnashuie - 3000);
                    }
                    else
                    {
@@ -2640,7 +5461,7 @@
                    }
                    if (yingnashuie1 > 0)
                    {
                        var yingjiao1 = Math.Round(yingnashuie1 * new decimal(0.05) - 0, 2);
                        var yingjiao1 = Math.Round(yingnashuie1 * new decimal(0.03) - 0, 2);
                        if (yingjiao1 > 0)
                        {
                            hrSalaryDTO.Geshui += yingjiao1;
@@ -2649,7 +5470,7 @@
                    }
                    if (yingnashuie2 > 0)
                    {
                        var yingjiao2 = Math.Round(yingnashuie2 * new decimal(0.1) - 250, 2);
                        var yingjiao2 = Math.Round(yingnashuie2 * new decimal(0.1) - 0, 2);
                        if (yingjiao2 > 0)
                        {
                            hrSalaryDTO.Geshui += yingjiao2;
@@ -2657,7 +5478,7 @@
                    }
                    if (yingnashuie3 > 0)
                    {
                        var yingjiao3 = Math.Round(yingnashuie3 * new decimal(0.2) - 1250, 2);
                        var yingjiao3 = Math.Round(yingnashuie3 * new decimal(0.2) - 0, 2);
                        if (yingjiao3 > 0)
                        {
                            hrSalaryDTO.Geshui += yingjiao3;
@@ -2665,7 +5486,7 @@
                    }
                    if (yingnashuie4 > 0)
                    {
                        var yingjiao4 = Math.Round(yingnashuie4 * new decimal(0.3) - 4250, 2);
                        var yingjiao4 = Math.Round(yingnashuie4 * new decimal(0.25) - 0, 2);
                        if (yingjiao4 > 0)
                        {
                            hrSalaryDTO.Geshui += yingjiao4;
@@ -2673,35 +5494,39 @@
                    }
                    if (yingnashuie5 > 0)
                    {
                        var yingjiao5 = Math.Round(yingnashuie5 * new decimal(0.35) - 6750, 2);
                        var yingjiao5 = Math.Round(yingnashuie5 * new decimal(0.30) - 0, 2);
                        if (yingjiao5 > 0)
                        {
                            hrSalaryDTO.Geshui += yingjiao5;
                        }
                    }
                    if (yingnashuie6 > 0)
                    {
                        var yingjiao6 = Math.Round(yingnashuie6 * new decimal(0.35) - 0, 2);
                        if (yingjiao6 > 0)
                        {
                            hrSalaryDTO.Geshui += yingjiao6;
                        }
                    }
                    if (yingnashuie7 > 0)
                    {
                        var yingjiao7 = Math.Round(yingnashuie7 * new decimal(0.45) - 0, 2);
                        if (yingjiao7 > 0)
                        {
                            hrSalaryDTO.Geshui += yingjiao7;
                        }
                    }
                }
                decimal geshui = hrSalaryDTO.Geshui.HasValue ? hrSalaryDTO.Geshui.Value : 0;
                hrSalaryDTO.Daozhanggongzi += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao  + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou - geshui + ((dianhuabutie - dianhuafei) <= 0 ? (dianhuabutie - dianhuafei) : 0) - queqin - fakuan - peichang + jiucuo;
                hrSalaryDTO.Daozhanggongzi = yingfaheji - geshui;
                hrSalaryDTO.Yufagongzi = userList[i].advancewages;
                if (userList[i].advancewages.HasValue)
                {
                    hrSalaryDTO.Yufagongziheji = 0;
                    HrSalaryDTO hrSalaryDTOlast = _hrSalaryService.GetListByUser(userList[i].Id, dateminkaoqin.AddMonths(-1).Year, dateminkaoqin.AddMonths(-1).Month);
                    if(hrSalaryDTOlast!=null && hrSalaryDTOlast.Yufagongziheji.HasValue)
                    {
                        hrSalaryDTO.Yufagongziheji = hrSalaryDTOlast.Yufagongziheji;
                    }
                    hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Daozhanggongzi- hrSalaryDTO.Yufagongzi);
                }
                hrSalaryDTO.RecStatus = "A";
                hrSalaryDTO.Islock = "D";
                hrSalaryDTO.Creater = "1";
@@ -2748,6 +5573,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 +5684,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 +5784,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 +5847,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 +5877,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;
                        }