From e8fc5d92457143ea8744e8f8b2bed45a0a651f18 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期五, 24 二月 2023 16:26:43 +0800
Subject: [PATCH] 提交
---
zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs | 269 ++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 241 insertions(+), 28 deletions(-)
diff --git a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
index 0c1b434..2574791 100644
--- a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
+++ b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs
@@ -51,6 +51,8 @@
private readonly IAskService _askService;
private readonly IAdmEvaluateService _admEvaluateService;
private readonly IExpertService _expertService;
+ private readonly zhengcaioaContext _context;
+ private readonly zcUserInfoN_dbContext _zcUsercontext;
private readonly decimal jiabangongzibiaozhun = new decimal(21.5);
public TimedBackgroundService(ILogger<TimedBackgroundService> logger, IServiceScopeFactory factory)
@@ -85,6 +87,8 @@
_askService= factory.CreateScope().ServiceProvider.GetRequiredService<IAskService>();
_admEvaluateService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmEvaluateService>();
_expertService = factory.CreateScope().ServiceProvider.GetRequiredService<IExpertService>();
+ _context = factory.CreateScope().ServiceProvider.GetRequiredService<zhengcaioaContext>();
+ _zcUsercontext = factory.CreateScope().ServiceProvider.GetRequiredService<zcUserInfoN_dbContext>();
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
@@ -134,6 +138,15 @@
{
jisuangonglinggongzi();
}
+
+
+ _logger.LogInformation("鎶婅秴杩�90澶╄繕娌℃湁杞寲鐨勬。妗堝鎴风殑涓氬姟缁忕悊褰掍负鏃�");
+ this.ywjlguiling();
+ _logger.LogInformation("鎶婅秴杩�90澶╄繕娌℃湁杞寲鐨勬。妗堝鎴风殑涓氬姟缁忕悊褰掍负鏃犳墽琛岀粨鏉�");
+
+ _logger.LogInformation("鎶婁細鍛樼郴缁熷拰oa绯荤粺鎵嬫満鍙风浉鍚岀殑瀹㈡埛鍏宠仈璧锋潵");
+ this.huiyuanguanlian();
+ _logger.LogInformation("鎶婁細鍛樼郴缁熷拰oa绯荤粺鎵嬫満鍙风浉鍚岀殑瀹㈡埛鍏宠仈璧锋潵鎵ц缁撴潫");
}
catch (Exception ex)
{
@@ -207,6 +220,65 @@
return diwutian;
}
+
+ //鎶婅秴杩�90澶╄繕娌℃湁杞寲鐨勬。妗堝鎴风殑涓氬姟缁忕悊褰掍负鏃�
+ public void ywjlguiling()
+ {
+ var intentionCustomerDTOs = _intentionCustomerService.GetList().Where(x=>x.Ywjltime < DateTime.Now.AddDays(-90)).ToList();
+
+ foreach(var intentionCustomerDTO in intentionCustomerDTOs)
+ {
+ intentionCustomerDTO.Ywjl = null;
+ intentionCustomerDTO.Ywjltime = null;
+ _intentionCustomerService.save(intentionCustomerDTO);
+ }
+ }
+
+
+ //鎶婁細鍛樼郴缁熷拰oa绯荤粺鎵嬫満鍙风浉鍚岀殑瀹㈡埛鍏宠仈璧锋潵
+ public void huiyuanguanlian()
+ {
+ var cooperatecustomCustomers = _context.CooperatecustomCustomers.Where(x => x.RecStatus == "A" && x.HuiyuanId == null).ToList();
+ var frameworkUsers = _zcUsercontext.FrameworkUsers.Where(x => x.IsValid == true).ToList();
+ if (cooperatecustomCustomers != null && cooperatecustomCustomers.Count > 0)
+ {
+ foreach (var cooperatecustomCustomer in cooperatecustomCustomers)
+ {
+ if (!string.IsNullOrEmpty(cooperatecustomCustomer.Tel))
+ {
+ var frameworkUser = frameworkUsers.Where(x => x.Itcode == cooperatecustomCustomer.Tel).FirstOrDefault();
+ if (frameworkUser != null)
+ {
+ cooperatecustomCustomer.HuiyuanId = frameworkUser.Id.ToString();
+ }
+ }
+
+ }
+ _context.SaveChanges();
+ }
+
+
+
+ var intentionCustomers = _context.IntentionCustomers.Where(x => x.RecStatus == "A" && x.HuiyuanId == null).ToList();
+ if (intentionCustomers != null && intentionCustomers.Count > 0)
+ {
+ foreach (var intentionCustomer in intentionCustomers)
+ {
+ if (!string.IsNullOrEmpty(intentionCustomer.Tel))
+ {
+ var frameworkUser = frameworkUsers.Where(x => x.Itcode == intentionCustomer.Tel).FirstOrDefault();
+ if (frameworkUser != null)
+ {
+ intentionCustomer.HuiyuanId = frameworkUser.Id.ToString();
+ }
+ }
+
+ }
+ _context.SaveChanges();
+ }
+
+ }
+
//璁$畻鑰冨嫟
public void jisuankaoqin()
{
@@ -269,6 +341,7 @@
admAttendanceDTO.Qingjia = 0;
admAttendanceDTO.Jiaban = 0;
admAttendanceDTO.Xiaojia = 0;
+ admAttendanceDTO.Daixinjia = 0;
admAttendanceDTO.Chidao = 0;
admAttendanceDTO.Zaotui = 0;
admAttendanceDTO.Kuanggong = 0;
@@ -294,6 +367,7 @@
decimal Zaotui = 0;
decimal Kuanggong = 0;
decimal Xiaojia = 0;
+ decimal Daixinjia = 0;
while (dateminkaoqin < datemaxkaoqin)
{
@@ -347,7 +421,7 @@
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<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();
@@ -381,6 +455,8 @@
decimal Kuanggongtianshu = 0;
decimal dangtianqingjia = 0;
decimal dangtianxiaojia = 0;
+ decimal dangtiandaixinjia = 0;
+
string Iswork = "D";
if (iswork)
{
@@ -446,17 +522,22 @@
}
else
{
- if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
- {
- kuanggong = true;
- break;
- }
- else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+ //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 (!starttime.HasValue)
+ {
+ starttime = dateBiJiaoDTOs[i].StartTime;
+ }
}
- if (endttime>= StratTimeWorkingEnd)
+ if (endttime >= StratTimeWorkingEnd && starttime.HasValue)
{
break;
}
@@ -567,17 +648,22 @@
}
else
{
- if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
- {
- kuanggong = true;
- break;
- }
- else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+ //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 (!starttime.HasValue)
+ {
+ starttime = dateBiJiaoDTOs[i].StartTime;
+ }
}
- if (endttime >= StratTimeOffworkEnd)
+ if (endttime >= StratTimeOffworkEnd && starttime.HasValue)
{
break;
}
@@ -696,6 +782,63 @@
}
Qingjia += dangtianqingjia;
+
+
+
+ //璁$畻褰撳ぉ甯﹁柂鍋�
+ List<DateBiJiaoDTO> daixinjias = new List<DateBiJiaoDTO>();
+
+ var chauxndaixinjias = admAskLeaveDTOMin.Where(x => x.Lavetype == "4" || x.Lavetype == "7" || x.Lavetype == "3" || x.Lavetype == "9").ToList();
+ foreach (var admAskLeave in chauxndaixinjias)
+ {
+
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+ daixinjias.Add(dateBiJiaoDTO);
+
+ }
+
+ foreach (var daixinjia in daixinjias)
+ {
+ if (daixinjia.StartTime < StratTimeWorkingStart)
+ {
+ daixinjia.StartTime = StratTimeWorkingStart;
+ }
+ if (daixinjia.StartTime > StratTimeWorkingEnd && daixinjia.StartTime < StratTimeOffworkStart)
+ {
+ daixinjia.StartTime = StratTimeOffworkStart;
+ }
+
+
+ if (daixinjia.EndTime > StratTimeWorkingEnd && daixinjia.EndTime < StratTimeOffworkStart)
+ {
+ daixinjia.EndTime = StratTimeWorkingEnd;
+ }
+
+
+ if (daixinjia.EndTime > StratTimeOffworkEnd)
+ {
+ daixinjia.EndTime = StratTimeOffworkEnd;
+ }
+ TimeSpan daixinjiashiijan = daixinjia.EndTime.Value.Subtract(daixinjia.StartTime.Value);
+ if (daixinjia.StartTime <= StratTimeWorkingEnd && daixinjia.EndTime >= StratTimeOffworkStart)
+ {
+ TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd);
+ dangtiandaixinjia += Math.Round(((decimal)(daixinjiashiijan.Hours * 60 + daixinjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2);
+ }
+ else
+ {
+ dangtiandaixinjia += Math.Round(((decimal)(daixinjiashiijan.Hours * 60 + daixinjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2);
+ }
+
+
+
+ }
+
+ Daixinjia += dangtiandaixinjia;
+
+
//璁$畻褰撳ぉ鍑哄嫟澶╂暟
Shijichuqin += (1 - Kuanggongtianshu - dangtianqingjia);
@@ -847,14 +990,19 @@
}
else
{
- if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
- {
- kuanggong = true;
- break;
- }
- else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+ //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 (!starttime.HasValue)
+ {
+ starttime = dateBiJiaoDTOs[i].StartTime;
}
}
}
@@ -964,14 +1112,19 @@
}
else
{
- if (dateBiJiaoDTOs[i].StartTime > dateBiJiaoDTOs[i - 1].EndTime)
- {
- kuanggong = true;
- break;
- }
- else if (dateBiJiaoDTOs[i].EndTime > dateBiJiaoDTOs[i - 1].EndTime)
+ //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 (!starttime.HasValue)
+ {
+ starttime = dateBiJiaoDTOs[i].StartTime;
}
}
}
@@ -1089,6 +1242,64 @@
}
Qingjia += dangtianqingjia;
+
+
+
+ //璁$畻褰撳ぉ甯﹁柂鍋�
+ List<DateBiJiaoDTO> daixinjias = new List<DateBiJiaoDTO>();
+
+ var chauxndaixinjias = admAskLeaveDTOMin.Where(x => x.Lavetype == "4" || x.Lavetype == "7" || x.Lavetype == "3" || x.Lavetype == "9").ToList();
+ foreach (var admAskLeave in chauxndaixinjias)
+ {
+
+ DateBiJiaoDTO dateBiJiaoDTO = new DateBiJiaoDTO();
+ dateBiJiaoDTO.StartTime = admAskLeave.StratTime;
+ dateBiJiaoDTO.EndTime = admAskLeave.EndTime;
+ daixinjias.Add(dateBiJiaoDTO);
+
+ }
+
+ foreach (var daixinjia in daixinjias)
+ {
+ if (daixinjia.StartTime < StratTimeWorkingStart)
+ {
+ daixinjia.StartTime = StratTimeWorkingStart;
+ }
+ if (daixinjia.StartTime > StratTimeWorkingEnd && daixinjia.StartTime < StratTimeOffworkStart)
+ {
+ daixinjia.StartTime = StratTimeOffworkStart;
+ }
+
+
+ if (daixinjia.EndTime > StratTimeWorkingEnd && daixinjia.EndTime < StratTimeOffworkStart)
+ {
+ daixinjia.EndTime = StratTimeWorkingEnd;
+ }
+
+
+ if (daixinjia.EndTime > StratTimeOffworkEnd)
+ {
+ daixinjia.EndTime = StratTimeOffworkEnd;
+ }
+ TimeSpan daixinjiashiijan = daixinjia.EndTime.Value.Subtract(daixinjia.StartTime.Value);
+ if (daixinjia.StartTime <= StratTimeWorkingEnd && daixinjia.EndTime >= StratTimeOffworkStart)
+ {
+ TimeSpan wuxiushijian = StratTimeOffworkStart.Subtract(StratTimeWorkingEnd);
+ dangtiandaixinjia += Math.Round(((decimal)(daixinjiashiijan.Hours * 60 + daixinjiashiijan.Minutes - wuxiushijian.Hours * 60 - wuxiushijian.Minutes)) / ((decimal)shangbanshijian), 2);
+ }
+ else
+ {
+ dangtiandaixinjia += Math.Round(((decimal)(daixinjiashiijan.Hours * 60 + daixinjiashiijan.Minutes)) / ((decimal)shangbanshijian), 2);
+ }
+
+
+
+ }
+
+ Daixinjia += dangtiandaixinjia;
+
+
+
//璁$畻褰撳ぉ鍑哄嫟澶╂暟
Jiaban += (1 - Kuanggongtianshu - dangtianqingjia);
@@ -1200,7 +1411,7 @@
admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut;
admAttendanceDtlDTO.Qingjia = dangtianqingjia;
admAttendanceDtlDTO.Xiaojia = dangtianxiaojia;
-
+ admAttendanceDtlDTO.Daixinjia = dangtiandaixinjia;
@@ -1236,6 +1447,7 @@
admAttendanceDtlDTO.OvertimeIn = admSignInDTO.OvertimeIn;
admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut;
admAttendanceDtlDTO.Qingjia = dangtianqingjia;
+ admAttendanceDtlDTO.Daixinjia = dangtiandaixinjia;
admAttendanceDtlDTO.Xiaojia = dangtianxiaojia;
@@ -1287,6 +1499,7 @@
admAttendanceDTO.Qingjia = Qingjia;
+ admAttendanceDTO.Daixinjia = Daixinjia;
admAttendanceDTO.Xiaojia = Xiaojia;
admAttendanceDTO.Chidao = Chidao;
admAttendanceDTO.Islock = "A";
--
Gitblit v1.9.1