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