username@email.com
2021-07-23 00446e5e764fd57ea0f28b30921f4a5daa60c890
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;
@@ -35,6 +40,14 @@
        private readonly ICooperatecustomCustomerService _cooperatecustomCustomerService;
        private readonly IGroupTopicService _groupTopicService;
        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 decimal jiabangongzibiaozhun = new decimal(21.5);
        public TimedBackgroundService(ILogger<TimedBackgroundService> logger, IServiceScopeFactory factory)
@@ -57,6 +70,15 @@
            _cooperatecustomCustomerService = factory.CreateScope().ServiceProvider.GetRequiredService<ICooperatecustomCustomerService>();
            _groupTopicService = factory.CreateScope().ServiceProvider.GetRequiredService<IGroupTopicService>();
            _cooperVisitService = factory.CreateScope().ServiceProvider.GetRequiredService<ICooperVisitService>();
            _intentionCustomerService = factory.CreateScope().ServiceProvider.GetRequiredService<IIntentionCustomerService>();
            _intentionVisitService = factory.CreateScope().ServiceProvider.GetRequiredService<IIntentionVisitService>();
            _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>();
        }
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
@@ -64,15 +86,19 @@
            //stoppingToken.Register(() => File.Create($"E:\\dotnetCore\\Practice\\Practice\\{DateTime.Now.Millisecond}.txt"));
            DateTime datenow = DateTime.Now.Date;
            while (!stoppingToken.IsCancellationRequested)
            {
                _logger.LogInformation("MyServiceA 开始执行");
                _logger.LogInformation(datenow.ToString("yyyy-MM-dd HH:mm:ss"));
                //每天的0点开始计算
                if (DateTime.Now.Hour == 0)
                if (datenow <= DateTime.Now.Date && DateTime.Now.Hour == 0)
                //if (true)
                {
                    try
                    {
                        _logger.LogInformation("判断是否是第五个工作日结束");
                        DateTime diwutian = this.diwugongzuori();
                        //第五个工作日结束后开始计算
                        if (DateTime.Now.Date == diwutian.AddDays(1))
@@ -80,10 +106,11 @@
                        {
                            try
                            {
                                _logger.LogInformation("计算考勤工资");
                                //using (TransactionScope scope = new TransactionScope())
                                //{
                                    this.jisuankaoqin();
                                    this.jisuangongzi();
                                this.jisuankaoqin();
                                 await   this.jisuangongziAsync();
                                    //scope.Complete();
                                //}
@@ -93,17 +120,25 @@
                                _logger.LogInformation(ex.ToString());
                            }
                        }
                        _logger.LogInformation("判断是否计算工龄工资");
                        if (DateTime.Now.Date.Month==1 && DateTime.Now.Date.Day == 31)
                        //if (true)
                        {
                            jisuangonglinggongzi();
                        }
                    }
                    catch (Exception ex)
                    {
                        _logger.LogInformation(ex.ToString());
                    }
                    datenow = DateTime.Now.Date.AddDays(1);
                }
                await Task.Delay(TimeSpan.FromMinutes(59), stoppingToken);
                await Task.Delay(TimeSpan.FromMinutes(10), stoppingToken);
                _logger.LogInformation("继续执行");
            }
@@ -714,14 +749,236 @@
                    }
                    else
                    {
                        //判断考勤时间的连续性
                        //判断早上是否迟到,判断早上是否早退,早退矿工处理
                        DateTime? starttime = null;
                        DateTime? endttime = null;
                        bool kuanggong = false;
                        List<DateBiJiaoDTO> dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
                        if (admSignInDTO != null && admSignInDTO.MorningIn.HasValue && admSignInDTO.MorningOut.HasValue)
                        {
                            DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                            dateBiJiaoDTO.StartTime = admSignInDTO.MorningIn;
                            dateBiJiaoDTO.EndTime = admSignInDTO.MorningOut;
                            dateBiJiaoDTOs.Add(dateBiJiaoDTO);
                        }
                        var jiabanbuka = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "3").ToList();
                        foreach (var admAskLeaveOff in jiabanbuka)
                        {
                            if (admAskLeaveOff.StratTime < StratTimeWorkingEnd)
                            {
                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                                dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
                                dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
                                dateBiJiaoDTOs.Add(dateBiJiaoDTO);
                            }
                        }
                        dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
                        if (dateBiJiaoDTOs.Count == 0)
                        {
                            Kuanggongtianshu += new decimal(0.5);
                        }
                        else
                        {
                            //判断上午考勤时间是否全覆盖
                            for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
                            {
                                if (i == 0)
                                {
                                    starttime = dateBiJiaoDTOs[i].StartTime;
                                    endttime = dateBiJiaoDTOs[i].EndTime;
                                }
                                else
                                {
                                    if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
                                    {
                                        kuanggong = true;
                                        break;
                                    }
                                    else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
                                    {
                                        endttime = dateBiJiaoDTOs[i].EndTime;
                                    }
                                }
                            }
                            if (kuanggong)
                            {
                                Kuanggongtianshu += new decimal(0.5);
                            }
                            else
                            {
                                decimal shangwukuanggong = 0;
                                if (starttime > StratTimeWorkingStart)
                                {
                                    TimeSpan chidao = starttime.Value.Subtract(StratTimeWorkingStart);
                                    if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
                                    {
                                        if (shangwukuanggong == 0)
                                        {
                                            Kuanggongtianshu += new decimal(0.5);
                                        }
                                    }
                                    else
                                    {
                                        Chidao += 1;
                                        Shangwuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
                                    }
                                }
                                if (shangwukuanggong == 0 && endttime < StratTimeWorkingEnd)
                                {
                                    TimeSpan zaotui = StratTimeWorkingEnd.Subtract(endttime.Value);
                                    if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
                                    {
                                        if (shangwukuanggong == 0)
                                        {
                                            Kuanggongtianshu += new decimal(0.5);
                                        }
                                    }
                                    else
                                    {
                                        Zaotui += 1;
                                        Shangwuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
                                    }
                                }
                                Kuanggongtianshu += shangwukuanggong;
                            }
                        }
                        //判断下午是否迟到,判断下午是否早退,早退矿工处理
                        starttime = null;
                        endttime = null;
                        kuanggong = false;
                        dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
                        if (admSignInDTO != null && admSignInDTO.AfternoonIn.HasValue && admSignInDTO.AfternoonOut.HasValue)
                        {
                            DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                            dateBiJiaoDTO.StartTime = admSignInDTO.AfternoonIn;
                            dateBiJiaoDTO.EndTime = admSignInDTO.AfternoonOut;
                            dateBiJiaoDTOs.Add(dateBiJiaoDTO);
                        }
                        var jiabanbukaxiawu = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "3").ToList();
                        foreach (var admAskLeaveOff in jiabanbukaxiawu)
                        {
                            if (admAskLeaveOff.EndTime > StratTimeOffworkStart)
                            {
                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
                                dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
                                dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
                                dateBiJiaoDTOs.Add(dateBiJiaoDTO);
                            }
                        }
                        dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
                        if (dateBiJiaoDTOs.Count == 0)
                        {
                            //Kuanggong += new decimal(0.5);
                            Kuanggongtianshu += new decimal(0.5);
                        }
                        else
                        {
                            //判断上午考勤时间是否全覆盖
                            for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
                            {
                                if (i == 0)
                                {
                                    starttime = dateBiJiaoDTOs[i].StartTime;
                                    endttime = dateBiJiaoDTOs[i].EndTime;
                                }
                                else
                                {
                                    if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
                                    {
                                        kuanggong = true;
                                        break;
                                    }
                                    else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
                                    {
                                        endttime = dateBiJiaoDTOs[i].EndTime;
                                    }
                                }
                            }
                            if (kuanggong)
                            {
                                //Kuanggong += new decimal(0.5);
                                Kuanggongtianshu += new decimal(0.5);
                            }
                            else
                            {
                                decimal xiawuwukuanggong = 0;
                                if (starttime > StratTimeOffworkStart)
                                {
                                    TimeSpan chidao = starttime.Value.Subtract(StratTimeOffworkStart);
                                    if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
                                    {
                                        if (xiawuwukuanggong == 0)
                                        {
                                            xiawuwukuanggong += new decimal(0.5);
                                            //Kuanggong += new decimal(0.5);
                                        }
                                    }
                                    else
                                    {
                                        Chidao += 1;
                                        Xiawuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
                                    }
                                }
                                if (xiawuwukuanggong == 0 && endttime < StratTimeOffworkEnd)
                                {
                                    TimeSpan zaotui = StratTimeOffworkEnd.Subtract(endttime.Value);
                                    if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
                                    {
                                        if (xiawuwukuanggong == 0)
                                        {
                                            xiawuwukuanggong += new decimal(0.5);
                                            //Kuanggong += new decimal(0.5);
                                        }
                                    }
                                    else
                                    {
                                        Zaotui += 1;
                                        Xiawuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
                                    }
                                }
                                Kuanggongtianshu += xiawuwukuanggong;
                            }
                        }
                        //计算当天加班天数
                        Jiaban += (1 - Kuanggongtianshu );
                        Kuanggongtianshu = 0;
                        //加班
                        //计算加班时间
                        if (admSignInDTO != null && admSignInDTO.OvertimeIn.HasValue && admSignInDTO.OvertimeOut.HasValue)
                        {
                            TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(admSignInDTO.OvertimeIn.Value);
                            DateTime overdate = admSignInDTO.OvertimeIn.Value;
                            if (admSignInDTO.OvertimeIn.Value < StratTimeOffworkEnd)
                            {
                                overdate = StratTimeOffworkEnd;
                            }
                            TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate);
                            Jiaban += Math.Round((decimal)(jiaban.Hours * 60+ jiaban.Minutes) / (decimal)shangbanshijian, 2);
                            Jiaban += Math.Round((decimal)(jiaban.Hours * 60) / (decimal)shangbanshijian, 2);
                        }
                    }
@@ -846,7 +1103,7 @@
        //计算工资
        public void jisuangongzi()
        public async Task jisuangongziAsync()
        {
            //查询所有的有效人员
            DateTime dateminkaoqin = new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1);
@@ -1323,7 +1580,7 @@
                    }
                }
                //hrSalaryDTO.Jiucuo
                hrSalaryDTO.Jiucuo = 0;
                //计算绩效提成
                hrSalaryDTO.Jixiaoticheng = 0;
@@ -1335,12 +1592,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);
                    if (cooperVisitDTOs != null && cooperVisitDTOs.Count > 0)
                    var projectDTOsyue = _projectService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    if (projectDTOsyue!=null && projectDTOsyue.Count > 0 )
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "上门拜访客户").FirstOrDefault();
                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "采购项目录入").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
@@ -1351,7 +1608,7 @@
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = cooperVisitDTOs.Count - renwujishu;
                                        decimal youxiaojijian = projectDTOsyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
@@ -1365,51 +1622,7 @@
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = cooperVisitDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 新加群组
                    var groupTopicDTOs = _groupTopicService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    if (groupTopicDTOs != null && groupTopicDTOs.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "新加群组").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = groupTopicDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = groupTopicDTOs.Count - renwujishu;
                                        decimal youxiaojijian = projectDTOsyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
@@ -1424,54 +1637,11 @@
                    #endregion
                    #region 客户资料录入
                    var cooperatecustomCustomerDTOs = _cooperatecustomCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    if (cooperatecustomCustomerDTOs != null && cooperatecustomCustomerDTOs.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 = cooperatecustomCustomerDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = cooperatecustomCustomerDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 录入客户签单
                    
                   var cooperatecustomCustomers = _cooperatecustomCustomerService.GetListsalaryqiandan(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    if (cooperatecustomCustomers != null && cooperatecustomCustomers.Count > 0)
                    var _intentionCustomerDTOs = _intentionCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    if (_intentionCustomerDTOs!=null && _intentionCustomerDTOs.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "录入客户签单").FirstOrDefault();
                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "客户资料录入").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
@@ -1482,7 +1652,7 @@
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = cooperatecustomCustomers.Count - renwujishu;
                                        decimal youxiaojijian = _intentionCustomerDTOs.Count   - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
@@ -1496,7 +1666,7 @@
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = cooperatecustomCustomers.Count - renwujishu;
                                        decimal youxiaojijian = _intentionCustomerDTOs.Count   - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
@@ -1507,6 +1677,689 @@
                            }
                        }
                    }
                    #endregion
                    #region 新加群组
                    var groupTopicDTOs = _groupTopicService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    if (groupTopicDTOs != null && groupTopicDTOs.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x =>   x.Project == "新加群组").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = groupTopicDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = groupTopicDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 电话推广
                    var intentionVisitDTOs = _intentionVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.VisType == "01").ToList();
                    if (intentionVisitDTOs != null && intentionVisitDTOs.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "电话推广").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = intentionVisitDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = intentionVisitDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 群发短信
                    var duanxinsyue = _cusFangwenjiluService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.Fasongfangshi == "01").ToList();
                    if (duanxinsyue != null && duanxinsyue.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "群发短信").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = duanxinsyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = duanxinsyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 群发邮件
                    var youjiansyue = _cusFangwenjiluService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.Fasongfangshi == "02").ToList();
                    if (youjiansyue != null && youjiansyue.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x =>   x.Project == "群发邮件").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = youjiansyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = youjiansyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 新增意向客户(订单)
                    var yixiangsyue = _intentionCustomerService.GetListsalaryyixiang(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    if (yixiangsyue != null && yixiangsyue.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "新增意向客户(订单)").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = yixiangsyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = yixiangsyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 新增注册会员
                    //本月数量
                    List<YaoQingYongHuDTO> zhucehuiyuansyue = new List<YaoQingYongHuDTO>();
                    try
                    {
                        //var pltUserDTO = _userService.GetPltUserEntity(userList[i].Id);
                        string huiyuanurl = _configuration.GetSection("huiyuanurl").Value;
                        string GetYGYaoQingYonghu = _configuration.GetSection("GetYGYaoQingYonghu").Value;
                        Uri postUrl2 = new Uri(huiyuanurl + GetYGYaoQingYonghu);
                        JObject questions2 = new JObject();
                        questions2.Add("UserID", userList[i].Id);
                        questions2.Add("StartTime", dateminkaoqin.ToString("yyyy-MM-dd HH:mm:ss"));
                        questions2.Add("EndTime", datemaxkaoqin.ToString("yyyy-MM-dd HH:mm:ss"));
                        string requestJson2 = questions2.ToString();
                        string result2 = string.Empty;
                        using (HttpContent httpContent = new StringContent(requestJson2))
                        {
                            httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                            var httpClient2 = _clientFactory.CreateClient();
                            httpClient2.Timeout = new TimeSpan(0, 0, 10);
                            var Result2 = await httpClient2.PostAsync(postUrl2, httpContent);
                            result2 = Result2.Content.ReadAsStringAsync().Result;
                        }
                        _logger.LogInformation("result2:" + result2);
                        JObject jobjectresult = (JObject)JsonConvert.DeserializeObject(result2);
                        if (jobjectresult["code"] != null && jobjectresult["code"].ToString() == "1")
                        {
                            zhucehuiyuansyue = JsonConvert.DeserializeObject<List<YaoQingYongHuDTO>>(jobjectresult["data"].ToString());
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                    //var qianyueDTOsyue = _cooperatecustomCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    if (zhucehuiyuansyue != null && zhucehuiyuansyue.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "新增注册会员").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = zhucehuiyuansyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = zhucehuiyuansyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 新增签约客户
                    var qianyueDTOsyue = _cooperatecustomCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    if (qianyueDTOsyue != null && qianyueDTOsyue.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "新增签约客户").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = qianyueDTOsyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = qianyueDTOsyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 上门拜访客户
                    var cooperVisitDTOs = _cooperVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.VisType == "02").ToList();
                    var intentionVisitDTOsshangmen = _intentionVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.VisType == "02").ToList();
                    if (  cooperVisitDTOs.Count > 0 || intentionVisitDTOsshangmen.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "上门拜访客户").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = intentionVisitDTOsshangmen.Count + cooperVisitDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = intentionVisitDTOsshangmen.Count + cooperVisitDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 新闻资讯
                    //本月数量
                    DtChannelArticleNewsDTOSearch searchEntity1 = new DtChannelArticleNewsDTOSearch();
                    searchEntity1.EndTime = datemaxkaoqin;
                    searchEntity1.AddTime = dateminkaoqin;
                    searchEntity1.UserName = userList[i].UserSn;
                    searchEntity1.CategoryId = 3;
                    var dtChannelArticleNewsDTOs = _dtChannelArticleNewsService.GetList(searchEntity1);
                    if (dtChannelArticleNewsDTOs != null && dtChannelArticleNewsDTOs.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "新闻资讯").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = dtChannelArticleNewsDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = dtChannelArticleNewsDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 典型案例
                    //本月数量
                    searchEntity1 = new DtChannelArticleNewsDTOSearch();
                    searchEntity1.EndTime = datemaxkaoqin;
                    searchEntity1.AddTime = dateminkaoqin;
                    searchEntity1.UserName = userList[i].UserSn;
                    searchEntity1.CategoryId = 85;
                    var dianxinanDTOs = _dtChannelArticleNewsService.GetList(searchEntity1);
                    if (dianxinanDTOs != null && dianxinanDTOs.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "典型案例").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = dianxinanDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = dianxinanDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 政采知识
                    //本月数量
                    searchEntity1 = new DtChannelArticleNewsDTOSearch();
                    searchEntity1.EndTime = datemaxkaoqin;
                    searchEntity1.AddTime = dateminkaoqin;
                    searchEntity1.UserName = userList[i].UserSn;
                    searchEntity1.CategoryId = 73;
                    var zhengcaizhishiDTOs = _dtChannelArticleNewsService.GetList(searchEntity1);
                    if (zhengcaizhishiDTOs != null && zhengcaizhishiDTOs.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "政采知识").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = zhengcaizhishiDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = zhengcaizhishiDTOs.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 新增小采问题
                    var xinzengwendaDTOsyue = _liaotianService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    if (xinzengwendaDTOsyue != null && xinzengwendaDTOsyue.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "新增小采问题").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = xinzengwendaDTOsyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = xinzengwendaDTOsyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 审核小采答问
                    var shenhewendaDTOsyue = _liaotianService.GetListsalaryshenhe(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    if (shenhewendaDTOsyue != null && shenhewendaDTOsyue.Count > 0)
                    {
                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "审核小采答问").FirstOrDefault();
                        if (jijianidddd != null)
                        {
                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                            {
                                if (jixiaotichengfangan.Renwustandard == "01")
                                {
                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = shenhewendaDTOsyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                                else if (jixiaotichengfangan.Renwustandard == "02")
                                {
                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                    if (jixiaotichengfangan.Tichengstandard == "01")
                                    {
                                        decimal youxiaojijian = shenhewendaDTOsyue.Count - renwujishu;
                                        if (youxiaojijian > 0)
                                        {
                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                    #region 录入客户签单
                    //var cooperatecustomCustomers = _cooperatecustomCustomerService.GetListsalaryqiandan(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                    // if (cooperatecustomCustomers != null && cooperatecustomCustomers.Count > 0)
                    // {
                    //     var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "录入客户签单").FirstOrDefault();
                    //     if (jijianidddd != null)
                    //     {
                    //         var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                    //         if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                    //         {
                    //             if (jixiaotichengfangan.Renwustandard == "01")
                    //             {
                    //                 decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                    //                 if (jixiaotichengfangan.Tichengstandard == "01")
                    //                 {
                    //                     decimal youxiaojijian = cooperatecustomCustomers.Count - renwujishu;
                    //                     if (youxiaojijian > 0)
                    //                     {
                    //                         hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                    //                     }
                    //                 }
                    //             }
                    //             else if (jixiaotichengfangan.Renwustandard == "02")
                    //             {
                    //                 decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                    //                 if (jixiaotichengfangan.Tichengstandard == "01")
                    //                 {
                    //                     decimal youxiaojijian = cooperatecustomCustomers.Count - renwujishu;
                    //                     if (youxiaojijian > 0)
                    //                     {
                    //                         hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                    //                     }
                    //                 }
                    //             }
                    //         }
                    //     }
                    // }
                    #endregion
@@ -1529,7 +2382,7 @@
                    #region 图书销售
                    var cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "01").ToList();
                    var jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "图书销售").FirstOrDefault();
                    var jijianid = fiPiecerateDTOs.Where(x =>   x.Project == "图书销售").FirstOrDefault();
                    if (jijianid != null && cooperOrdertushu.Count>0)
                    {
                      var jixiaotichengfangan =    hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
@@ -1569,10 +2422,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);
@@ -1587,10 +2440,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);
@@ -1603,7 +2456,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();
@@ -1643,10 +2496,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);
@@ -1661,10 +2514,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);
@@ -1678,7 +2531,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();
@@ -1718,10 +2571,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);
@@ -1736,10 +2589,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);
@@ -1753,7 +2606,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();
@@ -1793,10 +2646,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);
@@ -1811,10 +2664,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);
@@ -1827,8 +2680,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();
@@ -1860,6 +2713,21 @@
                                    }
                                }
                                else if (jixiaotichengfangan.Tichengstandard == "02")
                                {
                                    if (cooperOrdertushu.Count > renwujishu)
                                    {
                                        List<CooperOrderDTO> cooperOrdertushuyouxiao = new List<CooperOrderDTO>();
                                        for (int j = Convert.ToInt32(renwujishu); j < cooperOrdertushu.Count; j++)
                                        {
                                            cooperOrdertushuyouxiao.Add(cooperOrdertushu[j]);
                                        }
                                        var dingdanjine = cooperOrdertushuyouxiao.Sum(x => x.Money);
                                        var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * dingdanjinezhenshi * new decimal(0.01), 2);
                                    }
                                }
                            }
                            else if (jixiaotichengfangan.Renwustandard == "03")
                            {
@@ -1868,10 +2736,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);
@@ -1886,15 +2754,15 @@
                                {
                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                    if (youxiaojijian > 0)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                    }
                                }
                                }
                            }
                        }
                    }
@@ -1903,7 +2771,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();
@@ -1943,10 +2811,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);
@@ -1961,10 +2829,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);
@@ -1978,7 +2846,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();
@@ -2018,10 +2886,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);
@@ -2036,10 +2904,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);
@@ -2053,7 +2921,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();
@@ -2093,10 +2961,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);
@@ -2111,10 +2979,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);
@@ -2128,7 +2996,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();
@@ -2168,10 +3036,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);
@@ -2186,10 +3054,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);
@@ -2203,7 +3071,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();
@@ -2243,10 +3111,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);
@@ -2261,10 +3129,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);
@@ -2275,6 +3143,82 @@
                    }
                    #endregion
                    #region 数据分析
                    cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "11").ToList();
                    jijianid = fiPiecerateDTOs.Where(x => x.Project == "数据分析").FirstOrDefault();
                    if (jijianid != null && cooperOrdertushu.Count > 0)
                    {
                        var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
                        if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
                        {
                            if (jixiaotichengfangan.Renwustandard == "01")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "01")
                                {
                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                    if (youxiaojijian > 0)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    }
                                }
                            }
                            else if (jixiaotichengfangan.Renwustandard == "02")
                            {
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "01")
                                {
                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
                                    if (youxiaojijian > 0)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
                                    }
                                }
                            }
                            else if (jixiaotichengfangan.Renwustandard == "03")
                            {
                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "02")
                                {
                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                    if (youxiaojijian > 0)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                    }
                                }
                            }
                            else if (jixiaotichengfangan.Renwustandard == "04")
                            {
                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                if (jixiaotichengfangan.Tichengstandard == "02")
                                {
                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
                                    //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
                                    //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                    if (youxiaojijian > 0)
                                    {
                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                    }
                                }
                            }
                        }
                    }
                    #endregion
                }
@@ -2300,7 +3244,59 @@
                decimal peichang = hrSalaryDTO.Peichang.HasValue ? hrSalaryDTO.Peichang.Value : 0;
                decimal jiucuo = hrSalaryDTO.Jiucuo.HasValue ? hrSalaryDTO.Jiucuo.Value : 0;
                yingnashuie = jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + dianhuabutie + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou  - dianhuafei - queqin - fakuan - peichang + jiucuo - geshuiqizheng;
                //计算保底年薪
                if (userList[i].Indate.HasValue && userList[i].miniyearsalary.HasValue)
                {
                    DateTime jixinue = userList[i].Indate.Value;
                    if (userList[i].Indate.Value.Day != 1)
                    {
                        jixinue = new DateTime(userList[i].Indate.Value.AddMonths(1).Year, userList[i].Indate.Value.AddMonths(1).Month, 1);
                    }
                    int months = ((datemaxkaoqin.Year - jixinue.Year) * 12) + datemaxkaoqin.Month - jixinue.Month;
                    if(months % 12>=1 && months % 12 == 0)
                    {
                        decimal baodinianxin = 0;
                        //查询过去12个月的工资
                        for(int z = 1; z <= 12; z++)
                        {
                            var hrSalaryDTO1 = _hrSalaryService.GetListByUser(userList[i].Id, dateminkaoqin.AddMonths(-z).Year, dateminkaoqin.AddMonths(-z).Month);
                            if (hrSalaryDTO1 != null)
                            {
                                decimal jibengongzi1 = hrSalaryDTO1.Jibengongzi.HasValue ? hrSalaryDTO1.Jibengongzi.Value : 0;
                                decimal baomifei1 = hrSalaryDTO1.Baomifei.HasValue ? hrSalaryDTO1.Baomifei.Value : 0;
                                decimal gongzuobutie1 = hrSalaryDTO1.Gongzuobutie.HasValue ? hrSalaryDTO1.Gongzuobutie.Value : 0;
                                decimal jiabangongzi1 = hrSalaryDTO1.Jiabangongzi.HasValue ? hrSalaryDTO1.Jiabangongzi.Value : 0;
                                decimal shebao1 = hrSalaryDTO1.Shebao.HasValue ? hrSalaryDTO1.Shebao.Value : 0;
                                decimal dianhuabutie1 = hrSalaryDTO1.Dianhuabutie.HasValue ? hrSalaryDTO1.Dianhuabutie.Value : 0;
                                decimal quanqinjiang1 = hrSalaryDTO1.Quanqinjiang.HasValue ? hrSalaryDTO1.Quanqinjiang.Value : 0;
                                decimal jiaotngbutie1 = hrSalaryDTO1.Jiaotngbutie.HasValue ? hrSalaryDTO1.Jiaotngbutie.Value : 0;
                                decimal jixiaoticheng1 = hrSalaryDTO1.Jixiaoticheng.HasValue ? hrSalaryDTO1.Jixiaoticheng.Value : 0;
                                decimal jiangjin1 = hrSalaryDTO1.Jiangjin.HasValue ? hrSalaryDTO1.Jiangjin.Value : 0;
                                decimal bufagongzi1 = hrSalaryDTO1.Bufagongzi.HasValue ? hrSalaryDTO1.Bufagongzi.Value : 0;
                                decimal shebaokou1 = hrSalaryDTO1.Shebaokou.HasValue ? hrSalaryDTO1.Shebaokou.Value : 0;
                                decimal dianhuafei1 = hrSalaryDTO1.Dianhuafei.HasValue ? hrSalaryDTO1.Dianhuafei.Value : 0;
                                decimal queqin1 = hrSalaryDTO1.Queqin.HasValue ? hrSalaryDTO1.Queqin.Value : 0;
                                decimal fakuan1 = hrSalaryDTO1.Fakuan.HasValue ? hrSalaryDTO1.Fakuan.Value : 0;
                                decimal peichang1 = hrSalaryDTO1.Peichang.HasValue ? hrSalaryDTO1.Peichang.Value : 0;
                                decimal jiucuo1 = hrSalaryDTO1.Jiucuo.HasValue ? hrSalaryDTO1.Jiucuo.Value : 0;
                                baodinianxin += jibengongzi1 + baomifei1 + gongzuobutie1 + jiabangongzi1 + shebao1 + quanqinjiang1 + jiaotngbutie1 + jixiaoticheng1 + jiangjin1 + bufagongzi1 + jiucuo1;
                            }
                        }
                        baodinianxin += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi + jiucuo;
                        if(baodinianxin < userList[i].miniyearsalary.Value)
                        {
                            jiucuo = userList[i].miniyearsalary.Value - baodinianxin;
                        }
                    }
                }
                yingnashuie = jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao  + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou + ( (dianhuabutie - dianhuafei)<=0? (dianhuabutie - dianhuafei) : 0) - queqin - fakuan - peichang + jiucuo - geshuiqizheng;
                hrSalaryDTO.Geshui = 0;
@@ -2389,7 +3385,7 @@
                }
                decimal geshui = hrSalaryDTO.Geshui.HasValue ? hrSalaryDTO.Geshui.Value : 0;
                hrSalaryDTO.Daozhanggongzi += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + dianhuabutie + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou - geshui - dianhuafei - queqin - fakuan - peichang + jiucuo;
                hrSalaryDTO.Daozhanggongzi += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao  + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou - geshui + ((dianhuabutie - dianhuafei) <= 0 ? (dianhuabutie - dianhuafei) : 0) - queqin - fakuan - peichang + jiucuo;
@@ -2418,6 +3414,30 @@
        //计算是否涨工龄工资
        public void jisuangonglinggongzi()
        {
            _logger.LogInformation("计算是否涨工龄工资");
            List<PltUserDTO> userList = _userService.GetList();//.Where(x => x.UserSn == "yang").ToList();
            foreach(var userDTO in userList)
            {
                if (userDTO.senioritywages.HasValue && userDTO.Indate.HasValue)
                {
                    int year =  DateTime.Now.Year - (userDTO.Indate.Value.Year+1);
                    if (userDTO.Indate.Value.Month==1 && userDTO.Indate.Value.Day == 1)
                    {
                          year =  DateTime.Now.Year - userDTO.Indate.Value.Year ;
                    }
                    if ( year >= 1)
                    {
                        userDTO.BasicPrice += userDTO.senioritywages.Value;
                        _userService.savePltUser(userDTO);
                        _logger.LogInformation(userDTO.Name +"涨工龄工资"+ userDTO.senioritywages.HasValue +" 之后月薪" + userDTO.BasicPrice);
                    }
                }
            }
        }
        public AdmAskLeaveDTO jisianChecktime(DateTime StratTime, DateTime EndTime)
        {
            //string dateDiff = null;