using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using DTO; using Microsoft.Extensions.Logging; using IServices; using Newtonsoft.Json; using zhengcaioa.Models; using Microsoft.AspNetCore.Http; using Newtonsoft.Json.Linq; using System.Transactions; namespace zhengcaioa.Controllers.AdmManagement { public class SigninController : Controller { private readonly ILogger _logger; private readonly IAdmSigninService _signinService; private readonly ISysAttachmentService _sysAttachmentService; private readonly IAdmAttendanceRuleService _attendanceRuleService; [CheckLogin] public SigninController(ILogger logger, IAdmSigninService signinService, ISysAttachmentService sysAttachmentService , IAdmAttendanceRuleService attendanceRuleService) { _logger = logger; _signinService = signinService; _sysAttachmentService = sysAttachmentService; _attendanceRuleService = attendanceRuleService; } #region 考勤签到打卡 /// /// 上下班签到 /// /// [CheckLogin] public IActionResult Index() { return View(); } /// /// 我的考勤记录 /// /// [CheckLogin] public IActionResult Signin() { JArray jar = new JArray(); for (var i = 1; i <= 12; i++) { var jo = string.Format("\"code\":{0}, \"label\":\"{1}月\" ", i, i); jar.Add(JObject.Parse("{" + jo + "}")); } ViewBag.month = jar; JArray Year = new JArray(); for (var i = -1; i < 2; i++) { var jo = string.Format("\"code\":{0}, \"label\":\"{0}年\" ", DateTime.Now.Year + i); Year.Add(JObject.Parse("{" + jo + "}")); } ViewBag.year = Year; List actionlist = new List(); ActionEntity actionEntity = new ActionEntity(); actionEntity.OpenType = 0; actionEntity.ActionUrl = ""; actionEntity.ActionFun = "Search"; actionEntity.PageIco = "fa fa-search"; actionEntity.ActionName = "查询"; actionlist.Add(actionEntity); ViewData["ActionInfo"] = actionlist; return View(); } /// /// 保存签到信息 /// /// 记录ID /// 10早上上班 11早上下班 20下午上班 21下午下班 30加班上班 31加班下班 /// [CheckLogin] public string Save(string id,int signinType) { ResultEntity resultEntity = _signinService.save(id, signinType); return JsonConvert.SerializeObject(resultEntity); } /// /// 取得今天签到信息 /// /// [CheckLogin] public string GetTodaySignin() { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); return JsonConvert.SerializeObject(_signinService.GetTodaySignin(curentuser.Id)); //.ReturnID; } /// /// 取得考勤记录 /// /// [CheckLogin] public string GetSigninList(AdmSignInDTOSearch search) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); search.userId = curentuser.Id; return JsonConvert.SerializeObject(_signinService.SearchByPaging(search)); } #endregion #region 请假与销假 public IActionResult AskLeave(string signinId) { ViewBag.SigninId = signinId; AdmAskLeaveDTO admAskLeaveDTO = _signinService.GetAskLeave(signinId); if (admAskLeaveDTO.StratTime.Equals(DateTime.MinValue)) { admAskLeaveDTO.StratTime = DateTime.Now; } if (admAskLeaveDTO.EndTime.Equals(DateTime.MinValue)) { admAskLeaveDTO.EndTime = DateTime.Now; } ViewData.Model = admAskLeaveDTO; return View(); } [CheckLogin] [HttpPost] public string SaveAskLeave(AdmAskLeaveDTO admAsk) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; admAsk.RecStatus = "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 = _signinService.SaveAskLeave(admAsk); return JsonConvert.SerializeObject(resultEntity); } public IActionResult AskLeaveOff(string signinId) { ViewBag.SigninId = signinId; AdmAskLeaveOffDTO admAskLeaveOffDTO = _signinService.GetAskLeaveOff(signinId); if (admAskLeaveOffDTO.StratTime.Equals(DateTime.MinValue)) { admAskLeaveOffDTO.StratTime = DateTime.Now; } if (admAskLeaveOffDTO.EndTime.Equals(DateTime.MinValue)) { admAskLeaveOffDTO.EndTime = DateTime.Now; } ResultDataEntity results = new ResultDataEntity(); if (!string.IsNullOrEmpty(signinId)) { SysAttachmentDTOSearch searchEntity = new SysAttachmentDTOSearch(); searchEntity.page = 1; searchEntity.rows = 1000; searchEntity.AttObj = "AskLeaveOff"; searchEntity.AttObjid = signinId; results = _sysAttachmentService.SearchByPaging(searchEntity); } ViewBag.attachment = results; ViewData.Model = admAskLeaveOffDTO; return View(); } public string SaveAskLeaveOff(AdmAskLeaveOffDTO leaveOff) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; leaveOff.RecStatus = "A"; if (String.IsNullOrEmpty(leaveOff.Id)) { leaveOff.Creater = curentuser.Id; leaveOff.Createtime = DateTime.Now; } leaveOff.Modifier = curentuser.Id; leaveOff.Modifytime = DateTime.Now; ResultEntity resultEntity = _signinService.SaveAskLeaveOff(leaveOff); string[] Filepaths = leaveOff.Filepath; if(Filepaths!=null&& Filepaths.Length > 0) { for(int i=0;i< Filepaths.Length; i++) { if (string.IsNullOrEmpty(leaveOff.attachmentid[i])) { SysAttachmentDTO sysAttachmentDTO = new SysAttachmentDTO(); //sysAttachmentDTO.Id = sysAttachmentDTO.AttObj = "AskLeaveOff"; sysAttachmentDTO.AttObjid = leaveOff.SigninId; 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); } } } return JsonConvert.SerializeObject(resultEntity); } #endregion #region 考勤规则 public IActionResult AttendanceRule() { AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get(""); admAttendanceRuleDTO.admAttendanceRulesDtlDTOs = _attendanceRuleService.GetDtlList(""); ViewData.Model = admAttendanceRuleDTO; return View(); } public string SaveAttendanceRule(AdmAttendanceRuleDTO dto) { ResultEntity resultEntity = new ResultEntity(); dto.Holiday = "1"; dto.Rest = "1"; resultEntity.Result = false; var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; using (TransactionScope scope = new TransactionScope()) { dto.RecStatus = "A"; if (String.IsNullOrEmpty(dto.Id)) { dto.Creater = curentuser.Id; dto.Createtime = DateTime.Now; } dto.Modifier = curentuser.Id; dto.Modifytime = DateTime.Now; resultEntity = _attendanceRuleService.save(dto); _attendanceRuleService.RemoveDtlList(dto.Id); for (int i = 0; i < dto.holiday_s.Length; i++) { if(!String.IsNullOrEmpty(dto.holiday_s[i]) && !String.IsNullOrEmpty(dto.holiday_e[i])) { AdmAttendanceRulesDtlDTO admAttendanceRulesDtlDTO = new AdmAttendanceRulesDtlDTO(); admAttendanceRulesDtlDTO.Pid = dto.Id; admAttendanceRulesDtlDTO.ValueStart = dto.holiday_s[i]; admAttendanceRulesDtlDTO.ValueEnd = dto.holiday_e[i]; admAttendanceRulesDtlDTO.Name = "jiejiari"; admAttendanceRulesDtlDTO.RecStatus = "A"; admAttendanceRulesDtlDTO.Creater = curentuser.Id; admAttendanceRulesDtlDTO.Createtime = DateTime.Now; admAttendanceRulesDtlDTO.Modifier = admAttendanceRulesDtlDTO.Creater; admAttendanceRulesDtlDTO.Modifytime = admAttendanceRulesDtlDTO.Createtime; resultEntity = _attendanceRuleService.saveDtl(admAttendanceRulesDtlDTO); } } for (int i = 0; i < dto.rest_s.Length; i++) { if (!String.IsNullOrEmpty(dto.rest_s[i]) && !String.IsNullOrEmpty(dto.rest_e[i])) { AdmAttendanceRulesDtlDTO admAttendanceRulesDtlDTO = new AdmAttendanceRulesDtlDTO(); admAttendanceRulesDtlDTO.Pid = dto.Id; admAttendanceRulesDtlDTO.ValueStart = dto.rest_s[i]; admAttendanceRulesDtlDTO.ValueEnd = dto.rest_e[i]; admAttendanceRulesDtlDTO.Name = "tiaoxiuri"; 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(); } // var ss = leaveOff; return JsonConvert.SerializeObject(resultEntity); } #endregion } }