From f7a2d28869cc31c7dbe057a1d80dd40536d97fed Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期三, 08 三月 2023 15:45:33 +0800
Subject: [PATCH] 业务经理查询客户接口

---
 zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs | 3874 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 3,512 insertions(+), 362 deletions(-)

diff --git a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
index 0865bfa..3b3f70b 100644
--- a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
+++ b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
@@ -1,12 +1,17 @@
 锘縰sing DTO;
 using IServices;
+using Microsoft.Extensions.Configuration;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Hosting;
 using Microsoft.Extensions.Logging;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
 using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
+using System.Net.Http;
+using System.Net.Http.Headers;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Transactions;
@@ -35,6 +40,19 @@
         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 IAskService _askService;
+        private readonly IAdmEvaluateService _admEvaluateService;
+        private readonly IExpertService _expertService;
+        private readonly zhengcaioaContext _context;
+        private readonly zcUserInfoN_dbContext _zcUsercontext;
 
         private readonly decimal jiabangongzibiaozhun = new decimal(21.5);
         public TimedBackgroundService(ILogger<TimedBackgroundService> logger, IServiceScopeFactory factory)
@@ -57,22 +75,40 @@
             _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>();
+            _askService= factory.CreateScope().ServiceProvider.GetRequiredService<IAskService>();
+            _admEvaluateService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmEvaluateService>();
+            _expertService = factory.CreateScope().ServiceProvider.GetRequiredService<IExpertService>();
+            _context = factory.CreateScope().ServiceProvider.GetRequiredService<zhengcaioaContext>();
+            _zcUsercontext = factory.CreateScope().ServiceProvider.GetRequiredService<zcUserInfoN_dbContext>();
         }
         protected override async Task ExecuteAsync(CancellationToken stoppingToken)
         {
             _logger.LogInformation("MyServiceA is starting.");
 
             //stoppingToken.Register(() => File.Create($"E:\\dotnetCore\\Practice\\Practice\\{DateTime.Now.Millisecond}.txt"));
-
+          
+            DateTime datenow = DateTime.Now.Date;
             while (!stoppingToken.IsCancellationRequested)
             {
                 _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 +116,11 @@
                         {
                             try
                             {
+                                _logger.LogInformation("璁$畻鑰冨嫟宸ヨ祫");
                                 //using (TransactionScope scope = new TransactionScope())
                                 //{
-                                    this.jisuankaoqin();
-                                    this.jisuangongzi();
+                                this.jisuankaoqin();
+                                 await   this.jisuangongziAsync();
                                     //scope.Complete();
                                 //}
 
@@ -93,17 +130,34 @@
                                 _logger.LogInformation(ex.ToString());
                             }
                         }
+
+
+                        _logger.LogInformation("鍒ゆ柇鏄惁璁$畻宸ラ緞宸ヨ祫");
+                        if (DateTime.Now.Date.Month==1 && DateTime.Now.Date.Day == 31)
+                        //if (true)
+                        {
+                            jisuangonglinggongzi();
+                        }
+
+
+                        _logger.LogInformation("鎶婅秴杩�90澶╄繕娌℃湁杞寲鐨勬。妗堝鎴风殑涓氬姟缁忕悊褰掍负鏃�");
+                        this.ywjlguiling();
+                        _logger.LogInformation("鎶婅秴杩�90澶╄繕娌℃湁杞寲鐨勬。妗堝鎴风殑涓氬姟缁忕悊褰掍负鏃犳墽琛岀粨鏉�");
+
+                        _logger.LogInformation("鎶婁細鍛樼郴缁熷拰oa绯荤粺鎵嬫満鍙风浉鍚岀殑瀹㈡埛鍏宠仈璧锋潵");
+                        this.huiyuanguanlian();
+                        _logger.LogInformation("鎶婁細鍛樼郴缁熷拰oa绯荤粺鎵嬫満鍙风浉鍚岀殑瀹㈡埛鍏宠仈璧锋潵鎵ц缁撴潫");
                     }
                     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("缁х画鎵ц");
             }
@@ -166,6 +220,144 @@
             return diwutian;
         }
 
+
+        //璁$畻褰撳墠鏃ユ湡鏄惁鏄伐浣滄棩
+        public Boolean shifougongzuori(DateTime workdate)
+        {
+            var admAttendanceRulesDtlDTOs = _attendanceRuleService.GetDtlList("");
+            AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get("");
+            var jiejiari = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiejiari").ToList();
+            var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList();
+            var jiabanri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiabanri").ToList();
+            ////鑾峰彇鏈湀鐨勭浜斾釜宸ヤ綔鏃ユ棩鏈熴��
+            //DateTime datemin = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
+            //DateTime datemax = datemin.AddMonths(1);
+            //_logger.LogInformation("datemin" + datemin);
+            //_logger.LogInformation("datemax" + datemax);
+            Boolean shifoushangban = false;
+
+            //鏄惁涓婄彮鏃ユ湡
+            if ((int)workdate.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)workdate.DayOfWeek <= admAttendanceRuleDTO.WeekEnd)
+            {
+                //鏄惁鑺傚亣鏃�
+                if (jiejiari.Exists(x => x.ValueStart <= workdate && x.ValueEnd >= workdate))
+                {
+                    shifoushangban = false;
+                }
+                else
+                {
+                    shifoushangban = true;
+                }
+
+            }
+            else
+            {
+                //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
+                if (tiaoxiuri.Exists(x => x.ValueStart <= workdate && x.ValueEnd >= workdate))
+                {
+                    shifoushangban = true;
+                }
+                //鏄惁鍔犵彮鏃�  鍔犵彮鏃ラ渶瑕佷笂鐝�
+                if (jiabanri.Exists(x => x.ValueStart <= workdate && x.ValueEnd >= workdate))
+                {
+                    shifoushangban = true;
+                }
+            }
+
+          
+            
+            return shifoushangban;
+        }
+
+
+        //鑾峰彇鏃ユ湡鎵�鍦ㄥ懆鐨勮捣姝㈡棩鏈�
+        /// <summary>
+        /// 璁$畻鏈懆璧峰鏃ユ湡锛堟槦鏈熶竴锛�
+        /// </summary>
+        /// <param name="dateTime">璇ュ懆涓换鎰忎竴澶�</param>
+        /// <returns>杩斿洖绀兼嫓涓�鏃ユ湡锛屽悗闈㈢殑鍏蜂綋鏃躲�佸垎銆佺鍜屼紶鍏ュ�肩浉绛�</returns>
+        public  DateTime CalculateFirstDateOfWeek(DateTime dateTime)
+        {
+            int i = dateTime.DayOfWeek - DayOfWeek.Monday;
+            if (i == -1)
+                i = 6;
+            TimeSpan ts = new TimeSpan(i, 0, 0, 0);
+            return dateTime.Subtract(ts);
+        }
+
+        /// <summary>
+        /// 璁$畻鏈懆缁撴潫鏃ユ湡锛堢ぜ鎷滄棩鐨勬棩鏈燂級
+        /// </summary>
+        /// <param name="dateTime"> 璇ュ懆涓换鎰忎竴澶�</param>
+        /// <returns>杩斿洖绀兼嫓鏃ユ棩鏈燂紝鍚庨潰鐨勫叿浣撴椂銆佸垎銆佺鍜屼紶鍏ュ�肩浉绛� </returns>
+        public  DateTime CalculateLastDateOfWeek(DateTime dateTime)
+        {
+            int i = dateTime.DayOfWeek - DayOfWeek.Sunday;
+            if (i != 0) i = 7 - i; // 鍥犱负鏋氫妇鍘熷洜锛孲unday鎺掑湪鏈�鍓嶏紝鐩稿噺闂撮殧瑕佽7鍑忋��
+            TimeSpan ts = new TimeSpan(i, 0, 0, 0);
+            return dateTime.Add(ts);
+        }
+
+
+
+        //鎶婅秴杩�90澶╄繕娌℃湁杞寲鐨勬。妗堝鎴风殑涓氬姟缁忕悊褰掍负鏃�
+        public void ywjlguiling()
+        {
+          var intentionCustomerDTOs  =  _intentionCustomerService.GetList().Where(x=>x.Ywjltime < DateTime.Now.AddDays(-90)).ToList();
+
+            foreach(var intentionCustomerDTO in intentionCustomerDTOs)
+            {
+                intentionCustomerDTO.Ywjl = null;
+                intentionCustomerDTO.Ywjltime = null;
+                _intentionCustomerService.save(intentionCustomerDTO);
+            }
+        }
+
+
+        //鎶婁細鍛樼郴缁熷拰oa绯荤粺鎵嬫満鍙风浉鍚岀殑瀹㈡埛鍏宠仈璧锋潵
+        public void huiyuanguanlian()
+        {
+            var cooperatecustomCustomers = _context.CooperatecustomCustomers.Where(x => x.RecStatus == "A" && x.HuiyuanId == null).ToList();
+            var frameworkUsers = _zcUsercontext.FrameworkUsers.Where(x => x.IsValid == true).ToList();
+            if (cooperatecustomCustomers != null && cooperatecustomCustomers.Count > 0)
+            {
+                foreach (var cooperatecustomCustomer in cooperatecustomCustomers)
+                {
+                    if (!string.IsNullOrEmpty(cooperatecustomCustomer.Tel))
+                    {
+                        var frameworkUser = frameworkUsers.Where(x => x.Itcode == cooperatecustomCustomer.Tel).FirstOrDefault();
+                        if (frameworkUser != null)
+                        {
+                            cooperatecustomCustomer.HuiyuanId = frameworkUser.Id.ToString();
+                        }
+                    }
+
+                }
+                _context.SaveChanges();
+            }
+
+
+
+            var intentionCustomers = _context.IntentionCustomers.Where(x => x.RecStatus == "A" && x.HuiyuanId == null).ToList();
+            if (intentionCustomers != null && intentionCustomers.Count > 0)
+            {
+                foreach (var intentionCustomer in intentionCustomers)
+                {
+                    if (!string.IsNullOrEmpty(intentionCustomer.Tel))
+                    {
+                        var frameworkUser = frameworkUsers.Where(x => x.Itcode == intentionCustomer.Tel).FirstOrDefault();
+                        if (frameworkUser != null)
+                        {
+                            intentionCustomer.HuiyuanId = frameworkUser.Id.ToString();
+                        }
+                    }
+
+                }
+                _context.SaveChanges();
+            }
+
+        }
+
         //璁$畻鑰冨嫟
         public void jisuankaoqin()
         {
@@ -173,6 +365,7 @@
             AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get("");
             var jiejiari = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiejiari").ToList();
             var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList();
+            var jiabanri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiabanri").ToList();
 
             //姣忓ぉ鐨勮�冨嫟鏃堕棿鐐�
             string[] WorkingStart = admAttendanceRuleDTO.WorkingStart.Split('.');
@@ -196,14 +389,20 @@
 
             ResultEntity resultEntity = new ResultEntity();
             resultEntity.Result = false;
-
+            var Month = DateTime.Now.Month - 1;
+            var Year = DateTime.Now.Year;
+            if (Month == 0)
+            {
+                Month = 12;
+                Year = Year - 1;
+            }
             //鏌ヨ鎵�鏈夌殑鏈夋晥浜哄憳
-            List<PltUserDTO> userList = _userService.GetListjisuankaoqin(new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1), new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1).AddMonths(1));//.Where(x => x.UserSn == "yang").ToList();
+            List<PltUserDTO> userList = _userService.GetListjisuankaoqin(new DateTime(Year, Month, 1), new DateTime(Year, Month, 1).AddMonths(1));//.Where(x => x.UserSn == "yang").ToList();
             for (int a = 0; a < userList.Count; a++)
             {
                 _logger.LogInformation("寮�濮嬭绠�" + userList[a].UserName + "鑰冨嫟");
                 //寮�濮嬭绠楄�冨嫟
-                DateTime dateminkaoqin = new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1);
+                DateTime dateminkaoqin = new DateTime(Year, Month, 1);
                 DateTime datemaxkaoqin = dateminkaoqin.AddMonths(1);
                 List<AdmAskLeaveDTO> admAskLeaveDTOs = _signinService.GetAskLeaveByUserId(userList[a].Id);
                 List<AdmAskLeaveOffDTO> admAskLeaveOffDTOs = _signinService.GetAskLeaveOffByUserId(userList[a].Id);
@@ -221,6 +420,7 @@
                     admAttendanceDTO.Qingjia = 0;
                     admAttendanceDTO.Jiaban = 0;
                     admAttendanceDTO.Xiaojia = 0;
+                    admAttendanceDTO.Daixinjia = 0;
                     admAttendanceDTO.Chidao = 0;
                     admAttendanceDTO.Zaotui = 0;
                     admAttendanceDTO.Kuanggong = 0;
@@ -246,6 +446,7 @@
                 decimal Zaotui = 0;
                 decimal Kuanggong = 0;
                 decimal Xiaojia = 0;
+                decimal Daixinjia = 0;
 
                 while (dateminkaoqin < datemaxkaoqin)
                 {
@@ -279,8 +480,8 @@
                             Offdays += 1;
                         }
                     }
-
-                    if(userList[a].Outdate.HasValue && dateminkaoqin >=userList[a].Outdate   )
+                    //绂昏亴褰撳ぉ璁$畻鑰冨嫟
+                    if(userList[a].Zhiwustatus == "D" && userList[a].Outdate.HasValue && dateminkaoqin >userList[a].Outdate   )
                     {
                         dateminkaoqin = dateminkaoqin.AddDays(1);
                         continue;
@@ -299,7 +500,7 @@
                         admSignInDTO = new AdmSignInDTO();
                     }
                     //鏌ヨ璇峰亣   璇峰亣鏃堕棿涓嶈兘閲嶅彔
-                    List<AdmAskLeaveDTO> admAskLeaveDTOMin = admAskLeaveDTOs.Where(x =>x.Lavetype != "2" &&  x.StratTime < dateminkaoqin.AddDays(1) && x.EndTime > dateminkaoqin).OrderByDescending(x=>x.Createtime).ToList();
+                    List<AdmAskLeaveDTO> admAskLeaveDTOMin = admAskLeaveDTOs.Where(x => x.Lavetype != "2" && x.StratTime < dateminkaoqin.AddDays(1) && x.EndTime > dateminkaoqin).OrderByDescending(x=>x.Createtime).ToList();
                     //鏌ヨ閿�鍋�   閿�鍋囨椂闂翠笉鑳介噸鍙�
                     List<AdmAskLeaveOffDTO> admAskLeaveOffDTOMin = admAskLeaveOffDTOs.Where(x => x.StratTime < dateminkaoqin.AddDays(1) && x.EndTime > dateminkaoqin).OrderByDescending(x => x.Createtime).ToList();
                    
@@ -333,6 +534,8 @@
                     decimal Kuanggongtianshu = 0;
                     decimal dangtianqingjia = 0;
                     decimal dangtianxiaojia = 0;
+                    decimal dangtiandaixinjia = 0;
+
                     string Iswork = "D";
                     if (iswork)
                     {
@@ -398,15 +601,24 @@
                                 }
                                 else
                                 {
-                                    if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
-                                    {
-                                        kuanggong = true;
-                                        break;
-                                    }
-                                    else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+                                    //if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
+                                    //{
+                                    //    //kuanggong = true;
+                                    //    break;
+                                    //}
+                                    //else 
+                                    if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
                                     {
                                         endttime = dateBiJiaoDTOs[i].EndTime;
                                     }
+                                    if (!starttime.HasValue)
+                                    {
+                                        starttime = dateBiJiaoDTOs[i].StartTime;
+                                    }
+                                }
+                                if (endttime >= StratTimeWorkingEnd && starttime.HasValue)
+                                {
+                                    break;
                                 }
                             }
                             if (kuanggong)
@@ -515,15 +727,24 @@
                                 }
                                 else
                                 {
-                                    if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
-                                    {
-                                        kuanggong = true;
-                                        break;
-                                    }
-                                    else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+                                    //if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
+                                    //{
+                                    //    //kuanggong = true;
+                                    //    break;
+                                    //}
+                                    //else 
+                                    if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
                                     {
                                         endttime = dateBiJiaoDTOs[i].EndTime;
                                     }
+                                    if (!starttime.HasValue)
+                                    {
+                                        starttime = dateBiJiaoDTOs[i].StartTime;
+                                    }
+                                }
+                                if (endttime >= StratTimeOffworkEnd && starttime.HasValue)
+                                {
+                                    break;
                                 }
                             }
                             if (kuanggong)
@@ -579,7 +800,7 @@
                         //璁$畻褰撳ぉ璇峰亣
                         List<DateBiJiaoDTO> qingjias = new List<DateBiJiaoDTO>();
 
-                        var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4").ToList();
+                        var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4" && x.Lavetype != "7" && x.Lavetype != "3" && x.Lavetype != "9").ToList();
                         foreach (var admAskLeave in feichuqinjia)
                         {
                             
@@ -640,6 +861,63 @@
                         }
 
                         Qingjia += dangtianqingjia;
+
+
+
+                        //璁$畻褰撳ぉ甯﹁柂鍋�
+                        List<DateBiJiaoDTO> daixinjias = new List<DateBiJiaoDTO>();
+
+                        var chauxndaixinjias = admAskLeaveDTOMin.Where(x => x.Lavetype == "4" || x.Lavetype == "7" || x.Lavetype == "3" || x.Lavetype == "9").ToList();
+                        foreach (var admAskLeave in chauxndaixinjias)
+                        {
+
+                            DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                            dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+                            dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+                            daixinjias.Add(dateBiJiaoDTO);
+
+                        }
+
+                        foreach (var daixinjia in daixinjias)
+                        {
+                            if (daixinjia.StartTime < StratTimeWorkingStart)
+                            {
+                                daixinjia.StartTime = StratTimeWorkingStart;
+                            }
+                            if (daixinjia.StartTime > StratTimeWorkingEnd && daixinjia.StartTime < StratTimeOffworkStart)
+                            {
+                                daixinjia.StartTime = StratTimeOffworkStart;
+                            }
+
+
+                            if (daixinjia.EndTime > StratTimeWorkingEnd && daixinjia.EndTime < StratTimeOffworkStart)
+                            {
+                                daixinjia.EndTime = StratTimeWorkingEnd;
+                            }
+
+
+                            if (daixinjia.EndTime > StratTimeOffworkEnd)
+                            {
+                                daixinjia.EndTime = StratTimeOffworkEnd;
+                            }
+                            TimeSpan daixinjiashiijan = daixinjia.EndTime.Value.Subtract(daixinjia.StartTime.Value);
+                            if (daixinjia.StartTime <= StratTimeWorkingEnd && daixinjia.EndTime >= StratTimeOffworkStart)
+                            {
+                                TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd);
+                                dangtiandaixinjia += Math.Round(((decimal)(daixinjiashiijan.Hours * 60 + daixinjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2);
+                            }
+                            else
+                            {
+                                dangtiandaixinjia += Math.Round(((decimal)(daixinjiashiijan.Hours * 60 + daixinjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2);
+                            }
+
+
+
+                        }
+
+                        Daixinjia += dangtiandaixinjia;
+
+
                         //璁$畻褰撳ぉ鍑哄嫟澶╂暟
                         Shijichuqin += (1 - Kuanggongtianshu - dangtianqingjia);
 
@@ -702,26 +980,494 @@
                         //璁$畻鍔犵彮鏃堕棿
                         if (admSignInDTO != null && admSignInDTO.OvertimeIn.HasValue && admSignInDTO.OvertimeOut.HasValue)
                         {
-                            DateTime overdate = admSignInDTO.OvertimeIn.Value;
-                            if (admSignInDTO.OvertimeIn.Value< StratTimeOffworkEnd)
+                            var admAskovertimeDTO  = _askService.GetAskovertimeByUeridAndjiabantime(userList[a].Id, dateminkaoqin);
+                            if(admAskovertimeDTO!=null&& !string.IsNullOrEmpty(admAskovertimeDTO.Id))
                             {
-                                overdate = StratTimeOffworkEnd;
+                                DateTime overdate = admSignInDTO.OvertimeIn.Value;
+                                if (admSignInDTO.OvertimeIn.Value < StratTimeOffworkEnd)
+                                {
+                                    overdate = StratTimeOffworkEnd;
+                                }
+                                TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate);
+                                decimal jiabanshijian = jiaban.Hours;
+                                if(new decimal(jiaban.Hours) > admAskovertimeDTO.Overtime.Value)
+                                {
+                                    jiabanshijian = admAskovertimeDTO.Overtime.Value;
+                                }
+                                if (jiabanshijian > new decimal(shangbanshijian) / 60)
+                                {
+                                    jiabanshijian = new decimal(shangbanshijian) /60;
+                                }
+                                Jiaban += Math.Round(jiabanshijian * 60 / shangbanshijian, 2);
                             }
-                            TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate);
-                          
-                            Jiaban += Math.Round((decimal)(jiaban.Hours * 60) / (decimal)shangbanshijian, 2);
+                            
+
+                           
                         }
                     }
                     else
                     {
+                        //鍒ゆ柇浠婂ぉ鏄惁鍏徃瑕佹眰鍔犵彮
+                        var shifoujiaban = jiabanri.Exists(x => x.ValueStart <= dateminkaoqin && x.ValueEnd >= dateminkaoqin);
+                        if (shifoujiaban)
+                        {
+
+                            //鍒ゆ柇鑰冨嫟鏃堕棿鐨勮繛缁��
+
+                            //鍒ゆ柇鏃╀笂鏄惁杩熷埌,鍒ゆ柇鏃╀笂鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊
+                            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);
+                            }
+                            foreach (var admAskLeave in admAskLeaveDTOMin)
+                            {
+                                if (admAskLeave.StratTime < StratTimeWorkingEnd)
+                                {
+                                    DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                    dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+                                    dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+                                    dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+                                }
+
+                            }
+
+                            foreach (var admAskLeaveOff in admAskLeaveOffDTOMin)
+                            {
+                                if (admAskLeaveOff.StratTime < StratTimeWorkingEnd)
+                                {
+                                    DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                    dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+                                    dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+                                    dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+                                }
+
+                            }
+
+
+                            dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
+                            if (dateBiJiaoDTOs.Count == 0)
+                            {
+                                Kuanggong += new decimal(0.5);
+                                Kuanggongtianshu += new decimal(0.5);
+                            }
+                            else
+                            {
+                                //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩�
+                                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 (!starttime.HasValue)
+                                        {
+                                            starttime = dateBiJiaoDTOs[i].StartTime;
+                                        }
+                                    }
+                                }
+                                if (kuanggong)
+                                {
+                                    Kuanggong += new decimal(0.5);
+                                    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)
+                                            {
+                                                shangwukuanggong += new decimal(0.5);
+                                                Kuanggong += 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)
+                                            {
+                                                shangwukuanggong += new decimal(0.5);
+                                                Kuanggong += 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);
+                            }
+                            foreach (var admAskLeave in admAskLeaveDTOMin)
+                            {
+                                if (admAskLeave.EndTime > StratTimeOffworkStart)
+                                {
+                                    DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                    dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+                                    dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+                                    dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+                                }
+
+                            }
+                            foreach (var admAskLeaveOff in admAskLeaveOffDTOMin)
+                            {
+                                if (admAskLeaveOff.EndTime > StratTimeOffworkStart)
+                                {
+                                    DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                    dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+                                    dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+                                    dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+                                }
+
+                            }
+
+                            dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
+                            if (dateBiJiaoDTOs.Count == 0)
+                            {
+                                Kuanggong += new decimal(0.5);
+                                Kuanggongtianshu += new decimal(0.5);
+                            }
+                            else
+                            {
+                                //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩�
+                                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 (!starttime.HasValue)
+                                        {
+                                            starttime = dateBiJiaoDTOs[i].StartTime;
+                                        }
+                                    }
+                                }
+                                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;
+                                }
+                            }
+
+
+                            //璁$畻褰撳ぉ璇峰亣
+                            List<DateBiJiaoDTO> qingjias = new List<DateBiJiaoDTO>();
+
+                            var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4" && x.Lavetype != "7" && x.Lavetype != "3" && x.Lavetype != "9").ToList();
+                            foreach (var admAskLeave in feichuqinjia)
+                            {
+
+                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+                                dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+                                qingjias.Add(dateBiJiaoDTO);
+
+                            }
+
+                            var feichuqinxiaojia = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "2").ToList();
+                            foreach (var admAskLeaveOff in feichuqinxiaojia)
+                            {
+
+                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+                                dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+                                qingjias.Add(dateBiJiaoDTO);
+
+                            }
+
+
+                            foreach (var qingjia in qingjias)
+                            {
+                                if (qingjia.StartTime < StratTimeWorkingStart)
+                                {
+                                    qingjia.StartTime = StratTimeWorkingStart;
+                                }
+                                if (qingjia.StartTime > StratTimeWorkingEnd && qingjia.StartTime < StratTimeOffworkStart)
+                                {
+                                    qingjia.StartTime = StratTimeOffworkStart;
+                                }
+
+
+                                if (qingjia.EndTime > StratTimeWorkingEnd && qingjia.EndTime < StratTimeOffworkStart)
+                                {
+                                    qingjia.EndTime = StratTimeWorkingEnd;
+                                }
+
+
+                                if (qingjia.EndTime > StratTimeOffworkEnd)
+                                {
+                                    qingjia.EndTime = StratTimeOffworkEnd;
+                                }
+                                TimeSpan qingjiashiijan = qingjia.EndTime.Value.Subtract(qingjia.StartTime.Value);
+                                if (qingjia.StartTime <= StratTimeWorkingEnd && qingjia.EndTime >= StratTimeOffworkStart)
+                                {
+                                    TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd);
+                                    dangtianqingjia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2);
+                                }
+                                else
+                                {
+                                    dangtianqingjia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2);
+                                }
+
+
+
+                            }
+
+                            Qingjia += dangtianqingjia;
+
+
+
+                            //璁$畻褰撳ぉ甯﹁柂鍋�
+                            List<DateBiJiaoDTO> daixinjias = new List<DateBiJiaoDTO>();
+
+                            var chauxndaixinjias = admAskLeaveDTOMin.Where(x => x.Lavetype == "4" || x.Lavetype == "7" || x.Lavetype == "3" || x.Lavetype == "9").ToList();
+                            foreach (var admAskLeave in chauxndaixinjias)
+                            {
+
+                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+                                dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+                                daixinjias.Add(dateBiJiaoDTO);
+
+                            }
+
+                            foreach (var daixinjia in daixinjias)
+                            {
+                                if (daixinjia.StartTime < StratTimeWorkingStart)
+                                {
+                                    daixinjia.StartTime = StratTimeWorkingStart;
+                                }
+                                if (daixinjia.StartTime > StratTimeWorkingEnd && daixinjia.StartTime < StratTimeOffworkStart)
+                                {
+                                    daixinjia.StartTime = StratTimeOffworkStart;
+                                }
+
+
+                                if (daixinjia.EndTime > StratTimeWorkingEnd && daixinjia.EndTime < StratTimeOffworkStart)
+                                {
+                                    daixinjia.EndTime = StratTimeWorkingEnd;
+                                }
+
+
+                                if (daixinjia.EndTime > StratTimeOffworkEnd)
+                                {
+                                    daixinjia.EndTime = StratTimeOffworkEnd;
+                                }
+                                TimeSpan daixinjiashiijan = daixinjia.EndTime.Value.Subtract(daixinjia.StartTime.Value);
+                                if (daixinjia.StartTime <= StratTimeWorkingEnd && daixinjia.EndTime >= StratTimeOffworkStart)
+                                {
+                                    TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd);
+                                    dangtiandaixinjia += Math.Round(((decimal)(daixinjiashiijan.Hours * 60 + daixinjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2);
+                                }
+                                else
+                                {
+                                    dangtiandaixinjia += Math.Round(((decimal)(daixinjiashiijan.Hours * 60 + daixinjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2);
+                                }
+
+
+
+                            }
+
+                            Daixinjia += dangtiandaixinjia;
+
+
+
+                            //璁$畻褰撳ぉ鍑哄嫟澶╂暟
+                            Jiaban += (1 - Kuanggongtianshu - dangtianqingjia);
+
+
+                            //璁$畻閿�鍋囷紙鍑哄樊锛岃ˉ鍗★級
+                            List<DateBiJiaoDTO> xiaojias = new List<DateBiJiaoDTO>();
+
+                            var xiaojiala = admAskLeaveOffDTOMin.Where(x => x.Lavetype != "2").ToList();
+                            foreach (var admAskLeaveOff in xiaojiala)
+                            {
+
+                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+                                dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+                                xiaojias.Add(dateBiJiaoDTO);
+
+                            }
+
+                            foreach (var xiaojia in xiaojias)
+                            {
+                                if (xiaojia.StartTime < StratTimeWorkingStart)
+                                {
+                                    xiaojia.StartTime = StratTimeWorkingStart;
+                                }
+                                if (xiaojia.StartTime > StratTimeWorkingEnd && xiaojia.StartTime < StratTimeOffworkStart)
+                                {
+                                    xiaojia.StartTime = StratTimeOffworkStart;
+                                }
+
+
+                                if (xiaojia.EndTime > StratTimeWorkingEnd && xiaojia.EndTime < StratTimeOffworkStart)
+                                {
+                                    xiaojia.EndTime = StratTimeWorkingEnd;
+                                }
+
+
+                                if (xiaojia.EndTime > StratTimeOffworkEnd)
+                                {
+                                    xiaojia.EndTime = StratTimeOffworkEnd;
+                                }
+                                TimeSpan qingjiashiijan = xiaojia.EndTime.Value.Subtract(xiaojia.StartTime.Value);
+                                if (xiaojia.StartTime <= StratTimeWorkingEnd && xiaojia.EndTime >= StratTimeOffworkStart)
+                                {
+                                    TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd);
+                                    dangtianxiaojia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2);
+                                }
+                                else
+                                {
+                                    dangtianxiaojia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2);
+                                }
+
+
+
+                            }
+
+                            Xiaojia += dangtianxiaojia;
+                        }
+                           
+
+
+
                         //鍔犵彮
                         //璁$畻鍔犵彮鏃堕棿
                         if (admSignInDTO != null && admSignInDTO.OvertimeIn.HasValue && admSignInDTO.OvertimeOut.HasValue)
                         {
-                            TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(admSignInDTO.OvertimeIn.Value);
-
-                            Jiaban += Math.Round((decimal)(jiaban.Hours * 60+ jiaban.Minutes) / (decimal)shangbanshijian, 2);
+                            var admAskovertimeDTO = _askService.GetAskovertimeByUeridAndjiabantime(userList[a].Id, dateminkaoqin);
+                            if (admAskovertimeDTO != null && !string.IsNullOrEmpty(admAskovertimeDTO.Id))
+                            {
+                                //濡傛灉褰撳ぉ鏄叕鍙歌姹傚姞鐝�,鍒欒嚜宸辩敵璇风殑鍔犵彮浠庝笅鐝紑濮嬬畻
+                                DateTime overdate = admSignInDTO.OvertimeIn.Value;
+                                if (shifoujiaban && admSignInDTO.OvertimeIn.Value < StratTimeOffworkEnd)
+                                {
+                                    overdate = StratTimeOffworkEnd;
+                                }
+                                TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate);
+                                decimal jiabanshijian = jiaban.Hours;
+                                if (new decimal(jiaban.Hours) > admAskovertimeDTO.Overtime.Value)
+                                {
+                                    jiabanshijian = admAskovertimeDTO.Overtime.Value;
+                                }
+                                if (jiabanshijian > new decimal(shangbanshijian) / 60)
+                                {
+                                    jiabanshijian = new decimal(shangbanshijian) / 60;
+                                }
+                                Jiaban += Math.Round(jiabanshijian * 60 / shangbanshijian, 2);
+                            }
                         }
+
+                        
                     }
 
 
@@ -744,7 +1490,7 @@
                         admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut;
                         admAttendanceDtlDTO.Qingjia = dangtianqingjia;
                         admAttendanceDtlDTO.Xiaojia = dangtianxiaojia;
-                       
+                        admAttendanceDtlDTO.Daixinjia = dangtiandaixinjia;
 
 
 
@@ -780,6 +1526,7 @@
                         admAttendanceDtlDTO.OvertimeIn = admSignInDTO.OvertimeIn;
                         admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut;
                         admAttendanceDtlDTO.Qingjia = dangtianqingjia;
+                        admAttendanceDtlDTO.Daixinjia = dangtiandaixinjia;
                         admAttendanceDtlDTO.Xiaojia = dangtianxiaojia;
                         
 
@@ -831,6 +1578,7 @@
 
 
                 admAttendanceDTO.Qingjia = Qingjia;
+                admAttendanceDTO.Daixinjia = Daixinjia;
                 admAttendanceDTO.Xiaojia = Xiaojia;
                 admAttendanceDTO.Chidao = Chidao;
                 admAttendanceDTO.Islock = "A";
@@ -846,10 +1594,17 @@
 
 
         //璁$畻宸ヨ祫
-        public void jisuangongzi()
+        public async Task jisuangongziAsync()
         {
+            var Month = DateTime.Now.Month - 1;
+            var Year = DateTime.Now.Year;
+            if (Month == 0)
+            {
+                Month = 12;
+                Year = Year - 1;
+            }
             //鏌ヨ鎵�鏈夌殑鏈夋晥浜哄憳
-            DateTime dateminkaoqin = new DateTime(DateTime.Now.Year, DateTime.Now.Month - 1, 1);
+            DateTime dateminkaoqin = new DateTime(Year, Month, 1);
             DateTime datemaxkaoqin = dateminkaoqin.AddMonths(1);
             List<PltUserDTO> userList = _userService.GetListjisuankaoqin(dateminkaoqin, datemaxkaoqin);//.Where(x => x.UserSn == "yang").ToList();
             List<HrJibengongziDTO> hrJibengongziDTOs = _JibengongziService.GetList().Where(x=>  x.Effecttime < datemaxkaoqin).ToList();
@@ -898,18 +1653,27 @@
                 searchEntity.AttendanceId = admAttendanceDTO.Id;
                 List<AdmAttendanceDtlDTO> admAttendanceDtlDTOs = _admAttendanceDtlService.GetList(searchEntity).OrderBy(x => x.SgninDate).ToList();
 
+                //鏌ヨ鏄惁鏈変笉绉拌亴鐨勫伐浣滆�冭瘎
+               var admEvaluateDTOs = _admEvaluateService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x=>x.EvaluateValue == "03").ToList();
                 //褰撴湀鍑哄嫟鐜�
                 decimal chuqinlv = Math.Round(admAttendanceDTO.Shijichuqin / admAttendanceDTO.Yingchuqin,4); 
 
                 //鏌ヨ褰撳墠鍛樺伐鑱屽姟鐨勫熀鏈伐璧勯厤缃�
 
                var hrJibengongzi = hrJibengongziDTOs.Where(x=>x.PostId == userList[i].HrPosition ).OrderByDescending(x=>x.Effecttime).FirstOrDefault();
-
+               
                 if (hrJibengongzi == null)
                 {
                     _logger.LogInformation(userList[i].UserName + ": 鑱屽姟鎵�灞炶祫鏈伐璧勪负绌�");
                     continue;
                 }
+                var shebaoDTO = _JibengongziService.GetListShebao().FirstOrDefault();
+                if (shebaoDTO == null)
+                {
+                    _logger.LogInformation(userList[i].UserName + ": 绀句繚缁存姢涓虹┖");
+                    continue;
+                }
+             
                 hrSalaryDTO.Jibengongzi = Math.Round( hrJibengongzi.Jibengongzi.Value * chuqinlv, 2);
                 hrSalaryDTO.Baomifei = Math.Round(hrJibengongzi.Baomifei.Value * chuqinlv, 2);
                 //鏄惁鍦ㄨ瘯鐢ㄦ湡
@@ -918,22 +1682,46 @@
                 {
                     geshuiqizheng = userList[i].geshuiqizheng.Value;
                 }
-                var Shebaodanwei = hrJibengongzi.Shebaodanwei.HasValue ? hrJibengongzi.Shebaodanwei.Value : 0;
-                var Shebaogeren = hrJibengongzi.Shebaogeren.HasValue ? hrJibengongzi.Shebaogeren.Value : 0;
+                var Shebaodanwei = shebaoDTO.Shebaodanwei.HasValue ? shebaoDTO.Shebaodanwei.Value : 0;
+                var Shebaogeren = shebaoDTO.Shebaogeren.HasValue ? shebaoDTO.Shebaogeren.Value : 0;
                 decimal yingnashuie = 0;
                 hrSalaryDTO.Queqin = 0;
+                hrSalaryDTO.Fakuan = 0;
                 hrSalaryDTO.Gongzuobutie = 0;
                 hrSalaryDTO.Jiabangongzi = 0;
                 decimal shiyongqichuqintianshu = 0;
                 decimal shiyongqichuqinlv = 0;
-                
-                if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && dateminkaoqin>= userList[i].ShiyongDate.Value && dateminkaoqin <= userList[i].ShiyongDateEnd.Value)
+                decimal yingfaheji = 0;
+
+
+                decimal BasicPrice = 0;
+                if (!decimal.TryParse(userList[i].BasicPrice, out BasicPrice))
                 {
+                    _logger.LogInformation(userList[i].UserName + ": 鍛樺伐娌℃湁缁存姢宸ヨ祫");
+                    continue;
+                }
+
+
+
+                if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && datemaxkaoqin> userList[i].ShiyongDate.Value && dateminkaoqin <= userList[i].ShiyongDateEnd.Value)
+                {
+                    hrSalaryDTO.Jibengongzi = Math.Round(hrJibengongzi.Jibengongzi.Value * chuqinlv * new decimal(0.8), 2) ;
+                    hrSalaryDTO.Baomifei = Math.Round(hrJibengongzi.Baomifei.Value * chuqinlv * new decimal(0.8), 2) ;
+                    decimal ShiyongPrice = 0;
                     if (!userList[i].ShiyongPrice.HasValue)
                     {
-                        _logger.LogInformation(userList[i].UserName + ": 鍛樺伐澶勪簬璇曠敤鏈燂紝浣嗘槸璇曠敤鏈熷伐璧勪负绌�");
-                        continue;
+                        ShiyongPrice = BasicPrice * new decimal(0.8);
+                        _logger.LogInformation(userList[i].UserName + ": 鍛樺伐澶勪簬璇曠敤鏈燂紝浣嗘槸璇曠敤鏈熷伐璧勪负绌�,瀹氫负姝e紡宸ヨ祫鐨�0.8鍊�");
+
                     }
+                    else
+                    {
+                        ShiyongPrice = userList[i].ShiyongPrice.Value;
+                    }
+                    //鏌ヨ鏄惁鏈変笉绉拌亴鐨勫伐浣滆�冭瘎
+                    var admEvaluateDTOsshiyongqi = _admEvaluateService.GetListsalary(userList[i].Id, dateminkaoqin, userList[i].ShiyongDateEnd.Value.AddDays(1)).Where(x => x.EvaluateValue == "03").ToList();
+
+
                     //璇曠敤鏈熺殑鍑哄嫟鐜�
                     shiyongqichuqinlv = chuqinlv;
                     if(userList[i].ShiyongDateEnd.Value< datemaxkaoqin.AddDays(-1))
@@ -946,7 +1734,7 @@
                                     shiyongqichuqintianshu += (1 - admAttendanceDtlDTO.Qingjia - admAttendanceDtlDTO.Kuanggongtianshu);
                                     if (admAttendanceDtlDTO.Kuanggongtianshu > 0)
                                     {
-                                        var queqingkoukuan = Math.Round(userList[i].ShiyongPrice.Value / jiabangongzibiaozhun * admAttendanceDtlDTO.Kuanggongtianshu * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2);
+                                        var queqingkoukuan = Math.Round(ShiyongPrice / jiabangongzibiaozhun * admAttendanceDtlDTO.Kuanggongtianshu * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2);
                                         if (queqingkoukuan > 0)
                                         {
                                             hrSalaryDTO.Queqin += queqingkoukuan;
@@ -954,44 +1742,59 @@
                                     }
                             }
                         }
+
+                      
+
+
                         shiyongqichuqinlv = Math.Round(shiyongqichuqintianshu / admAttendanceDTO.Yingchuqin, 4);
+
+                        //宸ヤ綔璇勪环涓嶅悎鏍肩綒娆�
+                        hrSalaryDTO.Fakuan += Math.Round(ShiyongPrice * admEvaluateDTOsshiyongqi.Count / admAttendanceDTO.Yingchuqin + BasicPrice * (admEvaluateDTOs.Count - admEvaluateDTOsshiyongqi.Count) / admAttendanceDTO.Yingchuqin, 2);
+                        
                     }
                     else
                     {
                         if (admAttendanceDTO.Kuanggong > 0)
                         {
-                            var queqingkoukuan = Math.Round(userList[i].ShiyongPrice.Value / jiabangongzibiaozhun * admAttendanceDTO.Kuanggong * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2);
+                            var queqingkoukuan = Math.Round(ShiyongPrice / jiabangongzibiaozhun * admAttendanceDTO.Kuanggong * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2);
                             if (queqingkoukuan > 0)
                             {
                                 hrSalaryDTO.Queqin += queqingkoukuan;
                             }
                         }
-                        hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * userList[i].ShiyongPrice.Value, 2);
+                        if (hrJibengongzi.Jiabangongzi.HasValue)
+                        {
+                            hrSalaryDTO.Jiabangongzi += Math.Round(admAttendanceDTO.Jiaban * hrJibengongzi.Jiabangongzi.Value, 2);  //(admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * userList[i].ShiyongPrice.Value
+                        }
+
+                       
+
+                        //宸ヤ綔璇勪环涓嶅悎鏍肩綒娆�
+                        hrSalaryDTO.Fakuan += Math.Round(ShiyongPrice * admEvaluateDTOs.Count / admAttendanceDTO.Yingchuqin, 2);
                     }
 
 
 
 
-                    hrSalaryDTO.Gongzuobutie += Math.Round( (userList[i].ShiyongPrice.Value - hrJibengongzi.Baomifei.Value- hrJibengongzi.Jibengongzi.Value ) * shiyongqichuqinlv, 2);
+                    hrSalaryDTO.Gongzuobutie += Math.Round( (ShiyongPrice - hrSalaryDTO.Baomifei.Value- hrSalaryDTO.Jibengongzi.Value ) * shiyongqichuqinlv, 2);
 
-                   
 
-                    //yingnashuie = userList[i].ShiyongPrice.Value - Shebaogeren - geshuiqizheng;
+
+                    
 
 
 
 
                 }
+                else
+                {
+                    //宸ヤ綔璇勪环缃氭
+                    hrSalaryDTO.Fakuan += Math.Round(BasicPrice * admEvaluateDTOs.Count/ admAttendanceDTO.Yingchuqin , 2);
+                }
                 
 
                 if(true)
                 {
-                    decimal BasicPrice = 0;
-                    if(!decimal.TryParse(userList[i].BasicPrice,out BasicPrice))
-                    {
-                        _logger.LogInformation(userList[i].UserName + ": 鍛樺伐娌℃湁缁存姢宸ヨ祫");
-                        continue;
-                    }
                     //杞鍚庣殑鍑哄嫟鐜�
                     decimal zhuanzhengchuqinlv = chuqinlv- shiyongqichuqinlv;
                     if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && userList[i].ShiyongDateEnd.Value >= dateminkaoqin && userList[i].ShiyongDateEnd.Value <= datemaxkaoqin.AddDays(-1))
@@ -1042,16 +1845,20 @@
                                 hrSalaryDTO.Queqin += queqingkoukuan;
                             }
                         }
-                        hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * BasicPrice, 2);
+                        if (hrJibengongzi.Jiabangongzi.HasValue)
+                        {
+                            hrSalaryDTO.Jiabangongzi += Math.Round(admAttendanceDTO.Jiaban * hrJibengongzi.Jiabangongzi.Value, 2);  //   hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * BasicPrice, 2);
+                        }
+                     
                     }
 
 
 
-                    hrSalaryDTO.Gongzuobutie += Math.Round((BasicPrice - hrJibengongzi.Baomifei.Value - hrJibengongzi.Jibengongzi.Value) * zhuanzhengchuqinlv, 2);
+                    hrSalaryDTO.Gongzuobutie += Math.Round((BasicPrice - hrSalaryDTO.Baomifei.Value - hrSalaryDTO.Jibengongzi.Value) * zhuanzhengchuqinlv, 2);
 
                   
 
-                    //yingnashuie = BasicPrice - Shebaogeren - geshuiqizheng;
+                   
 
                     
                 }
@@ -1281,9 +2088,17 @@
                     hrSalaryDTO.Dianhuafei = SimCost.bill_amount;
                 }
               
+                if(admAttendanceDTO.Shijichuqin>=admAttendanceDTO.Yingchuqin
+                    && hrSalaryDTO.Queqin <=0)
+                {
+                    hrSalaryDTO.Quanqinjiang = hrJibengongzi.Quanqingjiang;
+                }
+                else
+                {
+                    hrSalaryDTO.Quanqinjiang = 0;
+                }
 
-
-                hrSalaryDTO.Quanqinjiang = hrJibengongzi.Quanqingjiang;
+               
                 if ("A".Equals(userList[i].Istravelsubsidy))
                 {
                     hrSalaryDTO.Jiaotngbutie = hrJibengongzi.Jiaotongbutie;
@@ -1295,7 +2110,6 @@
 
 
 
-                hrSalaryDTO.Fakuan = 0;
                 //宸ヤ綔瀹夋帓缃氭
                 List<AdmMemoBookDTO> admMemoBookDTOs =  _DailyManageService.GetRemindsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin,"2");
                 if (admMemoBookDTOs.Count > 0)
@@ -1323,7 +2137,7 @@
                     }
                 }
 
-                //hrSalaryDTO.Jiucuo
+                hrSalaryDTO.Jiucuo = 0;
 
                 //璁$畻缁╂晥鎻愭垚
                 hrSalaryDTO.Jixiaoticheng = 0;
@@ -1335,12 +2149,12 @@
                     //var feijijiandengji = fiPiecerateDTOs.Where(x => x.Standard == "A");
                     //var  jijiandengji =    fiPiecerateDTOs.Where(x => x.Standard == "A");
 
-                    #region 涓婇棬鎷滆瀹㈡埛
+                    #region 閲囪喘鍏憡褰曞叆
 
-                    var cooperVisitDTOs = _cooperVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
-                    if (cooperVisitDTOs != null && cooperVisitDTOs.Count > 0)
+                    var caigougonggaoDTOsyue = _projectService.GetcaigougonggaoListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+                    if (caigougonggaoDTOsyue != null && caigougonggaoDTOsyue.Count > 0)
                     {
-                        var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "涓婇棬鎷滆瀹㈡埛").FirstOrDefault();
+                        var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "閲囪喘鍏憡褰曞叆").FirstOrDefault();
                         if (jijianidddd != null)
                         {
                             var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
@@ -1348,16 +2162,43 @@
                             {
                                 if (jixiaotichengfangan.Renwustandard == "01")
                                 {
-                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
-                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while(kaishijisuan < datemaxkaoqin)
                                     {
-                                        decimal youxiaojijian = cooperVisitDTOs.Count - renwujishu;
-                                        if (youxiaojijian > 0)
+                                        try
                                         {
-                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var caigougonggaoDTOsri = caigougonggaoDTOsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = caigougonggaoDTOsri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+                                           
                                         }
-
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
                                     }
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = caigougonggaoDTOsyue.Count - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
 
                                 }
                                 else if (jixiaotichengfangan.Renwustandard == "02")
@@ -1365,7 +2206,7 @@
                                     decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                     if (jixiaotichengfangan.Tichengstandard == "01")
                                     {
-                                        decimal youxiaojijian = cooperVisitDTOs.Count - renwujishu;
+                                        decimal youxiaojijian = caigougonggaoDTOsyue.Count - renwujishu;
                                         if (youxiaojijian > 0)
                                         {
                                             hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
@@ -1377,6 +2218,154 @@
 
                         }
                     }
+                    #endregion
+
+                    #region 閲囪喘椤圭洰褰曞叆
+
+                    var projectDTOsyue = _projectService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+                    if (projectDTOsyue!=null && projectDTOsyue.Count > 0 )
+                    {
+                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "閲囪喘椤圭洰褰曞叆").FirstOrDefault();
+                        if (jijianidddd != null)
+                        {
+                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                            {
+                                if (jixiaotichengfangan.Renwustandard == "01")
+                                {
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
+                                    {
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var projectDTOri = projectDTOsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = projectDTOri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
+                                    }
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = projectDTOsyue.Count - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
+
+                                }
+                                else if (jixiaotichengfangan.Renwustandard == "02")
+                                {
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    {
+                                        decimal youxiaojijian = projectDTOsyue.Count - renwujishu;
+                                        if (youxiaojijian > 0)
+                                        {
+                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        }
+
+                                    }
+                                }
+                            }
+
+                        }
+                    }
+                    #endregion
+
+
+
+                 
+
+                    #region 瀹㈡埛璧勬枡褰曞叆
+
+                    var _intentionCustomerDTOs = _intentionCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+                    if (_intentionCustomerDTOs!=null && _intentionCustomerDTOs.Count > 0)
+                    {
+                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "瀹㈡埛璧勬枡褰曞叆").FirstOrDefault();
+                        if (jijianidddd != null)
+                        {
+                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                            {
+                                if (jixiaotichengfangan.Renwustandard == "01")
+                                {
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
+                                    {
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var _intentionCustomerDTOsri = _intentionCustomerDTOs.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = _intentionCustomerDTOsri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
+                                    }
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = _intentionCustomerDTOs.Count   - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
+
+                                }
+                                else if (jixiaotichengfangan.Renwustandard == "02")
+                                {
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    {
+                                        decimal youxiaojijian = _intentionCustomerDTOs.Count   - renwujishu;
+                                        if (youxiaojijian > 0)
+                                        {
+                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        }
+
+                                    }
+                                }
+                            }
+                        }
+                    }
+
+
+
                     #endregion
 
                     #region 鏂板姞缇ょ粍
@@ -1384,7 +2373,7 @@
                     var groupTopicDTOs = _groupTopicService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                     if (groupTopicDTOs != null && groupTopicDTOs.Count > 0)
                     {
-                        var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "鏂板姞缇ょ粍").FirstOrDefault();
+                        var jijianidddd = fiPiecerateDTOs.Where(x =>   x.Project == "鏂板姞缇ょ粍").FirstOrDefault();
                         if (jijianidddd != null)
                         {
                             var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
@@ -1392,16 +2381,43 @@
                             {
                                 if (jixiaotichengfangan.Renwustandard == "01")
                                 {
-                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
-                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
                                     {
-                                        decimal youxiaojijian = groupTopicDTOs.Count - renwujishu;
-                                        if (youxiaojijian > 0)
+                                        try
                                         {
-                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
-                                        }
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var groupTopicDTOsri = groupTopicDTOs.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = groupTopicDTOsri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
 
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
                                     }
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = groupTopicDTOs.Count - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
 
                                 }
                                 else if (jixiaotichengfangan.Renwustandard == "02")
@@ -1423,11 +2439,12 @@
                     }
                     #endregion
 
-                    #region 瀹㈡埛璧勬枡褰曞叆
-                    var cooperatecustomCustomerDTOs = _cooperatecustomCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
-                    if (cooperatecustomCustomerDTOs != null && cooperatecustomCustomerDTOs.Count > 0)
+                    #region 鐢佃瘽鎺ㄥ箍
+
+                    var intentionVisitDTOs = _intentionVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.VisType == "01").ToList();
+                    if (intentionVisitDTOs != null && intentionVisitDTOs.Count > 0)
                     {
-                        var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "瀹㈡埛璧勬枡褰曞叆").FirstOrDefault();
+                        var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "鐢佃瘽鎺ㄥ箍").FirstOrDefault();
                         if (jijianidddd != null)
                         {
                             var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
@@ -1435,16 +2452,43 @@
                             {
                                 if (jixiaotichengfangan.Renwustandard == "01")
                                 {
-                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
-                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
                                     {
-                                        decimal youxiaojijian = cooperatecustomCustomerDTOs.Count - renwujishu;
-                                        if (youxiaojijian > 0)
+                                        try
                                         {
-                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
-                                        }
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var intentionVisitDTOsri = intentionVisitDTOs.Where(x => x.Vistime >= kaishijisuan && x.Vistime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = intentionVisitDTOsri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
 
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
                                     }
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = intentionVisitDTOs.Count - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
 
                                 }
                                 else if (jixiaotichengfangan.Renwustandard == "02")
@@ -1452,7 +2496,7 @@
                                     decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                     if (jixiaotichengfangan.Tichengstandard == "01")
                                     {
-                                        decimal youxiaojijian = cooperatecustomCustomerDTOs.Count - renwujishu;
+                                        decimal youxiaojijian = intentionVisitDTOs.Count - renwujishu;
                                         if (youxiaojijian > 0)
                                         {
                                             hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
@@ -1461,52 +2505,1011 @@
                                     }
                                 }
                             }
-                        }     
+
+                        }
                     }
                     #endregion
 
+                    #region 缇ゅ彂鐭俊
+
+                    var duanxinsyue = _cusFangwenjiluService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.Fasongfangshi == "01").ToList();
+                    if (duanxinsyue != null && duanxinsyue.Count > 0)
+                    {
+                        var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "缇ゅ彂鐭俊").FirstOrDefault();
+                        if (jijianidddd != null)
+                        {
+                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                            {
+                                if (jixiaotichengfangan.Renwustandard == "01")
+                                {
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
+                                    {
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var duanxinsri = duanxinsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = duanxinsri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
+                                    }
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = duanxinsyue.Count - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
+
+                                }
+                                else if (jixiaotichengfangan.Renwustandard == "02")
+                                {
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    {
+                                        decimal youxiaojijian = duanxinsyue.Count - renwujishu;
+                                        if (youxiaojijian > 0)
+                                        {
+                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        }
+
+                                    }
+                                }
+                            }
+
+                        }
+                    }
+                    #endregion
+
+
+                    #region 娣诲姞寰俊瀹㈡埛
+                    TongjiBaoBiaoDTO weixnDTO = new TongjiBaoBiaoDTO();
+                    weixnDTO.gongzuo = "娣诲姞寰俊瀹㈡埛";
+                    //鏈湀鏁伴噺
+                    var cooperweixinDTOsyue = _cooperatecustomCustomerService.GetListsalaryweixin(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+                    var intentionweixinDTOsyue = _intentionCustomerService.GetListsalaryweixin(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+                    var jijianiweixn = fiPiecerateDTOs.Where(x => x.Project == "娣诲姞寰俊瀹㈡埛").FirstOrDefault();
+                    if (jijianiweixn != null)
+                    {
+                        var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianiweixn.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                        if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                        {
+                            if (jixiaotichengfangan.Renwustandard == "01")
+                            {
+                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                while (kaishijisuan < datemaxkaoqin)
+                                {
+                                    try
+                                    {
+                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                        if (gongzuoshijian)
+                                        {
+                                            var cooperweixinDTOsri = cooperweixinDTOsyue.Where(x => x.Weixintime >= kaishijisuan && x.Weixintime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                            var intentionweixinDTOsri = intentionweixinDTOsyue.Where(x => x.Weixintime >= kaishijisuan && x.Weixintime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                            if (jixiaotichengfangan.Tichengstandard == "01")
+                                            {
+                                                decimal youxiaojijian = cooperweixinDTOsri.Count + intentionweixinDTOsri.Count - renwujishu;
+                                                if (youxiaojijian > 0)
+                                                {
+                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                }
+                                            }
+                                        }
+
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        _logger.LogInformation(ex.ToString());
+                                    }
+                                    kaishijisuan = kaishijisuan.AddDays(1);
+                                }
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //if (jixiaotichengfangan.Tichengstandard == "01")
+                                //{
+                                //    decimal youxiaojijian = cooperweixinDTOsyue.Count+ intentionweixinDTOsyue.Count - renwujishu;
+                                //    if (youxiaojijian > 0)
+                                //    {
+                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                //    }
+
+                                //}
+
+                            }
+                            else if (jixiaotichengfangan.Renwustandard == "02")
+                            {
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                {
+                                    decimal youxiaojijian = cooperweixinDTOsyue.Count + intentionweixinDTOsyue.Count - renwujishu;
+                                    if (youxiaojijian > 0)
+                                    {
+                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    }
+
+                                }
+                            }
+                        }
+
+                    }
+
+                    #endregion
+
+                    #region 缇ゅ彂閭欢
+
+                    var youjiansyue = _cusFangwenjiluService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.Fasongfangshi == "02").ToList();
+                    if (youjiansyue != null && youjiansyue.Count > 0)
+                    {
+                        var jijianidddd = fiPiecerateDTOs.Where(x =>   x.Project == "缇ゅ彂閭欢").FirstOrDefault();
+                        if (jijianidddd != null)
+                        {
+                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                            {
+                                if (jixiaotichengfangan.Renwustandard == "01")
+                                {
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
+                                    {
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var youjiansri = youjiansyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = youjiansri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
+                                    }
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = youjiansyue.Count - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
+
+                                }
+                                else if (jixiaotichengfangan.Renwustandard == "02")
+                                {
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    {
+                                        decimal youxiaojijian = youjiansyue.Count - renwujishu;
+                                        if (youxiaojijian > 0)
+                                        {
+                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        }
+
+                                    }
+                                }
+                            }
+
+                        }
+                    }
+                    #endregion
+
+                    #region 鏂板鎰忓悜瀹㈡埛锛堣鍗曪級
+
+                    var yixiangsyue = _intentionCustomerService.GetListsalaryyixiang(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+                    if (yixiangsyue != null && yixiangsyue.Count > 0)
+                    {
+                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "鏂板鎰忓悜瀹㈡埛锛堣鍗曪級").FirstOrDefault();
+                        if (jijianidddd != null)
+                        {
+                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                            {
+                                if (jixiaotichengfangan.Renwustandard == "01")
+                                {
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
+                                    {
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var yixiangsri = yixiangsyue.Where(x => x.Yixiangtime >= kaishijisuan && x.Yixiangtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = yixiangsri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
+                                    }
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = yixiangsyue.Count - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
+
+                                }
+                                else if (jixiaotichengfangan.Renwustandard == "02")
+                                {
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    {
+                                        decimal youxiaojijian = yixiangsyue.Count - renwujishu;
+                                        if (youxiaojijian > 0)
+                                        {
+                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        }
+
+                                    }
+                                }
+                            }
+
+                        }
+                    }
+                    #endregion
+
+
+                    #region 鏂板娉ㄥ唽浼氬憳
+
+                    //鏈湀鏁伴噺
+                    List<YaoQingYongHuDTO> zhucehuiyuansyue = new List<YaoQingYongHuDTO>();
+                    try
+                    {
+                        //var pltUserDTO = _userService.GetPltUserEntity(userList[i].Id);
+                        string huiyuanurl = _configuration.GetSection("huiyuanurl").Value;
+                        string GetYGYaoQingYonghu = _configuration.GetSection("GetYGYaoQingYonghu").Value;
+                        Uri postUrl2 = new Uri(huiyuanurl + GetYGYaoQingYonghu);
+
+                        JObject questions2 = new JObject();
+                        questions2.Add("UserID", userList[i].Id);
+                        questions2.Add("StartTime", dateminkaoqin.ToString("yyyy-MM-dd HH:mm:ss"));
+                        questions2.Add("EndTime", datemaxkaoqin.ToString("yyyy-MM-dd HH:mm:ss"));
+
+                        string requestJson2 = questions2.ToString();
+                        string result2 = string.Empty;
+
+                        using (HttpContent httpContent = new StringContent(requestJson2))
+                        {
+                            httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
+
+                            var httpClient2 = _clientFactory.CreateClient();
+                            httpClient2.Timeout = new TimeSpan(0, 0, 10);
+                            var Result2 = await httpClient2.PostAsync(postUrl2, httpContent);
+                            result2 = Result2.Content.ReadAsStringAsync().Result;
+                        }
+
+                        _logger.LogInformation("result2:" + result2);
+                        JObject jobjectresult = (JObject)JsonConvert.DeserializeObject(result2);
+
+                        if (jobjectresult["code"] != null && jobjectresult["code"].ToString() == "1")
+                        {
+                            
+                            zhucehuiyuansyue = JsonConvert.DeserializeObject<List<YaoQingYongHuDTO>>(jobjectresult["data"].ToString());
+
+                        }
+                        
+                    }
+                    catch (Exception ex)
+                    {
+
+                    }
+
+
+                    //var qianyueDTOsyue = _cooperatecustomCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+                    if (zhucehuiyuansyue != null && zhucehuiyuansyue.Count > 0)
+                    {
+                        var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "鏂板娉ㄥ唽浼氬憳").FirstOrDefault();
+                        if (jijianidddd != null)
+                        {
+                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                            {
+                                if (jixiaotichengfangan.Renwustandard == "01")
+                                {
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
+                                    {
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var zhucehuiyuansyueri = zhucehuiyuansyue.Where(x => x.CreatTime >= kaishijisuan && x.CreatTime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = zhucehuiyuansyueri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
+                                    }
+
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = zhucehuiyuansyue.Count - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
+
+                                }
+                                else if (jixiaotichengfangan.Renwustandard == "02")
+                                {
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    {
+                                        decimal youxiaojijian = zhucehuiyuansyue.Count - renwujishu;
+                                        if (youxiaojijian > 0)
+                                        {
+                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        }
+
+                                    }
+                                }
+                            }
+
+                        }
+                    }
+                    #endregion
+
+
+                    #region 鏂板绛剧害瀹㈡埛
+
+                    var qianyueDTOsyue = _cooperatecustomCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+                    if (qianyueDTOsyue != null && qianyueDTOsyue.Count > 0)
+                    {
+                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "鏂板绛剧害瀹㈡埛").FirstOrDefault();
+                        if (jijianidddd != null)
+                        {
+                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                            {
+                                if (jixiaotichengfangan.Renwustandard == "01")
+                                {
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
+                                    {
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var qianyueDTOsri = qianyueDTOsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = qianyueDTOsri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
+                                    }
+
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = qianyueDTOsyue.Count - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
+
+                                }
+                                else if (jixiaotichengfangan.Renwustandard == "02")
+                                {
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    {
+                                        decimal youxiaojijian = qianyueDTOsyue.Count - renwujishu;
+                                        if (youxiaojijian > 0)
+                                        {
+                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        }
+
+                                    }
+                                }
+                            }
+
+                        }
+                    }
+                    #endregion
+
+                    #region 涓婇棬鎷滆瀹㈡埛
+
+                    var cooperVisitDTOs = _cooperVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.VisType == "02").ToList();
+                    var intentionVisitDTOsshangmen = _intentionVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.VisType == "02").ToList();
+                    if (  cooperVisitDTOs.Count > 0 || intentionVisitDTOsshangmen.Count > 0)
+                    {
+                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "涓婇棬鎷滆瀹㈡埛").FirstOrDefault();
+                        if (jijianidddd != null)
+                        {
+                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                            {
+                                if (jixiaotichengfangan.Renwustandard == "01")
+                                {
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
+                                    {
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var cooperVisitDTOsri = cooperVisitDTOs.Where(x => x.Vistime >= kaishijisuan && x.Vistime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                var intentionVisitDTOsshangmenri = intentionVisitDTOsshangmen.Where(x => x.Vistime >= kaishijisuan && x.Vistime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = cooperVisitDTOsri.Count + intentionVisitDTOsshangmenri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
+                                    }
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = intentionVisitDTOsshangmen.Count + cooperVisitDTOs.Count - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
+
+                                }
+                                else if (jixiaotichengfangan.Renwustandard == "02")
+                                {
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    {
+                                        decimal youxiaojijian = intentionVisitDTOsshangmen.Count + cooperVisitDTOs.Count - renwujishu;
+                                        if (youxiaojijian > 0)
+                                        {
+                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        }
+
+                                    }
+                                }
+
+                                else if (jixiaotichengfangan.Renwustandard == "05")
+                                {
+
+                                    var cooperVisitDTOszhou = _cooperVisitService.GetListsalary(userList[i].Id, dateminkaoqin.AddMonths(-1), datemaxkaoqin).Where(x => x.VisType == "02").ToList();
+                                    var intentionVisitDTOsshangmenzhou = _intentionVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.VisType == "02").ToList();
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
+                                    {
+                                        var zhoukaishidate = CalculateFirstDateOfWeek(kaishijisuan);
+                                        var zhoujieshudate = CalculateLastDateOfWeek(kaishijisuan);
+
+                                        try
+                                        {
+                                            if(zhoujieshudate < datemaxkaoqin)
+                                            {
+                                                var cooperVisitDTOsri = cooperVisitDTOszhou.Where(x => x.Vistime >= zhoukaishidate && x.Vistime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                var intentionVisitDTOsshangmenri = intentionVisitDTOsshangmenzhou.Where(x => x.Vistime >= zhoukaishidate && x.Vistime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = cooperVisitDTOsri.Count + intentionVisitDTOsshangmenri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = zhoujieshudate.AddDays(1);
+                                    }
+                                }
+                            }
+
+                        }
+                    }
+                    #endregion
+
+                    #region 鏂伴椈璧勮
+                    //鏈湀鏁伴噺
+                    DtChannelArticleNewsDTOSearch searchEntity1 = new DtChannelArticleNewsDTOSearch();
+                    searchEntity1.EndTime = datemaxkaoqin;
+                    searchEntity1.AddTime = dateminkaoqin;
+                    searchEntity1.UserName = userList[i].UserSn;
+                    searchEntity1.CategoryId = 3;
+                    var dtChannelArticleNewsDTOs = _dtChannelArticleNewsService.GetList(searchEntity1);
+
+                    if (dtChannelArticleNewsDTOs != null && dtChannelArticleNewsDTOs.Count > 0)
+                    {
+                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "鏂伴椈璧勮").FirstOrDefault();
+                        if (jijianidddd != null)
+                        {
+                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                            {
+                                if (jixiaotichengfangan.Renwustandard == "01")
+                                {
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
+                                    {
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var dtChannelArticleNewsDTOsri = dtChannelArticleNewsDTOs.Where(x => x.AddTime >= kaishijisuan && x.AddTime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = dtChannelArticleNewsDTOsri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
+                                    }
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = dtChannelArticleNewsDTOs.Count - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
+
+                                }
+                                else if (jixiaotichengfangan.Renwustandard == "02")
+                                {
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    {
+                                        decimal youxiaojijian = dtChannelArticleNewsDTOs.Count - renwujishu;
+                                        if (youxiaojijian > 0)
+                                        {
+                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        }
+
+                                    }
+                                }
+                            }
+
+                        }
+                    }
+                    #endregion
+
+                    #region 鍏稿瀷妗堜緥
+                    //鏈湀鏁伴噺
+                    searchEntity1 = new DtChannelArticleNewsDTOSearch();
+                    searchEntity1.EndTime = datemaxkaoqin;
+                    searchEntity1.AddTime = dateminkaoqin;
+                    searchEntity1.UserName = userList[i].UserSn;
+                    searchEntity1.CategoryId = 85;
+                    var dianxinanDTOs = _dtChannelArticleNewsService.GetList(searchEntity1);
+
+                    if (dianxinanDTOs != null && dianxinanDTOs.Count > 0)
+                    {
+                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "鍏稿瀷妗堜緥").FirstOrDefault();
+                        if (jijianidddd != null)
+                        {
+                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                            {
+                                if (jixiaotichengfangan.Renwustandard == "01")
+                                {
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
+                                    {
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var dianxinanDTOsri = dianxinanDTOs.Where(x => x.AddTime >= kaishijisuan && x.AddTime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = dianxinanDTOsri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
+                                    }
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = dianxinanDTOs.Count - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
+
+                                }
+                                else if (jixiaotichengfangan.Renwustandard == "02")
+                                {
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    {
+                                        decimal youxiaojijian = dianxinanDTOs.Count - renwujishu;
+                                        if (youxiaojijian > 0)
+                                        {
+                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        }
+
+                                    }
+                                }
+                            }
+
+                        }
+                    }
+                    #endregion
+
+                    #region 鏀块噰鐭ヨ瘑
+                    //鏈湀鏁伴噺
+                    searchEntity1 = new DtChannelArticleNewsDTOSearch();
+                    searchEntity1.EndTime = datemaxkaoqin;
+                    searchEntity1.AddTime = dateminkaoqin;
+                    searchEntity1.UserName = userList[i].UserSn;
+                    searchEntity1.CategoryId = 73;
+                    var zhengcaizhishiDTOs = _dtChannelArticleNewsService.GetList(searchEntity1);
+
+                    if (zhengcaizhishiDTOs != null && zhengcaizhishiDTOs.Count > 0)
+                    {
+                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "鏀块噰鐭ヨ瘑").FirstOrDefault();
+                        if (jijianidddd != null)
+                        {
+                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                            {
+                                if (jixiaotichengfangan.Renwustandard == "01")
+                                {
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
+                                    {
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var zhengcaizhishiDTOsri = zhengcaizhishiDTOs.Where(x => x.AddTime >= kaishijisuan && x.AddTime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = zhengcaizhishiDTOsri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
+                                    }
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = zhengcaizhishiDTOs.Count - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
+
+                                }
+                                else if (jixiaotichengfangan.Renwustandard == "02")
+                                {
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    {
+                                        decimal youxiaojijian = zhengcaizhishiDTOs.Count - renwujishu;
+                                        if (youxiaojijian > 0)
+                                        {
+                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        }
+
+                                    }
+                                }
+                            }
+
+                        }
+                    }
+                    #endregion
+
+                    #region 鏂板灏忛噰闂
+
+                    var xinzengwendaDTOsyue = _liaotianService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+                    if (xinzengwendaDTOsyue != null && xinzengwendaDTOsyue.Count > 0)
+                    {
+                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "鏂板灏忛噰闂").FirstOrDefault();
+                        if (jijianidddd != null)
+                        {
+                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                            {
+                                if (jixiaotichengfangan.Renwustandard == "01")
+                                {
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
+                                    {
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var xinzengwendaDTOsri = xinzengwendaDTOsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = xinzengwendaDTOsri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
+                                    }
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = xinzengwendaDTOsyue.Count - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
+
+                                }
+                                else if (jixiaotichengfangan.Renwustandard == "02")
+                                {
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    {
+                                        decimal youxiaojijian = xinzengwendaDTOsyue.Count - renwujishu;
+                                        if (youxiaojijian > 0)
+                                        {
+                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        }
+
+                                    }
+                                }
+                            }
+
+                        }
+                    }
+                    #endregion
+
+                    #region 瀹℃牳灏忛噰绛旈棶
+
+                    var shenhewendaDTOsyue = _liaotianService.GetListsalaryshenhe(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+                    if (shenhewendaDTOsyue != null && shenhewendaDTOsyue.Count > 0)
+                    {
+                        var jijianidddd = fiPiecerateDTOs.Where(x =>  x.Project == "瀹℃牳灏忛噰绛旈棶").FirstOrDefault();
+                        if (jijianidddd != null)
+                        {
+                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                            {
+                                if (jixiaotichengfangan.Renwustandard == "01")
+                                {
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
+                                    {
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var shenhewendaDTOsri = shenhewendaDTOsyue.Where(x => x.Shenhetime >= kaishijisuan && x.Shenhetime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = shenhewendaDTOsri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
+                                    }
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = shenhewendaDTOsyue.Count - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
+
+                                }
+                                else if (jixiaotichengfangan.Renwustandard == "02")
+                                {
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    {
+                                        decimal youxiaojijian = shenhewendaDTOsyue.Count - renwujishu;
+                                        if (youxiaojijian > 0)
+                                        {
+                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        }
+
+                                    }
+                                }
+                            }
+
+                        }
+                    }
+                    #endregion
 
                     #region 褰曞叆瀹㈡埛绛惧崟
-                    
-                   var cooperatecustomCustomers = _cooperatecustomCustomerService.GetListsalaryqiandan(userList[i].Id, dateminkaoqin, datemaxkaoqin);
-                    if (cooperatecustomCustomers != null && cooperatecustomCustomers.Count > 0)
-                    {
-                        var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "褰曞叆瀹㈡埛绛惧崟").FirstOrDefault();
-                        if (jijianidddd != null)
-                        {
-                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
-                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
-                            {
-                                if (jixiaotichengfangan.Renwustandard == "01")
-                                {
-                                    decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
-                                    if (jixiaotichengfangan.Tichengstandard == "01")
-                                    {
-                                        decimal youxiaojijian = cooperatecustomCustomers.Count - renwujishu;
-                                        if (youxiaojijian > 0)
-                                        {
-                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
-                                        }
 
-                                    }
+                    //var cooperatecustomCustomers = _cooperatecustomCustomerService.GetListsalaryqiandan(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+                    // if (cooperatecustomCustomers != null && cooperatecustomCustomers.Count > 0)
+                    // {
+                    //     var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "褰曞叆瀹㈡埛绛惧崟").FirstOrDefault();
+                    //     if (jijianidddd != null)
+                    //     {
+                    //         var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                    //         if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                    //         {
+                    //             if (jixiaotichengfangan.Renwustandard == "01")
+                    //             {
+                    //                 decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                    //                 if (jixiaotichengfangan.Tichengstandard == "01")
+                    //                 {
+                    //                     decimal youxiaojijian = cooperatecustomCustomers.Count - renwujishu;
+                    //                     if (youxiaojijian > 0)
+                    //                     {
+                    //                         hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                    //                     }
 
-                                }
-                                else if (jixiaotichengfangan.Renwustandard == "02")
-                                {
-                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
-                                    if (jixiaotichengfangan.Tichengstandard == "01")
-                                    {
-                                        decimal youxiaojijian = cooperatecustomCustomers.Count - renwujishu;
-                                        if (youxiaojijian > 0)
-                                        {
-                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
-                                        }
+                    //                 }
 
-                                    }
-                                }
-                            }
-                        }
-                    }
+                    //             }
+                    //             else if (jixiaotichengfangan.Renwustandard == "02")
+                    //             {
+                    //                 decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                    //                 if (jixiaotichengfangan.Tichengstandard == "01")
+                    //                 {
+                    //                     decimal youxiaojijian = cooperatecustomCustomers.Count - renwujishu;
+                    //                     if (youxiaojijian > 0)
+                    //                     {
+                    //                         hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                    //                     }
+
+                    //                 }
+                    //             }
+                    //         }
+                    //     }
+                    // }
                     #endregion
 
 
@@ -1526,10 +3529,11 @@
                     #endregion
                     //鍚堜綔瀹㈡埛璁㈠崟
                     List<CooperOrderDTO> cooperOrderDTOs =  _cooperOrderService.GetList(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+                    List<CooperOrderDTO> cooperOrderDTOszhouyue = _cooperOrderService.GetList(userList[i].Id, dateminkaoqin.AddMinutes(-1), datemaxkaoqin);
 
                     #region 鍥句功閿�鍞�
                     var cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "01").ToList();
-                    var jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "鍥句功閿�鍞�").FirstOrDefault();
+                    var jijianid = fiPiecerateDTOs.Where(x =>   x.Project == "鍥句功閿�鍞�").FirstOrDefault();
                     if (jijianid != null && cooperOrdertushu.Count>0)
                     {
                       var jixiaotichengfangan =    hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
@@ -1537,17 +3541,44 @@
                         {
                             if(jixiaotichengfangan.Renwustandard == "01")
                             {
-                              decimal renwujishu =   admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
-                                if(jixiaotichengfangan.Tichengstandard == "01")
+                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                while (kaishijisuan < datemaxkaoqin)
                                 {
-                                decimal youxiaojijian =     cooperOrdertushu.Count - renwujishu ;
-                                    if (youxiaojijian>0)
+                                    try
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                        if (gongzuoshijian)
+                                        {
+                                            var cooperOrdertushusri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                            if (jixiaotichengfangan.Tichengstandard == "01")
+                                            {
+                                                decimal youxiaojijian = cooperOrdertushusri.Count - renwujishu;
+                                                if (youxiaojijian > 0)
+                                                {
+                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                }
+                                            }
+                                        }
+
                                     }
-                                     
+                                    catch (Exception ex)
+                                    {
+                                        _logger.LogInformation(ex.ToString());
+                                    }
+                                    kaishijisuan = kaishijisuan.AddDays(1);
                                 }
-                                
+                                //decimal renwujishu =   admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //  if(jixiaotichengfangan.Tichengstandard == "01")
+                                //  {
+                                //  decimal youxiaojijian =     cooperOrdertushu.Count - renwujishu ;
+                                //      if (youxiaojijian>0)
+                                //      {
+                                //          hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                //      }
+
+                                //  }
+
                             }
                             else if (jixiaotichengfangan.Renwustandard == "02")
                             {
@@ -1564,19 +3595,49 @@
                             }
                             else if (jixiaotichengfangan.Renwustandard == "03")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                               
                                 if (jixiaotichengfangan.Tichengstandard == "02")
                                 {
-                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
-                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
-                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
-                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
-
-                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian* new decimal(0.01), 2);
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var cooperOrdertushusri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                var dingdanjine = cooperOrdertushusri.Sum(x => x.Money);
+                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                                if (jixiaotichengfangan.Tichengstandard == "02")
+                                                {
+                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
                                     }
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                    //if (youxiaojijian > 0)
+                                    //{
+                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian* new decimal(0.01), 2);
+                                    //}
                                 }
 
                             }
@@ -1587,14 +3648,52 @@
                                 {
                                     var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                     var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
-                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
-                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+                                    //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+                                    //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
 
-                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
+                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                     if (youxiaojijian > 0)
                                     {
                                         hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                     }
+                                }
+                            }
+                            else if (jixiaotichengfangan.Renwustandard == "06")
+                            {
+
+                                var cooperOrderDTOszhou = cooperOrderDTOszhouyue.Where(x => x.OrderType == "01").ToList();
+                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                while (kaishijisuan < datemaxkaoqin)
+                                {
+                                    var zhoukaishidate = CalculateFirstDateOfWeek(kaishijisuan);
+                                    var zhoujieshudate = CalculateLastDateOfWeek(kaishijisuan);
+
+                                    try
+                                    {
+                                        if (zhoujieshudate < datemaxkaoqin)
+                                        {
+                                            var cooperOrdertushusri = cooperOrderDTOszhou.Where(x => x.Createtime >= zhoukaishidate && x.Createtime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                            var dingdanjine = cooperOrdertushusri.Sum(x => x.Money);
+                                            var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                            if (jixiaotichengfangan.Tichengstandard == "02")
+                                            {
+                                                decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                                if (youxiaojijian > 0)
+                                                {
+                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                                }
+                                            }
+
+
+
+                                        }
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        _logger.LogInformation(ex.ToString());
+                                    }
+                                    kaishijisuan = zhoujieshudate.AddDays(1);
                                 }
                             }
                         }
@@ -1603,7 +3702,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();
@@ -1611,16 +3710,44 @@
                         {
                             if (jixiaotichengfangan.Renwustandard == "01")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
-                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                while (kaishijisuan < datemaxkaoqin)
                                 {
-                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    try
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
-                                    }
+                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                        if (gongzuoshijian)
+                                        {
+                                            var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                            if (jixiaotichengfangan.Tichengstandard == "01")
+                                            {
+                                                decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
+                                                if (youxiaojijian > 0)
+                                                {
+                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                }
+                                            }
+                                        }
 
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        _logger.LogInformation(ex.ToString());
+                                    }
+                                    kaishijisuan = kaishijisuan.AddDays(1);
                                 }
+
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //if (jixiaotichengfangan.Tichengstandard == "01")
+                                //{
+                                //    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+                                //    if (youxiaojijian > 0)
+                                //    {
+                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                //    }
+
+                                //}
 
                             }
                             else if (jixiaotichengfangan.Renwustandard == "02")
@@ -1638,19 +3765,49 @@
                             }
                             else if (jixiaotichengfangan.Renwustandard == "03")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                               
                                 if (jixiaotichengfangan.Tichengstandard == "02")
                                 {
-                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
-                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
-                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
-                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
-
-                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
+                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                                if (jixiaotichengfangan.Tichengstandard == "02")
+                                                {
+                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
                                     }
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                    //if (youxiaojijian > 0)
+                                    //{
+                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                    //}
                                 }
 
                             }
@@ -1661,14 +3818,52 @@
                                 {
                                     var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                     var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
-                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
-                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+                                    //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+                                    //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
 
-                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
+                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                     if (youxiaojijian > 0)
                                     {
                                         hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                     }
+                                }
+                            }
+                            else if (jixiaotichengfangan.Renwustandard == "06")
+                            {
+
+                                var cooperOrderDTOszhou = cooperOrderDTOszhouyue.Where(x => x.OrderType == "02").ToList();
+                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                while (kaishijisuan < datemaxkaoqin)
+                                {
+                                    var zhoukaishidate = CalculateFirstDateOfWeek(kaishijisuan);
+                                    var zhoujieshudate = CalculateLastDateOfWeek(kaishijisuan);
+
+                                    try
+                                    {
+                                        if (zhoujieshudate < datemaxkaoqin)
+                                        {
+                                            var cooperOrdertushusri = cooperOrderDTOszhou.Where(x => x.Createtime >= zhoukaishidate && x.Createtime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                            var dingdanjine = cooperOrdertushusri.Sum(x => x.Money);
+                                            var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                            if (jixiaotichengfangan.Tichengstandard == "02")
+                                            {
+                                                decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                                if (youxiaojijian > 0)
+                                                {
+                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                                }
+                                            }
+
+
+
+                                        }
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        _logger.LogInformation(ex.ToString());
+                                    }
+                                    kaishijisuan = zhoujieshudate.AddDays(1);
                                 }
                             }
                         }
@@ -1678,7 +3873,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();
@@ -1686,16 +3881,44 @@
                         {
                             if (jixiaotichengfangan.Renwustandard == "01")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
-                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                while (kaishijisuan < datemaxkaoqin)
                                 {
-                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    try
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
-                                    }
+                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                        if (gongzuoshijian)
+                                        {
+                                            var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                            if (jixiaotichengfangan.Tichengstandard == "01")
+                                            {
+                                                decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
+                                                if (youxiaojijian > 0)
+                                                {
+                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                }
+                                            }
+                                        }
 
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        _logger.LogInformation(ex.ToString());
+                                    }
+                                    kaishijisuan = kaishijisuan.AddDays(1);
                                 }
+
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //if (jixiaotichengfangan.Tichengstandard == "01")
+                                //{
+                                //    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+                                //    if (youxiaojijian > 0)
+                                //    {
+                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                //    }
+
+                                //}
 
                             }
                             else if (jixiaotichengfangan.Renwustandard == "02")
@@ -1713,19 +3936,49 @@
                             }
                             else if (jixiaotichengfangan.Renwustandard == "03")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                 if (jixiaotichengfangan.Tichengstandard == "02")
                                 {
-                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
-                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
-                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
-                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
-
-                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
+                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                                if (jixiaotichengfangan.Tichengstandard == "02")
+                                                {
+                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
                                     }
+
+                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                    //if (youxiaojijian > 0)
+                                    //{
+                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                    //}
                                 }
 
                             }
@@ -1736,14 +3989,52 @@
                                 {
                                     var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                     var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
-                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
-                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+                                    //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+                                    //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
 
-                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
+                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                     if (youxiaojijian > 0)
                                     {
                                         hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                     }
+                                }
+                            }
+                            else if (jixiaotichengfangan.Renwustandard == "06")
+                            {
+
+                                var cooperOrderDTOszhou = cooperOrderDTOszhouyue.Where(x => x.OrderType == "03").ToList();
+                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                while (kaishijisuan < datemaxkaoqin)
+                                {
+                                    var zhoukaishidate = CalculateFirstDateOfWeek(kaishijisuan);
+                                    var zhoujieshudate = CalculateLastDateOfWeek(kaishijisuan);
+
+                                    try
+                                    {
+                                        if (zhoujieshudate < datemaxkaoqin)
+                                        {
+                                            var cooperOrdertushusri = cooperOrderDTOszhou.Where(x => x.Createtime >= zhoukaishidate && x.Createtime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                            var dingdanjine = cooperOrdertushusri.Sum(x => x.Money);
+                                            var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                            if (jixiaotichengfangan.Tichengstandard == "02")
+                                            {
+                                                decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                                if (youxiaojijian > 0)
+                                                {
+                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                                }
+                                            }
+
+
+
+                                        }
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        _logger.LogInformation(ex.ToString());
+                                    }
+                                    kaishijisuan = zhoujieshudate.AddDays(1);
                                 }
                             }
                         }
@@ -1753,7 +4044,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();
@@ -1761,16 +4052,43 @@
                         {
                             if (jixiaotichengfangan.Renwustandard == "01")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
-                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                while (kaishijisuan < datemaxkaoqin)
                                 {
-                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    try
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
-                                    }
+                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                        if (gongzuoshijian)
+                                        {
+                                            var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                            if (jixiaotichengfangan.Tichengstandard == "01")
+                                            {
+                                                decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
+                                                if (youxiaojijian > 0)
+                                                {
+                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                }
+                                            }
+                                        }
 
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        _logger.LogInformation(ex.ToString());
+                                    }
+                                    kaishijisuan = kaishijisuan.AddDays(1);
                                 }
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //if (jixiaotichengfangan.Tichengstandard == "01")
+                                //{
+                                //    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+                                //    if (youxiaojijian > 0)
+                                //    {
+                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                //    }
+
+                                //}
 
                             }
                             else if (jixiaotichengfangan.Renwustandard == "02")
@@ -1788,19 +4106,49 @@
                             }
                             else if (jixiaotichengfangan.Renwustandard == "03")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                 if (jixiaotichengfangan.Tichengstandard == "02")
                                 {
-                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
-                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
-                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
-                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
-
-                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
+                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                                if (jixiaotichengfangan.Tichengstandard == "02")
+                                                {
+                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
                                     }
+
+                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                    //if (youxiaojijian > 0)
+                                    //{
+                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                    //}
                                 }
 
                             }
@@ -1811,10 +4159,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 +4175,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();
@@ -1836,16 +4184,43 @@
                         {
                             if (jixiaotichengfangan.Renwustandard == "01")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
-                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                while (kaishijisuan < datemaxkaoqin)
                                 {
-                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    try
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
-                                    }
+                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                        if (gongzuoshijian)
+                                        {
+                                            var cooperOrdertushusri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                            if (jixiaotichengfangan.Tichengstandard == "01")
+                                            {
+                                                decimal youxiaojijian = cooperOrdertushusri.Count - renwujishu;
+                                                if (youxiaojijian > 0)
+                                                {
+                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                }
+                                            }
+                                        }
 
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        _logger.LogInformation(ex.ToString());
+                                    }
+                                    kaishijisuan = kaishijisuan.AddDays(1);
                                 }
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //if (jixiaotichengfangan.Tichengstandard == "01")
+                                //{
+                                //    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+                                //    if (youxiaojijian > 0)
+                                //    {
+                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                //    }
+
+                                //}
 
                             }
                             else if (jixiaotichengfangan.Renwustandard == "02")
@@ -1860,22 +4235,66 @@
                                     }
 
                                 }
+                                else if (jixiaotichengfangan.Tichengstandard == "02")
+                                {
+
+                                    if (cooperOrdertushu.Count > renwujishu)
+                                    {
+                                        List<CooperOrderDTO> cooperOrdertushuyouxiao = new List<CooperOrderDTO>();
+                                        for (int j = Convert.ToInt32(renwujishu); j < cooperOrdertushu.Count; j++)
+                                        {
+                                            cooperOrdertushuyouxiao.Add(cooperOrdertushu[j]);
+                                        }
+                                        var dingdanjine = cooperOrdertushuyouxiao.Sum(x => x.Money);
+                                        var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * dingdanjinezhenshi * new decimal(0.01), 2);
+                                    }
+                                }
                             }
                             else if (jixiaotichengfangan.Renwustandard == "03")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                 if (jixiaotichengfangan.Tichengstandard == "02")
                                 {
-                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
-                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
-                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
-                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
-
-                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
+                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                                if (jixiaotichengfangan.Tichengstandard == "02")
+                                                {
+                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
                                     }
+                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                    //if (youxiaojijian > 0)
+                                    //{
+                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                    //}
                                 }
 
                             }
@@ -1886,14 +4305,55 @@
                                 {
                                     var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
                                     var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
-                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
-                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+                                    //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+                                    //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
 
-                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
+                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
                                     if (youxiaojijian > 0)
                                     {
                                         hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
                                     }
+                                } 
+                            }
+
+                            else if (jixiaotichengfangan.Renwustandard == "05")
+                            {
+
+                                var cooperOrderDTOszhou = cooperOrderDTOszhouyue.Where(x => x.OrderType == "05").OrderBy(x => x.Createtime).ToList();
+                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                while (kaishijisuan < datemaxkaoqin)
+                                {
+                                    var zhoukaishidate = CalculateFirstDateOfWeek(kaishijisuan);
+                                    var zhoujieshudate = CalculateLastDateOfWeek(kaishijisuan);
+
+                                    try
+                                    {
+                                        if (zhoujieshudate < datemaxkaoqin)
+                                        {
+                                            var cooperOrdertushusri = cooperOrderDTOszhou.Where(x => x.Createtime >= zhoukaishidate && x.Createtime < zhoujieshudate.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                            //if (jixiaotichengfangan.Tichengstandard == "02")
+                                            if (cooperOrdertushusri.Count > renwujishu)
+                                            {
+                                                List<CooperOrderDTO> cooperOrdertushuyouxiao = new List<CooperOrderDTO>();
+                                                for (int j = Convert.ToInt32(renwujishu); j < cooperOrdertushusri.Count; j++)
+                                                {
+                                                    cooperOrdertushuyouxiao.Add(cooperOrdertushusri[j]);
+                                                }
+                                                var dingdanjine = cooperOrdertushuyouxiao.Sum(x => x.Money);
+                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                                hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * dingdanjinezhenshi * new decimal(0.01), 2);
+                                            }
+
+
+
+                                        }
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        _logger.LogInformation(ex.ToString());
+                                    }
+                                    kaishijisuan = zhoujieshudate.AddDays(1);
                                 }
                             }
                         }
@@ -1903,7 +4363,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();
@@ -1911,14 +4371,41 @@
                         {
                             if (jixiaotichengfangan.Renwustandard == "01")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                 if (jixiaotichengfangan.Tichengstandard == "01")
                                 {
-                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
                                     }
+                                    //decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+                                    //if (youxiaojijian > 0)
+                                    //{
+                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //}
 
                                 }
 
@@ -1938,19 +4425,48 @@
                             }
                             else if (jixiaotichengfangan.Renwustandard == "03")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                 if (jixiaotichengfangan.Tichengstandard == "02")
                                 {
-                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
-                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
-                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
-                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
-
-                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
+                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                                if (jixiaotichengfangan.Tichengstandard == "02")
+                                                {
+                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
                                     }
+                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                    //if (youxiaojijian > 0)
+                                    //{
+                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                    //}
                                 }
 
                             }
@@ -1961,10 +4477,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 +4494,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();
@@ -1986,14 +4502,42 @@
                         {
                             if (jixiaotichengfangan.Renwustandard == "01")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                 if (jixiaotichengfangan.Tichengstandard == "01")
                                 {
-                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
                                     }
+
+                                    //decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+                                    //if (youxiaojijian > 0)
+                                    //{
+                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //}
 
                                 }
 
@@ -2013,19 +4557,50 @@
                             }
                             else if (jixiaotichengfangan.Renwustandard == "03")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                 if (jixiaotichengfangan.Tichengstandard == "02")
                                 {
-                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
-                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
-                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
-                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
-
-                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
+                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                                if (jixiaotichengfangan.Tichengstandard == "02")
+                                                {
+                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
                                     }
+
+
+                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                    //if (youxiaojijian > 0)
+                                    //{
+                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                    //}
                                 }
 
                             }
@@ -2036,10 +4611,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 +4628,7 @@
 
                     #region 椋庨櫓浠g悊
                     cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "08").ToList();
-                    jijianid = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "椋庨櫓浠g悊").FirstOrDefault();
+                    jijianid = fiPiecerateDTOs.Where(x =>  x.Project == "椋庨櫓浠g悊").FirstOrDefault();
                     if (jijianid != null && cooperOrdertushu.Count > 0)
                     {
                         var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
@@ -2061,16 +4636,44 @@
                         {
                             if (jixiaotichengfangan.Renwustandard == "01")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
-                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                while (kaishijisuan < datemaxkaoqin)
                                 {
-                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    try
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
-                                    }
+                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                        if (gongzuoshijian)
+                                        {
+                                            var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Wangongtime >= kaishijisuan && x.Wangongtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                            if (jixiaotichengfangan.Tichengstandard == "01")
+                                            {
+                                                decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
+                                                if (youxiaojijian > 0)
+                                                {
+                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                }
+                                            }
+                                        }
 
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        _logger.LogInformation(ex.ToString());
+                                    }
+                                    kaishijisuan = kaishijisuan.AddDays(1);
                                 }
+
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //if (jixiaotichengfangan.Tichengstandard == "01")
+                                //{
+                                //    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+                                //    if (youxiaojijian > 0)
+                                //    {
+                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                //    }
+
+                                //}
 
                             }
                             else if (jixiaotichengfangan.Renwustandard == "02")
@@ -2088,19 +4691,48 @@
                             }
                             else if (jixiaotichengfangan.Renwustandard == "03")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                 if (jixiaotichengfangan.Tichengstandard == "02")
                                 {
-                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
-                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
-                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
-                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
-
-                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Wangongtime >= kaishijisuan && x.Wangongtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
+                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                                if (jixiaotichengfangan.Tichengstandard == "02")
+                                                {
+                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
                                     }
+                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                    //if (youxiaojijian > 0)
+                                    //{
+                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                    //}
                                 }
 
                             }
@@ -2111,10 +4743,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 +4760,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();
@@ -2136,16 +4768,43 @@
                         {
                             if (jixiaotichengfangan.Renwustandard == "01")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
-                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                while (kaishijisuan < datemaxkaoqin)
                                 {
-                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    try
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
-                                    }
+                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                        if (gongzuoshijian)
+                                        {
+                                            var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                            if (jixiaotichengfangan.Tichengstandard == "01")
+                                            {
+                                                decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
+                                                if (youxiaojijian > 0)
+                                                {
+                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                }
+                                            }
+                                        }
 
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        _logger.LogInformation(ex.ToString());
+                                    }
+                                    kaishijisuan = kaishijisuan.AddDays(1);
                                 }
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //if (jixiaotichengfangan.Tichengstandard == "01")
+                                //{
+                                //    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+                                //    if (youxiaojijian > 0)
+                                //    {
+                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                //    }
+
+                                //}
 
                             }
                             else if (jixiaotichengfangan.Renwustandard == "02")
@@ -2163,19 +4822,48 @@
                             }
                             else if (jixiaotichengfangan.Renwustandard == "03")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                 if (jixiaotichengfangan.Tichengstandard == "02")
                                 {
-                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
-                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
-                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
-                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
-
-                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
+                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                                if (jixiaotichengfangan.Tichengstandard == "02")
+                                                {
+                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
                                     }
+                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                    //if (youxiaojijian > 0)
+                                    //{
+                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                    //}
                                 }
 
                             }
@@ -2186,10 +4874,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 +4891,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();
@@ -2211,16 +4899,43 @@
                         {
                             if (jixiaotichengfangan.Renwustandard == "01")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
-                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                while (kaishijisuan < datemaxkaoqin)
                                 {
-                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    try
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
-                                    }
+                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                        if (gongzuoshijian)
+                                        {
+                                            var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                            if (jixiaotichengfangan.Tichengstandard == "01")
+                                            {
+                                                decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
+                                                if (youxiaojijian > 0)
+                                                {
+                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                }
+                                            }
+                                        }
 
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        _logger.LogInformation(ex.ToString());
+                                    }
+                                    kaishijisuan = kaishijisuan.AddDays(1);
                                 }
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //if (jixiaotichengfangan.Tichengstandard == "01")
+                                //{
+                                //    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+                                //    if (youxiaojijian > 0)
+                                //    {
+                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                //    }
+
+                                //}
 
                             }
                             else if (jixiaotichengfangan.Renwustandard == "02")
@@ -2238,19 +4953,48 @@
                             }
                             else if (jixiaotichengfangan.Renwustandard == "03")
                             {
-                                decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                 if (jixiaotichengfangan.Tichengstandard == "02")
                                 {
-                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
-                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
-                                    var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
-                                    var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
-
-                                    decimal youxiaojijian = dingdanjinezhenshi - dingdanyouhuizhenshi - renwujishu;
-                                    if (youxiaojijian > 0)
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
                                     {
-                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
+                                                var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                                if (jixiaotichengfangan.Tichengstandard == "02")
+                                                {
+                                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
                                     }
+                                    //var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+                                    //var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                    ////var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+                                    ////var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+                                    //decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                    //if (youxiaojijian > 0)
+                                    //{
+                                    //    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                    //}
                                 }
 
                             }
@@ -2261,10 +5005,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,9 +5019,238 @@
                     }
 
                     #endregion
+
+                    #region 鏁版嵁鍒嗘瀽
+                    cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "11").ToList();
+                    jijianid = fiPiecerateDTOs.Where(x => x.Project == "鏁版嵁鍒嗘瀽").FirstOrDefault();
+                    if (jijianid != null && cooperOrdertushu.Count > 0)
+                    {
+                        var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                        if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                        {
+                            if (jixiaotichengfangan.Renwustandard == "01")
+                            {
+                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                while (kaishijisuan < datemaxkaoqin)
+                                {
+                                    try
+                                    {
+                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                        if (gongzuoshijian)
+                                        {
+                                            var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                            if (jixiaotichengfangan.Tichengstandard == "01")
+                                            {
+                                                decimal youxiaojijian = cooperOrdertushuri.Count - renwujishu;
+                                                if (youxiaojijian > 0)
+                                                {
+                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                }
+                                            }
+                                        }
+
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        _logger.LogInformation(ex.ToString());
+                                    }
+                                    kaishijisuan = kaishijisuan.AddDays(1);
+                                }
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //if (jixiaotichengfangan.Tichengstandard == "01")
+                                //{
+                                //    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+                                //    if (youxiaojijian > 0)
+                                //    {
+                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                //    }
+
+                                //}
+
+                            }
+                            else if (jixiaotichengfangan.Renwustandard == "02")
+                            {
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                {
+                                    decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+                                    if (youxiaojijian > 0)
+                                    {
+                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    }
+
+                                }
+                            }
+                            else if (jixiaotichengfangan.Renwustandard == "03")
+                            {
+                                DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                while (kaishijisuan < datemaxkaoqin)
+                                {
+                                    try
+                                    {
+                                        var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                        if (gongzuoshijian)
+                                        {
+                                            var cooperOrdertushuri = cooperOrdertushu.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                            var dingdanjine = cooperOrdertushuri.Sum(x => x.Money);
+                                            var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                            if (jixiaotichengfangan.Tichengstandard == "02")
+                                            {
+                                                decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                                if (youxiaojijian > 0)
+                                                {
+                                                    hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                                }
+                                            }
+                                        }
+
+                                    }
+                                    catch (Exception ex)
+                                    {
+                                        _logger.LogInformation(ex.ToString());
+                                    }
+                                    kaishijisuan = kaishijisuan.AddDays(1);
+                                }
+
+                                //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                //if (jixiaotichengfangan.Tichengstandard == "02")
+                                //{
+                                //    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+                                //    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                //    //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+                                //    //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+                                //    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                //    if (youxiaojijian > 0)
+                                //    {
+                                //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                //    }
+                                //}
+
+                            }
+                            else if (jixiaotichengfangan.Renwustandard == "04")
+                            {
+                                decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                if (jixiaotichengfangan.Tichengstandard == "02")
+                                {
+                                    var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+                                    var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+                                    //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+                                    //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+                                    decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+                                    if (youxiaojijian > 0)
+                                    {
+                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+                                    }
+                                }
+                            }
+                        }
+                    }
+
+                    #endregion
+
+
+
+
+                    #region 涓撳褰曞叆
+
+                    var zhuanjialuruDTOsyue = _expertService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+                    if (zhuanjialuruDTOsyue != null && zhuanjialuruDTOsyue.Count > 0)
+                    {
+                        var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "涓撳褰曞叆").FirstOrDefault();
+                        if (jijianidddd != null)
+                        {
+                            var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+                            if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+                            {
+                                if (jixiaotichengfangan.Renwustandard == "01")
+                                {
+                                    DateTime kaishijisuan = new DateTime(Year, Month, 1);
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    while (kaishijisuan < datemaxkaoqin)
+                                    {
+                                        try
+                                        {
+                                            var gongzuoshijian = shifougongzuori(kaishijisuan);
+                                            if (gongzuoshijian)
+                                            {
+                                                var zhuanjialuruDTOsri = zhuanjialuruDTOsyue.Where(x => x.Createtime >= kaishijisuan && x.Createtime < kaishijisuan.AddDays(1)).ToList(); //_projectService.GetcaigougonggaoListsalary(userList[i].Id, kaishijisuan, kaishijisuan.AddDays(1));
+                                                if (jixiaotichengfangan.Tichengstandard == "01")
+                                                {
+                                                    decimal youxiaojijian = zhuanjialuruDTOsri.Count - renwujishu;
+                                                    if (youxiaojijian > 0)
+                                                    {
+                                                        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                                    }
+                                                }
+                                            }
+
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            _logger.LogInformation(ex.ToString());
+                                        }
+                                        kaishijisuan = kaishijisuan.AddDays(1);
+                                    }
+
+                                    //decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+                                    //if (jixiaotichengfangan.Tichengstandard == "01")
+                                    //{
+                                    //    decimal youxiaojijian = zhuanjialuruDTOsyue.Count - renwujishu;
+                                    //    if (youxiaojijian > 0)
+                                    //    {
+                                    //        hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                    //    }
+
+                                    //}
+
+                                }
+                                else if (jixiaotichengfangan.Renwustandard == "02")
+                                {
+                                    decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+                                    if (jixiaotichengfangan.Tichengstandard == "01")
+                                    {
+                                        decimal youxiaojijian = zhuanjialuruDTOsyue.Count - renwujishu;
+                                        if (youxiaojijian > 0)
+                                        {
+                                            hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+                                        }
+
+                                    }
+                                }
+                            }
+
+                        }
+                    }
+                    #endregion
+
                 }
 
+                //璇曠敤鏈熺哗鏁堜负0.8鍊�
+                if (hrSalaryDTO.Jixiaoticheng.HasValue)
+                {
+                    if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && dateminkaoqin >= userList[i].ShiyongDate.Value && dateminkaoqin <= userList[i].ShiyongDateEnd.Value)
+                    {
 
+                        if (userList[i].ShiyongDateEnd.Value < datemaxkaoqin.AddDays(-1))
+                        {
+                            var a = userList[i].ShiyongDateEnd.Value.Day;
+                            var b = datemaxkaoqin.AddDays(-1).Day;
+                            var shiyongqijixiao = new decimal(a) / new decimal(b) * hrSalaryDTO.Jixiaoticheng.Value * new decimal(0.8);
+                            var zhengshijixiao =(new decimal(1) - new decimal(a) / new decimal(b)) * hrSalaryDTO.Jixiaoticheng.Value;
+                            hrSalaryDTO.Jixiaoticheng = Math.Round(shiyongqijixiao + zhengshijixiao, 2);
+
+                        }
+                        else
+                        {
+                            hrSalaryDTO.Jixiaoticheng = Math.Round(hrSalaryDTO.Jixiaoticheng.Value * new decimal(0.8), 2);
+                        }
+                    }
+                }
+               
 
 
                 hrSalaryDTO.Daozhanggongzi = 0;
@@ -2300,7 +5273,128 @@
                 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 && userList[i].miniyearsalary.Value>0)
+                {
+                    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+ peichang1;
+                            }
+                        }
+                        baodinianxin += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi + jiucuo + peichang;
+                        if (baodinianxin < userList[i].miniyearsalary.Value)
+                        {
+                            jiucuo = userList[i].miniyearsalary.Value - baodinianxin;
+                        }
+                    }    
+                }
+
+                yingfaheji = jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou + ((dianhuabutie - dianhuafei) <= 0 ? (dianhuabutie - dianhuafei) : 0) - queqin - fakuan + peichang + jiucuo;
+
+
+                hrSalaryDTO.Yufagongzi = userList[i].advancewages;
+
+                if (userList[i].advancewages.HasValue && userList[i].advancewages.Value > 0)
+                {
+                    hrSalaryDTO.Yufagongziheji = 0;
+                    HrSalaryDTO hrSalaryDTOlast = _hrSalaryService.GetListByUser(userList[i].Id, dateminkaoqin.AddMonths(-1).Year, dateminkaoqin.AddMonths(-1).Month);
+                    if (hrSalaryDTOlast != null && hrSalaryDTOlast.Yufagongziheji.HasValue)
+                    {
+                        hrSalaryDTO.Yufagongziheji = hrSalaryDTOlast.Yufagongziheji;
+                    }
+
+                    if (hrSalaryDTO.Yufagongziheji > 0)
+                    {
+                        if (yingfaheji < (hrSalaryDTO.Yufagongzi+shebao- shebaokou))
+                        {
+                            hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi + shebao - shebaokou - yingfaheji);
+                            yingfaheji = (hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou);
+                        }
+                        else if (yingfaheji > (hrSalaryDTO.Yufagongzi + shebao - shebaokou))
+                        {
+                            if (hrSalaryDTO.Yufagongziheji >= (yingfaheji - (hrSalaryDTO.Yufagongzi + shebao - shebaokou)))
+                            {
+                                hrSalaryDTO.Yufagongziheji += ((hrSalaryDTO.Yufagongzi + shebao - shebaokou) - yingfaheji);
+                                yingfaheji = (hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou);
+                            }
+                            else
+                            {
+                                yingfaheji -= hrSalaryDTO.Yufagongziheji.Value;
+                                hrSalaryDTO.Yufagongziheji = 0;
+                            }
+
+
+                        }
+
+                    }
+                    else if (hrSalaryDTO.Yufagongziheji == 0)
+                    {
+                        hrSalaryDTO.Yufagongziheji += ((hrSalaryDTO.Yufagongzi + shebao - shebaokou) - yingfaheji);
+                        if (yingfaheji < (hrSalaryDTO.Yufagongzi + shebao - shebaokou))
+                        {
+                            yingfaheji = (hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou);
+                        }
+                    }
+                    else if (hrSalaryDTO.Yufagongziheji < 0)
+                    {
+                        if (yingfaheji < (hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou))
+                        {
+                            if (-hrSalaryDTO.Yufagongziheji >= ((hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou) - yingfaheji))
+                            {
+                                hrSalaryDTO.Yufagongziheji += ((hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou) - yingfaheji);
+                                yingfaheji = (hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou);
+                            }
+                            else
+                            {
+                                yingfaheji += hrSalaryDTO.Yufagongziheji.Value;
+                                hrSalaryDTO.Yufagongziheji = 0;
+                            }
+                        }
+
+                    }
+
+                }
+
+
+
+
+
+
+
+                yingnashuie = yingfaheji - geshuiqizheng;
 
 
                 hrSalaryDTO.Geshui = 0;
@@ -2311,32 +5405,53 @@
                     decimal yingnashuie3 = 0;
                     decimal yingnashuie4 = 0;
                     decimal yingnashuie5 = 0;
-                    if (yingnashuie > 39250)
+                    decimal yingnashuie6 = 0;
+                    decimal yingnashuie7 = 0;
+                    if (yingnashuie > 80000)
                     {
-                        yingnashuie1 = 4750;
-                        yingnashuie2 = (9250 - 4750);
-                        yingnashuie3 = (25250 - 9250);
-                        yingnashuie4 = (39250 - 25250);
-                        yingnashuie5 = (yingnashuie - 39250);
+                        yingnashuie1 = 3000;
+                        yingnashuie2 = (12000 - 3000);
+                        yingnashuie3 = (25000 - 12000);
+                        yingnashuie4 = (35000 - 25000);
+                        yingnashuie5 = (55000 - 35000);
+                        yingnashuie6 = (80000 - 55000);
+                        yingnashuie7 = (yingnashuie - 55000);
                     }
-                    else if (yingnashuie > 25250)
+                    if (yingnashuie > 55000)
                     {
-                        yingnashuie1 = 4750;
-                        yingnashuie2 = (9250 - 4750);
-                        yingnashuie3 = (25250 - 9250);
-                        yingnashuie4 = (yingnashuie - 25250);
+                        yingnashuie1 = 3000;
+                        yingnashuie2 = (12000 - 3000);
+                        yingnashuie3 = (25000 - 12000);
+                        yingnashuie4 = (35000 - 25000);
+                        yingnashuie5 = (55000 - 35000);
+                        yingnashuie6 = (yingnashuie - 55000);
+                    }
+                    if (yingnashuie > 35000)
+                    {
+                        yingnashuie1 = 3000;
+                        yingnashuie2 = (12000 - 3000);
+                        yingnashuie3 = (25000 - 12000);
+                        yingnashuie4 = (35000 - 25000);
+                        yingnashuie5 = (yingnashuie - 35000);
+                    }
+                    else if (yingnashuie > 25000)
+                    {
+                        yingnashuie1 = 3000;
+                        yingnashuie2 = (12000 - 3000);
+                        yingnashuie3 = (25000 - 12000);
+                        yingnashuie4 = (yingnashuie - 25000);
 
                     }
-                    else if (yingnashuie > 9250)
+                    else if (yingnashuie > 12000)
                     {
-                        yingnashuie1 = 4750;
-                        yingnashuie2 = (9250 - 4750);
-                        yingnashuie3 = (yingnashuie - 9250);
+                        yingnashuie1 = 3000;
+                        yingnashuie2 = (12000 - 3000);
+                        yingnashuie3 = (yingnashuie - 12000);
                     }
-                    else if (yingnashuie > 4750)
+                    else if (yingnashuie > 3000)
                     {
-                        yingnashuie1 = 4750;
-                        yingnashuie2 = (yingnashuie - 4750);
+                        yingnashuie1 = 3000;
+                        yingnashuie2 = (yingnashuie - 3000);
                     }
                     else
                     {
@@ -2344,7 +5459,7 @@
                     }
                     if (yingnashuie1 > 0)
                     {
-                        var yingjiao1 = Math.Round(yingnashuie1 * new decimal(0.05) - 0, 2);
+                        var yingjiao1 = Math.Round(yingnashuie1 * new decimal(0.03) - 0, 2);
                         if (yingjiao1 > 0)
                         {
                             hrSalaryDTO.Geshui += yingjiao1;
@@ -2353,7 +5468,7 @@
                     }
                     if (yingnashuie2 > 0)
                     {
-                        var yingjiao2 = Math.Round(yingnashuie2 * new decimal(0.1) - 250, 2);
+                        var yingjiao2 = Math.Round(yingnashuie2 * new decimal(0.1) - 0, 2);
                         if (yingjiao2 > 0)
                         {
                             hrSalaryDTO.Geshui += yingjiao2;
@@ -2361,7 +5476,7 @@
                     }
                     if (yingnashuie3 > 0)
                     {
-                        var yingjiao3 = Math.Round(yingnashuie3 * new decimal(0.2) - 1250, 2);
+                        var yingjiao3 = Math.Round(yingnashuie3 * new decimal(0.2) - 0, 2);
                         if (yingjiao3 > 0)
                         {
                             hrSalaryDTO.Geshui += yingjiao3;
@@ -2369,7 +5484,7 @@
                     }
                     if (yingnashuie4 > 0)
                     {
-                        var yingjiao4 = Math.Round(yingnashuie4 * new decimal(0.3) - 4250, 2);
+                        var yingjiao4 = Math.Round(yingnashuie4 * new decimal(0.25) - 0, 2);
                         if (yingjiao4 > 0)
                         {
                             hrSalaryDTO.Geshui += yingjiao4;
@@ -2377,35 +5492,39 @@
                     }
                     if (yingnashuie5 > 0)
                     {
-                        var yingjiao5 = Math.Round(yingnashuie5 * new decimal(0.35) - 6750, 2);
+                        var yingjiao5 = Math.Round(yingnashuie5 * new decimal(0.30) - 0, 2);
                         if (yingjiao5 > 0)
                         {
                             hrSalaryDTO.Geshui += yingjiao5;
                         }
                     }
-
-
+                    if (yingnashuie6 > 0)
+                    {
+                        var yingjiao6 = Math.Round(yingnashuie6 * new decimal(0.35) - 0, 2);
+                        if (yingjiao6 > 0)
+                        {
+                            hrSalaryDTO.Geshui += yingjiao6;
+                        }
+                    }
+                    if (yingnashuie7 > 0)
+                    {
+                        var yingjiao7 = Math.Round(yingnashuie7 * new decimal(0.45) - 0, 2);
+                        if (yingjiao7 > 0)
+                        {
+                            hrSalaryDTO.Geshui += yingjiao7;
+                        }
+                    }
 
                 }
                 decimal geshui = hrSalaryDTO.Geshui.HasValue ? hrSalaryDTO.Geshui.Value : 0;
 
-                hrSalaryDTO.Daozhanggongzi += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + dianhuabutie + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou - geshui - dianhuafei - queqin - fakuan - peichang + jiucuo;
+
+                             
+                hrSalaryDTO.Daozhanggongzi = yingfaheji - geshui;
 
 
 
-                hrSalaryDTO.Yufagongzi = userList[i].advancewages;
-
-                if (userList[i].advancewages.HasValue)
-                {
-                    hrSalaryDTO.Yufagongziheji = 0;
-                    HrSalaryDTO hrSalaryDTOlast = _hrSalaryService.GetListByUser(userList[i].Id, dateminkaoqin.AddMonths(-1).Year, dateminkaoqin.AddMonths(-1).Month);
-                    if(hrSalaryDTOlast!=null && hrSalaryDTOlast.Yufagongziheji.HasValue)
-                    {
-                        hrSalaryDTO.Yufagongziheji = hrSalaryDTOlast.Yufagongziheji;
-                    }
-
-                    hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Daozhanggongzi- hrSalaryDTO.Yufagongzi);
-                }
+               
                 hrSalaryDTO.RecStatus = "A";
                 hrSalaryDTO.Islock = "D";
                 hrSalaryDTO.Creater = "1";
@@ -2418,6 +5537,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;
@@ -2428,6 +5571,8 @@
             var jiejiari = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiejiari").ToList();
 
             var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList();
+
+            var jiabanri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiabanri").ToList();
 
             //姣忓ぉ鐨勮�冨嫟鏃堕棿鐐�
             string[] WorkingStart = admAttendanceRuleDTO.WorkingStart.Split('.');
@@ -2537,9 +5682,11 @@
                     }
                     else
                     {
+                        
 
                         //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
-                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
+                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date) 
+                            || jiabanri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
                         {
                             if (StratTime <= StratTimeWorkingStart)
                             {
@@ -2635,7 +5782,8 @@
                     {
 
                         //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
-                        if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date))
+                        if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date)
+                            || jiabanri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date))
                         {
                             if (EndTime >= EndTimeOffworkEnd)
                             {
@@ -2697,7 +5845,8 @@
                     {
 
                         //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
-                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
+                        if (tiaoxiuri.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueEnd >= dateTimenow.Date)
+                            || jiabanri.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueEnd >= dateTimenow.Date))
                         {
                             LavehTime += shangbanshijian;
                         }
@@ -2726,7 +5875,8 @@
                     else
                     {
                         //鏄惁璋冧紤鏃�  璋冧紤鏃ラ渶瑕佷笂鐝�
-                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
+                        if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)
+                            || jiabanri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
                         {
                             LavehTime -= shangbanshijian;
                         }

--
Gitblit v1.9.1