From 3b9bf8c309d77d9817e973aa036e045695c78d70 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期一, 26 七月 2021 16:17:45 +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