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 | 4145 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 4,141 insertions(+), 4 deletions(-)
diff --git a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
index 1389a5e..e92de0f 100644
--- a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
+++ b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
@@ -1,20 +1,90 @@
-锘縰sing Microsoft.Extensions.Hosting;
+锘縰sing DTO;
+using IServices;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
using System;
+using System.Collections.Generic;
using System.IO;
+using System.Linq;
+using System.Net.Http;
+using System.Net.Http.Headers;
using System.Threading;
using System.Threading.Tasks;
+using System.Transactions;
+using zhengcaioa.IService;
+using zhengcaioa.Models;
namespace zhengcaioa.Timer
{
public class TimedBackgroundService : BackgroundService
{
private readonly ILogger _logger;
-
+ private readonly IAdmAttendanceRuleService _attendanceRuleService;
+ private readonly IUserService _userService;
+ private readonly IAdmSigninService _signinService;
+ private readonly IAdmAttendanceService _admAttendanceService;
+ private readonly IAdmAttendanceDtlService _admAttendanceDtlService;
+ private readonly IHrSalaryService _hrSalaryService;
+ private readonly IHrJibengongziService _JibengongziService;
+ private readonly ISimService _simService;
+ private readonly IDailyManagementService _DailyManageService;
+ private readonly IAdmBreakPrecedentService _admBreakPrecedentService;
+ private readonly IHrJixiaotichengService _hrJixiaotichengService;
+ private readonly IFiPiecerateService _fiPiecerateService;
+ private readonly IAdmPieceCheckService _admPieceCheckService;
+ private readonly ICooperOrderService _cooperOrderService;
+ private readonly ICooperatecustomCustomerService _cooperatecustomCustomerService;
+ private readonly IGroupTopicService _groupTopicService;
+ private readonly ICooperVisitService _cooperVisitService;
+ private readonly IIntentionCustomerService _intentionCustomerService;
+ private readonly IIntentionVisitService _intentionVisitService;
+ private readonly IProjectService _projectService;
+ private readonly ICusFangwenjiluService _cusFangwenjiluService;
+ private readonly ILiaotianService _liaotianService;
+ private readonly IDtChannelArticleNewsService _dtChannelArticleNewsService;
+ private readonly IConfiguration _configuration;
+ private readonly IHttpClientFactory _clientFactory;
+ private readonly IAskService _askService;
+ private readonly IAdmEvaluateService _admEvaluateService;
+ private readonly IExpertService _expertService;
- public TimedBackgroundService(ILogger<TimedBackgroundService> logger)
+ private readonly decimal jiabangongzibiaozhun = new decimal(21.5);
+ public TimedBackgroundService(ILogger<TimedBackgroundService> logger, IServiceScopeFactory factory)
{
_logger = logger;
+ _attendanceRuleService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmAttendanceRuleService>();
+ _userService = factory.CreateScope().ServiceProvider.GetRequiredService<IUserService>();
+ _signinService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmSigninService>();
+ _admAttendanceService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmAttendanceService>();
+ _admAttendanceDtlService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmAttendanceDtlService>();
+ _hrSalaryService = factory.CreateScope().ServiceProvider.GetRequiredService<IHrSalaryService>();
+ _JibengongziService = factory.CreateScope().ServiceProvider.GetRequiredService<IHrJibengongziService>();
+ _simService = factory.CreateScope().ServiceProvider.GetRequiredService<ISimService>();
+ _DailyManageService = factory.CreateScope().ServiceProvider.GetRequiredService<IDailyManagementService>();
+ _admBreakPrecedentService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmBreakPrecedentService>();
+ _hrJixiaotichengService = factory.CreateScope().ServiceProvider.GetRequiredService<IHrJixiaotichengService>();
+ _fiPiecerateService = factory.CreateScope().ServiceProvider.GetRequiredService<IFiPiecerateService>();
+ _admPieceCheckService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmPieceCheckService>();
+ _cooperOrderService = factory.CreateScope().ServiceProvider.GetRequiredService<ICooperOrderService>();
+ _cooperatecustomCustomerService = factory.CreateScope().ServiceProvider.GetRequiredService<ICooperatecustomCustomerService>();
+ _groupTopicService = factory.CreateScope().ServiceProvider.GetRequiredService<IGroupTopicService>();
+ _cooperVisitService = factory.CreateScope().ServiceProvider.GetRequiredService<ICooperVisitService>();
+ _intentionCustomerService = factory.CreateScope().ServiceProvider.GetRequiredService<IIntentionCustomerService>();
+ _intentionVisitService = factory.CreateScope().ServiceProvider.GetRequiredService<IIntentionVisitService>();
+
+ _projectService = factory.CreateScope().ServiceProvider.GetRequiredService<IProjectService>();
+ _cusFangwenjiluService = factory.CreateScope().ServiceProvider.GetRequiredService<ICusFangwenjiluService>();
+ _liaotianService = factory.CreateScope().ServiceProvider.GetRequiredService<ILiaotianService>();
+ _dtChannelArticleNewsService = factory.CreateScope().ServiceProvider.GetRequiredService<IDtChannelArticleNewsService>();
+ _configuration = factory.CreateScope().ServiceProvider.GetRequiredService<IConfiguration>();
+ _clientFactory = factory.CreateScope().ServiceProvider.GetRequiredService<IHttpClientFactory>();
+ _askService= factory.CreateScope().ServiceProvider.GetRequiredService<IAskService>();
+ _admEvaluateService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmEvaluateService>();
+ _expertService = factory.CreateScope().ServiceProvider.GetRequiredService<IExpertService>();
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
@@ -22,11 +92,59 @@
//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 (datenow <= DateTime.Now.Date && DateTime.Now.Hour == 0)
+ //if (true)
+ {
- await Task.Delay(TimeSpan.FromMinutes(1), stoppingToken);
+ try
+ {
+ _logger.LogInformation("鍒ゆ柇鏄惁鏄浜斾釜宸ヤ綔鏃ョ粨鏉�");
+ DateTime diwutian = this.diwugongzuori();
+ //绗簲涓伐浣滄棩缁撴潫鍚庡紑濮嬭绠�
+ if (DateTime.Now.Date == diwutian.AddDays(1))
+ //if (true)
+ {
+ try
+ {
+ _logger.LogInformation("璁$畻鑰冨嫟宸ヨ祫");
+ //using (TransactionScope scope = new TransactionScope())
+ //{
+ this.jisuankaoqin();
+ await this.jisuangongziAsync();
+ //scope.Complete();
+ //}
+
+ }
+ catch (Exception ex)
+ {
+ _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(10), stoppingToken);
_logger.LogInformation("缁х画鎵ц");
}
@@ -38,5 +156,4024 @@
{
base.Dispose();
}
+ //璁$畻绗簲涓伐浣滄棩
+ public DateTime diwugongzuori()
+ {
+ var admAttendanceRulesDtlDTOs = _attendanceRuleService.GetDtlList("");
+ AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get("");
+ var jiejiari = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiejiari").ToList();
+ var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList();
+ //鑾峰彇鏈湀鐨勭浜斾釜宸ヤ綔鏃ユ棩鏈熴��
+ DateTime datemin = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
+ DateTime datemax = datemin.AddMonths(1);
+ _logger.LogInformation("datemin" + datemin);
+ _logger.LogInformation("datemax" + datemax);
+ DateTime diwutian = DateTime.MinValue;
+ int i = 0;
+ while (datemin < datemax)
+ {
+ //鏄惁涓婄彮鏃ユ湡
+ if ((int)datemin.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)datemin.DayOfWeek <= admAttendanceRuleDTO.WeekEnd)
+ {
+ //鏄惁鑺傚亣鏃�
+ if (jiejiari.Exists(x => x.ValueStart <= datemin && x.ValueEnd >= datemin))
+ {
+ }
+ else
+ {
+ i += 1;
+ }
+ }
+ else
+ {
+ //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝�
+ if (tiaoxiuri.Exists(x => x.ValueStart <= datemin && x.ValueEnd >= datemin))
+ {
+ i += 1;
+ }
+ else
+ {
+ }
+ }
+ if (i == 5)
+ {
+ diwutian = datemin;
+ break;
+ }
+ datemin = datemin.AddDays(1);
+ }
+ _logger.LogInformation("diwutian" + diwutian);
+ _logger.LogInformation("DateTime.Now" + DateTime.Now.Date);
+ return diwutian;
+ }
+
+ //璁$畻鑰冨嫟
+ public void jisuankaoqin()
+ {
+ var admAttendanceRulesDtlDTOs = _attendanceRuleService.GetDtlList("");
+ AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get("");
+ var jiejiari = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiejiari").ToList();
+ var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList();
+ var jiabanri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiabanri").ToList();
+
+ //姣忓ぉ鐨勮�冨嫟鏃堕棿鐐�
+ string[] WorkingStart = admAttendanceRuleDTO.WorkingStart.Split('.');
+ int WorkingStarthour = int.Parse(WorkingStart[0]);
+ int WorkingStartmin = int.Parse(WorkingStart[1]);
+
+ string[] WorkingEnd = admAttendanceRuleDTO.WorkingEnd.Split('.');
+ int WorkingEndhour = int.Parse(WorkingEnd[0]);
+ int WorkingEndmin = int.Parse(WorkingEnd[1]);
+
+ string[] OffworkStart = admAttendanceRuleDTO.OffworkStart.Split('.');
+ int OffworkStarthour = int.Parse(OffworkStart[0]);
+ int OffworkStartmin = int.Parse(OffworkStart[1]);
+
+ string[] OffworkEnd = admAttendanceRuleDTO.OffworkEnd.Split('.');
+ int OffworkEndhour = int.Parse(OffworkEnd[0]);
+ int OffworkEndmin = int.Parse(OffworkEnd[1]);
+
+
+
+
+ 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(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(Year, Month, 1);
+ DateTime datemaxkaoqin = dateminkaoqin.AddMonths(1);
+ List<AdmAskLeaveDTO> admAskLeaveDTOs = _signinService.GetAskLeaveByUserId(userList[a].Id);
+ List<AdmAskLeaveOffDTO> admAskLeaveOffDTOs = _signinService.GetAskLeaveOffByUserId(userList[a].Id);
+ //鎻掑叆鑰冨嫟涓昏〃
+ AdmAttendanceDTO admAttendanceDTO = _admAttendanceService.GetByUserAndDate(userList[a].Id, dateminkaoqin.Year, dateminkaoqin.Month);
+ if (admAttendanceDTO == null)
+ {
+ admAttendanceDTO = new AdmAttendanceDTO();
+ admAttendanceDTO.Userid = userList[a].Id;
+ admAttendanceDTO.Year = dateminkaoqin.Year;
+ admAttendanceDTO.Month = dateminkaoqin.Month;
+ admAttendanceDTO.Yingchuqin = 0;
+ admAttendanceDTO.Offdays = 0;
+ admAttendanceDTO.Shijichuqin = 0;
+ admAttendanceDTO.Qingjia = 0;
+ admAttendanceDTO.Jiaban = 0;
+ admAttendanceDTO.Xiaojia = 0;
+ admAttendanceDTO.Chidao = 0;
+ admAttendanceDTO.Zaotui = 0;
+ admAttendanceDTO.Kuanggong = 0;
+ admAttendanceDTO.Islock = "D";
+ admAttendanceDTO.RecStatus = "A";
+ admAttendanceDTO.Creater = "1";
+ admAttendanceDTO.Modifier = "1";
+ admAttendanceDTO.Createtime = DateTime.Now;
+ admAttendanceDTO.Modifytime = admAttendanceDTO.Createtime;
+
+ resultEntity = _admAttendanceService.save(admAttendanceDTO);
+ if(resultEntity.Result == false)
+ {
+ throw new Exception("璁$畻澶辫触");
+ }
+ }
+ int Yingchuqin = 0;
+ int Offdays = 0;
+ decimal Shijichuqin = 0;
+ decimal Qingjia = 0;
+ decimal Jiaban = 0;
+ decimal Chidao = 0;
+ decimal Zaotui = 0;
+ decimal Kuanggong = 0;
+ decimal Xiaojia = 0;
+
+ while (dateminkaoqin < datemaxkaoqin)
+ {
+ _logger.LogInformation("dateminkaoqin " + dateminkaoqin);
+ bool iswork = false;
+
+ //鏄惁涓婄彮鏃ユ湡
+ if ((int)dateminkaoqin.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)dateminkaoqin.DayOfWeek <= admAttendanceRuleDTO.WeekEnd)
+ {
+ //鏄惁鑺傚亣鏃�
+ if (jiejiari.Exists(x => x.ValueStart <= dateminkaoqin && x.ValueEnd >= dateminkaoqin))
+ {
+ Offdays += 1;
+ }
+ else
+ {
+ Yingchuqin += 1;
+ iswork = true;
+ }
+ }
+ else
+ {
+ //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝�
+ if (tiaoxiuri.Exists(x => x.ValueStart <= dateminkaoqin.Date && x.ValueEnd >= dateminkaoqin.Date))
+ {
+ Yingchuqin += 1;
+ iswork = true;
+ }
+ else
+ {
+ Offdays += 1;
+ }
+ }
+ //绂昏亴褰撳ぉ璁$畻鑰冨嫟
+ if(userList[a].Zhiwustatus == "D" && userList[a].Outdate.HasValue && dateminkaoqin >userList[a].Outdate )
+ {
+ dateminkaoqin = dateminkaoqin.AddDays(1);
+ continue;
+ }
+
+ if (userList[a].Indate.HasValue && dateminkaoqin < userList[a].Indate)
+ {
+ dateminkaoqin = dateminkaoqin.AddDays(1);
+ continue;
+ }
+
+ //鍒ゆ柇鑰冨嫟鐘舵��
+ AdmSignInDTO admSignInDTO = _signinService.GetByUserAndDate(userList[a].Id, dateminkaoqin);
+ if (admSignInDTO == null)
+ {
+ admSignInDTO = new AdmSignInDTO();
+ }
+ //鏌ヨ璇峰亣 璇峰亣鏃堕棿涓嶈兘閲嶅彔
+ List<AdmAskLeaveDTO> admAskLeaveDTOMin = admAskLeaveDTOs.Where(x =>x.Lavetype != "2" && x.StratTime < dateminkaoqin.AddDays(1) && x.EndTime > dateminkaoqin).OrderByDescending(x=>x.Createtime).ToList();
+ //鏌ヨ閿�鍋� 閿�鍋囨椂闂翠笉鑳介噸鍙�
+ List<AdmAskLeaveOffDTO> admAskLeaveOffDTOMin = admAskLeaveOffDTOs.Where(x => x.StratTime < dateminkaoqin.AddDays(1) && x.EndTime > dateminkaoqin).OrderByDescending(x => x.Createtime).ToList();
+
+
+ //璇峰亣寮�濮嬫椂闂翠笂鐝椂闂�
+ DateTime StratTimeWorkingStart = dateminkaoqin.Date.AddHours(WorkingStarthour).AddMinutes(WorkingStartmin);
+
+ DateTime StratTimeWorkingEnd = dateminkaoqin.Date.AddHours(WorkingEndhour).AddMinutes(WorkingEndmin);
+
+ DateTime StratTimeOffworkStart = dateminkaoqin.Date.AddHours(OffworkStarthour).AddMinutes(OffworkStartmin);
+
+ DateTime StratTimeOffworkEnd = dateminkaoqin.Date.AddHours(OffworkEndhour).AddMinutes(OffworkEndmin);
+
+
+
+ //涓婄彮鏃堕棿
+
+ TimeSpan shangwu = StratTimeWorkingEnd.Subtract(StratTimeWorkingStart);
+
+ TimeSpan xiawu = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart);
+
+
+
+
+ int shangbanshijian = shangwu.Hours * 60 + shangwu.Minutes + xiawu.Hours * 60 + xiawu.Minutes;
+
+ decimal Shangwuchidaofenzhong = 0;
+ decimal Xiawuchidaofenzhong = 0;
+ decimal Shangwuzaotuifenzhong = 0;
+ decimal Xiawuzaotuifenzhong = 0;
+ decimal Kuanggongtianshu = 0;
+ decimal dangtianqingjia = 0;
+ decimal dangtianxiaojia = 0;
+ string Iswork = "D";
+ if (iswork)
+ {
+ Iswork = "A";
+ }
+ //鏄惁鏄伐浣滄棩
+ if (iswork)
+ {
+ //鍒ゆ柇鑰冨嫟鏃堕棿鐨勮繛缁��
+
+ //鍒ゆ柇鏃╀笂鏄惁杩熷埌,鍒ゆ柇鏃╀笂鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊
+ DateTime? starttime = null;
+ DateTime? endttime = null;
+ bool kuanggong = false;
+ List<DateBiJiaoDTO> dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
+ if (admSignInDTO != null && admSignInDTO.MorningIn.HasValue && admSignInDTO.MorningOut.HasValue)
+ {
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admSignInDTO.MorningIn;
+ dateBiJiaoDTO.EndTime = admSignInDTO.MorningOut;
+ dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+ }
+ foreach (var admAskLeave in admAskLeaveDTOMin)
+ {
+ if(admAskLeave.StratTime< StratTimeWorkingEnd)
+ {
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+ dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+ }
+
+ }
+
+ foreach (var admAskLeaveOff in admAskLeaveOffDTOMin)
+ {
+ if (admAskLeaveOff.StratTime < StratTimeWorkingEnd)
+ {
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+ dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+ }
+
+ }
+
+
+ dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
+ if (dateBiJiaoDTOs.Count == 0)
+ {
+ Kuanggong += new decimal(0.5);
+ Kuanggongtianshu += new decimal(0.5);
+ }
+ else
+ {
+ //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩�
+ for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
+ {
+ if (i == 0)
+ {
+ starttime = dateBiJiaoDTOs[i].StartTime;
+ endttime = dateBiJiaoDTOs[i].EndTime;
+ }
+ else
+ {
+ if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
+ {
+ kuanggong = true;
+ break;
+ }
+ else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+ {
+ endttime = dateBiJiaoDTOs[i].EndTime;
+ }
+ }
+ if (endttime>= StratTimeWorkingEnd)
+ {
+ break;
+ }
+ }
+ if (kuanggong)
+ {
+ Kuanggong += new decimal(0.5);
+ Kuanggongtianshu += new decimal(0.5);
+ }
+ else
+ {
+ decimal shangwukuanggong = 0;
+ if(starttime> StratTimeWorkingStart)
+ {
+ TimeSpan chidao = starttime.Value.Subtract(StratTimeWorkingStart);
+ if(chidao.Days>0 || ( chidao.Hours*60+ chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
+ {
+ if (shangwukuanggong == 0)
+ {
+ shangwukuanggong += new decimal(0.5);
+ Kuanggong += new decimal(0.5);
+ }
+
+ }
+ else
+ {
+ Chidao += 1;
+ Shangwuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
+ }
+ }
+ if(shangwukuanggong ==0 && endttime < StratTimeWorkingEnd)
+ {
+ TimeSpan zaotui = StratTimeWorkingEnd.Subtract(endttime.Value);
+ if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
+ {
+ if (shangwukuanggong == 0)
+ {
+ shangwukuanggong += new decimal(0.5);
+ Kuanggong += new decimal(0.5);
+ }
+
+ }
+ else
+ {
+ Zaotui += 1;
+ Shangwuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
+ }
+
+ }
+ Kuanggongtianshu += shangwukuanggong;
+ }
+ }
+
+
+
+ //鍒ゆ柇涓嬪崍鏄惁杩熷埌,鍒ゆ柇涓嬪崍鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊
+
+
+ starttime = null;
+ endttime = null;
+ kuanggong = false;
+ dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
+ if (admSignInDTO != null && admSignInDTO.AfternoonIn.HasValue && admSignInDTO.AfternoonOut.HasValue)
+ {
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admSignInDTO.AfternoonIn;
+ dateBiJiaoDTO.EndTime = admSignInDTO.AfternoonOut;
+ dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+ }
+ foreach (var admAskLeave in admAskLeaveDTOMin)
+ {
+ if (admAskLeave.EndTime > StratTimeOffworkStart)
+ {
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+ dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+ }
+
+ }
+ foreach (var admAskLeaveOff in admAskLeaveOffDTOMin)
+ {
+ if (admAskLeaveOff.EndTime > StratTimeOffworkStart)
+ {
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+ dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+ }
+
+ }
+
+ dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
+ if (dateBiJiaoDTOs.Count == 0)
+ {
+ Kuanggong += new decimal(0.5);
+ Kuanggongtianshu += new decimal(0.5);
+ }
+ else
+ {
+ //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩�
+ for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
+ {
+ if (i == 0)
+ {
+ starttime = dateBiJiaoDTOs[i].StartTime;
+ endttime = dateBiJiaoDTOs[i].EndTime;
+ }
+ else
+ {
+ if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
+ {
+ kuanggong = true;
+ break;
+ }
+ else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+ {
+ endttime = dateBiJiaoDTOs[i].EndTime;
+ }
+ }
+ if (endttime >= StratTimeOffworkEnd)
+ {
+ break;
+ }
+ }
+ if (kuanggong)
+ {
+ Kuanggong += new decimal(0.5);
+ Kuanggongtianshu += new decimal(0.5);
+ }
+ else
+ {
+ decimal xiawuwukuanggong = 0;
+ if (starttime > StratTimeOffworkStart)
+ {
+ TimeSpan chidao = starttime.Value.Subtract(StratTimeOffworkStart);
+ if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
+ {
+ if (xiawuwukuanggong == 0)
+ {
+ xiawuwukuanggong += new decimal(0.5);
+ Kuanggong += new decimal(0.5);
+ }
+
+ }
+ else
+ {
+ Chidao += 1;
+ Xiawuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
+ }
+ }
+ if (xiawuwukuanggong == 0 && endttime < StratTimeOffworkEnd)
+ {
+ TimeSpan zaotui = StratTimeOffworkEnd.Subtract(endttime.Value);
+ if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
+ {
+ if (xiawuwukuanggong == 0)
+ {
+ xiawuwukuanggong += new decimal(0.5);
+ Kuanggong += new decimal(0.5);
+ }
+
+ }
+ else
+ {
+ Zaotui += 1;
+ Xiawuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
+ }
+
+ }
+ Kuanggongtianshu += xiawuwukuanggong;
+ }
+ }
+
+
+ //璁$畻褰撳ぉ璇峰亣
+ List<DateBiJiaoDTO> qingjias = new List<DateBiJiaoDTO>();
+
+ var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4" && x.Lavetype != "7" && x.Lavetype != "3" && x.Lavetype != "9").ToList();
+ foreach (var admAskLeave in feichuqinjia)
+ {
+
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+ qingjias.Add(dateBiJiaoDTO);
+
+ }
+
+ var feichuqinxiaojia = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "2").ToList();
+ foreach (var admAskLeaveOff in feichuqinxiaojia)
+ {
+
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+ qingjias.Add(dateBiJiaoDTO);
+
+ }
+
+
+ foreach(var qingjia in qingjias)
+ {
+ if(qingjia.StartTime< StratTimeWorkingStart)
+ {
+ qingjia.StartTime = StratTimeWorkingStart;
+ }
+ if (qingjia.StartTime > StratTimeWorkingEnd && qingjia.StartTime < StratTimeOffworkStart)
+ {
+ qingjia.StartTime = StratTimeOffworkStart;
+ }
+
+
+ if (qingjia.EndTime > StratTimeWorkingEnd && qingjia.EndTime < StratTimeOffworkStart)
+ {
+ qingjia.EndTime = StratTimeWorkingEnd;
+ }
+
+
+ if (qingjia.EndTime > StratTimeOffworkEnd)
+ {
+ qingjia.EndTime = StratTimeOffworkEnd;
+ }
+ TimeSpan qingjiashiijan = qingjia.EndTime.Value.Subtract(qingjia.StartTime.Value);
+ if(qingjia.StartTime<= StratTimeWorkingEnd && qingjia.EndTime>= StratTimeOffworkStart)
+ {
+ TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd);
+ dangtianqingjia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes- wuxiushijian.Hours * 60- wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2);
+ }
+ else
+ {
+ dangtianqingjia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2);
+ }
+
+
+
+ }
+
+ Qingjia += dangtianqingjia;
+ //璁$畻褰撳ぉ鍑哄嫟澶╂暟
+ Shijichuqin += (1 - Kuanggongtianshu - dangtianqingjia);
+
+
+ //璁$畻閿�鍋囷紙鍑哄樊锛岃ˉ鍗★級
+ List<DateBiJiaoDTO> xiaojias = new List<DateBiJiaoDTO>();
+
+ var xiaojiala = admAskLeaveOffDTOMin.Where(x => x.Lavetype != "2").ToList();
+ foreach (var admAskLeaveOff in xiaojiala)
+ {
+
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+ xiaojias.Add(dateBiJiaoDTO);
+
+ }
+
+ foreach (var xiaojia in xiaojias)
+ {
+ if (xiaojia.StartTime < StratTimeWorkingStart)
+ {
+ xiaojia.StartTime = StratTimeWorkingStart;
+ }
+ if (xiaojia.StartTime > StratTimeWorkingEnd && xiaojia.StartTime < StratTimeOffworkStart)
+ {
+ xiaojia.StartTime = StratTimeOffworkStart;
+ }
+
+
+ if (xiaojia.EndTime > StratTimeWorkingEnd && xiaojia.EndTime < StratTimeOffworkStart)
+ {
+ xiaojia.EndTime = StratTimeWorkingEnd;
+ }
+
+
+ if (xiaojia.EndTime > StratTimeOffworkEnd)
+ {
+ xiaojia.EndTime = StratTimeOffworkEnd;
+ }
+ TimeSpan qingjiashiijan = xiaojia.EndTime.Value.Subtract(xiaojia.StartTime.Value);
+ if (xiaojia.StartTime <= StratTimeWorkingEnd && xiaojia.EndTime >= StratTimeOffworkStart)
+ {
+ TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd);
+ dangtianxiaojia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2);
+ }
+ else
+ {
+ dangtianxiaojia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2);
+ }
+
+
+
+ }
+
+ Xiaojia += dangtianxiaojia;
+
+
+
+ //璁$畻鍔犵彮鏃堕棿
+ if (admSignInDTO != null && admSignInDTO.OvertimeIn.HasValue && admSignInDTO.OvertimeOut.HasValue)
+ {
+ var admAskovertimeDTO = _askService.GetAskovertimeByUeridAndjiabantime(userList[a].Id, dateminkaoqin);
+ if(admAskovertimeDTO!=null&& !string.IsNullOrEmpty(admAskovertimeDTO.Id))
+ {
+ 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);
+ }
+
+
+
+ }
+ }
+ else
+ {
+ //鍒ゆ柇浠婂ぉ鏄惁鍏徃瑕佹眰鍔犵彮
+ var shifoujiaban = jiabanri.Exists(x => x.ValueStart <= dateminkaoqin && x.ValueEnd >= dateminkaoqin);
+ if (shifoujiaban)
+ {
+
+ //鍒ゆ柇鑰冨嫟鏃堕棿鐨勮繛缁��
+
+ //鍒ゆ柇鏃╀笂鏄惁杩熷埌,鍒ゆ柇鏃╀笂鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊
+ DateTime? starttime = null;
+ DateTime? endttime = null;
+ bool kuanggong = false;
+ List<DateBiJiaoDTO> dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
+ if (admSignInDTO != null && admSignInDTO.MorningIn.HasValue && admSignInDTO.MorningOut.HasValue)
+ {
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admSignInDTO.MorningIn;
+ dateBiJiaoDTO.EndTime = admSignInDTO.MorningOut;
+ dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+ }
+ foreach (var admAskLeave in admAskLeaveDTOMin)
+ {
+ if (admAskLeave.StratTime < StratTimeWorkingEnd)
+ {
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+ dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+ }
+
+ }
+
+ foreach (var admAskLeaveOff in admAskLeaveOffDTOMin)
+ {
+ if (admAskLeaveOff.StratTime < StratTimeWorkingEnd)
+ {
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+ dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+ }
+
+ }
+
+
+ dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
+ if (dateBiJiaoDTOs.Count == 0)
+ {
+ Kuanggong += new decimal(0.5);
+ Kuanggongtianshu += new decimal(0.5);
+ }
+ else
+ {
+ //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩�
+ for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
+ {
+ if (i == 0)
+ {
+ starttime = dateBiJiaoDTOs[i].StartTime;
+ endttime = dateBiJiaoDTOs[i].EndTime;
+ }
+ else
+ {
+ if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
+ {
+ kuanggong = true;
+ break;
+ }
+ else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+ {
+ endttime = dateBiJiaoDTOs[i].EndTime;
+ }
+ }
+ }
+ if (kuanggong)
+ {
+ Kuanggong += new decimal(0.5);
+ Kuanggongtianshu += new decimal(0.5);
+ }
+ else
+ {
+ decimal shangwukuanggong = 0;
+ if (starttime > StratTimeWorkingStart)
+ {
+ TimeSpan chidao = starttime.Value.Subtract(StratTimeWorkingStart);
+ if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
+ {
+ if (shangwukuanggong == 0)
+ {
+ shangwukuanggong += new decimal(0.5);
+ Kuanggong += new decimal(0.5);
+ }
+
+ }
+ else
+ {
+ Chidao += 1;
+ Shangwuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
+ }
+ }
+ if (shangwukuanggong == 0 && endttime < StratTimeWorkingEnd)
+ {
+ TimeSpan zaotui = StratTimeWorkingEnd.Subtract(endttime.Value);
+ if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
+ {
+ if (shangwukuanggong == 0)
+ {
+ shangwukuanggong += new decimal(0.5);
+ Kuanggong += new decimal(0.5);
+ }
+
+ }
+ else
+ {
+ Zaotui += 1;
+ Shangwuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
+ }
+
+ }
+ Kuanggongtianshu += shangwukuanggong;
+ }
+ }
+
+
+
+ //鍒ゆ柇涓嬪崍鏄惁杩熷埌,鍒ゆ柇涓嬪崍鏄惁鏃╅��锛屾棭閫�鐭垮伐澶勭悊
+
+
+ starttime = null;
+ endttime = null;
+ kuanggong = false;
+ dateBiJiaoDTOs = new List<DateBiJiaoDTO>();
+ if (admSignInDTO != null && admSignInDTO.AfternoonIn.HasValue && admSignInDTO.AfternoonOut.HasValue)
+ {
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admSignInDTO.AfternoonIn;
+ dateBiJiaoDTO.EndTime = admSignInDTO.AfternoonOut;
+ dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+ }
+ foreach (var admAskLeave in admAskLeaveDTOMin)
+ {
+ if (admAskLeave.EndTime > StratTimeOffworkStart)
+ {
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+ dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+ }
+
+ }
+ foreach (var admAskLeaveOff in admAskLeaveOffDTOMin)
+ {
+ if (admAskLeaveOff.EndTime > StratTimeOffworkStart)
+ {
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+ dateBiJiaoDTOs.Add(dateBiJiaoDTO);
+ }
+
+ }
+
+ dateBiJiaoDTOs = dateBiJiaoDTOs.OrderBy(x => x.StartTime).ToList();
+ if (dateBiJiaoDTOs.Count == 0)
+ {
+ Kuanggong += new decimal(0.5);
+ Kuanggongtianshu += new decimal(0.5);
+ }
+ else
+ {
+ //鍒ゆ柇涓婂崍鑰冨嫟鏃堕棿鏄惁鍏ㄨ鐩�
+ for (int i = 0; i < dateBiJiaoDTOs.Count; i++)
+ {
+ if (i == 0)
+ {
+ starttime = dateBiJiaoDTOs[i].StartTime;
+ endttime = dateBiJiaoDTOs[i].EndTime;
+ }
+ else
+ {
+ if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
+ {
+ kuanggong = true;
+ break;
+ }
+ else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+ {
+ endttime = dateBiJiaoDTOs[i].EndTime;
+ }
+ }
+ }
+ if (kuanggong)
+ {
+ Kuanggong += new decimal(0.5);
+ Kuanggongtianshu += new decimal(0.5);
+ }
+ else
+ {
+ decimal xiawuwukuanggong = 0;
+ if (starttime > StratTimeOffworkStart)
+ {
+ TimeSpan chidao = starttime.Value.Subtract(StratTimeOffworkStart);
+ if (chidao.Days > 0 || (chidao.Hours * 60 + chidao.Minutes) > admAttendanceRuleDTO.Absenteeism)
+ {
+ if (xiawuwukuanggong == 0)
+ {
+ xiawuwukuanggong += new decimal(0.5);
+ Kuanggong += new decimal(0.5);
+ }
+
+ }
+ else
+ {
+ Chidao += 1;
+ Xiawuchidaofenzhong = chidao.Hours * 60 + chidao.Minutes;
+ }
+ }
+ if (xiawuwukuanggong == 0 && endttime < StratTimeOffworkEnd)
+ {
+ TimeSpan zaotui = StratTimeOffworkEnd.Subtract(endttime.Value);
+ if (zaotui.Days > 0 || (zaotui.Hours * 60 + zaotui.Minutes) > admAttendanceRuleDTO.Absenteeism)
+ {
+ if (xiawuwukuanggong == 0)
+ {
+ xiawuwukuanggong += new decimal(0.5);
+ Kuanggong += new decimal(0.5);
+ }
+
+ }
+ else
+ {
+ Zaotui += 1;
+ Xiawuzaotuifenzhong = zaotui.Hours * 60 + zaotui.Minutes;
+ }
+
+ }
+ Kuanggongtianshu += xiawuwukuanggong;
+ }
+ }
+
+
+ //璁$畻褰撳ぉ璇峰亣
+ List<DateBiJiaoDTO> qingjias = new List<DateBiJiaoDTO>();
+
+ var feichuqinjia = admAskLeaveDTOMin.Where(x => x.Lavetype != "4" && x.Lavetype != "7" && x.Lavetype != "3" && x.Lavetype != "9").ToList();
+ foreach (var admAskLeave in feichuqinjia)
+ {
+
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+ qingjias.Add(dateBiJiaoDTO);
+
+ }
+
+ var feichuqinxiaojia = admAskLeaveOffDTOMin.Where(x => x.Lavetype == "2").ToList();
+ foreach (var admAskLeaveOff in feichuqinxiaojia)
+ {
+
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+ qingjias.Add(dateBiJiaoDTO);
+
+ }
+
+
+ foreach (var qingjia in qingjias)
+ {
+ if (qingjia.StartTime < StratTimeWorkingStart)
+ {
+ qingjia.StartTime = StratTimeWorkingStart;
+ }
+ if (qingjia.StartTime > StratTimeWorkingEnd && qingjia.StartTime < StratTimeOffworkStart)
+ {
+ qingjia.StartTime = StratTimeOffworkStart;
+ }
+
+
+ if (qingjia.EndTime > StratTimeWorkingEnd && qingjia.EndTime < StratTimeOffworkStart)
+ {
+ qingjia.EndTime = StratTimeWorkingEnd;
+ }
+
+
+ if (qingjia.EndTime > StratTimeOffworkEnd)
+ {
+ qingjia.EndTime = StratTimeOffworkEnd;
+ }
+ TimeSpan qingjiashiijan = qingjia.EndTime.Value.Subtract(qingjia.StartTime.Value);
+ if (qingjia.StartTime <= StratTimeWorkingEnd && qingjia.EndTime >= StratTimeOffworkStart)
+ {
+ TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd);
+ dangtianqingjia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2);
+ }
+ else
+ {
+ dangtianqingjia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2);
+ }
+
+
+
+ }
+
+ Qingjia += dangtianqingjia;
+ //璁$畻褰撳ぉ鍑哄嫟澶╂暟
+ Jiaban += (1 - Kuanggongtianshu - dangtianqingjia);
+
+
+ //璁$畻閿�鍋囷紙鍑哄樊锛岃ˉ鍗★級
+ List<DateBiJiaoDTO> xiaojias = new List<DateBiJiaoDTO>();
+
+ var xiaojiala = admAskLeaveOffDTOMin.Where(x => x.Lavetype != "2").ToList();
+ foreach (var admAskLeaveOff in xiaojiala)
+ {
+
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeaveOff.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeaveOff.EndTime;
+ xiaojias.Add(dateBiJiaoDTO);
+
+ }
+
+ foreach (var xiaojia in xiaojias)
+ {
+ if (xiaojia.StartTime < StratTimeWorkingStart)
+ {
+ xiaojia.StartTime = StratTimeWorkingStart;
+ }
+ if (xiaojia.StartTime > StratTimeWorkingEnd && xiaojia.StartTime < StratTimeOffworkStart)
+ {
+ xiaojia.StartTime = StratTimeOffworkStart;
+ }
+
+
+ if (xiaojia.EndTime > StratTimeWorkingEnd && xiaojia.EndTime < StratTimeOffworkStart)
+ {
+ xiaojia.EndTime = StratTimeWorkingEnd;
+ }
+
+
+ if (xiaojia.EndTime > StratTimeOffworkEnd)
+ {
+ xiaojia.EndTime = StratTimeOffworkEnd;
+ }
+ TimeSpan qingjiashiijan = xiaojia.EndTime.Value.Subtract(xiaojia.StartTime.Value);
+ if (xiaojia.StartTime <= StratTimeWorkingEnd && xiaojia.EndTime >= StratTimeOffworkStart)
+ {
+ TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd);
+ dangtianxiaojia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2);
+ }
+ else
+ {
+ dangtianxiaojia += Math.Round(((decimal)(qingjiashiijan.Hours * 60 + qingjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2);
+ }
+
+
+
+ }
+
+ Xiaojia += dangtianxiaojia;
+ }
+
+
+
+
+ //鍔犵彮
+ //璁$畻鍔犵彮鏃堕棿
+ if (admSignInDTO != null && admSignInDTO.OvertimeIn.HasValue && admSignInDTO.OvertimeOut.HasValue)
+ {
+ var admAskovertimeDTO = _askService.GetAskovertimeByUeridAndjiabantime(userList[a].Id, dateminkaoqin);
+ if (admAskovertimeDTO != null && !string.IsNullOrEmpty(admAskovertimeDTO.Id))
+ {
+ //濡傛灉褰撳ぉ鏄叕鍙歌姹傚姞鐝�,鍒欒嚜宸辩敵璇风殑鍔犵彮浠庝笅鐝紑濮嬬畻
+ DateTime overdate = admSignInDTO.OvertimeIn.Value;
+ if (shifoujiaban && admSignInDTO.OvertimeIn.Value < StratTimeOffworkEnd)
+ {
+ overdate = StratTimeOffworkEnd;
+ }
+ TimeSpan jiaban = admSignInDTO.OvertimeOut.Value.Subtract(overdate);
+ decimal jiabanshijian = jiaban.Hours;
+ if (new decimal(jiaban.Hours) > admAskovertimeDTO.Overtime.Value)
+ {
+ jiabanshijian = admAskovertimeDTO.Overtime.Value;
+ }
+ if (jiabanshijian > new decimal(shangbanshijian) / 60)
+ {
+ jiabanshijian = new decimal(shangbanshijian) / 60;
+ }
+ Jiaban += Math.Round(jiabanshijian * 60 / shangbanshijian, 2);
+ }
+ }
+
+
+ }
+
+
+
+
+
+ //鎻掑叆鑰冨嫟鏄庣粏琛�
+ AdmAttendanceDtlDTO admAttendanceDtlDTO = _admAttendanceDtlService.GetByUserAndDate(admAttendanceDTO.Id, dateminkaoqin);
+
+ if (admAttendanceDtlDTO == null)
+ {
+ admAttendanceDtlDTO = new AdmAttendanceDtlDTO();
+ admAttendanceDtlDTO.AttendanceId = admAttendanceDTO.Id;
+ admAttendanceDtlDTO.SgninDate = dateminkaoqin;
+ admAttendanceDtlDTO.MorningIn = admSignInDTO.MorningIn;
+ admAttendanceDtlDTO.MorningOut = admSignInDTO.MorningOut;
+ admAttendanceDtlDTO.AfternoonIn = admSignInDTO.AfternoonIn;
+ admAttendanceDtlDTO.AfternoonOut = admSignInDTO.AfternoonOut;
+ admAttendanceDtlDTO.OvertimeIn = admSignInDTO.OvertimeIn;
+ admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut;
+ admAttendanceDtlDTO.Qingjia = dangtianqingjia;
+ admAttendanceDtlDTO.Xiaojia = dangtianxiaojia;
+
+
+
+
+
+ admAttendanceDtlDTO.RecStatus = "A";
+ admAttendanceDtlDTO.Creater = "1";
+ admAttendanceDtlDTO.Modifier = "1";
+ admAttendanceDtlDTO.Createtime = DateTime.Now;
+ admAttendanceDtlDTO.Modifytime = admAttendanceDTO.Createtime;
+
+ admAttendanceDtlDTO.Shangwuchidaofenzhong = Shangwuchidaofenzhong;
+ admAttendanceDtlDTO.Xiawuchidaofenzhong = Xiawuchidaofenzhong;
+ admAttendanceDtlDTO.Shangwuzaotuifenzhong = Shangwuzaotuifenzhong;
+ admAttendanceDtlDTO.Xiawuzaotuifenzhong = Xiawuzaotuifenzhong;
+ admAttendanceDtlDTO.Kuanggongtianshu = Kuanggongtianshu;
+ admAttendanceDtlDTO.Iswork = Iswork;
+
+
+ resultEntity = _admAttendanceDtlService.save(admAttendanceDtlDTO);
+ if (resultEntity.Result == false)
+ {
+ throw new Exception("璁$畻澶辫触");
+ }
+ }
+ else
+ {
+ admAttendanceDtlDTO.AttendanceId = admAttendanceDTO.Id;
+ admAttendanceDtlDTO.SgninDate = dateminkaoqin;
+ admAttendanceDtlDTO.MorningIn = admSignInDTO.MorningIn;
+ admAttendanceDtlDTO.MorningOut = admSignInDTO.MorningOut;
+ admAttendanceDtlDTO.AfternoonIn = admSignInDTO.AfternoonIn;
+ admAttendanceDtlDTO.AfternoonOut = admSignInDTO.AfternoonOut;
+ admAttendanceDtlDTO.OvertimeIn = admSignInDTO.OvertimeIn;
+ admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut;
+ admAttendanceDtlDTO.Qingjia = dangtianqingjia;
+ admAttendanceDtlDTO.Xiaojia = dangtianxiaojia;
+
+
+ admAttendanceDtlDTO.RecStatus = "A";
+ admAttendanceDtlDTO.Creater = "1";
+ admAttendanceDtlDTO.Modifier = "1";
+ admAttendanceDtlDTO.Createtime = DateTime.Now;
+ admAttendanceDtlDTO.Modifytime = admAttendanceDTO.Createtime;
+
+ admAttendanceDtlDTO.Shangwuchidaofenzhong = Shangwuchidaofenzhong;
+ admAttendanceDtlDTO.Xiawuchidaofenzhong = Xiawuchidaofenzhong;
+ admAttendanceDtlDTO.Shangwuzaotuifenzhong = Shangwuzaotuifenzhong;
+ admAttendanceDtlDTO.Xiawuzaotuifenzhong = Xiawuzaotuifenzhong;
+ admAttendanceDtlDTO.Kuanggongtianshu = Kuanggongtianshu;
+ admAttendanceDtlDTO.Iswork = Iswork;
+
+ resultEntity = _admAttendanceDtlService.save(admAttendanceDtlDTO);
+ if (resultEntity.Result == false)
+ {
+ throw new Exception("璁$畻澶辫触");
+ }
+ }
+
+ dateminkaoqin = dateminkaoqin.AddDays(1);
+ }
+
+ if(Shijichuqin< Yingchuqin)
+ {
+ if((Yingchuqin -Shijichuqin)< Jiaban)
+ {
+ Jiaban = Jiaban - (Yingchuqin - Shijichuqin);
+ Shijichuqin = Yingchuqin;
+ }
+ else
+ {
+ Shijichuqin += Jiaban;
+ Jiaban = 0;
+ }
+ }
+
+ admAttendanceDTO.Yingchuqin = Yingchuqin;
+ admAttendanceDTO.Offdays = Offdays;
+ admAttendanceDTO.Shijichuqin = Shijichuqin;
+ admAttendanceDTO.Jiaban = Jiaban;
+
+
+ admAttendanceDTO.Zaotui = Zaotui;
+ admAttendanceDTO.Kuanggong = Kuanggong;
+
+
+ admAttendanceDTO.Qingjia = Qingjia;
+ admAttendanceDTO.Xiaojia = Xiaojia;
+ admAttendanceDTO.Chidao = Chidao;
+ admAttendanceDTO.Islock = "A";
+ resultEntity = _admAttendanceService.save(admAttendanceDTO);
+ if (resultEntity.Result == false)
+ {
+ throw new Exception("璁$畻澶辫触");
+ }
+ }
+
+ }
+
+
+
+ //璁$畻宸ヨ祫
+ 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(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();
+ List<SimBindView> simBindViews = _simService.GetBindSim().Where(x=>x.simstatus == "A").ToList();
+ AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get("");
+
+ //姣忓ぉ鐨勮�冨嫟鏃堕棿鐐�
+ string[] WorkingStart = admAttendanceRuleDTO.WorkingStart.Split('.');
+ int WorkingStarthour = int.Parse(WorkingStart[0]);
+ int WorkingStartmin = int.Parse(WorkingStart[1]);
+
+ string[] WorkingEnd = admAttendanceRuleDTO.WorkingEnd.Split('.');
+ int WorkingEndhour = int.Parse(WorkingEnd[0]);
+ int WorkingEndmin = int.Parse(WorkingEnd[1]);
+
+ string[] OffworkStart = admAttendanceRuleDTO.OffworkStart.Split('.');
+ int OffworkStarthour = int.Parse(OffworkStart[0]);
+ int OffworkStartmin = int.Parse(OffworkStart[1]);
+
+ string[] OffworkEnd = admAttendanceRuleDTO.OffworkEnd.Split('.');
+ int OffworkEndhour = int.Parse(OffworkEnd[0]);
+ int OffworkEndmin = int.Parse(OffworkEnd[1]);
+
+ List<FiPiecerateDTO> fiPiecerateDTOs = _fiPiecerateService.GetList();
+ List<HrJixiaotichengDTO> hrJixiaotichengDTOs = _hrJixiaotichengService.GetList().Where(x => x.Effecttime < datemaxkaoqin).ToList();
+
+ for (int i = 0; i < userList.Count; i++)
+ {
+ _logger.LogInformation("寮�濮嬭绠�" + userList[i].UserName + "宸ヨ祫");
+ HrSalaryDTO hrSalaryDTO = _hrSalaryService.GetListByUser(userList[i].Id, dateminkaoqin.Year, dateminkaoqin.Month);
+ if (hrSalaryDTO == null)
+ {
+ hrSalaryDTO = new HrSalaryDTO();
+ hrSalaryDTO.Userid = userList[i].Id;
+ hrSalaryDTO.Year = dateminkaoqin.Year;
+ hrSalaryDTO.Month = dateminkaoqin.Month;
+ }
+ //鏌ヨ褰撴湀鑰冨嫟
+ AdmAttendanceDTO admAttendanceDTO = _admAttendanceService.GetByUserAndDate(userList[i].Id, dateminkaoqin.Year, dateminkaoqin.Month);
+ if (admAttendanceDTO == null)
+ {
+ _logger.LogInformation( userList[i].UserName + ":" + dateminkaoqin.Year+"骞�"+ dateminkaoqin.Month + "鏈堟病鏈夋煡璇㈠埌鑰冨嫟");
+ continue;
+ }
+ AdmAttendanceDtlDTOSearch searchEntity = new AdmAttendanceDtlDTOSearch();
+ 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);
+ //鏄惁鍦ㄨ瘯鐢ㄦ湡
+ decimal geshuiqizheng = 5000;
+ if (userList[i].geshuiqizheng.HasValue)
+ {
+ geshuiqizheng = userList[i].geshuiqizheng.Value;
+ }
+ 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)
+ {
+ _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))
+ {
+
+ foreach (var admAttendanceDtlDTO in admAttendanceDtlDTOs)
+ {
+ if (admAttendanceDtlDTO.SgninDate <= userList[i].ShiyongDateEnd.Value && admAttendanceDtlDTO.Iswork == "A")
+ {
+ shiyongqichuqintianshu += (1 - admAttendanceDtlDTO.Qingjia - admAttendanceDtlDTO.Kuanggongtianshu);
+ if (admAttendanceDtlDTO.Kuanggongtianshu > 0)
+ {
+ var queqingkoukuan = Math.Round(userList[i].ShiyongPrice.Value / jiabangongzibiaozhun * admAttendanceDtlDTO.Kuanggongtianshu * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2);
+ if (queqingkoukuan > 0)
+ {
+ hrSalaryDTO.Queqin += queqingkoukuan;
+ }
+ }
+ }
+ }
+
+
+
+
+ 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
+ {
+ if (admAttendanceDTO.Kuanggong > 0)
+ {
+ var queqingkoukuan = Math.Round(userList[i].ShiyongPrice.Value / jiabangongzibiaozhun * admAttendanceDTO.Kuanggong * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2);
+ if (queqingkoukuan > 0)
+ {
+ hrSalaryDTO.Queqin += queqingkoukuan;
+ }
+ }
+ hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * userList[i].ShiyongPrice.Value, 2);
+
+ //宸ヤ綔璇勪环涓嶅悎鏍肩綒娆�
+ hrSalaryDTO.Fakuan += Math.Round(userList[i].ShiyongPrice.Value * admEvaluateDTOs.Count / admAttendanceDTO.Yingchuqin, 2);
+ }
+
+
+
+
+ hrSalaryDTO.Gongzuobutie += Math.Round( (userList[i].ShiyongPrice.Value - hrJibengongzi.Baomifei.Value- hrJibengongzi.Jibengongzi.Value ) * shiyongqichuqinlv, 2);
+
+
+
+
+
+
+
+
+ }
+ else
+ {
+ //宸ヤ綔璇勪环缃氭
+ hrSalaryDTO.Fakuan += Math.Round(BasicPrice * admEvaluateDTOs.Count/ admAttendanceDTO.Yingchuqin , 2);
+ }
+
+
+ if(true)
+ {
+ //杞鍚庣殑鍑哄嫟鐜�
+ 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))
+ {
+ //decimal zhuanzhengchuqintianshu = 0;
+ foreach (var admAttendanceDtlDTO in admAttendanceDtlDTOs)
+ {
+ if (admAttendanceDtlDTO.SgninDate > userList[i].ShiyongDateEnd.Value && admAttendanceDtlDTO.Iswork == "A")
+ {
+ //zhuanzhengchuqintianshu += (1 - admAttendanceDtlDTO.Qingjia - admAttendanceDtlDTO.Kuanggongtianshu);
+ if (admAttendanceDtlDTO.Kuanggongtianshu > 0)
+ {
+ var queqingkoukuan = Math.Round(BasicPrice / jiabangongzibiaozhun * admAttendanceDtlDTO.Kuanggongtianshu * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2);
+ if (queqingkoukuan > 0)
+ {
+ hrSalaryDTO.Queqin += queqingkoukuan;
+ }
+ }
+
+ }
+
+
+ }
+ //decimal zhuanzhengchuqintianshu = admAttendanceDTO.Shijichuqin - shiyongqichuqintianshu;
+ //zhuanzhengchuqinlv = Math.Round(zhuanzhengchuqintianshu / admAttendanceDTO.Yingchuqin, 4);
+
+ if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && dateminkaoqin >= userList[i].ShiyongDate.Value && dateminkaoqin <= userList[i].ShiyongDateEnd.Value)
+ {
+ if(userList[i].ShiyongDateEnd.Value < datemaxkaoqin.AddDays(-1))
+ {
+ hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * BasicPrice, 2);
+ }
+
+ }
+ else
+ {
+ hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * BasicPrice, 2);
+ }
+ }
+ else
+ {
+ //鐭垮伐鎵i挶
+ if (admAttendanceDTO.Kuanggong > 0)
+ {
+ var queqingkoukuan = Math.Round(BasicPrice / jiabangongzibiaozhun * admAttendanceDTO.Kuanggong * (admAttendanceRuleDTO.AbsenteeismPayment1 - 1), 2);
+ if (queqingkoukuan > 0)
+ {
+ hrSalaryDTO.Queqin += queqingkoukuan;
+ }
+ }
+ hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * BasicPrice, 2);
+ }
+
+
+
+ hrSalaryDTO.Gongzuobutie += Math.Round((BasicPrice - hrJibengongzi.Baomifei.Value - hrJibengongzi.Jibengongzi.Value) * zhuanzhengchuqinlv, 2);
+
+
+
+
+
+
+ }
+
+ //杩熷埌鏃╅��鎵i挶
+ //AdmAttendanceDtlDTOSearch searchEntity = new AdmAttendanceDtlDTOSearch();
+ //searchEntity.AttendanceId = admAttendanceDTO.Id;
+ //List<AdmAttendanceDtlDTO> admAttendanceDtlDTOs = _admAttendanceDtlService.GetList(searchEntity).OrderBy(x => x.SgninDate).ToList();
+ if (admAttendanceDtlDTOs.Count > 0)
+ {
+ for (int j = 0; j < admAttendanceDtlDTOs.Count; j++)
+ {
+ if (admAttendanceDtlDTOs[j].Shangwuchidaofenzhong > 0)
+ {
+ if (admAttendanceDtlDTOs[j].Shangwuchidaofenzhong < 15)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment1;
+ }
+ else if (admAttendanceDtlDTOs[j].Shangwuchidaofenzhong < 30)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment2;
+ }
+ else if (admAttendanceDtlDTOs[j].Shangwuchidaofenzhong < 60)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment3;
+ }
+ else if (admAttendanceDtlDTOs[j].Shangwuchidaofenzhong < 120)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment3;
+ }
+
+ }
+ if (admAttendanceDtlDTOs[j].Shangwuzaotuifenzhong > 0)
+ {
+ if (admAttendanceDtlDTOs[j].Shangwuzaotuifenzhong < 15)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment1;
+ }
+ else if (admAttendanceDtlDTOs[j].Shangwuzaotuifenzhong < 30)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment2;
+ }
+ else if (admAttendanceDtlDTOs[j].Shangwuzaotuifenzhong < 60)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment3;
+ }
+ else if (admAttendanceDtlDTOs[j].Shangwuzaotuifenzhong < 120)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment3;
+ }
+
+ }
+ if (admAttendanceDtlDTOs[j].Xiawuchidaofenzhong > 0)
+ {
+ if (admAttendanceDtlDTOs[j].Xiawuchidaofenzhong < 15)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment1;
+ }
+ else if (admAttendanceDtlDTOs[j].Xiawuchidaofenzhong < 30)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment2;
+ }
+ else if (admAttendanceDtlDTOs[j].Xiawuchidaofenzhong < 60)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment3;
+ }
+ else if (admAttendanceDtlDTOs[j].Xiawuchidaofenzhong < 120)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment3;
+ }
+
+ }
+ if (admAttendanceDtlDTOs[j].Xiawuzaotuifenzhong > 0)
+ {
+ if (admAttendanceDtlDTOs[j].Xiawuzaotuifenzhong < 15)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment1;
+ }
+ else if (admAttendanceDtlDTOs[j].Xiawuzaotuifenzhong < 30)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment2;
+ }
+ else if (admAttendanceDtlDTOs[j].Xiawuzaotuifenzhong < 60)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment3;
+ }
+ else if (admAttendanceDtlDTOs[j].Xiawuzaotuifenzhong < 120)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.LatePayment3;
+ }
+
+ }
+
+ }
+ }
+ //鐥呭亣浜嬪亣鎵i挶
+ List<AdmAskLeaveDTO> admAskLeaveDTOs = _signinService.GetAskLeaveByUserId(userList[i].Id).Where(x => x.Lavetype == "1" && ( (x.StratTime >= dateminkaoqin && x.StratTime < datemaxkaoqin) || (x.EndTime >= dateminkaoqin && x.EndTime < datemaxkaoqin) || (x.EndTime >= datemaxkaoqin && x.StratTime < dateminkaoqin) )).OrderByDescending(x => x.Createtime).ToList();
+
+ if(admAskLeaveDTOs!=null && admAskLeaveDTOs.Count > 0)
+ {
+ foreach(var admAskLeaveDTO in admAskLeaveDTOs)
+ {
+ DateTime? AskLeavestart = null;
+ DateTime? AskLeaveend = null;
+ if(admAskLeaveDTO.StratTime< dateminkaoqin)
+ {
+ AskLeavestart = dateminkaoqin.AddHours(WorkingStarthour).AddMinutes(WorkingStartmin);
+ }
+ else
+ {
+ AskLeavestart = admAskLeaveDTO.StratTime;
+ }
+
+ if (admAskLeaveDTO.EndTime >= datemaxkaoqin)
+ {
+ AskLeaveend = dateminkaoqin.AddDays(-1).AddHours(OffworkEndhour).AddMinutes(OffworkEndmin);
+ }
+ else
+ {
+ AskLeaveend = admAskLeaveDTO.EndTime;
+ }
+ AdmAskLeaveDTO admAskLeaveDTO1 = jisianChecktime(AskLeavestart.Value, AskLeaveend.Value);
+ if (admAskLeaveDTO1.LaveDay.Value > 0 || admAskLeaveDTO1.LavehHour > 0)
+ {
+ if (admAskLeaveDTO1.LaveDay.Value >= 1)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.PersonalPayment4;
+ }
+ else if (admAskLeaveDTO1.LaveDay.Value ==0 && admAskLeaveDTO1.LavehHour >2)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.PersonalPayment3;
+ }
+ else if (admAskLeaveDTO1.LaveDay.Value == 0 && admAskLeaveDTO1.LavehHour > 1)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.PersonalPayment2;
+ }
+ else if (admAskLeaveDTO1.LaveDay.Value == 0 && admAskLeaveDTO1.LavehHour ==1)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.PersonalPayment1;
+ }
+ }
+
+
+ }
+ }
+
+
+
+ List<AdmAskLeaveOffDTO> admAskLeaveOffDTOs = _signinService.GetAskLeaveOffByUserId(userList[i].Id).Where(x => x.Lavetype == "2" && ((x.StratTime >= dateminkaoqin && x.StratTime < datemaxkaoqin) || (x.EndTime >= dateminkaoqin && x.EndTime < datemaxkaoqin) || (x.EndTime >= datemaxkaoqin && x.StratTime < dateminkaoqin) ) ).OrderByDescending(x => x.Createtime).ToList();
+ if (admAskLeaveOffDTOs != null && admAskLeaveOffDTOs.Count > 0)
+ {
+ foreach (var admAskLeaveOffDTO in admAskLeaveOffDTOs)
+ {
+ DateTime? AskLeavestart = null;
+ DateTime? AskLeaveend = null;
+ if (admAskLeaveOffDTO.StratTime < dateminkaoqin)
+ {
+ AskLeavestart = dateminkaoqin.AddHours(WorkingStarthour).AddMinutes(WorkingStartmin);
+ }
+ else
+ {
+ AskLeavestart = admAskLeaveOffDTO.StratTime;
+ }
+
+ if (admAskLeaveOffDTO.EndTime >= datemaxkaoqin)
+ {
+ AskLeaveend = dateminkaoqin.AddDays(-1).AddHours(OffworkEndhour).AddMinutes(OffworkEndmin);
+ }
+ else
+ {
+ AskLeaveend = admAskLeaveOffDTO.EndTime;
+ }
+ AdmAskLeaveDTO admAskLeaveDTO1 = jisianChecktime(AskLeavestart.Value, AskLeaveend.Value);
+ if (admAskLeaveDTO1.LaveDay.Value > 0 || admAskLeaveDTO1.LavehHour > 0)
+ {
+ if (admAskLeaveDTO1.LaveDay.Value >= 1)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.SickPayment4;
+ }
+ else if (admAskLeaveDTO1.LaveDay.Value == 0 && admAskLeaveDTO1.LavehHour > 2)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.SickPayment3;
+ }
+ else if (admAskLeaveDTO1.LaveDay.Value == 0 && admAskLeaveDTO1.LavehHour > 1)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.SickPayment2;
+ }
+ else if (admAskLeaveDTO1.LaveDay.Value == 0 && admAskLeaveDTO1.LavehHour == 1)
+ {
+ hrSalaryDTO.Queqin += admAttendanceRuleDTO.SickPayment1;
+ }
+ }
+
+
+ }
+ }
+
+
+
+
+
+ if(userList[i].IsGmsb != "D" && userList[i].Shebaodate.HasValue && userList[i].Shebaodate.Value < datemaxkaoqin)
+ {
+ hrSalaryDTO.Shebao = Shebaodanwei;
+ hrSalaryDTO.Shebaokou = Shebaodanwei + Shebaogeren;
+ }
+ else
+ {
+ hrSalaryDTO.Shebao = 0;
+ hrSalaryDTO.Shebaokou = 0;
+ }
+
+
+
+
+
+ var simBind = simBindViews.Where(x => x.userid == userList[i].Id).FirstOrDefault();
+ if (simBind != null)
+ {
+ decimal cardpro = 0;
+ decimal.TryParse(simBind.cardpro, out cardpro);
+ hrSalaryDTO.Dianhuabutie = cardpro;
+ }
+ var SimCost = _simService.GetSimCost(userList[i].Id, dateminkaoqin.Year, dateminkaoqin.Month);
+ if (SimCost != null)
+ {
+ hrSalaryDTO.Dianhuafei = SimCost.bill_amount;
+ }
+
+ if(admAttendanceDTO.Shijichuqin>=admAttendanceDTO.Yingchuqin
+ && hrSalaryDTO.Queqin <=0)
+ {
+ hrSalaryDTO.Quanqinjiang = hrJibengongzi.Quanqingjiang;
+ }
+ else
+ {
+ hrSalaryDTO.Quanqinjiang = 0;
+ }
+
+
+ if ("A".Equals(userList[i].Istravelsubsidy))
+ {
+ hrSalaryDTO.Jiaotngbutie = hrJibengongzi.Jiaotongbutie;
+ }
+ //hrSalaryDTO.Jiangjin
+ //hrSalaryDTO.Bufagongzi
+ //hrSalaryDTO.Peichang
+
+
+
+
+ //宸ヤ綔瀹夋帓缃氭
+ List<AdmMemoBookDTO> admMemoBookDTOs = _DailyManageService.GetRemindsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin,"2");
+ if (admMemoBookDTOs.Count > 0)
+ {
+ for(int j=0; j< admMemoBookDTOs.Count; j++)
+ {
+ decimal fakuanshumu = 0;
+ if (decimal.TryParse(admMemoBookDTOs[j].ZhuiZe, out fakuanshumu))
+ {
+ hrSalaryDTO.Fakuan += fakuanshumu;
+ }
+ }
+ }
+ //杩濈邯澶勭悊缃氭
+ List<AdmBreakPrecedentDTO> admBreakPrecedentDTOs = _admBreakPrecedentService.GetList(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+ if (admBreakPrecedentDTOs.Count > 0)
+ {
+ for (int j = 0; j < admBreakPrecedentDTOs.Count; j++)
+ {
+
+ if (admBreakPrecedentDTOs[j].Chufajine.HasValue)
+ {
+ hrSalaryDTO.Fakuan += admBreakPrecedentDTOs[j].Chufajine.Value; ;
+ }
+ }
+ }
+
+ hrSalaryDTO.Jiucuo = 0;
+
+ //璁$畻缁╂晥鎻愭垚
+ hrSalaryDTO.Jixiaoticheng = 0;
+
+ var hrJixiaotichengThis = hrJixiaotichengDTOs.Where(x => x.PostId == userList[i].HrPosition).ToList();
+
+ if( hrJixiaotichengThis!=null&& hrJixiaotichengThis.Count > 0)
+ {
+ //var feijijiandengji = fiPiecerateDTOs.Where(x => x.Standard == "A");
+ //var jijiandengji = fiPiecerateDTOs.Where(x => x.Standard == "A");
+
+ #region 閲囪喘椤圭洰褰曞叆
+
+ var projectDTOsyue = _projectService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+ if (projectDTOsyue!=null && projectDTOsyue.Count > 0 )
+ {
+ var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "閲囪喘椤圭洰褰曞叆").FirstOrDefault();
+ if (jijianidddd != null)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = projectDTOsyue.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = projectDTOsyue.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+ #endregion
+
+ #region 瀹㈡埛璧勬枡褰曞叆
+
+ var _intentionCustomerDTOs = _intentionCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+ if (_intentionCustomerDTOs!=null && _intentionCustomerDTOs.Count > 0)
+ {
+ var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "瀹㈡埛璧勬枡褰曞叆").FirstOrDefault();
+ if (jijianidddd != null)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = _intentionCustomerDTOs.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = _intentionCustomerDTOs.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ }
+ }
+ }
+
+
+
+ #endregion
+
+ #region 鏂板姞缇ょ粍
+
+ var groupTopicDTOs = _groupTopicService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+ if (groupTopicDTOs != null && groupTopicDTOs.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 = groupTopicDTOs.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 = groupTopicDTOs.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+ #endregion
+
+ #region 鐢佃瘽鎺ㄥ箍
+
+ var intentionVisitDTOs = _intentionVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.VisType == "01").ToList();
+ if (intentionVisitDTOs != null && intentionVisitDTOs.Count > 0)
+ {
+ var jijianidddd = fiPiecerateDTOs.Where(x => x.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 = intentionVisitDTOs.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 = intentionVisitDTOs.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+ #endregion
+
+ #region 缇ゅ彂鐭俊
+
+ var duanxinsyue = _cusFangwenjiluService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.Fasongfangshi == "01").ToList();
+ if (duanxinsyue != null && duanxinsyue.Count > 0)
+ {
+ var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "缇ゅ彂鐭俊").FirstOrDefault();
+ if (jijianidddd != null)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = duanxinsyue.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = duanxinsyue.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+ #endregion
+
+ #region 缇ゅ彂閭欢
+
+ var youjiansyue = _cusFangwenjiluService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.Fasongfangshi == "02").ToList();
+ if (youjiansyue != null && youjiansyue.Count > 0)
+ {
+ var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "缇ゅ彂閭欢").FirstOrDefault();
+ if (jijianidddd != null)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = youjiansyue.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = youjiansyue.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+ #endregion
+
+ #region 鏂板鎰忓悜瀹㈡埛锛堣鍗曪級
+
+ var yixiangsyue = _intentionCustomerService.GetListsalaryyixiang(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+ if (yixiangsyue != null && yixiangsyue.Count > 0)
+ {
+ var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "鏂板鎰忓悜瀹㈡埛锛堣鍗曪級").FirstOrDefault();
+ if (jijianidddd != null)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = yixiangsyue.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = yixiangsyue.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+ #endregion
+
+
+ #region 鏂板娉ㄥ唽浼氬憳
+
+ //鏈湀鏁伴噺
+ List<YaoQingYongHuDTO> zhucehuiyuansyue = new List<YaoQingYongHuDTO>();
+ try
+ {
+ //var pltUserDTO = _userService.GetPltUserEntity(userList[i].Id);
+ string huiyuanurl = _configuration.GetSection("huiyuanurl").Value;
+ string GetYGYaoQingYonghu = _configuration.GetSection("GetYGYaoQingYonghu").Value;
+ Uri postUrl2 = new Uri(huiyuanurl + GetYGYaoQingYonghu);
+
+ JObject questions2 = new JObject();
+ questions2.Add("UserID", userList[i].Id);
+ questions2.Add("StartTime", dateminkaoqin.ToString("yyyy-MM-dd HH:mm:ss"));
+ questions2.Add("EndTime", datemaxkaoqin.ToString("yyyy-MM-dd HH:mm:ss"));
+
+ string requestJson2 = questions2.ToString();
+ string result2 = string.Empty;
+
+ using (HttpContent httpContent = new StringContent(requestJson2))
+ {
+ httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
+
+ var httpClient2 = _clientFactory.CreateClient();
+ httpClient2.Timeout = new TimeSpan(0, 0, 10);
+ var Result2 = await httpClient2.PostAsync(postUrl2, httpContent);
+ result2 = Result2.Content.ReadAsStringAsync().Result;
+ }
+
+ _logger.LogInformation("result2:" + result2);
+ JObject jobjectresult = (JObject)JsonConvert.DeserializeObject(result2);
+
+ if (jobjectresult["code"] != null && jobjectresult["code"].ToString() == "1")
+ {
+
+ zhucehuiyuansyue = JsonConvert.DeserializeObject<List<YaoQingYongHuDTO>>(jobjectresult["data"].ToString());
+
+ }
+
+ }
+ catch (Exception ex)
+ {
+
+ }
+
+
+ //var qianyueDTOsyue = _cooperatecustomCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+ if (zhucehuiyuansyue != null && zhucehuiyuansyue.Count > 0)
+ {
+ var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "鏂板娉ㄥ唽浼氬憳").FirstOrDefault();
+ if (jijianidddd != null)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = zhucehuiyuansyue.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = zhucehuiyuansyue.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+ #endregion
+
+
+ #region 鏂板绛剧害瀹㈡埛
+
+ var qianyueDTOsyue = _cooperatecustomCustomerService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+ if (qianyueDTOsyue != null && qianyueDTOsyue.Count > 0)
+ {
+ var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "鏂板绛剧害瀹㈡埛").FirstOrDefault();
+ if (jijianidddd != null)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = qianyueDTOsyue.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = qianyueDTOsyue.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+ #endregion
+
+ #region 涓婇棬鎷滆瀹㈡埛
+
+ var cooperVisitDTOs = _cooperVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.VisType == "02").ToList();
+ var intentionVisitDTOsshangmen = _intentionVisitService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin).Where(x => x.VisType == "02").ToList();
+ if ( cooperVisitDTOs.Count > 0 || intentionVisitDTOsshangmen.Count > 0)
+ {
+ var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "涓婇棬鎷滆瀹㈡埛").FirstOrDefault();
+ if (jijianidddd != null)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = intentionVisitDTOsshangmen.Count + cooperVisitDTOs.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = intentionVisitDTOsshangmen.Count + cooperVisitDTOs.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+ #endregion
+
+ #region 鏂伴椈璧勮
+ //鏈湀鏁伴噺
+ DtChannelArticleNewsDTOSearch searchEntity1 = new DtChannelArticleNewsDTOSearch();
+ searchEntity1.EndTime = datemaxkaoqin;
+ searchEntity1.AddTime = dateminkaoqin;
+ searchEntity1.UserName = userList[i].UserSn;
+ searchEntity1.CategoryId = 3;
+ var dtChannelArticleNewsDTOs = _dtChannelArticleNewsService.GetList(searchEntity1);
+
+ if (dtChannelArticleNewsDTOs != null && dtChannelArticleNewsDTOs.Count > 0)
+ {
+ var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "鏂伴椈璧勮").FirstOrDefault();
+ if (jijianidddd != null)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = dtChannelArticleNewsDTOs.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = dtChannelArticleNewsDTOs.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+ #endregion
+
+ #region 鍏稿瀷妗堜緥
+ //鏈湀鏁伴噺
+ searchEntity1 = new DtChannelArticleNewsDTOSearch();
+ searchEntity1.EndTime = datemaxkaoqin;
+ searchEntity1.AddTime = dateminkaoqin;
+ searchEntity1.UserName = userList[i].UserSn;
+ searchEntity1.CategoryId = 85;
+ var dianxinanDTOs = _dtChannelArticleNewsService.GetList(searchEntity1);
+
+ if (dianxinanDTOs != null && dianxinanDTOs.Count > 0)
+ {
+ var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "鍏稿瀷妗堜緥").FirstOrDefault();
+ if (jijianidddd != null)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = dianxinanDTOs.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = dianxinanDTOs.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+ #endregion
+
+ #region 鏀块噰鐭ヨ瘑
+ //鏈湀鏁伴噺
+ searchEntity1 = new DtChannelArticleNewsDTOSearch();
+ searchEntity1.EndTime = datemaxkaoqin;
+ searchEntity1.AddTime = dateminkaoqin;
+ searchEntity1.UserName = userList[i].UserSn;
+ searchEntity1.CategoryId = 73;
+ var zhengcaizhishiDTOs = _dtChannelArticleNewsService.GetList(searchEntity1);
+
+ if (zhengcaizhishiDTOs != null && zhengcaizhishiDTOs.Count > 0)
+ {
+ var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "鏀块噰鐭ヨ瘑").FirstOrDefault();
+ if (jijianidddd != null)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = zhengcaizhishiDTOs.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = zhengcaizhishiDTOs.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+ #endregion
+
+ #region 鏂板灏忛噰闂
+
+ var xinzengwendaDTOsyue = _liaotianService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+ if (xinzengwendaDTOsyue != null && xinzengwendaDTOsyue.Count > 0)
+ {
+ var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "鏂板灏忛噰闂").FirstOrDefault();
+ if (jijianidddd != null)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = xinzengwendaDTOsyue.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = xinzengwendaDTOsyue.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+ #endregion
+
+ #region 瀹℃牳灏忛噰绛旈棶
+
+ var shenhewendaDTOsyue = _liaotianService.GetListsalaryshenhe(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+ if (shenhewendaDTOsyue != null && shenhewendaDTOsyue.Count > 0)
+ {
+ var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "瀹℃牳灏忛噰绛旈棶").FirstOrDefault();
+ if (jijianidddd != null)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = shenhewendaDTOsyue.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = shenhewendaDTOsyue.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+ #endregion
+
+ #region 褰曞叆瀹㈡埛绛惧崟
+
+ //var cooperatecustomCustomers = _cooperatecustomCustomerService.GetListsalaryqiandan(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+ // if (cooperatecustomCustomers != null && cooperatecustomCustomers.Count > 0)
+ // {
+ // var jijianidddd = fiPiecerateDTOs.Where(x => x.Standard == "D" && x.Project == "褰曞叆瀹㈡埛绛惧崟").FirstOrDefault();
+ // if (jijianidddd != null)
+ // {
+ // var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ // if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ // {
+ // if (jixiaotichengfangan.Renwustandard == "01")
+ // {
+ // decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ // if (jixiaotichengfangan.Tichengstandard == "01")
+ // {
+ // decimal youxiaojijian = cooperatecustomCustomers.Count - renwujishu;
+ // if (youxiaojijian > 0)
+ // {
+ // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ // }
+
+ // }
+
+ // }
+ // else if (jixiaotichengfangan.Renwustandard == "02")
+ // {
+ // decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ // if (jixiaotichengfangan.Tichengstandard == "01")
+ // {
+ // decimal youxiaojijian = cooperatecustomCustomers.Count - renwujishu;
+ // if (youxiaojijian > 0)
+ // {
+ // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ // }
+
+ // }
+ // }
+ // }
+ // }
+ // }
+ #endregion
+
+
+ #region 璁′欢鐧昏
+ var pieceCheckDTOs = _admPieceCheckService.GetList(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+ if (pieceCheckDTOs != null && pieceCheckDTOs.Count > 0)
+ {
+ foreach (var pieceCheckDTO in pieceCheckDTOs)
+ {
+ if (pieceCheckDTO.Gongzi.HasValue)
+ {
+ hrSalaryDTO.Jixiaoticheng += pieceCheckDTO.Gongzi.Value;
+ }
+
+ }
+ }
+ #endregion
+ //鍚堜綔瀹㈡埛璁㈠崟
+ List<CooperOrderDTO> cooperOrderDTOs = _cooperOrderService.GetList(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+
+ #region 鍥句功閿�鍞�
+ var cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "01").ToList();
+ var jijianid = fiPiecerateDTOs.Where(x => x.Project == "鍥句功閿�鍞�").FirstOrDefault();
+ if (jijianid != null && cooperOrdertushu.Count>0)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ 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 = cooperOrdertushu.Count - renwujishu ;
+ if (youxiaojijian>0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ else if (jixiaotichengfangan.Renwustandard == "03")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian* new decimal(0.01), 2);
+ }
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "04")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+ }
+ }
+ }
+ #endregion
+
+ #region 鏀块噰鍜ㄨ
+ cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "02").ToList();
+ jijianid = fiPiecerateDTOs.Where(x => x.Project == "鏀块噰鍜ㄨ").FirstOrDefault();
+ if (jijianid != null && cooperOrdertushu.Count > 0)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ else if (jixiaotichengfangan.Renwustandard == "03")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "04")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region 鏍囦功鍒朵綔璁㈠崟
+ cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "03").ToList();
+ jijianid = fiPiecerateDTOs.Where(x => x.Project == "鏍囦功鍒朵綔璁㈠崟").FirstOrDefault();
+ if (jijianid != null && cooperOrdertushu.Count > 0)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ else if (jixiaotichengfangan.Renwustandard == "03")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "04")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region 鍩硅
+ cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "04").ToList();
+ jijianid = fiPiecerateDTOs.Where(x => x.Project == "鍩硅").FirstOrDefault();
+ if (jijianid != null && cooperOrdertushu.Count > 0)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ else if (jixiaotichengfangan.Renwustandard == "03")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "04")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region 濂楅浼氬憳
+ cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "05").OrderBy(x=>x.Createtime).ToList();
+ jijianid = fiPiecerateDTOs.Where(x => x.Project == "濂楅浼氬憳").FirstOrDefault();
+ if (jijianid != null && cooperOrdertushu.Count > 0)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ 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 = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ else if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+
+ if (cooperOrdertushu.Count > renwujishu)
+ {
+ List<CooperOrderDTO> cooperOrdertushuyouxiao = new List<CooperOrderDTO>();
+ for (int j = Convert.ToInt32(renwujishu); j < cooperOrdertushu.Count; j++)
+ {
+ cooperOrdertushuyouxiao.Add(cooperOrdertushu[j]);
+ }
+ var dingdanjine = cooperOrdertushuyouxiao.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * dingdanjinezhenshi * new decimal(0.01), 2);
+ }
+ }
+ }
+ else if (jixiaotichengfangan.Renwustandard == "03")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "04")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region 涓撳鐢宠
+ cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "06").ToList();
+ jijianid = fiPiecerateDTOs.Where(x => x.Project == "涓撳鐢宠").FirstOrDefault();
+ if (jijianid != null && cooperOrdertushu.Count > 0)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ else if (jixiaotichengfangan.Renwustandard == "03")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "04")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region 灞ョ害绾犵悍
+ cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "07").ToList();
+ jijianid = fiPiecerateDTOs.Where(x => x.Project == "灞ョ害绾犵悍").FirstOrDefault();
+ if (jijianid != null && cooperOrdertushu.Count > 0)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ else if (jixiaotichengfangan.Renwustandard == "03")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "04")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region 椋庨櫓浠g悊
+ cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "08").ToList();
+ jijianid = fiPiecerateDTOs.Where(x => x.Project == "椋庨櫓浠g悊").FirstOrDefault();
+ if (jijianid != null && cooperOrdertushu.Count > 0)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ 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 = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ else if (jixiaotichengfangan.Renwustandard == "03")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "04")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region 杞欢閿�鍞彁鎴�
+ cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "09").ToList();
+ jijianid = fiPiecerateDTOs.Where(x => x.Project == "杞欢閿�鍞彁鎴�").FirstOrDefault();
+ if (jijianid != null && cooperOrdertushu.Count > 0)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ else if (jixiaotichengfangan.Renwustandard == "03")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "04")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region 鍏朵粬涓氬姟
+ cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "10").ToList();
+ jijianid = fiPiecerateDTOs.Where(x => x.Project == "鍏朵粬涓氬姟").FirstOrDefault();
+ if (jijianid != null && cooperOrdertushu.Count > 0)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ else if (jixiaotichengfangan.Renwustandard == "03")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "04")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ #region 鏁版嵁鍒嗘瀽
+ cooperOrdertushu = cooperOrderDTOs.Where(x => x.OrderType == "11").ToList();
+ jijianid = fiPiecerateDTOs.Where(x => x.Project == "鏁版嵁鍒嗘瀽").FirstOrDefault();
+ if (jijianid != null && cooperOrdertushu.Count > 0)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianid.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "02")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "01")
+ {
+ decimal youxiaojijian = cooperOrdertushu.Count - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2);
+ }
+
+ }
+ }
+ else if (jixiaotichengfangan.Renwustandard == "03")
+ {
+ decimal renwujishu = admAttendanceDTO.Yingchuqin * jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+
+ }
+ else if (jixiaotichengfangan.Renwustandard == "04")
+ {
+ decimal renwujishu = jixiaotichengfangan.Renwu.Value;
+ if (jixiaotichengfangan.Tichengstandard == "02")
+ {
+ var dingdanjine = cooperOrdertushu.Sum(x => x.Money);
+ var dingdanjinezhenshi = dingdanjine.HasValue ? dingdanjine.Value : 0;
+ //var dingdanyouhui = cooperOrdertushu.Sum(x => x.Youhui);
+ //var dingdanyouhuizhenshi = dingdanyouhui.HasValue ? dingdanyouhui.Value : 0;
+
+ decimal youxiaojijian = dingdanjinezhenshi - renwujishu;
+ if (youxiaojijian > 0)
+ {
+ hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian * new decimal(0.01), 2);
+ }
+ }
+ }
+ }
+ }
+
+ #endregion
+
+
+
+
+ #region 涓撳褰曞叆
+
+ var zhuanjialuruDTOsyue = _expertService.GetListsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin);
+ if (zhuanjialuruDTOsyue != null && zhuanjialuruDTOsyue.Count > 0)
+ {
+ var jijianidddd = fiPiecerateDTOs.Where(x => x.Project == "涓撳褰曞叆").FirstOrDefault();
+ if (jijianidddd != null)
+ {
+ var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianidddd.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault();
+ if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue)
+ {
+ if (jixiaotichengfangan.Renwustandard == "01")
+ {
+ 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
+
+ }
+
+
+
+
+ hrSalaryDTO.Daozhanggongzi = 0;
+ decimal jibengongzi = hrSalaryDTO.Jibengongzi.HasValue ? hrSalaryDTO.Jibengongzi.Value : 0;
+ decimal baomifei = hrSalaryDTO.Baomifei.HasValue ? hrSalaryDTO.Baomifei.Value : 0;
+ decimal gongzuobutie = hrSalaryDTO.Gongzuobutie.HasValue ? hrSalaryDTO.Gongzuobutie.Value : 0;
+ decimal jiabangongzi = hrSalaryDTO.Jiabangongzi.HasValue ? hrSalaryDTO.Jiabangongzi.Value : 0;
+ decimal shebao = hrSalaryDTO.Shebao.HasValue ? hrSalaryDTO.Shebao.Value : 0;
+ decimal dianhuabutie = hrSalaryDTO.Dianhuabutie.HasValue ? hrSalaryDTO.Dianhuabutie.Value : 0;
+ decimal quanqinjiang = hrSalaryDTO.Quanqinjiang.HasValue ? hrSalaryDTO.Quanqinjiang.Value : 0;
+ decimal jiaotngbutie = hrSalaryDTO.Jiaotngbutie.HasValue ? hrSalaryDTO.Jiaotngbutie.Value : 0;
+ decimal jixiaoticheng = hrSalaryDTO.Jixiaoticheng.HasValue ? hrSalaryDTO.Jixiaoticheng.Value : 0;
+ decimal jiangjin = hrSalaryDTO.Jiangjin.HasValue ? hrSalaryDTO.Jiangjin.Value : 0;
+ decimal bufagongzi = hrSalaryDTO.Bufagongzi.HasValue ? hrSalaryDTO.Bufagongzi.Value : 0;
+ decimal shebaokou = hrSalaryDTO.Shebaokou.HasValue ? hrSalaryDTO.Shebaokou.Value : 0;
+
+ decimal dianhuafei = hrSalaryDTO.Dianhuafei.HasValue ? hrSalaryDTO.Dianhuafei.Value : 0;
+ decimal queqin = hrSalaryDTO.Queqin.HasValue ? hrSalaryDTO.Queqin.Value : 0;
+ decimal fakuan = hrSalaryDTO.Fakuan.HasValue ? hrSalaryDTO.Fakuan.Value : 0;
+ decimal peichang = hrSalaryDTO.Peichang.HasValue ? hrSalaryDTO.Peichang.Value : 0;
+ decimal jiucuo = hrSalaryDTO.Jiucuo.HasValue ? hrSalaryDTO.Jiucuo.Value : 0;
+
+ //璁$畻淇濆簳骞磋柂
+ if (userList[i].Indate.HasValue && userList[i].miniyearsalary.HasValue && userList[i].miniyearsalary.Value>0)
+ {
+ DateTime jixinue = userList[i].Indate.Value;
+ if (userList[i].Indate.Value.Day != 1)
+ {
+ jixinue = new DateTime(userList[i].Indate.Value.AddMonths(1).Year, userList[i].Indate.Value.AddMonths(1).Month, 1);
+ }
+ int months = ((datemaxkaoqin.Year - jixinue.Year) * 12) + datemaxkaoqin.Month - jixinue.Month;
+
+ if(months % 12>=1 && months % 12 == 0)
+ {
+ decimal baodinianxin = 0;
+ //鏌ヨ杩囧幓12涓湀鐨勫伐璧�
+ for(int z = 1; z <= 12; z++)
+ {
+ var hrSalaryDTO1 = _hrSalaryService.GetListByUser(userList[i].Id, dateminkaoqin.AddMonths(-z).Year, dateminkaoqin.AddMonths(-z).Month);
+ if (hrSalaryDTO1 != null)
+ {
+ decimal jibengongzi1 = hrSalaryDTO1.Jibengongzi.HasValue ? hrSalaryDTO1.Jibengongzi.Value : 0;
+ decimal baomifei1 = hrSalaryDTO1.Baomifei.HasValue ? hrSalaryDTO1.Baomifei.Value : 0;
+ decimal gongzuobutie1 = hrSalaryDTO1.Gongzuobutie.HasValue ? hrSalaryDTO1.Gongzuobutie.Value : 0;
+ decimal jiabangongzi1 = hrSalaryDTO1.Jiabangongzi.HasValue ? hrSalaryDTO1.Jiabangongzi.Value : 0;
+ decimal shebao1 = hrSalaryDTO1.Shebao.HasValue ? hrSalaryDTO1.Shebao.Value : 0;
+ decimal dianhuabutie1 = hrSalaryDTO1.Dianhuabutie.HasValue ? hrSalaryDTO1.Dianhuabutie.Value : 0;
+ decimal quanqinjiang1 = hrSalaryDTO1.Quanqinjiang.HasValue ? hrSalaryDTO1.Quanqinjiang.Value : 0;
+ decimal jiaotngbutie1 = hrSalaryDTO1.Jiaotngbutie.HasValue ? hrSalaryDTO1.Jiaotngbutie.Value : 0;
+ decimal jixiaoticheng1 = hrSalaryDTO1.Jixiaoticheng.HasValue ? hrSalaryDTO1.Jixiaoticheng.Value : 0;
+ decimal jiangjin1 = hrSalaryDTO1.Jiangjin.HasValue ? hrSalaryDTO1.Jiangjin.Value : 0;
+ decimal bufagongzi1 = hrSalaryDTO1.Bufagongzi.HasValue ? hrSalaryDTO1.Bufagongzi.Value : 0;
+ decimal shebaokou1 = hrSalaryDTO1.Shebaokou.HasValue ? hrSalaryDTO1.Shebaokou.Value : 0;
+
+ decimal dianhuafei1 = hrSalaryDTO1.Dianhuafei.HasValue ? hrSalaryDTO1.Dianhuafei.Value : 0;
+ decimal queqin1 = hrSalaryDTO1.Queqin.HasValue ? hrSalaryDTO1.Queqin.Value : 0;
+ decimal fakuan1 = hrSalaryDTO1.Fakuan.HasValue ? hrSalaryDTO1.Fakuan.Value : 0;
+ decimal peichang1 = hrSalaryDTO1.Peichang.HasValue ? hrSalaryDTO1.Peichang.Value : 0;
+ decimal jiucuo1 = hrSalaryDTO1.Jiucuo.HasValue ? hrSalaryDTO1.Jiucuo.Value : 0;
+
+ baodinianxin += jibengongzi1 + baomifei1 + gongzuobutie1 + jiabangongzi1 + shebao1 + quanqinjiang1 + jiaotngbutie1 + jixiaoticheng1 + jiangjin1 + bufagongzi1 + jiucuo1+ peichang1;
+ }
+ }
+ baodinianxin += jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi + jiucuo + peichang;
+ if (baodinianxin < userList[i].miniyearsalary.Value)
+ {
+ jiucuo = userList[i].miniyearsalary.Value - baodinianxin;
+ }
+ }
+ }
+
+ yingfaheji = jibengongzi + baomifei + gongzuobutie + jiabangongzi + shebao + quanqinjiang + jiaotngbutie + jixiaoticheng + jiangjin + bufagongzi - shebaokou + ((dianhuabutie - dianhuafei) <= 0 ? (dianhuabutie - dianhuafei) : 0) - queqin - fakuan + peichang + jiucuo;
+
+
+ hrSalaryDTO.Yufagongzi = userList[i].advancewages;
+
+ if (userList[i].advancewages.HasValue && userList[i].advancewages.Value > 0)
+ {
+ hrSalaryDTO.Yufagongziheji = 0;
+ HrSalaryDTO hrSalaryDTOlast = _hrSalaryService.GetListByUser(userList[i].Id, dateminkaoqin.AddMonths(-1).Year, dateminkaoqin.AddMonths(-1).Month);
+ if (hrSalaryDTOlast != null && hrSalaryDTOlast.Yufagongziheji.HasValue)
+ {
+ hrSalaryDTO.Yufagongziheji = hrSalaryDTOlast.Yufagongziheji;
+ }
+
+ if (hrSalaryDTO.Yufagongziheji > 0)
+ {
+ if (yingfaheji < (hrSalaryDTO.Yufagongzi+shebao- shebaokou))
+ {
+ hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi + shebao - shebaokou - yingfaheji);
+ yingfaheji = (hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou);
+ }
+ else if (yingfaheji > (hrSalaryDTO.Yufagongzi + shebao - shebaokou))
+ {
+ if (hrSalaryDTO.Yufagongziheji >= (yingfaheji - (hrSalaryDTO.Yufagongzi + shebao - shebaokou)))
+ {
+ hrSalaryDTO.Yufagongziheji += ((hrSalaryDTO.Yufagongzi + shebao - shebaokou) - yingfaheji);
+ yingfaheji = (hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou);
+ }
+ else
+ {
+ yingfaheji -= hrSalaryDTO.Yufagongziheji.Value;
+ hrSalaryDTO.Yufagongziheji = 0;
+ }
+
+
+ }
+
+ }
+ else if (hrSalaryDTO.Yufagongziheji == 0)
+ {
+ hrSalaryDTO.Yufagongziheji += ((hrSalaryDTO.Yufagongzi + shebao - shebaokou) - yingfaheji);
+ if (yingfaheji < (hrSalaryDTO.Yufagongzi + shebao - shebaokou))
+ {
+ yingfaheji = (hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou);
+ }
+ }
+ else if (hrSalaryDTO.Yufagongziheji < 0)
+ {
+ if (yingfaheji < (hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou))
+ {
+ if (-hrSalaryDTO.Yufagongziheji >= ((hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou) - yingfaheji))
+ {
+ hrSalaryDTO.Yufagongziheji += ((hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou) - yingfaheji);
+ yingfaheji = (hrSalaryDTO.Yufagongzi.Value + shebao - shebaokou);
+ }
+ else
+ {
+ yingfaheji += hrSalaryDTO.Yufagongziheji.Value;
+ hrSalaryDTO.Yufagongziheji = 0;
+ }
+ }
+
+ }
+
+ }
+
+
+
+
+
+
+
+ yingnashuie = yingfaheji - geshuiqizheng;
+
+
+ hrSalaryDTO.Geshui = 0;
+ if (yingnashuie > 0)
+ {
+ decimal yingnashuie1 = 0;
+ decimal yingnashuie2 = 0;
+ decimal yingnashuie3 = 0;
+ decimal yingnashuie4 = 0;
+ decimal yingnashuie5 = 0;
+ decimal yingnashuie6 = 0;
+ decimal yingnashuie7 = 0;
+ if (yingnashuie > 80000)
+ {
+ yingnashuie1 = 3000;
+ yingnashuie2 = (12000 - 3000);
+ yingnashuie3 = (25000 - 12000);
+ yingnashuie4 = (35000 - 25000);
+ yingnashuie5 = (55000 - 35000);
+ yingnashuie6 = (80000 - 55000);
+ yingnashuie7 = (yingnashuie - 55000);
+ }
+ if (yingnashuie > 55000)
+ {
+ 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 > 12000)
+ {
+ yingnashuie1 = 3000;
+ yingnashuie2 = (12000 - 3000);
+ yingnashuie3 = (yingnashuie - 12000);
+ }
+ else if (yingnashuie > 3000)
+ {
+ yingnashuie1 = 3000;
+ yingnashuie2 = (yingnashuie - 3000);
+ }
+ else
+ {
+ yingnashuie1 = yingnashuie;
+ }
+ if (yingnashuie1 > 0)
+ {
+ var yingjiao1 = Math.Round(yingnashuie1 * new decimal(0.03) - 0, 2);
+ if (yingjiao1 > 0)
+ {
+ hrSalaryDTO.Geshui += yingjiao1;
+ }
+
+ }
+ if (yingnashuie2 > 0)
+ {
+ var yingjiao2 = Math.Round(yingnashuie2 * new decimal(0.1) - 0, 2);
+ if (yingjiao2 > 0)
+ {
+ hrSalaryDTO.Geshui += yingjiao2;
+ }
+ }
+ if (yingnashuie3 > 0)
+ {
+ var yingjiao3 = Math.Round(yingnashuie3 * new decimal(0.2) - 0, 2);
+ if (yingjiao3 > 0)
+ {
+ hrSalaryDTO.Geshui += yingjiao3;
+ }
+ }
+ if (yingnashuie4 > 0)
+ {
+ var yingjiao4 = Math.Round(yingnashuie4 * new decimal(0.25) - 0, 2);
+ if (yingjiao4 > 0)
+ {
+ hrSalaryDTO.Geshui += yingjiao4;
+ }
+ }
+ if (yingnashuie5 > 0)
+ {
+ 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 = yingfaheji - geshui;
+
+
+
+
+ hrSalaryDTO.RecStatus = "A";
+ hrSalaryDTO.Islock = "D";
+ hrSalaryDTO.Creater = "1";
+ hrSalaryDTO.Createtime = DateTime.Now;
+ hrSalaryDTO.Modifier = hrSalaryDTO.Creater;
+ hrSalaryDTO.Modifytime = hrSalaryDTO.Createtime;
+ _hrSalaryService.save(hrSalaryDTO);
+ }
+ }
+
+
+
+ //璁$畻鏄惁娑ㄥ伐榫勫伐璧�
+ 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;
+ AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get("");
+
+ var admAttendanceRulesDtlDTOs = _attendanceRuleService.GetDtlList("");
+
+ 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('.');
+ int WorkingStarthour = int.Parse(WorkingStart[0]);
+ int WorkingStartmin = int.Parse(WorkingStart[1]);
+
+ string[] WorkingEnd = admAttendanceRuleDTO.WorkingEnd.Split('.');
+ int WorkingEndhour = int.Parse(WorkingEnd[0]);
+ int WorkingEndmin = int.Parse(WorkingEnd[1]);
+
+
+
+ string[] OffworkStart = admAttendanceRuleDTO.OffworkStart.Split('.');
+ int OffworkStarthour = int.Parse(OffworkStart[0]);
+ int OffworkStartmin = int.Parse(OffworkStart[1]);
+
+ string[] OffworkEnd = admAttendanceRuleDTO.OffworkEnd.Split('.');
+ int OffworkEndhour = int.Parse(OffworkEnd[0]);
+ int OffworkEndmin = int.Parse(OffworkEnd[1]);
+
+ //璇峰亣寮�濮嬫椂闂翠笂鐝椂闂�
+ DateTime StratTimeWorkingStart = StratTime.Date.AddHours(WorkingStarthour).AddMinutes(WorkingStartmin);
+
+ DateTime StratTimeWorkingEnd = StratTime.Date.AddHours(WorkingEndhour).AddMinutes(WorkingEndmin);
+
+ DateTime StratTimeOffworkStart = StratTime.Date.AddHours(OffworkStarthour).AddMinutes(OffworkStartmin);
+
+ DateTime StratTimeOffworkEnd = StratTime.Date.AddHours(OffworkEndhour).AddMinutes(OffworkEndmin);
+
+
+ //璇峰亣缁撴潫鏃堕棿涓婄彮鏃堕棿
+
+ DateTime EndTimeWorkingStart = EndTime.Date.AddHours(WorkingStarthour).AddMinutes(WorkingStartmin);
+
+ DateTime EndTimeWorkingEnd = EndTime.Date.AddHours(WorkingEndhour).AddMinutes(WorkingEndmin);
+
+ DateTime EndTimeOffworkStart = EndTime.Date.AddHours(OffworkStarthour).AddMinutes(OffworkStartmin);
+
+ DateTime EndTimeOffworkEnd = EndTime.Date.AddHours(OffworkEndhour).AddMinutes(OffworkEndmin);
+
+ //涓婄彮鏃堕棿
+
+ TimeSpan shangwu = StratTimeWorkingEnd.Subtract(StratTimeWorkingStart);
+
+ TimeSpan xiawu = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart);
+
+
+
+
+ int shangbanshijian = shangwu.Hours * 60 + shangwu.Minutes + xiawu.Hours * 60 + xiawu.Minutes;
+
+
+ int LavehTime = 0;
+ TimeSpan ts = EndTime.Subtract(StratTime);
+ for (int i = 0; i <= ts.Days; i++)
+ {
+ if (i == 0)
+ {
+ //鏄惁涓婄彮鏃ユ湡
+ if ((int)StratTime.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)StratTime.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd)
+ {
+ //鏄惁鑺傚亣鏃�
+ if (jiejiari.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
+ {
+
+ LavehTime += 0;
+ }
+ else
+ {
+
+
+
+ if (StratTime <= StratTimeWorkingStart)
+ {
+ LavehTime += shangbanshijian;
+ }
+ else if (StratTime <= StratTimeWorkingEnd)
+ {
+ TimeSpan shangwu1 = StratTimeWorkingEnd.Subtract(StratTime);
+
+ TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart);
+
+
+ LavehTime += shangwu1.Hours * 60 + shangwu1.Minutes + xiawu1.Hours * 60 + xiawu1.Minutes;
+ }
+ else if (StratTime <= StratTimeOffworkStart)
+ {
+
+
+ TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart);
+
+
+ LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes;
+ }
+ else if (StratTime <= StratTimeOffworkEnd)
+ {
+ TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTime);
+
+
+ LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes;
+
+ }
+
+
+
+ }
+ }
+ else
+ {
+
+
+ //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝�
+ 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)
+ {
+ LavehTime += shangbanshijian;
+ }
+ else if (StratTime <= StratTimeWorkingEnd)
+ {
+ TimeSpan shangwu1 = StratTimeWorkingEnd.Subtract(StratTime);
+
+ TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart);
+
+
+ LavehTime += shangwu1.Hours * 60 + shangwu1.Minutes + xiawu1.Hours * 60 + xiawu1.Minutes;
+ }
+ else if (StratTime <= StratTimeOffworkStart)
+ {
+
+
+ TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart);
+
+
+ LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes;
+ }
+ else if (StratTime <= StratTimeOffworkEnd)
+ {
+ TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTime);
+
+
+ LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes;
+
+ }
+ }
+ else
+ {
+ LavehTime += 0;
+ }
+ }
+ }
+
+ if (i == ts.Days)
+ {
+ //鏄惁涓婄彮鏃ユ湡
+ if ((int)EndTime.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)EndTime.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd)
+ {
+ //鏄惁鑺傚亣鏃�
+ if (jiejiari.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date))
+ {
+
+ LavehTime += 0;
+ }
+ else
+ {
+
+
+
+ if (EndTime >= EndTimeOffworkEnd)
+ {
+ LavehTime += shangbanshijian;
+ }
+ else if (EndTime >= EndTimeOffworkStart)
+ {
+ TimeSpan shangwu1 = EndTimeWorkingEnd.Subtract(EndTimeWorkingStart);
+
+ TimeSpan xiawu1 = EndTime.Subtract(EndTimeOffworkStart);
+
+
+ LavehTime += shangwu1.Hours * 60 + shangwu1.Minutes + xiawu1.Hours * 60 + xiawu1.Minutes;
+ }
+ else if (EndTime >= EndTimeWorkingEnd)
+ {
+
+
+
+ TimeSpan xiawu1 = EndTimeWorkingEnd.Subtract(EndTimeWorkingStart);
+
+
+ LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes;
+ }
+ else if (EndTime >= EndTimeWorkingStart)
+ {
+ TimeSpan xiawu1 = EndTime.Subtract(EndTimeWorkingStart);
+
+
+ LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes;
+
+ }
+
+
+
+ }
+ }
+ else
+ {
+
+ //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝�
+ 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)
+ {
+ LavehTime += shangbanshijian;
+ }
+ else if (EndTime >= EndTimeOffworkStart)
+ {
+ TimeSpan shangwu1 = EndTimeWorkingEnd.Subtract(EndTimeWorkingStart);
+
+ TimeSpan xiawu1 = EndTime.Subtract(EndTimeOffworkStart);
+
+
+ LavehTime += shangwu1.Hours * 60 + shangwu1.Minutes + xiawu1.Hours * 60 + xiawu1.Minutes;
+ }
+ else if (EndTime >= EndTimeWorkingEnd)
+ {
+
+
+
+ TimeSpan xiawu1 = EndTimeWorkingEnd.Subtract(EndTimeWorkingStart);
+
+
+ LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes;
+ }
+ else if (EndTime >= EndTimeWorkingStart)
+ {
+ TimeSpan xiawu1 = EndTime.Subtract(EndTimeWorkingStart);
+
+
+ LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes;
+
+ }
+ }
+ else
+ {
+ LavehTime += 0;
+ }
+ }
+ }
+
+
+ if (i != 0 && i != ts.Days)
+ {
+ DateTime dateTimenow = StratTime.AddDays(i).Date;
+ //鏄惁涓婄彮鏃ユ湡
+ if ((int)dateTimenow.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)dateTimenow.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd)
+ {
+ //鏄惁鍋囨湡 鍋囨湡涓嶄笂鐝�
+ if (jiejiari.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueEnd >= dateTimenow.Date))
+ {
+ LavehTime += 0;
+ }
+ else
+ {
+ LavehTime += shangbanshijian;
+ }
+ }
+ else
+ {
+
+ //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝�
+ 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;
+ }
+ else
+ {
+ LavehTime += 0;
+ }
+ }
+ }
+
+
+ if (ts.Days == 0)
+ { //鏄惁涓婄彮鏃ユ湡
+ if ((int)StratTime.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)StratTime.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd)
+ {
+ //鏄惁鑺傚亣鏃�
+ if (jiejiari.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
+ {
+ LavehTime -= 0;
+ }
+ else
+ {
+ LavehTime -= shangbanshijian;
+ }
+ }
+ else
+ {
+ //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝�
+ 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;
+ }
+ else
+ {
+ LavehTime -= 0;
+ }
+ }
+
+ }
+
+ }
+
+
+
+
+
+
+
+
+ AdmAskLeaveDTO admAsk = new AdmAskLeaveDTO();
+ admAsk.LaveDay = (int)(LavehTime / shangbanshijian);
+ int lefthour = (int)(LavehTime % shangbanshijian);
+
+ admAsk.LavehHour = lefthour / 60;
+ if (lefthour % 60 > 0)
+ {
+ admAsk.LavehHour += 1;
+ }
+
+ return admAsk;
+ }
}
}
--
Gitblit v1.9.1