From ad97a60eb0ff674a4e7419d2102e5a635c2122f2 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期四, 28 十月 2021 14:42:52 +0800
Subject: [PATCH] 提交

---
 zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs |  169 ++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 132 insertions(+), 37 deletions(-)

diff --git a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
index 4924041..29e24f2 100644
--- a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
+++ b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
@@ -319,8 +319,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;
@@ -448,6 +448,10 @@
                                         endttime = dateBiJiaoDTOs[i].EndTime;
                                     }
                                 }
+                                if (endttime>= StratTimeWorkingEnd)
+                                {
+                                    break;
+                                }
                             }
                             if (kuanggong)
                             {
@@ -565,6 +569,10 @@
                                         endttime = dateBiJiaoDTOs[i].EndTime;
                                     }
                                 }
+                                if (endttime >= StratTimeOffworkEnd)
+                                {
+                                    break;
+                                }
                             }
                             if (kuanggong)
                             {
@@ -619,7 +627,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").ToList();
                         foreach (var admAskLeave in feichuqinjia)
                         {
                             
@@ -1012,7 +1020,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").ToList();
                             foreach (var admAskLeave in feichuqinjia)
                             {
 
@@ -1346,12 +1354,19 @@
                 //鏌ヨ褰撳墠鍛樺伐鑱屽姟鐨勫熀鏈伐璧勯厤缃�
 
                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);
                 //鏄惁鍦ㄨ瘯鐢ㄦ湡
@@ -1360,8 +1375,8 @@
                 {
                     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;
@@ -1445,7 +1460,7 @@
 
 
 
-                    //yingnashuie = userList[i].ShiyongPrice.Value - Shebaogeren - geshuiqizheng;
+                    
 
 
 
@@ -1519,7 +1534,7 @@
 
                   
 
-                    //yingnashuie = BasicPrice - Shebaogeren - geshuiqizheng;
+                   
 
                     
                 }
@@ -3525,32 +3540,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
                     {
@@ -3558,7 +3594,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;
@@ -3567,7 +3603,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;
@@ -3575,7 +3611,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;
@@ -3583,7 +3619,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;
@@ -3591,14 +3627,28 @@
                     }
                     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;
@@ -3618,11 +3668,56 @@
                         hrSalaryDTO.Yufagongziheji = hrSalaryDTOlast.Yufagongziheji;
                     }
 
-                    hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi );
-                    if (hrSalaryDTO.Daozhanggongzi < hrSalaryDTO.Yufagongzi)
+                    if (hrSalaryDTO.Yufagongziheji > 0)
                     {
-                        hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi;
+                        if (hrSalaryDTO.Daozhanggongzi < hrSalaryDTO.Yufagongzi)
+                        {
+                            hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi);
+                            hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi;
+                        }
+                        else if (hrSalaryDTO.Daozhanggongzi > hrSalaryDTO.Yufagongzi)
+                        {
+                            if(hrSalaryDTO.Yufagongziheji>= (hrSalaryDTO.Daozhanggongzi - hrSalaryDTO.Yufagongzi))
+                            {
+                                hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi);
+                                hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi;
+                            }
+                            else
+                            {
+                                hrSalaryDTO.Daozhanggongzi -= hrSalaryDTO.Yufagongziheji;
+                                hrSalaryDTO.Yufagongziheji = 0;
+                            }
+
+                           
+                        }
+
                     }
+                    else if (hrSalaryDTO.Yufagongziheji == 0)
+                    {
+                        hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi);
+                        if (hrSalaryDTO.Daozhanggongzi < hrSalaryDTO.Yufagongzi)
+                        {
+                            hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi;
+                        }
+                    }
+                    else if (hrSalaryDTO.Yufagongziheji < 0)
+                    {
+                        if (hrSalaryDTO.Daozhanggongzi < hrSalaryDTO.Yufagongzi)
+                        {
+                            if (-hrSalaryDTO.Yufagongziheji >= (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi))
+                            {
+                                hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi);
+                                hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi;
+                            }
+                            else
+                            {
+                                hrSalaryDTO.Daozhanggongzi += hrSalaryDTO.Yufagongziheji;
+                                hrSalaryDTO.Yufagongziheji = 0;
+                            }
+                        }
+                        
+                    }
+
                 }
                 hrSalaryDTO.RecStatus = "A";
                 hrSalaryDTO.Islock = "D";

--
Gitblit v1.9.1