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; using System.Runtime.InteropServices; namespace zhengcaioa.Controllers.AdmManagement { public class SigninController : Controller { private readonly ILogger _logger; private readonly IAdmSigninService _signinService; private readonly ISysAttachmentService _sysAttachmentService; private readonly IAdmAttendanceRuleService _attendanceRuleService; private readonly ILiaotianService _liaotianService; [CheckLogin] public SigninController(ILogger logger, IAdmSigninService signinService, ISysAttachmentService sysAttachmentService , IAdmAttendanceRuleService attendanceRuleService, ILiaotianService liaotianService) { _logger = logger; _signinService = signinService; _sysAttachmentService = sysAttachmentService; _attendanceRuleService = attendanceRuleService; _liaotianService = liaotianService; } #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,string mac) { ResultEntity resultEntity = new ResultEntity(); resultEntity.Result = false; try { if (string.IsNullOrEmpty(mac)) { resultEntity = _signinService.save(id, signinType); } else { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); if(curentuser.IpMac == mac) { //var mac = GetClientMAC(GetClientIP()); } else { resultEntity.Message = "打卡电脑检查不匹配。"; } } } catch(Exception er) { } return JsonConvert.SerializeObject(resultEntity); } [DllImport("Iphlpapi.dll")] private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length); [DllImport("Ws2_32.dll")] private static extern Int32 inet_addr(string ip); private string GetClientIP() { HttpContextAccessor context = new HttpContextAccessor(); var ip = context.HttpContext?.Connection.RemoteIpAddress.ToString(); var mac = GetClientMAC(ip); var str = "IP:" + ip + " ,MAC:" + mac; return str; } private string GetClientMAC(string ip) { string mac_dest = string.Empty; try { Int32 ldest = inet_addr(ip); //目的地的ip Int32 lhost = inet_addr(""); //服务器的ip Int64 macinfo = new Int64(); Int32 len = 6; int res = SendARP(ldest, 0, ref macinfo, ref len); string mac_src = macinfo.ToString("X"); while (mac_src.Length < 12) { mac_src = mac_src.Insert(0, "0"); } for (int i = 0; i < 11; i++) { if (0 == (i % 2)) { if (i == 10) { mac_dest = mac_dest.Insert(0, mac_src.Substring(i, 2)); } else { mac_dest = "-" + mac_dest.Insert(0, mac_src.Substring(i, 2)); } } } } catch (Exception ex) { throw ex; } return mac_dest; } /// /// 取得今天签到信息 /// /// [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 id="", DateTime? StratTimeName = null, DateTime? EndTimeName = null) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get(""); AdmAskLeaveDTO admAskLeaveDTO = new AdmAskLeaveDTO(); if (!string.IsNullOrEmpty(id)) { admAskLeaveDTO = _signinService.GetAskLeave(id); admAskLeaveDTO.StratTimeName = admAskLeaveDTO.StratTime.Value.ToString("yyyy-MM-dd HH:mm"); admAskLeaveDTO.EndTimeName = admAskLeaveDTO.EndTime.Value.ToString("yyyy-MM-dd HH:mm"); } else { admAskLeaveDTO.CreaterName = curentuser.UserName; admAskLeaveDTO.Tittle = "请假申请(" + curentuser.UserName +")"; } 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; ResultDataEntity results = new ResultDataEntity(); if (!string.IsNullOrEmpty(id)) { SysAttachmentDTOSearch searchEntity = new SysAttachmentDTOSearch(); searchEntity.page = 1; searchEntity.rows = 1000; searchEntity.AttObj = "AskLeave"; searchEntity.AttObjid = id; results = _sysAttachmentService.SearchByPaging(searchEntity); } ViewBag.attachment = results; ViewData["Lavetype"] = _liaotianService.GetSYScode("ADM_AskLeave", "Lavetype"); return View(); } [CheckLogin] [HttpPost] public string SaveAskLeave(AdmAskLeaveDTO admAsk) { var curentuser = JsonConvert.DeserializeObject(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; using (TransactionScope scope = new TransactionScope()) { resultEntity = _signinService.SaveAskLeave(admAsk); if (resultEntity.Result == false) { 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); } } } } scope.Complete(); } return JsonConvert.SerializeObject(resultEntity); } [CheckLogin] [HttpPost] public string Checktime(DateTime StratTime, DateTime EndTime) { ResultEntity resultEntity = new ResultEntity(); if (EndTime<= StratTime) { resultEntity.Result = false; resultEntity.Message = "开始时间不能大于结束时间"; return JsonConvert.SerializeObject(resultEntity); } AdmAskLeaveDTO admAsk = jisianChecktime( StratTime, EndTime); resultEntity.Result = true; resultEntity.DataInfo = admAsk; return JsonConvert.SerializeObject(resultEntity); } public AdmAskLeaveDTO jisianChecktime(DateTime StratTime, DateTime EndTime) { //string dateDiff = null; AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get(""); var admAttendanceRulesDtlDTOs = _attendanceRuleService.GetDtlList(""); var jiejiari = admAttendanceRulesDtlDTOs.Where(x=>x.Name== "jiejiari").ToList(); var tiaoxiuri = admAttendanceRulesDtlDTOs.Where(x => x.Name == "tiaoxiuri").ToList(); //每天的考勤时间点 string[] WorkingStart = admAttendanceRuleDTO.WorkingStart.Split('.'); int WorkingStarthour = int.Parse(WorkingStart[0]); int WorkingStartmin = int.Parse(WorkingStart[1]); string[] WorkingEnd = admAttendanceRuleDTO.WorkingEnd.Split('.'); int WorkingEndhour = int.Parse(WorkingEnd[0]); int WorkingEndmin = int.Parse(WorkingEnd[1]); string[] OffworkStart = admAttendanceRuleDTO.OffworkStart.Split('.'); int OffworkStarthour = int.Parse(OffworkStart[0]); int OffworkStartmin = int.Parse(OffworkStart[1]); string[] OffworkEnd = admAttendanceRuleDTO.OffworkEnd.Split('.'); int OffworkEndhour = int.Parse(OffworkEnd[0]); int OffworkEndmin = int.Parse(OffworkEnd[1]); //请假开始时间上班时间 DateTime StratTimeWorkingStart = StratTime.Date.AddHours(WorkingStarthour).AddMinutes(WorkingStartmin); DateTime StratTimeWorkingEnd = StratTime.Date.AddHours(WorkingEndhour).AddMinutes(WorkingEndmin); DateTime StratTimeOffworkStart = StratTime.Date.AddHours(OffworkStarthour).AddMinutes(OffworkStartmin); DateTime StratTimeOffworkEnd = StratTime.Date.AddHours(OffworkEndhour).AddMinutes(OffworkEndmin); //请假结束时间上班时间 DateTime EndTimeWorkingStart = EndTime.Date.AddHours(WorkingStarthour).AddMinutes(WorkingStartmin); DateTime EndTimeWorkingEnd = EndTime.Date.AddHours(WorkingEndhour).AddMinutes(WorkingEndmin); DateTime EndTimeOffworkStart = EndTime.Date.AddHours(OffworkStarthour).AddMinutes(OffworkStartmin); DateTime EndTimeOffworkEnd = EndTime.Date.AddHours(OffworkEndhour).AddMinutes(OffworkEndmin); //上班时间 TimeSpan shangwu = StratTimeWorkingEnd.Subtract(StratTimeWorkingStart); TimeSpan xiawu = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart); int shangbanshijian = shangwu.Hours * 60 + shangwu.Minutes + xiawu.Hours * 60 + xiawu.Minutes; int LavehTime = 0; TimeSpan ts = EndTime.Subtract(StratTime); for(int i=0;i<= ts.Days;i++) { if (i == 0) { //是否上班日期 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)) { LavehTime += 0; } else { if (StratTime <= StratTimeWorkingStart) { LavehTime += shangbanshijian; } else if (StratTime <= StratTimeWorkingEnd) { TimeSpan shangwu1 = StratTimeWorkingEnd.Subtract(StratTime); TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart); LavehTime += shangwu1.Hours * 60 + shangwu1.Minutes + xiawu1.Hours * 60 + xiawu1.Minutes; } else if (StratTime <= StratTimeOffworkStart) { TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart); LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes; } else if (StratTime <= StratTimeOffworkEnd) { TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTime); LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes; } } } else { //是否调休日 调休日需要上班 if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueStart >= StratTime.Date)) { if (StratTime <= StratTimeWorkingStart) { LavehTime += shangbanshijian; } else if (StratTime <= StratTimeWorkingEnd) { TimeSpan shangwu1 = StratTimeWorkingEnd.Subtract(StratTime); TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart); LavehTime += shangwu1.Hours * 60 + shangwu1.Minutes + xiawu1.Hours * 60 + xiawu1.Minutes; } else if (StratTime <= StratTimeOffworkStart) { TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTimeOffworkStart); LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes; } else if (StratTime <= StratTimeOffworkEnd) { TimeSpan xiawu1 = StratTimeOffworkEnd.Subtract(StratTime); LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes; } } else { LavehTime += 0; } } } if(i == ts.Days) { //是否上班日期 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)) { LavehTime += 0; } else { if ( EndTime >= EndTimeOffworkEnd) { LavehTime += shangbanshijian; } else if (EndTime >= EndTimeOffworkStart) { TimeSpan shangwu1 = EndTimeWorkingEnd.Subtract(EndTimeWorkingStart); TimeSpan xiawu1 = EndTime.Subtract(EndTimeOffworkStart); LavehTime += shangwu1.Hours * 60 + shangwu1.Minutes + xiawu1.Hours * 60 + xiawu1.Minutes; } else if (EndTime >= EndTimeWorkingEnd) { TimeSpan xiawu1 = EndTimeWorkingEnd.Subtract(EndTimeWorkingStart); LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes; } else if (EndTime >= EndTimeWorkingStart) { TimeSpan xiawu1 = EndTime.Subtract(EndTimeWorkingStart); LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes; } } } else { //是否调休日 调休日需要上班 if (tiaoxiuri.Exists(x => x.ValueStart <= EndTime.Date && x.ValueStart >= EndTime.Date)) { if (EndTime >= EndTimeOffworkEnd) { LavehTime += shangbanshijian; } else if (EndTime >= EndTimeOffworkStart) { TimeSpan shangwu1 = EndTimeWorkingEnd.Subtract(EndTimeWorkingStart); TimeSpan xiawu1 = EndTime.Subtract(EndTimeOffworkStart); LavehTime += shangwu1.Hours * 60 + shangwu1.Minutes + xiawu1.Hours * 60 + xiawu1.Minutes; } else if (EndTime >= EndTimeWorkingEnd) { TimeSpan xiawu1 = EndTimeWorkingEnd.Subtract(EndTimeWorkingStart); LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes; } else if (EndTime >= EndTimeWorkingStart) { TimeSpan xiawu1 = EndTime.Subtract(EndTimeWorkingStart); LavehTime += xiawu1.Hours * 60 + xiawu1.Minutes; } } else { LavehTime += 0; } } } if(i != 0 && i != ts.Days) { DateTime dateTimenow = StratTime.AddDays(i).Date; //是否上班日期 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)) { LavehTime += 0; } else { LavehTime += shangbanshijian; } } else { //是否调休日 调休日需要上班 if (tiaoxiuri.Exists(x => x.ValueStart <= StratTime.Date && x.ValueStart >= StratTime.Date)) { LavehTime += shangbanshijian; } else { LavehTime += 0; } } } if(ts.Days == 0) { LavehTime -= shangbanshijian; } } //dateDiff = ts.Days.ToString() + "天" // + ts.Hours.ToString() + "小时" // + ts.Minutes.ToString() + "分钟" // + ts.Seconds.ToString() + "秒"; //string ssss = (EndTime - StratTime).ToString(); AdmAskLeaveDTO admAsk = new AdmAskLeaveDTO(); admAsk.LaveDay = (int)(LavehTime/shangbanshijian); int lefthour = (int)(LavehTime % shangbanshijian); admAsk.LavehHour = lefthour / 60; if (lefthour % 60>0) { admAsk.LavehHour += 1; } return admAsk; } public IActionResult AskLeaveOff(string id = "", DateTime? StratTimeName = null, DateTime? EndTimeName = null) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get(""); AdmAskLeaveOffDTO askLeaveOffDTO = new AdmAskLeaveOffDTO(); if (!string.IsNullOrEmpty(id)) { askLeaveOffDTO = _signinService.GetAskLeaveOff(id); askLeaveOffDTO.StratTimeName =askLeaveOffDTO.StratTime.Value.ToString("yyyy-MM-dd HH:mm") ; askLeaveOffDTO.EndTimeName = askLeaveOffDTO.EndTime.Value.ToString("yyyy-MM-dd HH:mm"); } else { askLeaveOffDTO.CreaterName = curentuser.UserName; askLeaveOffDTO.Tittle = "销假申请(" + curentuser.UserName +")"; } if (StratTimeName.HasValue) { askLeaveOffDTO.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) { askLeaveOffDTO.EndTimeName = EndTimeName.Value.AddHours(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[0])).AddMinutes(double.Parse(admAttendanceRuleDTO.OffworkEnd.Split('.')[1])).ToString("yyyy-MM-dd HH:mm"); } ResultDataEntity results = new ResultDataEntity(); if (!string.IsNullOrEmpty(id)) { SysAttachmentDTOSearch searchEntity = new SysAttachmentDTOSearch(); searchEntity.page = 1; searchEntity.rows = 1000; searchEntity.AttObj = "AskLeaveOff"; searchEntity.AttObjid = id; results = _sysAttachmentService.SearchByPaging(searchEntity); } ViewBag.attachment = results; ViewData["Lavetype"] = _liaotianService.GetSYScode("ADM_AskLeaveOff", "Lavetype"); ViewData.Model = askLeaveOffDTO; return View(); } public string SaveAskLeaveOff(AdmAskLeaveOffDTO leaveOff) { var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; leaveOff.RecStatus = "A"; //未挂审批流,提交直接通过 leaveOff.ShenpiStatus = "A"; if (String.IsNullOrEmpty(leaveOff.Id)) { leaveOff.Creater = curentuser.Id; leaveOff.Createtime = DateTime.Now; } leaveOff.Modifier = curentuser.Id; leaveOff.Modifytime = DateTime.Now; ResultEntity resultEntity = new ResultEntity(); resultEntity.Result = false; using (TransactionScope scope = new TransactionScope()) { resultEntity = _signinService.SaveAskLeaveOff(leaveOff); if(resultEntity.Result == false) { return JsonConvert.SerializeObject(resultEntity); } 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.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); } } } } scope.Complete(); } 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"; if (dto.WorkingStart.IndexOf(".") < 0) { dto.WorkingStart += ".00"; } if (dto.WorkingEnd.IndexOf(".") < 0) { dto.WorkingEnd += ".00"; } if (dto.OffworkStart.IndexOf(".") < 0) { dto.OffworkStart += ".00"; } if (dto.OffworkEnd.IndexOf(".") < 0) { dto.OffworkEnd += ".00"; } resultEntity.Result = false; var curentuser = JsonConvert.DeserializeObject(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; using (TransactionScope scope = new TransactionScope()) { dto.FullAttendance = 0; dto.AbsenteeismPayment2 = 0; 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 = DateTime.Parse(dto.holiday_s[i]); admAttendanceRulesDtlDTO.ValueEnd = DateTime.Parse(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 = DateTime.Parse( dto.rest_s[i]); admAttendanceRulesDtlDTO.ValueEnd = DateTime.Parse(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 } }