From b69b0a86c77a9453167576ab01c542383d53f260 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期五, 23 九月 2022 10:18:55 +0800
Subject: [PATCH] 项目质疑投诉列表
---
zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs | 878 ++++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 637 insertions(+), 241 deletions(-)
diff --git a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
index 92bc0d5..e92de0f 100644
--- a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
+++ b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
@@ -48,6 +48,9 @@
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 decimal jiabangongzibiaozhun = new decimal(21.5);
public TimedBackgroundService(ILogger<TimedBackgroundService> logger, IServiceScopeFactory factory)
@@ -79,6 +82,9 @@
_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>();
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
@@ -208,6 +214,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('.');
@@ -231,14 +238,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);
@@ -314,8 +327,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;
@@ -443,6 +456,10 @@
endttime = dateBiJiaoDTOs[i].EndTime;
}
}
+ if (endttime>= StratTimeWorkingEnd)
+ {
+ break;
+ }
}
if (kuanggong)
{
@@ -560,6 +577,10 @@
endttime = dateBiJiaoDTOs[i].EndTime;
}
}
+ if (endttime >= StratTimeOffworkEnd)
+ {
+ break;
+ }
}
if (kuanggong)
{
@@ -614,7 +635,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)
{
@@ -737,245 +758,423 @@
//璁$畻鍔犵彮鏃堕棿
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
{
-
- //鍒ゆ柇鑰冨嫟鏃堕棿鐨勮繛缁��
-
- //鍒ゆ柇鏃╀笂鏄惁杩熷埌,鍒ゆ柇鏃╀笂鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊
- DateTime? starttime = null;
- DateTime? endttime = null;
- bool kuanggong = false;
- List<DateBiJiaoDTO> dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
- if (admSignInDTO != null && admSignInDTO.MorningIn.HasValue && admSignInDTO.MorningOut.HasValue)
+ //鍒ゆ柇浠婂ぉ鏄惁鍏徃瑕佹眰鍔犵彮
+ var shifoujiaban = jiabanri.Exists(x => x.ValueStart <= dateminkaoqin && x.ValueEnd >= dateminkaoqin);
+ if (shifoujiaban)
{
- 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)
+
+ //鍒ゆ柇鑰冨嫟鏃堕棿鐨勮繛缁��
+
+ //鍒ゆ柇鏃╀笂鏄惁杩熷埌,鍒ゆ柇鏃╀笂鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊
+ 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 = admAskLeaveOff.StratTime;
- dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+ dateBiJiaoDTO.StartTime = admSignInDTO.MorningIn;
+ dateBiJiaoDTO.EndTime = admSignInDTO.MorningOut;
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++)
+ foreach (var admAskLeave in admAskLeaveDTOMin)
{
- if (i == 0)
+ if (admAskLeave.StratTime < StratTimeWorkingEnd)
{
- starttime = dateBiJiaoDTOs[i].StartTime;
- endttime = dateBiJiaoDTOs[i].EndTime;
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+ dateBiJiaoDTOs.Add(dateBiJiaoDTO);
}
- 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)
+
+ 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
{
- decimal shangwukuanggong = 0;
- if (starttime > StratTimeWorkingStart)
+ //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩�
+ for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
{
- TimeSpan chidao = starttime.Value.Subtract(StratTimeWorkingStart);
- if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
+ if (i == 0)
{
- if (shangwukuanggong == 0)
- {
- Kuanggongtianshu += new decimal(0.5);
- }
-
+ starttime = dateBiJiaoDTOs[i].StartTime;
+ endttime = dateBiJiaoDTOs[i].EndTime;
}
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)
+ if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
{
- Kuanggongtianshu += new decimal(0.5);
+ kuanggong = true;
+ break;
}
-
+ else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+ {
+ endttime = dateBiJiaoDTOs[i].EndTime;
+ }
}
- 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)
+ if (kuanggong)
{
- starttime = dateBiJiaoDTOs[i].StartTime;
- endttime = dateBiJiaoDTOs[i].EndTime;
+ Kuanggong += new decimal(0.5);
+ Kuanggongtianshu += new decimal(0.5);
}
else
{
- if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
+ decimal shangwukuanggong = 0;
+ if (starttime > StratTimeWorkingStart)
{
- kuanggong = true;
- break;
+ 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;
+ }
}
- else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+ if (shangwukuanggong == 0 && endttime < StratTimeWorkingEnd)
{
- endttime = dateBiJiaoDTOs[i].EndTime;
+ 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;
}
}
- if (kuanggong)
+
+
+
+ //鍒ゆ柇涓嬪崍鏄惁杩熷埌,鍒ゆ柇涓嬪崍鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊
+
+
+ starttime = null;
+ endttime = null;
+ kuanggong = false;
+ dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
+ if (admSignInDTO != null && admSignInDTO.AfternoonIn.HasValue && admSignInDTO.AfternoonOut.HasValue)
{
- //Kuanggong += new decimal(0.5);
+ 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
{
- decimal xiawuwukuanggong = 0;
- if (starttime > StratTimeOffworkStart)
+ //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩�
+ for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
{
- TimeSpan chidao = starttime.Value.Subtract(StratTimeOffworkStart);
- if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
+ if (i == 0)
{
- if (xiawuwukuanggong == 0)
- {
- xiawuwukuanggong += new decimal(0.5);
- //Kuanggong += new decimal(0.5);
- }
-
+ starttime = dateBiJiaoDTOs[i].StartTime;
+ endttime = dateBiJiaoDTOs[i].EndTime;
}
else
{
- Chidao += 1;
- Xiawuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
+ 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 (xiawuwukuanggong == 0 && endttime < StratTimeOffworkEnd)
+ if (kuanggong)
{
- TimeSpan zaotui = StratTimeOffworkEnd.Subtract(endttime.Value);
- if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
+ Kuanggong += new decimal(0.5);
+ Kuanggongtianshu += new decimal(0.5);
+ }
+ else
+ {
+ decimal xiawuwukuanggong = 0;
+ if (starttime > StratTimeOffworkStart)
{
- if (xiawuwukuanggong == 0)
+ TimeSpan chidao = starttime.Value.Subtract(StratTimeOffworkStart);
+ if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
{
- xiawuwukuanggong += new decimal(0.5);
- //Kuanggong += new decimal(0.5);
+ 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;
}
}
- else
- {
- Zaotui += 1;
- Xiawuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
- }
-
+ Kuanggongtianshu += xiawuwukuanggong;
}
- 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;
+ //璁$畻褰撳ぉ鍑哄嫟澶╂暟
+ 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;
}
+
- //璁$畻褰撳ぉ鍔犵彮澶╂暟
- Jiaban += (1 - Kuanggongtianshu );
- Kuanggongtianshu = 0;
//鍔犵彮
//璁$畻鍔犵彮鏃堕棿
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 (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);
}
- TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate);
-
- Jiaban += Math.Round((decimal)(jiaban.Hours * 60) / (decimal)shangbanshijian, 2);
}
@@ -1105,8 +1304,15 @@
//璁$畻宸ヨ祫
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();
@@ -1155,18 +1361,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);
//鏄惁鍦ㄨ瘯鐢ㄦ湡
@@ -1175,15 +1390,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 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 && dateminkaoqin>= userList[i].ShiyongDate.Value && dateminkaoqin <= userList[i].ShiyongDateEnd.Value)
{
if (!userList[i].ShiyongPrice.HasValue)
@@ -1191,6 +1418,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))
@@ -1211,7 +1442,15 @@
}
}
}
+
+
+
+
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
{
@@ -1224,6 +1463,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);
}
@@ -1231,24 +1473,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))
@@ -1308,7 +1549,7 @@
- //yingnashuie = BasicPrice - Shebaogeren - geshuiqizheng;
+
}
@@ -1538,9 +1779,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;
@@ -1552,7 +1801,6 @@
- hrSalaryDTO.Fakuan = 0;
//宸ヤ綔瀹夋帓缃氭
List<AdmMemoBookDTO> admMemoBookDTOs = _DailyManageService.GetRemindsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin,"2");
if (admMemoBookDTOs.Count > 0)
@@ -3219,6 +3467,53 @@
#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")
+ {
+ 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
+
}
@@ -3245,7 +3540,7 @@
decimal jiucuo = hrSalaryDTO.Jiucuo.HasValue ? hrSalaryDTO.Jiucuo.Value : 0;
//璁$畻淇濆簳骞磋柂
- if (userList[i].Indate.HasValue && userList[i].miniyearsalary.HasValue)
+ 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)
@@ -3282,21 +3577,90 @@
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 += jibengongzi1 + baomifei1 + gongzuobutie1 + jiabangongzi1 + shebao1 + quanqinjiang1 + jiaotngbutie1 + jixiaoticheng1 + jiangjin1 + bufagongzi1 + jiucuo1+ peichang1;
}
}
- baodinianxin += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi + jiucuo;
- if(baodinianxin < userList[i].miniyearsalary.Value)
+ 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 = jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou + ( (dianhuabutie - dianhuafei)<=0? (dianhuabutie - dianhuafei) : 0) - queqin - fakuan - peichang + jiucuo - geshuiqizheng;
+
+
+
+
+ yingnashuie = yingfaheji - geshuiqizheng;
hrSalaryDTO.Geshui = 0;
@@ -3307,32 +3671,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
{
@@ -3340,7 +3725,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;
@@ -3349,7 +3734,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;
@@ -3357,7 +3742,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;
@@ -3365,7 +3750,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;
@@ -3373,35 +3758,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 + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou - geshui + ((dianhuabutie - dianhuafei) <= 0 ? (dianhuabutie - dianhuafei) : 0) - 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";
@@ -3448,6 +3837,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('.');
@@ -3557,9 +3948,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)
{
@@ -3655,7 +4048,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)
{
@@ -3717,7 +4111,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;
}
@@ -3746,7 +4141,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