From c571ee7de9595e2616e0e5f85734dbaa42ed6098 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期四, 21 十月 2021 13:33:41 +0800
Subject: [PATCH] 提交
---
zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs | 218 +++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 167 insertions(+), 51 deletions(-)
diff --git a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
index 80e2b79..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)
{
@@ -1341,17 +1349,24 @@
//鏌ヨ鏄惁鏈変笉绉拌亴鐨勫伐浣滆�冭瘎
var admEvaluateDTOs = _admEvaluateService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x=>x.EvaluateValue == "03").ToList();
//褰撴湀鍑哄嫟鐜�
- decimal chuqinlv = Math.Round((admAttendanceDTO.Shijichuqin- admEvaluateDTOs.Count) / admAttendanceDTO.Yingchuqin,4);
+ 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);
//鏄惁鍦ㄨ瘯鐢ㄦ湡
@@ -1360,15 +1375,27 @@
{
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;
-
+
+
+
+ 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 && dateminkaoqin>= userList[i].ShiyongDate.Value && dateminkaoqin <= userList[i].ShiyongDateEnd.Value)
{
if (!userList[i].ShiyongPrice.HasValue)
@@ -1376,6 +1403,10 @@
_logger.LogInformation(userList[i].UserName + ": 鍛樺伐澶勪簬璇曠敤鏈燂紝浣嗘槸璇曠敤鏈熷伐璧勪负绌�");
continue;
}
+ //鏌ヨ鏄惁鏈変笉绉拌亴鐨勫伐浣滆�冭瘎
+ 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))
@@ -1397,11 +1428,14 @@
}
}
- //鏌ヨ鏄惁鏈変笉绉拌亴鐨勫伐浣滆�冭瘎
- var admEvaluateDTOsshiyongqi = _admEvaluateService.GetListsalary(userList[i].Id, dateminkaoqin, userList[i].ShiyongDateEnd.Value.AddDays(1)).Where(x => x.EvaluateValue == "03").ToList();
+
- shiyongqichuqinlv = Math.Round((shiyongqichuqintianshu- admEvaluateDTOsshiyongqi.Count) / admAttendanceDTO.Yingchuqin, 4);
+ shiyongqichuqinlv = Math.Round(shiyongqichuqintianshu / admAttendanceDTO.Yingchuqin, 4);
+
+ //宸ヤ綔璇勪环涓嶅悎鏍肩綒娆�
+ hrSalaryDTO.Fakuan += Math.Round(userList[i].ShiyongPrice.Value * admEvaluateDTOsshiyongqi.Count / admAttendanceDTO.Yingchuqin + BasicPrice * (admEvaluateDTOs.Count - admEvaluateDTOsshiyongqi.Count) / admAttendanceDTO.Yingchuqin, 2);
+
}
else
{
@@ -1414,6 +1448,9 @@
}
}
hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * userList[i].ShiyongPrice.Value, 2);
+
+ //宸ヤ綔璇勪环涓嶅悎鏍肩綒娆�
+ hrSalaryDTO.Fakuan += Math.Round(userList[i].ShiyongPrice.Value * admEvaluateDTOs.Count / admAttendanceDTO.Yingchuqin, 2);
}
@@ -1421,24 +1458,23 @@
hrSalaryDTO.Gongzuobutie += Math.Round( (userList[i].ShiyongPrice.Value - hrJibengongzi.Baomifei.Value- hrJibengongzi.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))
@@ -1498,7 +1534,7 @@
- //yingnashuie = BasicPrice - Shebaogeren - geshuiqizheng;
+
}
@@ -1728,7 +1764,8 @@
hrSalaryDTO.Dianhuafei = SimCost.bill_amount;
}
- if(admAttendanceDTO.Shijichuqin>=admAttendanceDTO.Yingchuqin)
+ if(admAttendanceDTO.Shijichuqin>=admAttendanceDTO.Yingchuqin
+ && hrSalaryDTO.Queqin <=0)
{
hrSalaryDTO.Quanqinjiang = hrJibengongzi.Quanqingjiang;
}
@@ -1749,7 +1786,6 @@
- hrSalaryDTO.Fakuan = 0;
//宸ヤ綔瀹夋帓缃氭
List<AdmMemoBookDTO> admMemoBookDTOs = _DailyManageService.GetRemindsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin,"2");
if (admMemoBookDTOs.Count > 0)
@@ -3504,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
{
@@ -3537,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;
@@ -3546,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;
@@ -3554,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;
@@ -3562,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;
@@ -3570,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;
@@ -3597,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