现场考勤——当前现场总人数

This commit is contained in:
夏菊 2025-11-06 16:32:23 +08:00
parent 134f759589
commit c54c470818
3 changed files with 168 additions and 108 deletions

View File

@ -179,65 +179,76 @@
padding: 20px 0px;
color: #fff;
}
.base-wrap{
padding:15px 10px;
height:100%;
.base-wrap {
padding: 15px 10px;
height: 100%;
}
.base-wrap .base-tit{
font-size:12px;
color:#fff;
.base-wrap .base-tit {
font-size: 12px;
color: #fff;
}
.base-wrap .base-txt-wrap {
margin-top: 5px;
background-color: #0B508B;
border-radius: 5px;
color: #FFAE72;
height: 100%;
align-items: center;
justify-content: space-around;
}
.base-wrap .base-txt-wrap .num-1 {
background-color: #2A759C;
padding: 5px;
font-size: 40px;
}
.yj-info-1 {
height: 100%;
}
.base-wrap .base-txt-wrap{
margin-top:5px;
background-color:#0B508B;
border-radius:5px;
color:#FFAE72;
height:100%;
align-items:center;
justify-content:space-around;
.yj-info-1-list {
color: #fff;
}
.base-wrap .base-txt-wrap .num-1{
background-color:#2A759C;
padding:5px;
font-size:40px;
}
.yj-info-1{
height:100%;
}
.yj-info-1-list{
color:#fff;
}
.yj-info-1 .telbg{
height:100%;
width:85px;
.yj-info-1 .telbg {
height: 100%;
width: 85px;
background: url(../res/index/images/tel.png) center center no-repeat;
background-size: contain;
}
.yj-info-1-list-item{
padding:0 5px;
background-color:#2A759C;
margin-bottom:5px;
font-size:12px;
align-items:center;
justify-content:center;
.yj-info-1-list-item {
padding: 0 5px;
background-color: #2A759C;
margin-bottom: 5px;
font-size: 12px;
align-items: center;
justify-content: center;
}
.yj-info-1-list-item:last-child{
margin-bottom:0;
}
.yj-info-1-list-item .telnum{
text-align:center;
align-items:center;
justify-content:center;
display:flex;
}
.yj-info-1-info{
color:#fff;
background-color:#2A759C;
text-align:center;
font-size:16px;
height:40px;
line-height:40px;
margin-top:5px;
.yj-info-1-list-item:last-child {
margin-bottom: 0;
}
.yj-info-1-list-item .telnum {
text-align: center;
align-items: center;
justify-content: center;
display: flex;
}
.yj-info-1-info {
color: #fff;
background-color: #2A759C;
text-align: center;
font-size: 16px;
height: 40px;
line-height: 40px;
margin-top: 5px;
}
</style>
</head>
@ -248,15 +259,15 @@
<div class="item flex1">
<div class="bw-b-bottom">
<div class="bw-b-bottom-up">
<div class="bw-item-content pd0">
<div class="bw-item-content pd0 js-hover" data-type="SitePersonNum">
<div class="base-wrap flex flexV">
<div class="base-tit">当前现场总人数</div>
<div class="base-txt-wrap flex flex1">
<div class="num-1 specialNum" runat="server" id="divperson">0</div>
<div class="num-1 specialNum" runat="server" id="person00">0</div>
<div class="num-1 specialNum" runat="server" id="person01">0</div>
<div class="num-1 specialNum" runat="server" id="person02">0</div>
</div>
<div class="base-tit">当前现场总人数</div>
<div class="base-txt-wrap flex flex1">
<div class="num-1 specialNum" runat="server" id="divperson">0</div>
<div class="num-1 specialNum" runat="server" id="person00">0</div>
<div class="num-1 specialNum" runat="server" id="person01">0</div>
<div class="num-1 specialNum" runat="server" id="person02">0</div>
</div>
</div>
</div>
</div>
@ -270,7 +281,7 @@
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="bottom-wrap flex1">
@ -290,12 +301,32 @@
</div>
</div>
</div>
</div>
</div>
</div>
</body>
<script type="text/javascript" src="../res/index/js/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="../res/index/js/swiper-3.4.2.jquery.min.js"></script>
<script type="text/javascript" src="../res/index/js/echarts.min.js"></script>
<script type="text/javascript">
$(function () {
initClick();
})
function initClick() {
$(".js-hover").click(function () {
var htmlContent = GetClickHtml(this);
})
}
function GetClickHtml(obj) {
var $this = $(obj), type = $this.attr('data-type');
if (type == 'SitePersonNum') {
$('iframe').attr('src', '../DataShow/ProjectSitePerson.aspx') //项目当前现场人员
window.open("../DataShow/ProjectSitePerson.aspx")
}
}
</script>
<script type="text/javascript">
function category_Two(id, xArr, data) {
// 基于准备好的dom初始化echarts实例
@ -410,30 +441,30 @@
name: '累计人工时',
type: 'line',
data: two.series[0].data,
//label: { //柱体上显示数值
// show: true,//开启显示
// position: 'top',//在上方显示
// textStyle: {//数值样式
// fontSize: '20px',
// color: '#fff'
// },
// formatter: '{c}',
// },
//label: { //柱体上显示数值
// show: true,//开启显示
// position: 'top',//在上方显示
// textStyle: {//数值样式
// fontSize: '20px',
// color: '#fff'
// },
// formatter: '{c}',
// },
itemStyle: { normal: { color: '#00c771' } }
},{
}, {
name: '当月人工时',
type: 'bar',
/* barWidth: 40,*/
data: two.series[1].data,
//label: { //柱体上显示数值
// show: true,//开启显示
// position: 'inside',//内部
// textStyle: {//数值样式
// fontSize: '20px',
// color: '#fff'
// },
// formatter: '{c}',
// },
data: two.series[1].data,
//label: { //柱体上显示数值
// show: true,//开启显示
// position: 'inside',//内部
// textStyle: {//数值样式
// fontSize: '20px',
// color: '#fff'
// },
// formatter: '{c}',
// },
}]
category_Two('two', xArr, data)
</script>
@ -537,7 +568,7 @@
right: '0%',
bottom: 40,
containLabel: true,
backgroundColor: 'rgba(0,162,233, 0.01)',
backgroundColor: 'rgba(0,162,233, 0.01)',
// borderColor: 'rgba(0,162,233, 1)'
},
//itemStyle: {
@ -557,8 +588,8 @@
var series = [{
name: '签到',
type: 'bar',
barWidth: 20,
barGap:0.05,
barWidth: 20,
barGap: 0.05,
data: four1.series[0].data,
label: { //柱体上显示数值
show: true,//开启显示
@ -572,18 +603,18 @@
itemStyle: { normal: { color: '#88cc00' } }
}, {
name: '系统',
type: 'bar',
barWidth: 20,
data: four1.series[1].data,
label: { //柱体上显示数值
show: true,//开启显示
position: 'top',//在上方显示
textStyle: {//数值样式
fontSize: '20px',
color: '#fff'
},
formatter: '{c}',
type: 'bar',
barWidth: 20,
data: four1.series[1].data,
label: { //柱体上显示数值
show: true,//开启显示
position: 'top',//在上方显示
textStyle: {//数值样式
fontSize: '20px',
color: '#fff'
},
formatter: '{c}',
},
itemStyle: { normal: { color: '#AE4B23' } }
}];
category_Four('four', xArr, series)
@ -611,7 +642,7 @@
data: four1.series[0].data
}, {
name: '系统',
type: 'bar',
type: 'bar',
data: four1.series[1].data,
itemStyle: { normal: { color: 'rgba(174,75,37, 1)' } }
}];

View File

@ -1,4 +1,5 @@
using BLL;
using FineUIPro.Web.DataShow;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
@ -8,15 +9,37 @@ namespace FineUIPro.Web.common
{
public partial class mainMenu_PDigData : PageBase
{
#region
/// <summary>
/// 项目主键
/// </summary>
public string ProjectId
{
get
{
return (string)ViewState["ProjectId"];
}
set
{
ViewState["ProjectId"] = value;
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.ProjectId = string.Empty;
if (this.CurrUser != null && !string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
{
this.ProjectId = this.CurrUser.LoginProjectId;
}
getEmployInOutRecords = Funs.DB.T_d_EmployInOutRecord.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RecordDate.Value == DateTime.Now.Date).ToList();
getAllPersons = Funs.DB.SitePerson_Person.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).ToList();
getPersons = getAllPersons.Where(x =>x.IsUsed == true && x.InTime <= DateTime.Now && (!x.OutTime.HasValue || x.OutTime > DateTime.Now)).ToList();
getPersons = getAllPersons.Where(x => x.IsUsed == true && x.InTime <= DateTime.Now && (!x.OutTime.HasValue || x.OutTime > DateTime.Now)).ToList();
///当前现场总人数
getSitePerson();
getSitePerson();
}
}
@ -26,7 +49,13 @@ namespace FineUIPro.Web.common
/// </summary>
private void getSitePerson()
{
var AllCount = getEmployInOutRecords.Count();
//var AllCount = getEmployInOutRecords.Count();
//var getEmployInOutRecords = Funs.DB.T_d_EmployInOutRecord.Where(x => x.ProjectId == this.ProjectId && x.RecordDate.Value == DateTime.Now.Date).ToList();
// int AllCount = getEmployInOutRecords.Count();
var getallin = APIPageDataService.getPersonNum(this.ProjectId, DateTime.Now);
int AllCount = getallin.Count();
if (AllCount > 0)
{
////总人数
@ -72,7 +101,7 @@ namespace FineUIPro.Web.common
}
}
#endregion
#region
/// <summary>
///
@ -105,12 +134,12 @@ namespace FineUIPro.Web.common
int manCount = 0;
var units = getAllPersons.Select(x => x.UnitId).Distinct();
if (units.Count() > 0)
{
{
foreach (var unitId in units)
{
{
var unitRords = from x in getEmployInOutRecords
join y in getAllPersons on x.IDCardNo equals y.IdentityCard
where y.UnitId == unitId && y.PersonId != null && x.UnitId== unitId
where y.UnitId == unitId && y.PersonId != null && x.UnitId == unitId
select x;
var unitPersons = getPersons.Where(x => x.UnitId == unitId);
int rcount = unitRords.Distinct().Count();
@ -160,8 +189,8 @@ namespace FineUIPro.Web.common
businessColumn.title = "现场人员";
var getTypes = (from x in getEmployInOutRecords
join y in getAllPersons on x.IDCardNo equals y.IdentityCard
join z in Funs.DB.Base_WorkPost on y.WorkPostId equals z.WorkPostId
select new { y.WorkPostId,z.WorkPostName }).Distinct();
join z in Funs.DB.Base_WorkPost on y.WorkPostId equals z.WorkPostId
select new { y.WorkPostId, z.WorkPostName }).Distinct();
if (getTypes.Count() > 0)
{
foreach (var item in getTypes)
@ -196,6 +225,6 @@ namespace FineUIPro.Web.common
}
}
#endregion
}
}

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
<LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
<UseIISExpress>true</UseIISExpress>
<Use64BitIISExpress />
<IISExpressSSLPort />