username@email.com
2023-02-10 efad4f05e52c89f3b42774e313144abd039370e4
考勤怎么加带薪假的计算
10个文件已修改
150 ■■■■■ 已修改文件
zhengcaioa/DTO/AdmAttendanceDTO.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/DTO/AdmAttendanceDtlDTO.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/Model/AdmAttendance.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/Model/AdmAttendanceDtl.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/Model/zhengcaioaContext.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/Services/AdmAttendanceDtlService.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/Services/AdmAttendanceService.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/Timer/TimedBackgroundService.cs 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/Views/AdmAttendance/Index.cshtml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/zhengcaioa/Views/AdmAttendance/IndexDtl.cshtml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zhengcaioa/DTO/AdmAttendanceDTO.cs
@@ -27,6 +27,7 @@
        public DateTime Createtime { get; set; }
        public string Modifier { get; set; }
        public DateTime Modifytime { get; set; }
        public decimal? Daixinjia { get; set; }
    }
zhengcaioa/DTO/AdmAttendanceDtlDTO.cs
@@ -28,7 +28,7 @@
        public decimal Xiawuzaotuifenzhong { get; set; }
        public decimal Kuanggongtianshu { get; set; }
        public string Iswork { get; set; }
        public decimal? Daixinjia { get; set; }
        public string SgninDateName { get; set; }
        public string MorningInName { get; set; }
zhengcaioa/Model/AdmAttendance.cs
@@ -26,5 +26,6 @@
        public DateTime Createtime { get; set; }
        public string Modifier { get; set; }
        public DateTime Modifytime { get; set; }
        public decimal? Daixinjia { get; set; }
    }
}
zhengcaioa/Model/AdmAttendanceDtl.cs
@@ -30,5 +30,6 @@
        public decimal Kuanggongtianshu { get; set; }
        public string Iswork { get; set; }
        public decimal? Daixinjia { get; set; }
    }
}
zhengcaioa/Model/zhengcaioaContext.cs
@@ -1030,6 +1030,11 @@
                    .HasColumnType("decimal(18, 4)")
                    .HasColumnName("kuanggong");
                entity.Property(e => e.Daixinjia)
                  .HasColumnType("decimal(18, 4)")
                  .HasColumnName("daixinjia")
                  .HasDefaultValueSql("(0)");
                entity.Property(e => e.Modifier)
                    .IsRequired()
                    .HasMaxLength(50)
@@ -1137,6 +1142,11 @@
                    .HasColumnType("decimal(18, 4)")
                    .HasColumnName("qingjia");
                entity.Property(e => e.Daixinjia)
                 .HasColumnType("decimal(18, 4)")
                 .HasColumnName("daixinjia")
                 .HasDefaultValueSql("(0)");
                entity.Property(e => e.RecStatus)
                    .IsRequired()
                    .HasMaxLength(1)
zhengcaioa/Services/AdmAttendanceDtlService.cs
@@ -58,6 +58,7 @@
                        updatepltRole.Xiawuzaotuifenzhong = AdmAttendanceDtl.Xiawuzaotuifenzhong;
                        updatepltRole.Kuanggongtianshu = AdmAttendanceDtl.Kuanggongtianshu;
                        updatepltRole.Iswork = AdmAttendanceDtl.Iswork;
                        updatepltRole.Daixinjia = AdmAttendanceDtl.Daixinjia;
                    }
                }
@@ -156,7 +157,7 @@
                             Createtime = a.Createtime,
                             Modifier = a.Modifier,
                             Modifytime = a.Modifytime,
                             Daixinjia = a.Daixinjia,
                             Shangwuchidaofenzhong = a.Shangwuchidaofenzhong,
                             Xiawuchidaofenzhong = a.Xiawuchidaofenzhong,
                             Shangwuzaotuifenzhong = a.Shangwuzaotuifenzhong,
@@ -193,7 +194,7 @@
                             AttendanceId = a.AttendanceId,
                             SgninDate = a.SgninDate,
                             MorningIn = a.MorningIn,
                             Daixinjia = a.Daixinjia,
                             MorningOut = a.MorningOut,
                             AfternoonIn = a.AfternoonIn,
                             AfternoonOut = a.AfternoonOut,
zhengcaioa/Services/AdmAttendanceService.cs
@@ -54,7 +54,7 @@
                        updatepltRole.Createtime = AdmAttendance.Createtime;
                        updatepltRole.Modifier = AdmAttendance.Modifier;
                        updatepltRole.Modifytime = AdmAttendance.Modifytime;
                        updatepltRole.Daixinjia = AdmAttendance.Daixinjia;
                        updatepltRole.Chidao = AdmAttendance.Chidao;
                        updatepltRole.Zaotui = AdmAttendance.Zaotui;
                        updatepltRole.Kuanggong = AdmAttendance.Kuanggong;
@@ -133,6 +133,7 @@
                             Shijichuqin = a.Shijichuqin,
                             Qingjia = a.Qingjia,
                             Jiaban = a.Jiaban,
                             Daixinjia = a.Daixinjia,
                             Xiaojia = a.Xiaojia,
                             Islock = a.Islock,
                             RecStatus = a.RecStatus,
@@ -212,6 +213,7 @@
                             Shijichuqin = a.Shijichuqin,
                             Qingjia = a.Qingjia,
                             Jiaban = a.Jiaban,
                             Daixinjia = a.Daixinjia,
                             Xiaojia = a.Xiaojia,
                             Islock = a.Islock,
                             RecStatus = a.RecStatus,
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)
                    {
@@ -768,6 +772,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);
@@ -1161,6 +1222,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 +1391,7 @@
                        admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut;
                        admAttendanceDtlDTO.Qingjia = dangtianqingjia;
                        admAttendanceDtlDTO.Xiaojia = dangtianxiaojia;
                        admAttendanceDtlDTO.Daixinjia = dangtiandaixinjia;
@@ -1308,6 +1427,7 @@
                        admAttendanceDtlDTO.OvertimeIn = admSignInDTO.OvertimeIn;
                        admAttendanceDtlDTO.OvertimeOut = admSignInDTO.OvertimeOut;
                        admAttendanceDtlDTO.Qingjia = dangtianqingjia;
                        admAttendanceDtlDTO.Daixinjia = dangtiandaixinjia;
                        admAttendanceDtlDTO.Xiaojia = dangtianxiaojia;
                        
@@ -1359,6 +1479,7 @@
                admAttendanceDTO.Qingjia = Qingjia;
                admAttendanceDTO.Daixinjia = Daixinjia;
                admAttendanceDTO.Xiaojia = Xiaojia;
                admAttendanceDTO.Chidao = Chidao;
                admAttendanceDTO.Islock = "A";
zhengcaioa/zhengcaioa/Views/AdmAttendance/Index.cshtml
@@ -33,6 +33,7 @@
            { label: '迟到', name: 'Chidao', labtype: 'txt', hidden: false, width: 60 },
            { label: '早退', name: 'Zaotui', labtype: 'txt', hidden: false, width: 60 },
            { label: '旷工', name: 'Kuanggong', labtype: 'txt', hidden: false, width: 60 },
            { label: '带薪假', name: 'Daixinjia', labtype: 'txt', hidden: false, width: 60 },
            {
                label: '明细', name: 'mingxi', labtype: 'txt', hidden: false, width: 60,
                formatter: function (cellvalue, options, rowObject) {
zhengcaioa/zhengcaioa/Views/AdmAttendance/IndexDtl.cshtml
@@ -30,7 +30,7 @@
            { label: '加班上班', name: 'OvertimeOutName', labtype: 'txt', hidden: false, width: 60 },
            { label: '请假', name: 'Qingjia', labtype: 'txt', hidden: false, width: 60 },
            { label: '销假', name: 'Xiaojia', labtype: 'txt', hidden: false, width: 60 },
            { label: '带薪假', name: 'Daixinjia', labtype: 'txt', hidden: false, width: 60 },
        ];
        dataUrl = "/AdmAttendance/GetListDtl?AttendanceId=" + AttendanceId;