From 286ebcbbfbb2481ac5507341245dd1207774c4a0 Mon Sep 17 00:00:00 2001
From: LR-20210131IOQH\Administrator <jackcold@163.com>
Date: 星期五, 25 六月 2021 11:11:50 +0800
Subject: [PATCH] sql表更新
---
zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs | 742 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 686 insertions(+), 56 deletions(-)
diff --git a/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs b/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs
index 2bfd86d..94534d1 100644
--- a/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs
+++ b/zhengcaioa/zhengcaioa/Controllers/AdmManagement/SigninController.cs
@@ -10,6 +10,8 @@
using zhengcaioa.Models;
using Microsoft.AspNetCore.Http;
using Newtonsoft.Json.Linq;
+using System.Transactions;
+using System.Runtime.InteropServices;
namespace zhengcaioa.Controllers.AdmManagement
{
@@ -18,12 +20,17 @@
private readonly ILogger<SigninController> _logger;
private readonly IAdmSigninService _signinService;
private readonly ISysAttachmentService _sysAttachmentService;
+ private readonly IAdmAttendanceRuleService _attendanceRuleService;
+ private readonly ILiaotianService _liaotianService;
[CheckLogin]
- public SigninController(ILogger<SigninController> logger, IAdmSigninService signinService, ISysAttachmentService sysAttachmentService)
+ public SigninController(ILogger<SigninController> logger, IAdmSigninService signinService, ISysAttachmentService sysAttachmentService
+ , IAdmAttendanceRuleService attendanceRuleService, ILiaotianService liaotianService)
{
_logger = logger;
_signinService = signinService;
_sysAttachmentService = sysAttachmentService;
+ _attendanceRuleService = attendanceRuleService;
+ _liaotianService = liaotianService;
}
#region 鑰冨嫟绛惧埌鎵撳崱
@@ -79,12 +86,88 @@
/// <param name="signinType">10鏃╀笂涓婄彮 11鏃╀笂涓嬬彮 20涓嬪崍涓婄彮 21涓嬪崍涓嬬彮 30鍔犵彮涓婄彮 31鍔犵彮涓嬬彮</param>
/// <returns></returns>
[CheckLogin]
- public string Save(string id,int signinType)
- {
- ResultEntity resultEntity = _signinService.save(id, signinType);
+ 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<PltUser>(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 + " 锛孧AC:" + 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;
+ }
/// <summary>
/// 鍙栧緱浠婂ぉ绛惧埌淇℃伅
@@ -113,19 +196,61 @@
}
#endregion
#region 璇峰亣涓庨攢鍋�
- public IActionResult AskLeave(string signinId)
+ public IActionResult AskLeave(string id="", DateTime? StratTimeName = null, DateTime? EndTimeName = null)
{
- ViewBag.SigninId = signinId;
- AdmAskLeaveDTO admAskLeaveDTO = _signinService.GetAskLeave(signinId);
- if (admAskLeaveDTO.StratTime.Equals(DateTime.MinValue))
+
+ var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
+ ViewData["curentuser"] = curentuser;
+
+ AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get("");
+
+ AdmAskLeaveDTO admAskLeaveDTO = new AdmAskLeaveDTO();
+ if (!string.IsNullOrEmpty(id))
{
- admAskLeaveDTO.StratTime = DateTime.Now;
+ 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");
}
- if (admAskLeaveDTO.EndTime.Equals(DateTime.MinValue))
+ else
{
- admAskLeaveDTO.EndTime = DateTime.Now;
+ 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<SysAttachmentDTO> results = new ResultDataEntity<SysAttachmentDTO>();
+ 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();
}
@@ -137,6 +262,8 @@
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;
@@ -147,39 +274,451 @@
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);
+ }
- ResultEntity resultEntity = _signinService.SaveAskLeave(admAsk);
+ 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);
}
- public IActionResult AskLeaveOff(string signinId)
+
+
+ [CheckLogin]
+ [HttpPost]
+ public string Checktime(DateTime StratTime, DateTime EndTime)
{
- ViewBag.SigninId = signinId;
- AdmAskLeaveOffDTO admAskLeaveOffDTO = _signinService.GetAskLeaveOff(signinId);
- if (admAskLeaveOffDTO.StratTime.Equals(DateTime.MinValue))
+ ResultEntity<AdmAskLeaveDTO> resultEntity = new ResultEntity<AdmAskLeaveDTO>();
+
+ if (EndTime<= StratTime)
{
- admAskLeaveOffDTO.StratTime = DateTime.Now;
+ resultEntity.Result = false;
+ resultEntity.Message = "寮�濮嬫椂闂翠笉鑳藉ぇ浜庣粨鏉熸椂闂�";
+ return JsonConvert.SerializeObject(resultEntity);
}
- if (admAskLeaveOffDTO.EndTime.Equals(DateTime.MinValue))
+
+ 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++)
{
- admAskLeaveOffDTO.EndTime = DateTime.Now;
+ 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<PltUser>(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<SysAttachmentDTO> results = new ResultDataEntity<SysAttachmentDTO>();
- if (!string.IsNullOrEmpty(signinId))
+ if (!string.IsNullOrEmpty(id))
{
SysAttachmentDTOSearch searchEntity = new SysAttachmentDTOSearch();
searchEntity.page = 1;
searchEntity.rows = 1000;
searchEntity.AttObj = "AskLeaveOff";
- searchEntity.AttObjid = signinId;
+ searchEntity.AttObjid = id;
results = _sysAttachmentService.SearchByPaging(searchEntity);
}
ViewBag.attachment = results;
+ ViewData["Lavetype"] = _liaotianService.GetSYScode("ADM_AskLeaveOff", "Lavetype");
-
- ViewData.Model = admAskLeaveOffDTO;
+ ViewData.Model = askLeaveOffDTO;
return View();
}
@@ -188,6 +727,8 @@
var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User"));
ViewData["curentuser"] = curentuser;
leaveOff.RecStatus = "A";
+ //鏈寕瀹℃壒娴侊紝鎻愪氦鐩存帴閫氳繃
+ leaveOff.ShenpiStatus = "A";
if (String.IsNullOrEmpty(leaveOff.Id))
{
leaveOff.Creater = curentuser.Id;
@@ -195,34 +736,50 @@
}
leaveOff.Modifier = curentuser.Id;
leaveOff.Modifytime = DateTime.Now;
-
- ResultEntity resultEntity = _signinService.SaveAskLeaveOff(leaveOff);
- string[] Filepaths = leaveOff.Filepath;
-
- if(Filepaths!=null&& Filepaths.Length > 0)
+ ResultEntity resultEntity = new ResultEntity();
+ resultEntity.Result = false;
+ using (TransactionScope scope = new TransactionScope())
{
- 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.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;
+ return JsonConvert.SerializeObject(resultEntity);
+ }
+ string[] Filepaths = leaveOff.Filepath;
- resultEntity = _sysAttachmentService.save(sysAttachmentDTO);
+ 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();
}
+
+
@@ -236,25 +793,98 @@
#region 鑰冨嫟瑙勫垯
public IActionResult AttendanceRule()
{
+ AdmAttendanceRuleDTO admAttendanceRuleDTO = _attendanceRuleService.Get("");
+ admAttendanceRuleDTO.admAttendanceRulesDtlDTOs = _attendanceRuleService.GetDtlList("");
+
+ ViewData.Model = admAttendanceRuleDTO;
return View();
}
- public string SaveAttendanceRule(object leaveOff)
+ 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<PltUser>(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;
+ 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 resultEntity = _signinService.SaveAskLeaveOff(leaveOff);
- var ss = leaveOff;
- return JsonConvert.SerializeObject(null);
+ 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
}
--
Gitblit v1.9.1