From 1c4f3bce3d88557b7ddb5f0a49b4be5e91b416f1 Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期四, 14 十月 2021 13:42:33 +0800 Subject: [PATCH] 专家测试--题库管理 --- zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs | 213 ++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 169 insertions(+), 44 deletions(-) diff --git a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs index 1444423..0b029b5 100644 --- a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs +++ b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs @@ -48,7 +48,8 @@ private readonly IDtChannelArticleNewsService _dtChannelArticleNewsService; private readonly IConfiguration _configuration; private readonly IHttpClientFactory _clientFactory; - private readonly IAskService _askService; + private readonly IAskService _askService; + private readonly IAdmEvaluateService _admEvaluateService; private readonly decimal jiabangongzibiaozhun = new decimal(21.5); public TimedBackgroundService(ILogger<TimedBackgroundService> logger, IServiceScopeFactory factory) @@ -81,6 +82,7 @@ _configuration = factory.CreateScope().ServiceProvider.GetRequiredService<IConfiguration>(); _clientFactory = factory.CreateScope().ServiceProvider.GetRequiredService<IHttpClientFactory>(); _askService= factory.CreateScope().ServiceProvider.GetRequiredService<IAskService>(); + _admEvaluateService = factory.CreateScope().ServiceProvider.GetRequiredService<IAdmEvaluateService>(); } protected override async Task ExecuteAsync(CancellationToken stoppingToken) { @@ -317,8 +319,8 @@ Offdays += 1; } } - - if(userList[a].Outdate.HasValue && dateminkaoqin >=userList[a].Outdate ) + //绂昏亴褰撳ぉ璁$畻鑰冨嫟 + if(userList[a].Zhiwustatus == "D" && userList[a].Outdate.HasValue && dateminkaoqin >userList[a].Outdate ) { dateminkaoqin = dateminkaoqin.AddDays(1); continue; @@ -446,6 +448,10 @@ endttime = dateBiJiaoDTOs[i].EndTime; } } + if (endttime>= StratTimeWorkingEnd) + { + break; + } } if (kuanggong) { @@ -562,6 +568,10 @@ { endttime = dateBiJiaoDTOs[i].EndTime; } + } + if (endttime >= StratTimeOffworkEnd) + { + break; } } if (kuanggong) @@ -1336,6 +1346,8 @@ 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); @@ -1360,11 +1372,23 @@ var Shebaogeren = hrJibengongzi.Shebaogeren.HasValue ? hrJibengongzi.Shebaogeren.Value : 0; decimal yingnashuie = 0; hrSalaryDTO.Queqin = 0; + hrSalaryDTO.Fakuan = 0; hrSalaryDTO.Gongzuobutie = 0; hrSalaryDTO.Jiabangongzi = 0; decimal shiyongqichuqintianshu = 0; decimal shiyongqichuqinlv = 0; - + + + + decimal BasicPrice = 0; + if (!decimal.TryParse(userList[i].BasicPrice, out BasicPrice)) + { + _logger.LogInformation(userList[i].UserName + ": 鍛樺伐娌℃湁缁存姢宸ヨ祫"); + continue; + } + + + if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && dateminkaoqin>= userList[i].ShiyongDate.Value && dateminkaoqin <= userList[i].ShiyongDateEnd.Value) { if (!userList[i].ShiyongPrice.HasValue) @@ -1372,6 +1396,10 @@ _logger.LogInformation(userList[i].UserName + ": 鍛樺伐澶勪簬璇曠敤鏈燂紝浣嗘槸璇曠敤鏈熷伐璧勪负绌�"); continue; } + //鏌ヨ鏄惁鏈変笉绉拌亴鐨勫伐浣滆�冭瘎 + var admEvaluateDTOsshiyongqi = _admEvaluateService.GetListsalary(userList[i].Id, dateminkaoqin, userList[i].ShiyongDateEnd.Value.AddDays(1)).Where(x => x.EvaluateValue == "03").ToList(); + + //璇曠敤鏈熺殑鍑哄嫟鐜� shiyongqichuqinlv = chuqinlv; if(userList[i].ShiyongDateEnd.Value< datemaxkaoqin.AddDays(-1)) @@ -1392,7 +1420,15 @@ } } } + + + + shiyongqichuqinlv = Math.Round(shiyongqichuqintianshu / admAttendanceDTO.Yingchuqin, 4); + + //宸ヤ綔璇勪环涓嶅悎鏍肩綒娆� + hrSalaryDTO.Fakuan += Math.Round(userList[i].ShiyongPrice.Value * admEvaluateDTOsshiyongqi.Count / admAttendanceDTO.Yingchuqin + BasicPrice * (admEvaluateDTOs.Count - admEvaluateDTOsshiyongqi.Count) / admAttendanceDTO.Yingchuqin, 2); + } else { @@ -1405,6 +1441,9 @@ } } hrSalaryDTO.Jiabangongzi += Math.Round((admAttendanceDTO.Jiaban / jiabangongzibiaozhun) * userList[i].ShiyongPrice.Value, 2); + + //宸ヤ綔璇勪环涓嶅悎鏍肩綒娆� + hrSalaryDTO.Fakuan += Math.Round(userList[i].ShiyongPrice.Value * admEvaluateDTOs.Count / admAttendanceDTO.Yingchuqin, 2); } @@ -1412,7 +1451,7 @@ hrSalaryDTO.Gongzuobutie += Math.Round( (userList[i].ShiyongPrice.Value - hrJibengongzi.Baomifei.Value- hrJibengongzi.Jibengongzi.Value ) * shiyongqichuqinlv, 2); - + //yingnashuie = userList[i].ShiyongPrice.Value - Shebaogeren - geshuiqizheng; @@ -1420,16 +1459,15 @@ } + else + { + //宸ヤ綔璇勪环缃氭 + hrSalaryDTO.Fakuan += Math.Round(BasicPrice * admEvaluateDTOs.Count/ admAttendanceDTO.Yingchuqin , 2); + } if(true) { - decimal BasicPrice = 0; - if(!decimal.TryParse(userList[i].BasicPrice,out BasicPrice)) - { - _logger.LogInformation(userList[i].UserName + ": 鍛樺伐娌℃湁缁存姢宸ヨ祫"); - continue; - } //杞鍚庣殑鍑哄嫟鐜� decimal zhuanzhengchuqinlv = chuqinlv- shiyongqichuqinlv; if (userList[i].ShiyongDate.HasValue && userList[i].ShiyongDateEnd.HasValue && userList[i].ShiyongDateEnd.Value >= dateminkaoqin && userList[i].ShiyongDateEnd.Value <= datemaxkaoqin.AddDays(-1)) @@ -1719,9 +1757,17 @@ hrSalaryDTO.Dianhuafei = SimCost.bill_amount; } + if(admAttendanceDTO.Shijichuqin>=admAttendanceDTO.Yingchuqin + && hrSalaryDTO.Queqin <=0) + { + hrSalaryDTO.Quanqinjiang = hrJibengongzi.Quanqingjiang; + } + else + { + hrSalaryDTO.Quanqinjiang = 0; + } - - hrSalaryDTO.Quanqinjiang = hrJibengongzi.Quanqingjiang; + if ("A".Equals(userList[i].Istravelsubsidy)) { hrSalaryDTO.Jiaotngbutie = hrJibengongzi.Jiaotongbutie; @@ -1733,7 +1779,6 @@ - hrSalaryDTO.Fakuan = 0; //宸ヤ綔瀹夋帓缃氭 List<AdmMemoBookDTO> admMemoBookDTOs = _DailyManageService.GetRemindsalary(userList[i].Id, dateminkaoqin, datemaxkaoqin,"2"); if (admMemoBookDTOs.Count > 0) @@ -3426,7 +3471,7 @@ decimal jiucuo = hrSalaryDTO.Jiucuo.HasValue ? hrSalaryDTO.Jiucuo.Value : 0; //璁$畻淇濆簳骞磋柂 - if (userList[i].Indate.HasValue && userList[i].miniyearsalary.HasValue) + if (userList[i].Indate.HasValue && userList[i].miniyearsalary.HasValue && userList[i].miniyearsalary.Value>0) { DateTime jixinue = userList[i].Indate.Value; if (userList[i].Indate.Value.Day != 1) @@ -3488,32 +3533,53 @@ decimal yingnashuie3 = 0; decimal yingnashuie4 = 0; decimal yingnashuie5 = 0; - if (yingnashuie > 39250) + decimal yingnashuie6 = 0; + decimal yingnashuie7 = 0; + if (yingnashuie > 80000) { - yingnashuie1 = 4750; - yingnashuie2 = (9250 - 4750); - yingnashuie3 = (25250 - 9250); - yingnashuie4 = (39250 - 25250); - yingnashuie5 = (yingnashuie - 39250); + yingnashuie1 = 3000; + yingnashuie2 = (12000 - 3000); + yingnashuie3 = (25000 - 12000); + yingnashuie4 = (35000 - 25000); + yingnashuie5 = (55000 - 35000); + yingnashuie6 = (80000 - 55000); + yingnashuie7 = (yingnashuie - 55000); } - else if (yingnashuie > 25250) + if (yingnashuie > 55000) { - yingnashuie1 = 4750; - yingnashuie2 = (9250 - 4750); - yingnashuie3 = (25250 - 9250); - yingnashuie4 = (yingnashuie - 25250); + yingnashuie1 = 3000; + yingnashuie2 = (12000 - 3000); + yingnashuie3 = (25000 - 12000); + yingnashuie4 = (35000 - 25000); + yingnashuie5 = (55000 - 35000); + yingnashuie6 = (yingnashuie - 55000); + } + if (yingnashuie > 35000) + { + yingnashuie1 = 3000; + yingnashuie2 = (12000 - 3000); + yingnashuie3 = (25000 - 12000); + yingnashuie4 = (35000 - 25000); + yingnashuie5 = (yingnashuie - 35000); + } + else if (yingnashuie > 25000) + { + yingnashuie1 = 3000; + yingnashuie2 = (12000 - 3000); + yingnashuie3 = (25000 - 12000); + yingnashuie4 = (yingnashuie - 25000); } - else if (yingnashuie > 9250) + else if (yingnashuie > 12000) { - yingnashuie1 = 4750; - yingnashuie2 = (9250 - 4750); - yingnashuie3 = (yingnashuie - 9250); + yingnashuie1 = 3000; + yingnashuie2 = (12000 - 3000); + yingnashuie3 = (yingnashuie - 12000); } - else if (yingnashuie > 4750) + else if (yingnashuie > 3000) { - yingnashuie1 = 4750; - yingnashuie2 = (yingnashuie - 4750); + yingnashuie1 = 3000; + yingnashuie2 = (yingnashuie - 3000); } else { @@ -3521,7 +3587,7 @@ } if (yingnashuie1 > 0) { - var yingjiao1 = Math.Round(yingnashuie1 * new decimal(0.05) - 0, 2); + var yingjiao1 = Math.Round(yingnashuie1 * new decimal(0.03) - 0, 2); if (yingjiao1 > 0) { hrSalaryDTO.Geshui += yingjiao1; @@ -3530,7 +3596,7 @@ } if (yingnashuie2 > 0) { - var yingjiao2 = Math.Round(yingnashuie2 * new decimal(0.1) - 250, 2); + var yingjiao2 = Math.Round(yingnashuie2 * new decimal(0.1) - 0, 2); if (yingjiao2 > 0) { hrSalaryDTO.Geshui += yingjiao2; @@ -3538,7 +3604,7 @@ } if (yingnashuie3 > 0) { - var yingjiao3 = Math.Round(yingnashuie3 * new decimal(0.2) - 1250, 2); + var yingjiao3 = Math.Round(yingnashuie3 * new decimal(0.2) - 0, 2); if (yingjiao3 > 0) { hrSalaryDTO.Geshui += yingjiao3; @@ -3546,7 +3612,7 @@ } if (yingnashuie4 > 0) { - var yingjiao4 = Math.Round(yingnashuie4 * new decimal(0.3) - 4250, 2); + var yingjiao4 = Math.Round(yingnashuie4 * new decimal(0.25) - 0, 2); if (yingjiao4 > 0) { hrSalaryDTO.Geshui += yingjiao4; @@ -3554,14 +3620,28 @@ } if (yingnashuie5 > 0) { - var yingjiao5 = Math.Round(yingnashuie5 * new decimal(0.35) - 6750, 2); + var yingjiao5 = Math.Round(yingnashuie5 * new decimal(0.30) - 0, 2); if (yingjiao5 > 0) { hrSalaryDTO.Geshui += yingjiao5; } } - - + if (yingnashuie6 > 0) + { + var yingjiao6 = Math.Round(yingnashuie6 * new decimal(0.35) - 0, 2); + if (yingjiao6 > 0) + { + hrSalaryDTO.Geshui += yingjiao6; + } + } + if (yingnashuie7 > 0) + { + var yingjiao7 = Math.Round(yingnashuie7 * new decimal(0.45) - 0, 2); + if (yingjiao7 > 0) + { + hrSalaryDTO.Geshui += yingjiao7; + } + } } decimal geshui = hrSalaryDTO.Geshui.HasValue ? hrSalaryDTO.Geshui.Value : 0; @@ -3572,7 +3652,7 @@ hrSalaryDTO.Yufagongzi = userList[i].advancewages; - if (userList[i].advancewages.HasValue) + 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); @@ -3581,11 +3661,56 @@ hrSalaryDTO.Yufagongziheji = hrSalaryDTOlast.Yufagongziheji; } - hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Daozhanggongzi- hrSalaryDTO.Yufagongzi); - if (hrSalaryDTO.Daozhanggongzi < hrSalaryDTO.Yufagongzi) + if (hrSalaryDTO.Yufagongziheji > 0) { - hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi; + if (hrSalaryDTO.Daozhanggongzi < hrSalaryDTO.Yufagongzi) + { + hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi); + hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi; + } + else if (hrSalaryDTO.Daozhanggongzi > hrSalaryDTO.Yufagongzi) + { + if(hrSalaryDTO.Yufagongziheji>= (hrSalaryDTO.Daozhanggongzi - hrSalaryDTO.Yufagongzi)) + { + hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi); + hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi; + } + else + { + hrSalaryDTO.Daozhanggongzi -= hrSalaryDTO.Yufagongziheji; + hrSalaryDTO.Yufagongziheji = 0; + } + + + } + } + else if (hrSalaryDTO.Yufagongziheji == 0) + { + hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi); + if (hrSalaryDTO.Daozhanggongzi < hrSalaryDTO.Yufagongzi) + { + hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi; + } + } + else if (hrSalaryDTO.Yufagongziheji < 0) + { + if (hrSalaryDTO.Daozhanggongzi < hrSalaryDTO.Yufagongzi) + { + if (-hrSalaryDTO.Yufagongziheji >= (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi)) + { + hrSalaryDTO.Yufagongziheji += (hrSalaryDTO.Yufagongzi - hrSalaryDTO.Daozhanggongzi); + hrSalaryDTO.Daozhanggongzi = hrSalaryDTO.Yufagongzi; + } + else + { + hrSalaryDTO.Daozhanggongzi += hrSalaryDTO.Yufagongziheji; + hrSalaryDTO.Yufagongziheji = 0; + } + } + + } + } hrSalaryDTO.RecStatus = "A"; hrSalaryDTO.Islock = "D"; -- Gitblit v1.9.1