From 8de9a465342385e0ebee7dc430abadd69a2b67dd Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期一, 28 六月 2021 12:42:46 +0800
Subject: [PATCH] 工资修改

---
 zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs |  352 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 336 insertions(+), 16 deletions(-)

diff --git a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
index 0865bfa..fcac78b 100644
--- a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
+++ b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
@@ -35,6 +35,8 @@
         private readonly ICooperatecustomCustomerService _cooperatecustomCustomerService;
         private readonly IGroupTopicService _groupTopicService;
         private readonly ICooperVisitService _cooperVisitService;
+        private readonly IIntentionCustomerService _intentionCustomerService;
+        private readonly IIntentionVisitService _intentionVisitService;
 
         private readonly decimal jiabangongzibiaozhun = new decimal(21.5);
         public TimedBackgroundService(ILogger<TimedBackgroundService> logger, IServiceScopeFactory factory)
@@ -57,6 +59,8 @@
             _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>();
         }
         protected override async Task ExecuteAsync(CancellationToken stoppingToken)
         {
@@ -64,15 +68,19 @@
 
             //stoppingToken.Register(() => File.Create($"E:\\dotnetCore\\Practice\\Practice\\{DateTime.Now.Millisecond}.txt"));
 
+            DateTime datenow = DateTime.Now.Date;
             while (!stoppingToken.IsCancellationRequested)
             {
                 _logger.LogInformation("MyServiceA 寮�濮嬫墽琛�");
+                _logger.LogInformation(datenow.ToString("yyyy-MM-dd HH:mm:ss"));
                 //姣忓ぉ鐨�0鐐瑰紑濮嬭绠�
-                if (DateTime.Now.Hour == 0)
+                if (datenow <= DateTime.Now.Date && DateTime.Now.Hour == 0)
                 //if (true)
                 {
+
                     try
                     {
+                        _logger.LogInformation("鍒ゆ柇鏄惁鏄浜斾釜宸ヤ綔鏃ョ粨鏉�");
                         DateTime diwutian = this.diwugongzuori();
                         //绗簲涓伐浣滄棩缁撴潫鍚庡紑濮嬭绠�
                         if (DateTime.Now.Date == diwutian.AddDays(1))
@@ -80,9 +88,10 @@
                         {
                             try
                             {
+                                _logger.LogInformation("璁$畻鑰冨嫟宸ヨ祫");
                                 //using (TransactionScope scope = new TransactionScope())
                                 //{
-                                    this.jisuankaoqin();
+                                this.jisuankaoqin();
                                     this.jisuangongzi();
                                     //scope.Complete();
                                 //}
@@ -93,17 +102,25 @@
                                 _logger.LogInformation(ex.ToString());
                             }
                         }
+
+
+                        _logger.LogInformation("鍒ゆ柇鏄惁璁$畻宸ラ緞宸ヨ祫");
+                        if (DateTime.Now.Date.Month==1 && DateTime.Now.Date.Day == 31)
+                        //if (true)
+                        {
+                            jisuangonglinggongzi();
+                        }
                     }
                     catch (Exception ex)
                     {
                         _logger.LogInformation(ex.ToString());
                     }
-                   
 
+                    datenow = DateTime.Now.Date.AddDays(1);
                 }
 
 
-                await Task.Delay(TimeSpan.FromMinutes(59), stoppingToken);
+                await Task.Delay(TimeSpan.FromMinutes(10), stoppingToken);
 
                 _logger.LogInformation("缁х画鎵ц");
             }
@@ -714,14 +731,236 @@
                     }
                     else
                     {
+
+                        //鍒ゆ柇鑰冨嫟鏃堕棿鐨勮繛缁��
+
+                        //鍒ゆ柇鏃╀笂鏄惁杩熷埌,鍒ゆ柇鏃╀笂鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊
+                        DateTime? starttime = null;
+                        DateTime? endttime = null;
+                        bool kuanggong = false;
+                        List<DateBiJiaoDTO> dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
+                        if (admSignInDTO != null && admSignInDTO.MorningIn.HasValue && admSignInDTO.MorningOut.HasValue)
+                        {
+                            DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                            dateBiJiaoDTO.StartTime = admSignInDTO.MorningIn;
+                            dateBiJiaoDTO.EndTime = admSignInDTO.MorningOut;
+                            dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+                        }
+                        var jiabanbuka = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "3").ToList();
+                        foreach (var admAskLeaveOff in jiabanbuka)
+                        {
+                            if (admAskLeaveOff.StratTime < StratTimeWorkingEnd)
+                            {
+                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+                                dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+                                dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+                            }
+
+                        }
+
+
+                        dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
+                        if (dateBiJiaoDTOs.Count == 0)
+                        {
+                            Kuanggongtianshu += new decimal(0.5);
+                        }
+                        else
+                        {
+                            //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩�
+                            for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
+                            {
+                                if (i == 0)
+                                {
+                                    starttime = dateBiJiaoDTOs[i].StartTime;
+                                    endttime = dateBiJiaoDTOs[i].EndTime;
+                                }
+                                else
+                                {
+                                    if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
+                                    {
+                                        kuanggong = true;
+                                        break;
+                                    }
+                                    else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+                                    {
+                                        endttime = dateBiJiaoDTOs[i].EndTime;
+                                    }
+                                }
+                            }
+                            if (kuanggong)
+                            {
+                                Kuanggongtianshu += new decimal(0.5);
+                            }
+                            else
+                            {
+                                decimal shangwukuanggong = 0;
+                                if (starttime > StratTimeWorkingStart)
+                                {
+                                    TimeSpan chidao = starttime.Value.Subtract(StratTimeWorkingStart);
+                                    if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
+                                    {
+                                        if (shangwukuanggong == 0)
+                                        {
+                                            Kuanggongtianshu += new decimal(0.5);
+                                        }
+
+                                    }
+                                    else
+                                    {
+                                        Chidao += 1;
+                                        Shangwuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
+                                    }
+                                }
+                                if (shangwukuanggong == 0 && endttime < StratTimeWorkingEnd)
+                                {
+                                    TimeSpan zaotui = StratTimeWorkingEnd.Subtract(endttime.Value);
+                                    if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
+                                    {
+                                        if (shangwukuanggong == 0)
+                                        {
+                                            Kuanggongtianshu += new decimal(0.5);
+                                        }
+
+                                    }
+                                    else
+                                    {
+                                        Zaotui += 1;
+                                        Shangwuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
+                                    }
+
+                                }
+                                Kuanggongtianshu += shangwukuanggong;
+                            }
+                        }
+
+
+
+                        //鍒ゆ柇涓嬪崍鏄惁杩熷埌,鍒ゆ柇涓嬪崍鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊
+
+
+                        starttime = null;
+                        endttime = null;
+                        kuanggong = false;
+                        dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
+                        if (admSignInDTO != null && admSignInDTO.AfternoonIn.HasValue && admSignInDTO.AfternoonOut.HasValue)
+                        {
+                            DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                            dateBiJiaoDTO.StartTime = admSignInDTO.AfternoonIn;
+                            dateBiJiaoDTO.EndTime = admSignInDTO.AfternoonOut;
+                            dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+                        }
+                        var jiabanbukaxiawu = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "3").ToList();
+                        foreach (var admAskLeaveOff in jiabanbukaxiawu)
+                        {
+                            if (admAskLeaveOff.EndTime > StratTimeOffworkStart)
+                            {
+                                DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+                                dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+                                dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+                                dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+                            }
+
+                        }
+
+                        dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
+                        if (dateBiJiaoDTOs.Count == 0)
+                        {
+                            //Kuanggong += new decimal(0.5);
+                            Kuanggongtianshu += new decimal(0.5);
+                        }
+                        else
+                        {
+                            //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩�
+                            for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
+                            {
+                                if (i == 0)
+                                {
+                                    starttime = dateBiJiaoDTOs[i].StartTime;
+                                    endttime = dateBiJiaoDTOs[i].EndTime;
+                                }
+                                else
+                                {
+                                    if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
+                                    {
+                                        kuanggong = true;
+                                        break;
+                                    }
+                                    else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+                                    {
+                                        endttime = dateBiJiaoDTOs[i].EndTime;
+                                    }
+                                }
+                            }
+                            if (kuanggong)
+                            {
+                                //Kuanggong += new decimal(0.5);
+                                Kuanggongtianshu += new decimal(0.5);
+                            }
+                            else
+                            {
+                                decimal xiawuwukuanggong = 0;
+                                if (starttime > StratTimeOffworkStart)
+                                {
+                                    TimeSpan chidao = starttime.Value.Subtract(StratTimeOffworkStart);
+                                    if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
+                                    {
+                                        if (xiawuwukuanggong == 0)
+                                        {
+                                            xiawuwukuanggong += new decimal(0.5);
+                                            //Kuanggong += new decimal(0.5);
+                                        }
+
+                                    }
+                                    else
+                                    {
+                                        Chidao += 1;
+                                        Xiawuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
+                                    }
+                                }
+                                if (xiawuwukuanggong == 0 && endttime < StratTimeOffworkEnd)
+                                {
+                                    TimeSpan zaotui = StratTimeOffworkEnd.Subtract(endttime.Value);
+                                    if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
+                                    {
+                                        if (xiawuwukuanggong == 0)
+                                        {
+                                            xiawuwukuanggong += new decimal(0.5);
+                                            //Kuanggong += new decimal(0.5);
+                                        }
+
+                                    }
+                                    else
+                                    {
+                                        Zaotui += 1;
+                                        Xiawuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
+                                    }
+
+                                }
+                                Kuanggongtianshu += xiawuwukuanggong;
+                            }
+                        }
+
+                        //璁$畻褰撳ぉ鍔犵彮澶╂暟
+                        Jiaban += (1 - Kuanggongtianshu );
+
+                        Kuanggongtianshu = 0;
+
                         //鍔犵彮
                         //璁$畻鍔犵彮鏃堕棿
                         if (admSignInDTO != null && admSignInDTO.OvertimeIn.HasValue && admSignInDTO.OvertimeOut.HasValue)
                         {
-                            TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(admSignInDTO.OvertimeIn.Value);
+                            DateTime overdate = admSignInDTO.OvertimeIn.Value;
+                            if (admSignInDTO.OvertimeIn.Value < StratTimeOffworkEnd)
+                            {
+                                overdate = StratTimeOffworkEnd;
+                            }
+                            TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate);
 
-                            Jiaban += Math.Round((decimal)(jiaban.Hours * 60+ jiaban.Minutes) / (decimal)shangbanshijian, 2);
+                            Jiaban += Math.Round((decimal)(jiaban.Hours * 60) / (decimal)shangbanshijian, 2);
                         }
+
+                        
                     }
 
 
@@ -1323,7 +1562,7 @@
                     }
                 }
 
-                //hrSalaryDTO.Jiucuo
+                hrSalaryDTO.Jiucuo = 0;
 
                 //璁$畻缁╂晥鎻愭垚
                 hrSalaryDTO.Jixiaoticheng = 0;
@@ -1338,7 +1577,8 @@
                     #region 涓婇棬鎷滆瀹㈡埛
 
                     var cooperVisitDTOs = _cooperVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
-                    if (cooperVisitDTOs != null && cooperVisitDTOs.Count > 0)
+                    var intentionVisitDTOs = _intentionVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin); 
+                    if (  cooperVisitDTOs.Count > 0 || intentionVisitDTOs.Count > 0)
                     {
                         var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "涓婇棬鎷滆瀹㈡埛").FirstOrDefault();
                         if (jijianidddd != null)
@@ -1351,7 +1591,7 @@
                                     decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                     if (jixiaotichengfangan.Tichengstandard == "01")
                                     {
-                                        decimal youxiaojijian = cooperVisitDTOs.Count - renwujishu;
+                                        decimal youxiaojijian = intentionVisitDTOs.Count + cooperVisitDTOs.Count - renwujishu;
                                         if (youxiaojijian > 0)
                                         {
                                             hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
@@ -1365,7 +1605,7 @@
                                     decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                     if (jixiaotichengfangan.Tichengstandard == "01")
                                     {
-                                        decimal youxiaojijian = cooperVisitDTOs.Count - renwujishu;
+                                        decimal youxiaojijian = intentionVisitDTOs.Count + cooperVisitDTOs.Count - renwujishu;
                                         if (youxiaojijian > 0)
                                         {
                                             hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
@@ -1425,7 +1665,8 @@
 
                     #region 瀹㈡埛璧勬枡褰曞叆
                     var cooperatecustomCustomerDTOs = _cooperatecustomCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
-                    if (cooperatecustomCustomerDTOs != null && cooperatecustomCustomerDTOs.Count > 0)
+                    var _intentionCustomerDTOs = _intentionCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+                    if ( cooperatecustomCustomerDTOs.Count > 0 || _intentionCustomerDTOs.Count > 0)
                     {
                         var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "瀹㈡埛璧勬枡褰曞叆").FirstOrDefault();
                         if (jijianidddd != null)
@@ -1438,7 +1679,7 @@
                                     decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
                                     if (jixiaotichengfangan.Tichengstandard == "01")
                                     {
-                                        decimal youxiaojijian = cooperatecustomCustomerDTOs.Count - renwujishu;
+                                        decimal youxiaojijian = _intentionCustomerDTOs.Count + cooperatecustomCustomerDTOs.Count - renwujishu;
                                         if (youxiaojijian > 0)
                                         {
                                             hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
@@ -1452,7 +1693,7 @@
                                     decimal renwujishu = jixiaotichengfangan.Renwu.Value;
                                     if (jixiaotichengfangan.Tichengstandard == "01")
                                     {
-                                        decimal youxiaojijian = cooperatecustomCustomerDTOs.Count - renwujishu;
+                                        decimal youxiaojijian = _intentionCustomerDTOs.Count +  cooperatecustomCustomerDTOs.Count - renwujishu;
                                         if (youxiaojijian > 0)
                                         {
                                             hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
@@ -1463,11 +1704,14 @@
                             }
                         }     
                     }
+                   
+                     
+                    
                     #endregion
 
 
                     #region 褰曞叆瀹㈡埛绛惧崟
-                    
+
                    var cooperatecustomCustomers = _cooperatecustomCustomerService.GetListsalaryqiandan(userList[i].Id, dateminkaoqin, datemaxkaoqin);
                     if (cooperatecustomCustomers != null && cooperatecustomCustomers.Count > 0)
                     {
@@ -2300,7 +2544,59 @@
                 decimal peichang = hrSalaryDTO.Peichang.HasValue ? hrSalaryDTO.Peichang.Value : 0;
                 decimal jiucuo = hrSalaryDTO.Jiucuo.HasValue ? hrSalaryDTO.Jiucuo.Value : 0;
 
-                yingnashuie = jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + dianhuabutie + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou  - dianhuafei - queqin - fakuan - peichang + jiucuo - geshuiqizheng;
+                //璁$畻淇濆簳骞磋柂
+                if (userList[i].Indate.HasValue && userList[i].miniyearsalary.HasValue)
+                {
+                    DateTime jixinue = userList[i].Indate.Value;
+                    if (userList[i].Indate.Value.Day != 1)
+                    {
+                        jixinue = new DateTime(userList[i].Indate.Value.AddMonths(1).Year, userList[i].Indate.Value.AddMonths(1).Month, 1);
+                    }
+                    int months = ((datemaxkaoqin.Year - jixinue.Year) * 12) + datemaxkaoqin.Month - jixinue.Month;
+
+                    if(months % 12>=1 && months % 12 == 0)
+                    {
+                        decimal baodinianxin = 0;
+                        //鏌ヨ杩囧幓12涓湀鐨勫伐璧�
+                        for(int z = 1; z <= 12; z++)
+                        {
+                            var hrSalaryDTO1 = _hrSalaryService.GetListByUser(userList[i].Id, dateminkaoqin.AddMonths(-z).Year, dateminkaoqin.AddMonths(-z).Month);
+                            if (hrSalaryDTO1 != null)
+                            {
+                                decimal jibengongzi1 = hrSalaryDTO1.Jibengongzi.HasValue ? hrSalaryDTO1.Jibengongzi.Value : 0;
+                                decimal baomifei1 = hrSalaryDTO1.Baomifei.HasValue ? hrSalaryDTO1.Baomifei.Value : 0;
+                                decimal gongzuobutie1 = hrSalaryDTO1.Gongzuobutie.HasValue ? hrSalaryDTO1.Gongzuobutie.Value : 0;
+                                decimal jiabangongzi1 = hrSalaryDTO1.Jiabangongzi.HasValue ? hrSalaryDTO1.Jiabangongzi.Value : 0;
+                                decimal shebao1 = hrSalaryDTO1.Shebao.HasValue ? hrSalaryDTO1.Shebao.Value : 0;
+                                decimal dianhuabutie1 = hrSalaryDTO1.Dianhuabutie.HasValue ? hrSalaryDTO1.Dianhuabutie.Value : 0;
+                                decimal quanqinjiang1 = hrSalaryDTO1.Quanqinjiang.HasValue ? hrSalaryDTO1.Quanqinjiang.Value : 0;
+                                decimal jiaotngbutie1 = hrSalaryDTO1.Jiaotngbutie.HasValue ? hrSalaryDTO1.Jiaotngbutie.Value : 0;
+                                decimal jixiaoticheng1 = hrSalaryDTO1.Jixiaoticheng.HasValue ? hrSalaryDTO1.Jixiaoticheng.Value : 0;
+                                decimal jiangjin1 = hrSalaryDTO1.Jiangjin.HasValue ? hrSalaryDTO1.Jiangjin.Value : 0;
+                                decimal bufagongzi1 = hrSalaryDTO1.Bufagongzi.HasValue ? hrSalaryDTO1.Bufagongzi.Value : 0;
+                                decimal shebaokou1 = hrSalaryDTO1.Shebaokou.HasValue ? hrSalaryDTO1.Shebaokou.Value : 0;
+
+                                decimal dianhuafei1 = hrSalaryDTO1.Dianhuafei.HasValue ? hrSalaryDTO1.Dianhuafei.Value : 0;
+                                decimal queqin1 = hrSalaryDTO1.Queqin.HasValue ? hrSalaryDTO1.Queqin.Value : 0;
+                                decimal fakuan1 = hrSalaryDTO1.Fakuan.HasValue ? hrSalaryDTO1.Fakuan.Value : 0;
+                                decimal peichang1 = hrSalaryDTO1.Peichang.HasValue ? hrSalaryDTO1.Peichang.Value : 0;
+                                decimal jiucuo1 = hrSalaryDTO1.Jiucuo.HasValue ? hrSalaryDTO1.Jiucuo.Value : 0;
+
+                                baodinianxin += jibengongzi1 + baomifei1 + gongzuobutie1 + jiabangongzi1 + shebao1 + quanqinjiang1 + jiaotngbutie1 + jixiaoticheng1 + jiangjin1 + bufagongzi1 + jiucuo1;
+                            }
+                        }
+                        baodinianxin += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi + jiucuo;
+                        if(baodinianxin < userList[i].miniyearsalary.Value)
+                        {
+                            jiucuo = userList[i].miniyearsalary.Value - baodinianxin;
+                        }
+                    }    
+                }
+
+
+
+
+                yingnashuie = jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao  + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou + ( (dianhuabutie - dianhuafei)<=0? (dianhuabutie - dianhuafei) : 0) - queqin - fakuan - peichang + jiucuo - geshuiqizheng;
 
 
                 hrSalaryDTO.Geshui = 0;
@@ -2389,7 +2685,7 @@
                 }
                 decimal geshui = hrSalaryDTO.Geshui.HasValue ? hrSalaryDTO.Geshui.Value : 0;
 
-                hrSalaryDTO.Daozhanggongzi += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + dianhuabutie + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou - geshui - dianhuafei - queqin - fakuan - peichang + jiucuo;
+                hrSalaryDTO.Daozhanggongzi += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao  + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou - geshui + ((dianhuabutie - dianhuafei) <= 0 ? (dianhuabutie - dianhuafei) : 0) - queqin - fakuan - peichang + jiucuo;
 
 
 
@@ -2418,6 +2714,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;

--
Gitblit v1.9.1