From e26f08af87c158aeac41b9a94398636c1c580556 Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期一, 13 二月 2023 15:30:11 +0800 Subject: [PATCH] 提交 --- zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs | 177 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 151 insertions(+), 26 deletions(-) diff --git a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs index f91384a..b88d60d 100644 --- a/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs +++ b/zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs @@ -341,6 +341,7 @@ admAttendanceDTO.Qingjia = 0; admAttendanceDTO.Jiaban = 0; admAttendanceDTO.Xiaojia = 0; + admAttendanceDTO.Daixinjia = 0; admAttendanceDTO.Chidao = 0; admAttendanceDTO.Zaotui = 0; admAttendanceDTO.Kuanggong = 0; @@ -366,6 +367,7 @@ decimal Zaotui = 0; decimal Kuanggong = 0; decimal Xiaojia = 0; + decimal Daixinjia = 0; while (dateminkaoqin < datemaxkaoqin) { @@ -453,6 +455,8 @@ decimal Kuanggongtianshu = 0; decimal dangtianqingjia = 0; decimal dangtianxiaojia = 0; + decimal dangtiandaixinjia = 0; + string Iswork = "D"; if (iswork) { @@ -518,17 +522,18 @@ } 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 (endttime>= StratTimeWorkingEnd) + if (endttime >= StratTimeWorkingEnd) { break; } @@ -639,12 +644,13 @@ } 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; } @@ -768,6 +774,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); @@ -919,12 +982,13 @@ } 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; } @@ -1036,12 +1100,13 @@ } 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; } @@ -1161,6 +1226,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); @@ -1272,7 +1395,7 @@ admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut; admAttendanceDtlDTO.Qingjia = dangtianqingjia; admAttendanceDtlDTO.Xiaojia = dangtianxiaojia; - + admAttendanceDtlDTO.Daixinjia = dangtiandaixinjia; @@ -1308,6 +1431,7 @@ admAttendanceDtlDTO.OvertimeIn = admSignInDTO.OvertimeIn; admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut; admAttendanceDtlDTO.Qingjia = dangtianqingjia; + admAttendanceDtlDTO.Daixinjia = dangtiandaixinjia; admAttendanceDtlDTO.Xiaojia = dangtianxiaojia; @@ -1359,6 +1483,7 @@ admAttendanceDTO.Qingjia = Qingjia; + admAttendanceDTO.Daixinjia = Daixinjia; admAttendanceDTO.Xiaojia = Xiaojia; admAttendanceDTO.Chidao = Chidao; admAttendanceDTO.Islock = "A"; -- Gitblit v1.9.1