From 7b5fddf1755d3a1f43e5e402f944e7446caf6500 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期四, 12 八月 2021 14:08:53 +0800
Subject: [PATCH] 请假销假验证

---
 zhengcaioa/IServices/IAdmSigninService.cs                           |    4 ++
 zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs |   58 +++++++++++++++++++++++++++--
 zhengcaioa/Services/AdmSigninService.cs                             |   18 +++++++++
 3 files changed, 76 insertions(+), 4 deletions(-)

diff --git a/zhengcaioa/IServices/IAdmSigninService.cs b/zhengcaioa/IServices/IAdmSigninService.cs
index e2a0506..9e0b55a 100644
--- a/zhengcaioa/IServices/IAdmSigninService.cs
+++ b/zhengcaioa/IServices/IAdmSigninService.cs
@@ -25,12 +25,16 @@
 
         List<AdmAskLeaveDTO> GetAskLeaveByUserId(string UserId);
 
+        List<AdmAskLeaveDTO> GetAskLeaveChongdie(string UserId,DateTime StratTime, DateTime EndTime);
+
         //閿�鍋�
         ResultEntity SaveAskLeaveOff(AdmAskLeaveOffDTO leaveOff);
         AdmAskLeaveOffDTO GetAskLeaveOff(string Id);
 
         List<AdmAskLeaveOffDTO> GetAskLeaveOffByUserId(string UserId);
 
+        List<AdmAskLeaveOffDTO> GetAskLeaveOffChongdie(string UserId, DateTime StratTime, DateTime EndTime);
+
         #region 鑰冨嫟瑙勫垯
 
         ResultEntity SaveAttendanceRlues(string attRlues);
diff --git a/zhengcaioa/Services/AdmSigninService.cs b/zhengcaioa/Services/AdmSigninService.cs
index 8fed0f5..bb73473 100644
--- a/zhengcaioa/Services/AdmSigninService.cs
+++ b/zhengcaioa/Services/AdmSigninService.cs
@@ -369,6 +369,15 @@
 
         }
 
+        public List<AdmAskLeaveDTO> GetAskLeaveChongdie(string UserId, DateTime StratTime, DateTime EndTime)
+        {
+            List<AdmAskLeave> admAskLeaveDTOs = _context.AdmAskLeaves.Where(e => e.RecStatus == "A"  && e.Creater == UserId &&  (( e.StratTime <= StratTime && e.EndTime > StratTime) || (e.StratTime < EndTime && e.EndTime >= EndTime) )).ToList();
+
+            List<AdmAskLeaveDTO> leaveDTOs = _mapper.Map<List<AdmAskLeaveDTO>>(admAskLeaveDTOs);
+            return leaveDTOs;
+
+        }
+
         public List<AdmAskLeaveOffDTO> GetAskLeaveOffByUserId(string UserId)
         {
             List<AdmAskLeaveOff> admAskLeaveOffs = _context.AdmAskLeaveOffs.Where(e => e.RecStatus == "A" && e.ShenpiStatus == "A" && e.Creater == UserId).ToList();
@@ -378,6 +387,15 @@
 
         }
 
+        public List<AdmAskLeaveOffDTO> GetAskLeaveOffChongdie(string UserId, DateTime StratTime, DateTime EndTime)
+        {
+            List<AdmAskLeaveOff> admAskLeaveOffs = _context.AdmAskLeaveOffs.Where(e => e.RecStatus == "A" && e.Creater == UserId && ((e.StratTime <= StratTime && e.EndTime > StratTime) || (e.StratTime < EndTime && e.EndTime >= EndTime))).ToList();
+
+            List<AdmAskLeaveOffDTO> leaveDTOs = _mapper.Map<List<AdmAskLeaveOffDTO>>(admAskLeaveOffs);
+            return leaveDTOs;
+
+        }
+
         public AdmAskLeaveOffDTO GetAskLeaveOff(string Id)
         {
             AdmAskLeaveOff entity = _context.AdmAskLeaveOffs.Where(e => e.RecStatus == "A" && e.Id == Id ).FirstOrDefault();
diff --git a/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs b/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs
index 2e3504b..23467c6 100644
--- a/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs
+++ b/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs
@@ -338,8 +338,37 @@
             admAsk.RecStatus = "A";
             ResultEntity resultEntity = new ResultEntity();
             resultEntity.Result = false;
-           
-                if (String.IsNullOrEmpty(admAsk.Id))
+
+            if(admAsk.Step == "鎻愪氦")
+            {
+                //璇峰亣鏃堕棿涓嶈兘閲嶅彔
+              var qingjia  =   _signinService.GetAskLeaveChongdie(curentuser.Id, admAsk.StratTime.Value, admAsk.EndTime.Value);
+                if (qingjia.Count > 0)
+                {
+                    resultEntity.Result = false;
+                    resultEntity.Message = "璇ユ椂闂存宸茬粡鏈夎鍋囷紒";
+                    return JsonConvert.SerializeObject(resultEntity);
+                }
+
+            //璇峰亣瓒呰繃涓夊ぉ锛屽繀椤绘彁鍓嶄笁澶╀互涓婅鍋囷紒
+                if (admAsk.LaveDay.Value >= 3 && admAsk.StratTime.Value.Date < DateTime.Now.Date.AddDays(3))
+                {
+                    resultEntity.Result = false;
+                    resultEntity.Message = "璇峰亣瓒呰繃涓夊ぉ锛屽繀椤绘彁鍓嶄笁澶╀互涓婅鍋囷紒";
+                    return JsonConvert.SerializeObject(resultEntity);
+                }
+
+                //璇峰亣瓒呰繃涓冨ぉ锛屽繀椤绘彁鍓嶄竷澶╀互涓婅鍋囷紒
+                if (admAsk.LaveDay.Value >= 7 && admAsk.StratTime.Value.Date < DateTime.Now.Date.AddDays(7))
+                {
+                    resultEntity.Result = false;
+                    resultEntity.Message = "璇峰亣瓒呰繃涓冨ぉ锛屽繀椤绘彁鍓嶄竷澶╀互涓婅鍋囷紒";
+                    return JsonConvert.SerializeObject(resultEntity);
+                }
+            }
+            
+
+            if (String.IsNullOrEmpty(admAsk.Id))
                 {
                     admAsk.Creater = curentuser.Id;
                     admAsk.Createtime = DateTime.Now;
@@ -910,8 +939,8 @@
             var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
             ViewData["curentuser"] = curentuser;
             leaveOff.RecStatus = "A";
-            //鏈寕瀹℃壒娴侊紝鎻愪氦鐩存帴閫氳繃
-            leaveOff.ShenpiStatus = "A";
+            ////鏈寕瀹℃壒娴侊紝鎻愪氦鐩存帴閫氳繃
+            //leaveOff.ShenpiStatus = "A";
             if (String.IsNullOrEmpty(leaveOff.Id))
             {
                 leaveOff.Creater = curentuser.Id;
@@ -921,6 +950,27 @@
             leaveOff.Modifytime = DateTime.Now;
             ResultEntity resultEntity = new ResultEntity();
             resultEntity.Result = false;
+
+            if (leaveOff.Step == "鎻愪氦")
+            {
+                //璇峰亣鏃堕棿涓嶈兘閲嶅彔
+                var qingjia = _signinService.GetAskLeaveOffChongdie(curentuser.Id, leaveOff.StratTime.Value, leaveOff.EndTime.Value);
+                if (qingjia.Count > 0)
+                {
+                    resultEntity.Result = false;
+                    resultEntity.Message = "璇ユ椂闂存宸茬粡鏈夐攢鍋囷紒";
+                    return JsonConvert.SerializeObject(resultEntity);
+                }
+
+                //閿�鍋囧繀椤讳笁澶╀互鍐�
+                if (leaveOff.StratTime.Value.Date < DateTime.Now.Date.AddDays(-3))
+                {
+                    resultEntity.Result = false;
+                    resultEntity.Message = "璇峰湪72灏忔椂鍐呰繘琛岄攢鍋囧鐞嗭紝瓒呰繃72灏忔椂鏃犳硶鎻愪氦";
+                    return JsonConvert.SerializeObject(resultEntity);
+                }
+            }
+
             using (TransactionScope scope = new TransactionScope())
             {
                 if (leaveOff.Step == "鎻愪氦")

--
Gitblit v1.9.1