From 06e75f18b5b3b0fbfd25731c8b7324cc42df045f Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期三, 07 七月 2021 17:15:30 +0800
Subject: [PATCH] 提交
---
zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs | 356 ++++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 268 insertions(+), 88 deletions(-)
diff --git a/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs b/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs
index 94534d1..62691b1 100644
--- a/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs
+++ b/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs
@@ -22,15 +22,22 @@
private readonly ISysAttachmentService _sysAttachmentService;
private readonly IAdmAttendanceRuleService _attendanceRuleService;
private readonly ILiaotianService _liaotianService;
+ private readonly IWfRunProcessService _wfRunProcessService;
+ private readonly IWfHistoryService _wfHistoryService;
+ private readonly IWfNeeddeelService _wfNeeddeelService;
[CheckLogin]
public SigninController(ILogger<SigninController> logger, IAdmSigninService signinService, ISysAttachmentService sysAttachmentService
- , IAdmAttendanceRuleService attendanceRuleService, ILiaotianService liaotianService)
+ , IAdmAttendanceRuleService attendanceRuleService, ILiaotianService liaotianService, IWfRunProcessService wfRunProcessService
+ , IWfHistoryService wfHistoryService, IWfNeeddeelService wfNeeddeelService)
{
_logger = logger;
_signinService = signinService;
_sysAttachmentService = sysAttachmentService;
_attendanceRuleService = attendanceRuleService;
_liaotianService = liaotianService;
+ _wfRunProcessService = wfRunProcessService;
+ _wfHistoryService = wfHistoryService;
+ _wfNeeddeelService = wfNeeddeelService;
}
#region 鑰冨嫟绛惧埌鎵撳崱
@@ -196,7 +203,7 @@
}
#endregion
#region 璇峰亣涓庨攢鍋�
- public IActionResult AskLeave(string id="", DateTime? StratTimeName = null, DateTime? EndTimeName = null)
+ public IActionResult AskLeave(string id="", string StratTimeName = "", string EndTimeName = "")
{
var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
@@ -220,14 +227,35 @@
- if (StratTimeName.HasValue)
+ if (!string.IsNullOrWhiteSpace(StratTimeName))
{
- admAskLeaveDTO.StratTimeName = StratTimeName.Value.AddHours(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+ DateTime StratTimeName1;
+ if(DateTime.TryParse(StratTimeName, out StratTimeName1))
+ {
+ admAskLeaveDTO.StratTimeName = StratTimeName1.AddHours(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+
+ }
+
+ }
+ else
+ {
+ admAskLeaveDTO.StratTimeName =DateTime.Now.Date.AddHours(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+
}
- if (EndTimeName.HasValue)
+ if (!string.IsNullOrWhiteSpace(EndTimeName))
{
- admAskLeaveDTO.EndTimeName = EndTimeName.Value.AddHours(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+ DateTime EndTimeName1;
+ if (DateTime.TryParse(EndTimeName, out EndTimeName1))
+ {
+ admAskLeaveDTO.EndTimeName = EndTimeName1.AddHours(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+
+ }
+ }
+ else
+ {
+ admAskLeaveDTO.EndTimeName = DateTime.Now.Date.AddHours(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+
}
AdmAskLeaveDTO admAsk = jisianChecktime(DateTime.Parse(admAskLeaveDTO.StratTimeName), DateTime.Parse(admAskLeaveDTO.EndTimeName));
@@ -251,6 +279,51 @@
ViewData["Lavetype"] = _liaotianService.GetSYScode("ADM_AskLeave", "Lavetype");
+ string shifoubiaoji = "A";
+ string sifoudangqian = "A";
+ string dangqianbuzhou = "鎻愪氦";
+ var lishiyijian = new List<WfHistoryDTO>();
+ //娴佺▼鐩稿叧
+ if (!string.IsNullOrEmpty(id))
+ {
+ var wfRunProcessDTO = _wfRunProcessService.GetList(id,"01").FirstOrDefault();
+ if (wfRunProcessDTO == null)
+ {
+ shifoubiaoji = "D";
+ sifoudangqian = "D";
+ }
+ else
+ {
+ dangqianbuzhou = wfRunProcessDTO.Step;
+ //鏌ヨ鍘嗗彶鎰忚
+ lishiyijian = _wfHistoryService.GetListshenpi(wfRunProcessDTO.Id);
+ if(wfRunProcessDTO.Step != "鎻愪氦")
+ {
+ shifoubiaoji = "D";
+ }
+
+ //鏌ヨ寰呭姙
+ var chaxundaiban = _wfNeeddeelService.GetListTracking(wfRunProcessDTO.Id, wfRunProcessDTO.Step).Where(x=>x.DeelUserId == curentuser.Id).ToList();
+ if(chaxundaiban!=null && chaxundaiban.Count > 0)
+ {
+ sifoudangqian = "A";
+ }
+ else
+ {
+ sifoudangqian = "D";
+ }
+
+ }
+
+
+
+
+ }
+
+ ViewBag.shifoubiaoji = shifoubiaoji;
+ ViewBag.sifoudangqian = sifoudangqian;
+ ViewBag.lishiyijian = lishiyijian;
+ ViewBag.dangqianbuzhou = dangqianbuzhou;
return View();
}
@@ -262,61 +335,72 @@
var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
ViewData["curentuser"] = curentuser;
admAsk.RecStatus = "A";
- //鏈寕瀹℃壒娴侊紝鎻愪氦鐩存帴閫氳繃
- admAsk.ShenpiStatus = "A";
- if (String.IsNullOrEmpty(admAsk.Id))
- {
- admAsk.Creater = curentuser.Id;
- admAsk.Createtime = DateTime.Now;
- }
- else
- {
- admAsk.Modifier = curentuser.Id;
- admAsk.Modifytime = DateTime.Now;
- }
ResultEntity resultEntity = new ResultEntity();
resultEntity.Result = false;
+
+ if (String.IsNullOrEmpty(admAsk.Id))
+ {
+ admAsk.Creater = curentuser.Id;
+ admAsk.Createtime = DateTime.Now;
+ }
+ else
+ {
+ admAsk.Modifier = curentuser.Id;
+ admAsk.Modifytime = DateTime.Now;
+ }
+
+
using (TransactionScope scope = new TransactionScope())
{
- resultEntity = _signinService.SaveAskLeave(admAsk);
- if (resultEntity.Result == false)
+ if (admAsk.Step == "鎻愪氦")
{
- return JsonConvert.SerializeObject(resultEntity);
- }
-
- string[] Filepaths = admAsk.Filepath;
-
- if (Filepaths != null && Filepaths.Length > 0)
- {
- for (int i = 0; i < Filepaths.Length; i++)
+ resultEntity = _signinService.SaveAskLeave(admAsk);
+ if (resultEntity.Result == false)
{
- if (string.IsNullOrEmpty(admAsk.attachmentid[i]))
- {
- SysAttachmentDTO sysAttachmentDTO = new SysAttachmentDTO();
- //sysAttachmentDTO.Id =
- sysAttachmentDTO.AttObj = "AskLeave";
- sysAttachmentDTO.AttObjid = admAsk.Id;
- sysAttachmentDTO.Filefullname = admAsk.Filefullname[i];
- sysAttachmentDTO.Filepath = admAsk.Filepath[i];
- sysAttachmentDTO.Creater = curentuser.Id;
- sysAttachmentDTO.Modifier = curentuser.Id;
- sysAttachmentDTO.Createtime = DateTime.Now;
- sysAttachmentDTO.Modifytime = sysAttachmentDTO.Createtime;
-
- resultEntity = _sysAttachmentService.save(sysAttachmentDTO);
- if (resultEntity.Result == false)
- {
- return JsonConvert.SerializeObject(resultEntity);
- }
- }
-
+ return JsonConvert.SerializeObject(resultEntity);
}
+ string[] Filepaths = admAsk.Filepath;
+ if (Filepaths != null && Filepaths.Length > 0)
+ {
+ for (int i = 0; i < Filepaths.Length; i++)
+ {
+ if (string.IsNullOrEmpty(admAsk.attachmentid[i]))
+ {
+ SysAttachmentDTO sysAttachmentDTO = new SysAttachmentDTO();
+ //sysAttachmentDTO.Id =
+ sysAttachmentDTO.AttObj = "AskLeave";
+ sysAttachmentDTO.AttObjid = admAsk.Id;
+ sysAttachmentDTO.Filefullname = admAsk.Filefullname[i];
+ sysAttachmentDTO.Filepath = admAsk.Filepath[i];
+ sysAttachmentDTO.Creater = curentuser.Id;
+ sysAttachmentDTO.Modifier = curentuser.Id;
+ sysAttachmentDTO.Createtime = DateTime.Now;
+ sysAttachmentDTO.Modifytime = sysAttachmentDTO.Createtime;
+
+ resultEntity = _sysAttachmentService.save(sysAttachmentDTO);
+ if (resultEntity.Result == false)
+ {
+ return JsonConvert.SerializeObject(resultEntity);
+ }
+ }
+
+ }
+
+
+ }
}
+
+
+ //鍙戣捣娴佺▼鐩稿叧
+
+ resultEntity = _wfRunProcessService.WfAskLeave(admAsk.Id, admAsk.Step, admAsk.Tongguojujue, curentuser.Id, admAsk.Content, admAsk.Tittle, "v1");
+
scope.Complete();
+
}
-
+
return JsonConvert.SerializeObject(resultEntity);
@@ -417,7 +501,7 @@
if ((int)StratTime.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)StratTime.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd)
{
//鏄惁鑺傚亣鏃�
- if (jiejiari.Exists(x => x.ValueStart <= StratTime.Date && x.ValueStart >= StratTime.Date))
+ if (jiejiari.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
{
LavehTime += 0;
@@ -466,7 +550,7 @@
{
//鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝�
- if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueStart >= StratTime.Date))
+ if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
{
if (StratTime <= StratTimeWorkingStart)
{
@@ -512,7 +596,7 @@
if ((int)EndTime.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)EndTime.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd)
{
//鏄惁鑺傚亣鏃�
- if (jiejiari.Exists(x => x.ValueStart <= EndTime.Date && x.ValueStart >= EndTime.Date))
+ if (jiejiari.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date))
{
LavehTime += 0;
@@ -562,7 +646,7 @@
{
//鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝�
- if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueStart >= EndTime.Date))
+ if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date))
{
if (EndTime >= EndTimeOffworkEnd)
{
@@ -611,7 +695,7 @@
if ((int)dateTimenow.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)dateTimenow.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd)
{
//鏄惁鍋囨湡 鍋囨湡涓嶄笂鐝�
- if (jiejiari.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueStart >= dateTimenow.Date))
+ if (jiejiari.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueEnd >= dateTimenow.Date))
{
LavehTime += 0;
}
@@ -624,7 +708,7 @@
{
//鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝�
- if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueStart >= StratTime.Date))
+ if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
{
LavehTime += shangbanshijian;
}
@@ -637,8 +721,32 @@
if(ts.Days == 0)
- {
- LavehTime -= shangbanshijian;
+ { //鏄惁涓婄彮鏃ユ湡
+ if ((int)StratTime.Date.DayOfWeek >= admAttendanceRuleDTO.WeekStart && (int)StratTime.Date.DayOfWeek <= admAttendanceRuleDTO.WeekEnd)
+ {
+ //鏄惁鑺傚亣鏃�
+ if (jiejiari.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
+ {
+ LavehTime -= 0;
+ }
+ else
+ {
+ LavehTime -= shangbanshijian;
+ }
+ }
+ else
+ {
+ //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝�
+ if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date))
+ {
+ LavehTime -= shangbanshijian;
+ }
+ else
+ {
+ LavehTime -= 0;
+ }
+ }
+
}
}
@@ -669,7 +777,7 @@
return admAsk;
}
- public IActionResult AskLeaveOff(string id = "", DateTime? StratTimeName = null, DateTime? EndTimeName = null)
+ public IActionResult AskLeaveOff(string id = "", string StratTimeName = "", string EndTimeName = "")
{
var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
ViewData["curentuser"] = curentuser;
@@ -694,14 +802,35 @@
- if (StratTimeName.HasValue)
+ if (!string.IsNullOrWhiteSpace(StratTimeName))
{
- askLeaveOffDTO.StratTimeName = StratTimeName.Value.AddHours(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+ DateTime StratTimeName1;
+ if (DateTime.TryParse(StratTimeName, out StratTimeName1))
+ {
+ askLeaveOffDTO.StratTimeName = StratTimeName1.AddHours(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+
+ }
+
+ }
+ else
+ {
+ askLeaveOffDTO.StratTimeName = DateTime.Now.Date.AddHours(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+
}
- if (EndTimeName.HasValue)
+ if (!string.IsNullOrWhiteSpace(EndTimeName))
{
- askLeaveOffDTO.EndTimeName = EndTimeName.Value.AddHours(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+ DateTime EndTimeName1;
+ if (DateTime.TryParse(EndTimeName, out EndTimeName1))
+ {
+ askLeaveOffDTO.EndTimeName = EndTimeName1.AddHours(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+
+ }
+ }
+ else
+ {
+ askLeaveOffDTO.EndTimeName = DateTime.Now.Date.AddHours(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[1])).ToString("yyyy-MM-dd HH:mm");
+
}
ResultDataEntity<SysAttachmentDTO> results = new ResultDataEntity<SysAttachmentDTO>();
@@ -719,6 +848,53 @@
ViewData["Lavetype"] = _liaotianService.GetSYScode("ADM_AskLeaveOff", "Lavetype");
ViewData.Model = askLeaveOffDTO;
+
+ string shifoubiaoji = "A";
+ string sifoudangqian = "A";
+ string dangqianbuzhou = "鎻愪氦";
+ var lishiyijian = new List<WfHistoryDTO>();
+ //娴佺▼鐩稿叧
+ if (!string.IsNullOrEmpty(id))
+ {
+ var wfRunProcessDTO = _wfRunProcessService.GetList(id, "02").FirstOrDefault();
+ if (wfRunProcessDTO == null)
+ {
+ shifoubiaoji = "D";
+ sifoudangqian = "D";
+ }
+ else
+ {
+ dangqianbuzhou = wfRunProcessDTO.Step;
+ //鏌ヨ鍘嗗彶鎰忚
+ lishiyijian = _wfHistoryService.GetListshenpi(wfRunProcessDTO.Id);
+ if (wfRunProcessDTO.Step != "鎻愪氦")
+ {
+ shifoubiaoji = "D";
+ }
+
+ //鏌ヨ寰呭姙
+ var chaxundaiban = _wfNeeddeelService.GetListTracking(wfRunProcessDTO.Id, wfRunProcessDTO.Step).Where(x => x.DeelUserId == curentuser.Id).ToList();
+ if (chaxundaiban != null && chaxundaiban.Count > 0)
+ {
+ sifoudangqian = "A";
+ }
+ else
+ {
+ sifoudangqian = "D";
+ }
+
+ }
+
+
+
+
+ }
+
+ ViewBag.shifoubiaoji = shifoubiaoji;
+ ViewBag.sifoudangqian = sifoudangqian;
+ ViewBag.lishiyijian = lishiyijian;
+ ViewBag.dangqianbuzhou = dangqianbuzhou;
+
return View();
}
@@ -740,41 +916,45 @@
resultEntity.Result = false;
using (TransactionScope scope = new TransactionScope())
{
- resultEntity = _signinService.SaveAskLeaveOff(leaveOff);
- if(resultEntity.Result == false)
+ if (leaveOff.Step == "鎻愪氦")
{
- return JsonConvert.SerializeObject(resultEntity);
- }
- string[] Filepaths = leaveOff.Filepath;
-
- if (Filepaths != null && Filepaths.Length > 0)
- {
- for (int i = 0; i < Filepaths.Length; i++)
+ resultEntity = _signinService.SaveAskLeaveOff(leaveOff);
+ if (resultEntity.Result == false)
{
- if (string.IsNullOrEmpty(leaveOff.attachmentid[i]))
- {
- SysAttachmentDTO sysAttachmentDTO = new SysAttachmentDTO();
- //sysAttachmentDTO.Id =
- sysAttachmentDTO.AttObj = "AskLeaveOff";
- sysAttachmentDTO.AttObjid = leaveOff.Id;
- sysAttachmentDTO.Filefullname = leaveOff.Filefullname[i];
- sysAttachmentDTO.Filepath = leaveOff.Filepath[i];
- sysAttachmentDTO.Creater = curentuser.Id;
- sysAttachmentDTO.Modifier = curentuser.Id;
- sysAttachmentDTO.Createtime = DateTime.Now;
- sysAttachmentDTO.Modifytime = sysAttachmentDTO.Createtime;
+ return JsonConvert.SerializeObject(resultEntity);
+ }
+ string[] Filepaths = leaveOff.Filepath;
- resultEntity = _sysAttachmentService.save(sysAttachmentDTO);
- if (resultEntity.Result == false)
+ if (Filepaths != null && Filepaths.Length > 0)
+ {
+ for (int i = 0; i < Filepaths.Length; i++)
+ {
+ if (string.IsNullOrEmpty(leaveOff.attachmentid[i]))
{
- return JsonConvert.SerializeObject(resultEntity);
+ SysAttachmentDTO sysAttachmentDTO = new SysAttachmentDTO();
+ //sysAttachmentDTO.Id =
+ sysAttachmentDTO.AttObj = "AskLeaveOff";
+ sysAttachmentDTO.AttObjid = leaveOff.Id;
+ sysAttachmentDTO.Filefullname = leaveOff.Filefullname[i];
+ sysAttachmentDTO.Filepath = leaveOff.Filepath[i];
+ sysAttachmentDTO.Creater = curentuser.Id;
+ sysAttachmentDTO.Modifier = curentuser.Id;
+ sysAttachmentDTO.Createtime = DateTime.Now;
+ sysAttachmentDTO.Modifytime = sysAttachmentDTO.Createtime;
+
+ resultEntity = _sysAttachmentService.save(sysAttachmentDTO);
+ if (resultEntity.Result == false)
+ {
+ return JsonConvert.SerializeObject(resultEntity);
+ }
}
+
}
+
}
-
-
}
+ resultEntity = _wfRunProcessService.WfAskLeaveOff(leaveOff.Id, leaveOff.Step, leaveOff.Tongguojujue, curentuser.Id, leaveOff.Content, leaveOff.Tittle, "v1");
scope.Complete();
}
--
Gitblit v1.9.1