From d4a6d65f5e449c3e5464aa18ae97bf8953987217 Mon Sep 17 00:00:00 2001 From: LR-20210131IOQH\Administrator <jackcold@163.com> Date: 星期二, 10 八月 2021 15:44:14 +0800 Subject: [PATCH] Merge branch 'master' of http://47.108.235.38:8080/r/zhengcaioa --- zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs | 384 ++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 284 insertions(+), 100 deletions(-) diff --git a/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs b/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs index e10e018..2e3504b 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")); @@ -215,25 +222,47 @@ else { admAskLeaveDTO.CreaterName = curentuser.UserName; - admAskLeaveDTO.Tittle = "璇峰亣鐢宠锛�" + curentuser.UserName +"锛�"; + admAskLeaveDTO.Tittle = "璇峰亣鐢宠锛�" + curentuser.UserName + "锛�"; + + + + + if (!string.IsNullOrWhiteSpace(StratTimeName)) + { + 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 (!string.IsNullOrWhiteSpace(EndTimeName)) + { + 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)); + + admAskLeaveDTO.LaveDay = admAsk.LaveDay; + admAskLeaveDTO.LavehHour = admAsk.LavehHour; } - - - - if (StratTimeName.HasValue) - { - admAskLeaveDTO.StratTimeName = StratTimeName.Value.AddHours(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.WorkingStart.Split('.')[1])).ToString("yyyy-MM-dd HH:mm"); - } - - if (EndTimeName.HasValue) - { - admAskLeaveDTO.EndTimeName = EndTimeName.Value.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)); - - admAskLeaveDTO.LaveDay = admAsk.LaveDay; - admAskLeaveDTO.LavehHour = admAsk.LavehHour; + ViewData.Model = admAskLeaveDTO; @@ -251,6 +280,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 +336,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); @@ -355,6 +440,8 @@ var jiejiari = admAttendanceRulesDtlDTOs.Where(x=>x.Name== "jiejiari").ToList(); var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList(); + + var jiabanri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "jiabanri").ToList(); //姣忓ぉ鐨勮�冨嫟鏃堕棿鐐� string[] WorkingStart = admAttendanceRuleDTO.WorkingStart.Split('.'); @@ -466,7 +553,8 @@ { //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� - if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) + if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date) + || jiabanri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) { if (StratTime <= StratTimeWorkingStart) { @@ -562,7 +650,8 @@ { //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� - if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date)) + if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date) + || jiabanri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueEnd >= EndTime.Date)) { if (EndTime >= EndTimeOffworkEnd) { @@ -624,7 +713,8 @@ { //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� - if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) + if (tiaoxiuri.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueEnd >= dateTimenow.Date) + || jiabanri.Exists(x => x.ValueStart <= dateTimenow.Date && x.ValueEnd >= dateTimenow.Date)) { LavehTime += shangbanshijian; } @@ -653,7 +743,8 @@ else { //鏄惁璋冧紤鏃� 璋冧紤鏃ラ渶瑕佷笂鐝� - if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) + if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date) + || jiabanri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueEnd >= StratTime.Date)) { LavehTime -= shangbanshijian; } @@ -693,7 +784,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; @@ -712,22 +803,43 @@ { askLeaveOffDTO.CreaterName = curentuser.UserName; askLeaveOffDTO.Tittle = "閿�鍋囩敵璇凤紙" + curentuser.UserName +"锛�"; - } + - 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"); - if (EndTimeName.HasValue) + } + + } + else { - askLeaveOffDTO.EndTimeName = EndTimeName.Value.AddHours(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[1])).ToString("yyyy-MM-dd HH:mm"); + 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 (!string.IsNullOrWhiteSpace(EndTimeName)) + { + 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>(); if (!string.IsNullOrEmpty(id)) { @@ -743,6 +855,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(); } @@ -764,41 +923,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(); } @@ -903,6 +1066,27 @@ } + + for (int i = 0; i < dto.jiaban_s.Length; i++) + { + if (!String.IsNullOrEmpty(dto.jiaban_s[i]) && !String.IsNullOrEmpty(dto.jiaban_e[i])) + { + AdmAttendanceRulesDtlDTO admAttendanceRulesDtlDTO = new AdmAttendanceRulesDtlDTO(); + admAttendanceRulesDtlDTO.Pid = dto.Id; + admAttendanceRulesDtlDTO.ValueStart = DateTime.Parse(dto.jiaban_s[i]); + admAttendanceRulesDtlDTO.ValueEnd = DateTime.Parse(dto.jiaban_e[i]); + admAttendanceRulesDtlDTO.Name = "jiabanri"; + admAttendanceRulesDtlDTO.RecStatus = "A"; + admAttendanceRulesDtlDTO.Creater = curentuser.Id; + admAttendanceRulesDtlDTO.Createtime = DateTime.Now; + admAttendanceRulesDtlDTO.Modifier = admAttendanceRulesDtlDTO.Creater; + admAttendanceRulesDtlDTO.Modifytime = admAttendanceRulesDtlDTO.Createtime; + resultEntity = _attendanceRuleService.saveDtl(admAttendanceRulesDtlDTO); + } + + + } + scope.Complete(); } -- Gitblit v1.9.1