From 072169e3c5446f94e2cf4e570e5c7952bb5b15b9 Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期二, 27 七月 2021 14:47:44 +0800 Subject: [PATCH] 今日开发 考勤规则里增加 公司安排加班 调整请假时间计算 加班日考勤计算 --- zhengcaioa/zhengcaioa/Controllers/admin/TongjiBaoBiaoController.cs | 213 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 173 insertions(+), 40 deletions(-) diff --git a/zhengcaioa/zhengcaioa/Controllers/admin/TongjiBaoBiaoController.cs b/zhengcaioa/zhengcaioa/Controllers/admin/TongjiBaoBiaoController.cs index 9a3e373..48124d5 100644 --- a/zhengcaioa/zhengcaioa/Controllers/admin/TongjiBaoBiaoController.cs +++ b/zhengcaioa/zhengcaioa/Controllers/admin/TongjiBaoBiaoController.cs @@ -22,6 +22,9 @@ using Grpc.Core; using System; using System.Transactions; +using Microsoft.Extensions.Configuration; +using Newtonsoft.Json.Linq; +using System.Net.Http.Headers; namespace zhengcaioa.Controllers.Finance { @@ -52,7 +55,11 @@ private readonly IProjectService _projectService; private readonly ICusFangwenjiluService _cusFangwenjiluService; private readonly ILiaotianService _liaotianService; - + private readonly IConfiguration _configuration; + private readonly IHttpClientFactory _clientFactory; + private readonly IHrPositionService _hrPositionService; + private readonly IHrDeptService _hrDeptService; + private readonly IAdmSigninService _admSigninService; public TongjiBaoBiaoController(ILogger<TongjiBaoBiaoController> logger , IAdmAttendanceRuleService attendanceRuleService @@ -77,7 +84,13 @@ , IDtChannelArticleNewsService dtChannelArticleNewsService , IProjectService projectService , ICusFangwenjiluService cusFangwenjiluService - ,ILiaotianService liaotianService) + , ILiaotianService liaotianService + , IConfiguration configuration + , IHttpClientFactory clientFactory + , IHrPositionService hrPositionService + , IHrDeptService hrDeptService + , IAdmSigninService admSigninService + ) { _logger = logger; _attendanceRuleService = attendanceRuleService; @@ -103,9 +116,14 @@ _projectService = projectService; _cusFangwenjiluService = cusFangwenjiluService; _liaotianService = liaotianService; + _configuration = configuration; + _clientFactory = clientFactory; + _hrPositionService = hrPositionService; + _hrDeptService = hrDeptService; + _admSigninService = admSigninService; } - public IActionResult Index(string Tongjitime="") + public async Task<IActionResult> IndexAsync(string Tongjitime="") { var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; @@ -926,14 +944,57 @@ if (jijianizhucehuiyuan != null) { - //鏈湀鏁伴噺 - var zhucehuiyuansyue = _admPieceCheckService.GetList(curentuser.Id, dateminkaoqin, datemaxkaoqin).Where(x => x.WorkPro == jijianizhucehuiyuan.Id).ToList(); + //鏈湀鏁伴噺 + List <YaoQingYongHuDTO> zhucehuiyuansyue = new List<YaoQingYongHuDTO>(); + try + { + //var pltUserDTO = _userService.GetPltUserEntity(curentuser.Id); + string huiyuanurl = _configuration.GetSection("huiyuanurl").Value; + string GetYGYaoQingYonghu = _configuration.GetSection("GetYGYaoQingYonghu").Value; + Uri postUrl2 = new Uri(huiyuanurl + GetYGYaoQingYonghu); - zhucehuiyuanDTO.benyueshuliang = (zhucehuiyuansyue.Sum(x => x.Shuliang) ?? 0).ToString("0.##"); + JObject questions2 = new JObject(); + questions2.Add("UserID", curentuser.Id); + questions2.Add("StartTime", dateminkaoqin.ToString("yyyy-MM-dd HH:mm:ss")); + questions2.Add("EndTime", datemaxkaoqin.ToString("yyyy-MM-dd HH:mm:ss")); + + string requestJson2 = questions2.ToString(); + string result2 = string.Empty; + + using (HttpContent httpContent = new StringContent(requestJson2)) + { + httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); + + var httpClient2 = _clientFactory.CreateClient(); + httpClient2.Timeout = new TimeSpan(0, 0, 10); + var Result2 = await httpClient2.PostAsync(postUrl2, httpContent); + result2 = Result2.Content.ReadAsStringAsync().Result; + } + + _logger.LogInformation("result2:" + result2); + JObject jobjectresult = (JObject)JsonConvert.DeserializeObject(result2); + + if (jobjectresult["code"] != null && jobjectresult["code"].ToString() == "1") + { + zhucehuiyuanDTO.benyueshuliang = jobjectresult["count"].ToString(); + zhucehuiyuansyue = JsonConvert.DeserializeObject<List<YaoQingYongHuDTO>>(jobjectresult["data"].ToString()); + + } + else + { + zhucehuiyuanDTO.benyueshuliang = "0"; + } + } + catch (Exception ex) + { + + } + //var zhucehuiyuansyue = _admPieceCheckService.GetList(curentuser.Id, dateminkaoqin, datemaxkaoqin).Where(x => x.WorkPro == jijianizhucehuiyuan.Id).ToList(); + + //zhucehuiyuanDTO.benyueshuliang = (zhucehuiyuansyue.Sum(x => x.Shuliang) ?? 0).ToString("0.##"); //鏈棩鏁伴噺 - var zhucehuiyuansri = zhucehuiyuansyue.Where(x => x.WorkTime >= chauxnshijian.Date && x.WorkTime < chauxnshijian.Date.AddDays(1)).ToList(); - zhucehuiyuanDTO.benrishuliang = (zhucehuiyuansri.Sum(x => x.Shuliang) ?? 0).ToString("0.##"); - zhucehuiyuanDTO.dangrijixiao = (zhucehuiyuansri.Sum(x => x.Gongzi) ?? 0).ToString("0.##"); + var zhucehuiyuansri = zhucehuiyuansyue.Where(x => x.CreatTime >= chauxnshijian.Date && x.CreatTime < chauxnshijian.Date.AddDays(1)).ToList(); + zhucehuiyuanDTO.benrishuliang = zhucehuiyuansri.Count.ToString(); var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianizhucehuiyuan.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue) @@ -943,23 +1004,30 @@ zhucehuiyuanDTO.benyueqingkuang = (Yingchuqin * jixiaotichengfangan.Renwu.Value).ToString("0.##"); zhucehuiyuanDTO.benriqingkuang = jixiaotichengfangan.Renwu.Value.ToString("0.##"); - //if (jixiaotichengfangan.Tichengstandard == "01") - //{ - // decimal youxiaojijian = (zhucehuiyuansri.Sum(x => x.Shuliang) ?? 0) - jixiaotichengfangan.Renwu.Value; - // if (youxiaojijian > 0) - // { - // zhucehuiyuanDTO.dangrijixiao = Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2).ToString(); - // } + if (jixiaotichengfangan.Tichengstandard == "01") + { - //} + zhucehuiyuanDTO.benyueqingkuang = (Yingchuqin * jixiaotichengfangan.Renwu.Value).ToString("0.##"); + zhucehuiyuanDTO.benriqingkuang = jixiaotichengfangan.Renwu.Value.ToString("0.##"); + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = zhucehuiyuansri.Count - jixiaotichengfangan.Renwu.Value; + if (youxiaojijian > 0) + { + zhucehuiyuanDTO.dangrijixiao = Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2).ToString("0.##"); + } + + } + + } } else if (jixiaotichengfangan.Renwustandard == "02") { - zhucehuiyuanDTO.benyueqingkuang = jixiaotichengfangan.Renwu.Value.ToString("0.##"); ; + zhucehuiyuanDTO.benyueqingkuang = jixiaotichengfangan.Renwu.Value.ToString("0.##"); //if (jixiaotichengfangan.Tichengstandard == "01") //{ - // decimal youxiaojijian = _intentionCustomerDTOs.Count + cooperatecustomCustomerDTOs.Count - renwujishu; + // decimal youxiaojijian = qianyueDTOs.Count - renwujishu; // if (youxiaojijian > 0) // { // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); @@ -1738,12 +1806,12 @@ - public IActionResult IndexSuoyou(string Tongjitime = "",string userid = "") + public async Task<IActionResult> IndexSuoyouAsync(string Tongjitime = "",string userid = "") { var curentuser = JsonConvert.DeserializeObject<PltUser>(HttpContext.Session.GetString("User")); ViewData["curentuser"] = curentuser; - DateTime chauxnshijian = DateTime.Now; + DateTime chauxnshijian = DateTime.Now.Date; if (!string.IsNullOrEmpty(Tongjitime)) { DateTime.TryParse(Tongjitime, out chauxnshijian); @@ -1822,6 +1890,11 @@ { var userDTO = userDTOs.Where(x=>x.Id == Userid).FirstOrDefault(); string position = userDTO.HrPosition; + + var hrPositionDTO = _hrPositionService.Get(userDTO.HrPosition); + + var deptDTO = _hrDeptService.Get(userDTO.DeptId); + var admSignInDTO = _admSigninService.GetByUserAndDate(Userid, chauxnshijian); var hrJixiaotichengThis = hrJixiaotichengDTOs.Where(x => x.PostId == position).ToList(); @@ -2580,13 +2653,58 @@ if (jijianizhucehuiyuan != null) { //鏈湀鏁伴噺 - var zhucehuiyuansyue = _admPieceCheckService.GetList(Userid, dateminkaoqin, datemaxkaoqin).Where(x => x.WorkPro == jijianizhucehuiyuan.Id).ToList(); + List<YaoQingYongHuDTO> zhucehuiyuansyue = new List<YaoQingYongHuDTO>(); + try + { + //var pltUserDTO = _userService.GetPltUserEntity(Userid); + string huiyuanurl = _configuration.GetSection("huiyuanurl").Value; + string GetYGYaoQingYonghu = _configuration.GetSection("GetYGYaoQingYonghu").Value; + Uri postUrl2 = new Uri(huiyuanurl + GetYGYaoQingYonghu); - zhucehuiyuanDTO.benyueshuliang = (zhucehuiyuansyue.Sum(x => x.Shuliang) ?? 0).ToString("0.##"); + JObject questions2 = new JObject(); + questions2.Add("UserID", Userid); + questions2.Add("StartTime", dateminkaoqin.ToString("yyyy-MM-dd HH:mm:ss")); + questions2.Add("EndTime", datemaxkaoqin.ToString("yyyy-MM-dd HH:mm:ss")); + + string requestJson2 = questions2.ToString(); + string result2 = string.Empty; + + using (HttpContent httpContent = new StringContent(requestJson2)) + { + httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); + + var httpClient2 = _clientFactory.CreateClient(); + httpClient2.Timeout = new TimeSpan(0, 0, 10); + var Result2 = await httpClient2.PostAsync(postUrl2, httpContent); + result2 = Result2.Content.ReadAsStringAsync().Result; + } + + _logger.LogInformation("result2:" + result2); + JObject jobjectresult = (JObject)JsonConvert.DeserializeObject(result2); + + if (jobjectresult["code"] != null && jobjectresult["code"].ToString() == "1") + { + zhucehuiyuanDTO.benyueshuliang = jobjectresult["count"].ToString(); + zhucehuiyuansyue = JsonConvert.DeserializeObject<List<YaoQingYongHuDTO>>(jobjectresult["data"].ToString()); + + } + else + { + zhucehuiyuanDTO.benyueshuliang = "0"; + } + } + catch (Exception ex) + { + + } + + + //var zhucehuiyuansyue = _admPieceCheckService.GetList(Userid, dateminkaoqin, datemaxkaoqin).Where(x => x.WorkPro == jijianizhucehuiyuan.Id).ToList(); + + //zhucehuiyuanDTO.benyueshuliang = (zhucehuiyuansyue.Sum(x => x.Shuliang) ?? 0).ToString("0.##"); //鏈棩鏁伴噺 - var zhucehuiyuansri = zhucehuiyuansyue.Where(x => x.WorkTime >= chauxnshijian.Date && x.WorkTime < chauxnshijian.Date.AddDays(1)).ToList(); - zhucehuiyuanDTO.benrishuliang = (zhucehuiyuansri.Sum(x => x.Shuliang) ?? 0).ToString("0.##"); - zhucehuiyuanDTO.dangrijixiao = (zhucehuiyuansri.Sum(x => x.Gongzi) ?? 0).ToString("0.##"); + var zhucehuiyuansri = zhucehuiyuansyue.Where(x => x.CreatTime >= chauxnshijian.Date && x.CreatTime < chauxnshijian.Date.AddDays(1)).ToList(); + zhucehuiyuanDTO.benrishuliang = zhucehuiyuansri.Count.ToString(); var jixiaotichengfangan = hrJixiaotichengThis.Where(x => x.PiecerateId == jijianizhucehuiyuan.Id).OrderByDescending(x => x.Effecttime).FirstOrDefault(); if (jixiaotichengfangan != null && jixiaotichengfangan.Ticheng.HasValue && jixiaotichengfangan.Renwu.HasValue) @@ -2596,23 +2714,23 @@ zhucehuiyuanDTO.benyueqingkuang = (Yingchuqin * jixiaotichengfangan.Renwu.Value).ToString("0.##"); zhucehuiyuanDTO.benriqingkuang = jixiaotichengfangan.Renwu.Value.ToString("0.##"); - //if (jixiaotichengfangan.Tichengstandard == "01") - //{ - // decimal youxiaojijian = (zhucehuiyuansri.Sum(x => x.Shuliang) ?? 0) - jixiaotichengfangan.Renwu.Value; - // if (youxiaojijian > 0) - // { - // zhucehuiyuanDTO.dangrijixiao = Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2).ToString(); - // } + if (jixiaotichengfangan.Tichengstandard == "01") + { + decimal youxiaojijian = zhucehuiyuansri.Count - jixiaotichengfangan.Renwu.Value; + if (youxiaojijian > 0) + { + zhucehuiyuanDTO.dangrijixiao = Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2).ToString("0.##"); + } - //} + } } else if (jixiaotichengfangan.Renwustandard == "02") { - zhucehuiyuanDTO.benyueqingkuang = jixiaotichengfangan.Renwu.Value.ToString("0.##"); ; + zhucehuiyuanDTO.benyueqingkuang = jixiaotichengfangan.Renwu.Value.ToString("0.##"); //if (jixiaotichengfangan.Tichengstandard == "01") //{ - // decimal youxiaojijian = _intentionCustomerDTOs.Count + cooperatecustomCustomerDTOs.Count - renwujishu; + // decimal youxiaojijian = qianyueDTOs.Count - renwujishu; // if (youxiaojijian > 0) // { // hrSalaryDTO.Jixiaoticheng += Math.Round(jixiaotichengfangan.Ticheng.Value * youxiaojijian, 2); @@ -2836,7 +2954,7 @@ DtChannelArticleNewsDTOSearch searchEntity = new DtChannelArticleNewsDTOSearch(); searchEntity.EndTime = datemaxkaoqin; searchEntity.AddTime = dateminkaoqin; - searchEntity.UserName = curentuser.UserSn; + searchEntity.UserName = userDTO.UserSn; searchEntity.CategoryId = 3; var dtChannelArticleNewsDTOs = _dtChannelArticleNewsService.GetList(searchEntity); xinwenzixunDTO.benyueshuliang = dtChannelArticleNewsDTOs.Count.ToString(); @@ -2893,7 +3011,7 @@ searchEntity = new DtChannelArticleNewsDTOSearch(); searchEntity.EndTime = datemaxkaoqin; searchEntity.AddTime = dateminkaoqin; - searchEntity.UserName = curentuser.UserSn; + searchEntity.UserName = userDTO.UserSn; searchEntity.CategoryId = 85; var dianxinanDTOs = _dtChannelArticleNewsService.GetList(searchEntity); dianxinanliDTO.benyueshuliang = dianxinanDTOs.Count.ToString(); @@ -2949,7 +3067,7 @@ searchEntity = new DtChannelArticleNewsDTOSearch(); searchEntity.EndTime = datemaxkaoqin; searchEntity.AddTime = dateminkaoqin; - searchEntity.UserName = curentuser.UserSn; + searchEntity.UserName = userDTO.UserSn; searchEntity.CategoryId = 73; var zhengcaizhishiDTOs = _dtChannelArticleNewsService.GetList(searchEntity); zhengcaizhishiDTO.benyueshuliang = zhengcaizhishiDTOs.Count.ToString(); @@ -3384,7 +3502,22 @@ tongjibaobiaobaobiaoDTO.ziliaoweihuDTOs = ziliaoweihuDTOs; tongjibaobiaobaobiaoDTO.xiangmushishiDTOs = xiangmushishiDTOs; tongjibaobiaobaobiaoDTO.dingdanDTOsCount = dingdanDTOsCount; - tongjibaobiaobaobiaoDTO.UserName = userDTO.UserName; + tongjibaobiaobaobiaoDTO.UserName = ""; + if (deptDTO != null) + { + tongjibaobiaobaobiaoDTO.UserName += "閮ㄩ棬锛�" + deptDTO.DeptName + " "; + } + tongjibaobiaobaobiaoDTO.UserName = "濮撳悕锛�" + userDTO.UserName + " "; + if (hrPositionDTO != null) + { + tongjibaobiaobaobiaoDTO.UserName += "鑱屽姟锛�" + hrPositionDTO.PostName + " "; + } + if (admSignInDTO != null) + { + tongjibaobiaobaobiaoDTO.UserName += "鎵撳崱鏃堕棿锛氫笂鍗� " + (admSignInDTO.MorningIn.HasValue? admSignInDTO.MorningIn.Value.ToString("HH:mm:ss"):"") + "-" + (admSignInDTO.MorningOut.HasValue ? admSignInDTO.MorningOut.Value.ToString("HH:mm:ss") : "") + + "涓嬪崍 " + (admSignInDTO.AfternoonIn.HasValue ? admSignInDTO.AfternoonIn.Value.ToString("HH:mm:ss") : "") + "-" + (admSignInDTO.AfternoonOut.HasValue ? admSignInDTO.AfternoonOut.Value.ToString("HH:mm:ss") : "") + + "鍔犵彮 " + (admSignInDTO.OvertimeIn.HasValue ? admSignInDTO.OvertimeIn.Value.ToString("HH:mm:ss") : "") + "-" + (admSignInDTO.OvertimeOut.HasValue ? admSignInDTO.OvertimeOut.Value.ToString("HH:mm:ss") : ""); + } tongjibaobiaobaobiaoDTOs.Add(tongjibaobiaobaobiaoDTO); -- Gitblit v1.9.1