fix:问题修改

This commit is contained in:
geh
2025-02-19 15:09:13 +08:00
parent 8f471923bf
commit 0a70ab9af7
39 changed files with 6541 additions and 64 deletions
+142 -37
View File
@@ -5,6 +5,8 @@ using System;
using System.CodeDom;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Data.SqlClient;
namespace FineUIPro.Web
{
@@ -43,48 +45,151 @@ namespace FineUIPro.Web
/// </summary>
private void getSitePerson()
{
int AllCount = 0;
//var getallin = APIPageDataService.getPersonInOutNum(this.ProjectId, DateTime.Now.AddDays(-1));
DateTime dateValue = DateTime.Now.AddDays(-1);
List<Model.PageDataPersonInOutItem> getallin = new List<Model.PageDataPersonInOutItem>();
var getInMaxs = from x in Funs.DB.SitePerson_Person
join y in Funs.DB.Base_WorkPost on x.WorkPostId equals y.WorkPostId
where x.ProjectId == this.CurrUser.LoginProjectId && x.IsUsed == true
select new Model.PageDataPersonInOutItem
{
PersonId = x.PersonId,
PostType = y.PostType,
WorkPostId = x.WorkPostId,
};
if (getInMaxs.Count() > 0)
// int AllCount = 0;
// //var getallin = APIPageDataService.getPersonInOutNum(this.ProjectId, DateTime.Now.AddDays(-1));
// DateTime dateValue = DateTime.Now.AddDays(-1);
// List<Model.PageDataPersonInOutItem> getallin = new List<Model.PageDataPersonInOutItem>();
// var getInMaxs = from x in Funs.DB.SitePerson_Person
// join y in Funs.DB.Base_WorkPost on x.WorkPostId equals y.WorkPostId
// where x.ProjectId == this.CurrUser.LoginProjectId && x.IsUsed == true
// select new Model.PageDataPersonInOutItem
// {
// PersonId = x.PersonId,
// PostType = y.PostType,
// WorkPostId = x.WorkPostId,
// };
// if (getInMaxs.Count() > 0)
// {
// getallin = getInMaxs.Distinct().ToList();
// }
// //AllCount = getallin.Count();
// var getEmployInOutRecords = (from x in Funs.DB.T_d_EmployInOutRecord
// join y in Funs.DB.SitePerson_Person on new { ss1 = x.ProjectId, ss = x.IDCardNo } equals new { ss1 = y.ProjectId, ss = y.IdentityCard }
// where y.ProjectId == this.CurrUser.LoginProjectId && y.IsUsed == true && x.ProjectId == this.CurrUser.LoginProjectId && x.RecordDate.Value == DateTime.Now.Date
// select x.IDCardNo).Distinct();
//
// //if (AllCount > 0)
// //{
// // ////总人数
// // this.divperson.InnerHtml = ((AllCount % 10000) / 1000).ToString();
// // this.person00.InnerHtml = ((AllCount % 1000) / 100).ToString();
// // this.person01.InnerHtml = ((AllCount % 100) / 10).ToString();
// // this.person02.InnerHtml = (AllCount % 10).ToString();
// //}
//
//
// AllCount = getEmployInOutRecords.Count();
// if (AllCount > 0)
// {
// ////总人数
// this.divperson.InnerHtml = ((AllCount % 10000) / 1000).ToString();
// this.person00.InnerHtml = ((AllCount % 1000) / 100).ToString();
// this.person01.InnerHtml = ((AllCount % 100) / 10).ToString();
// this.person02.InnerHtml = (AllCount % 10).ToString();
// }
string strSql = @"SELECT DISTINCT ProjectUser.ProjectUserId,ProjectUser.ProjectId,ProjectUser.UserId,ProjectUser.WorkAreaId,Users.UserCode,Users.UserName,ProjectUser.UnitId,Unit.UnitCode,Unit.UnitName,ProjectUnit.UnitType,sysConst.ConstText AS UnitTypeName,ProjectUser.RoleId,ProjectUser.IsPost,(CASE WHEN ProjectUser.IsPost = 1 THEN '在岗' ELSE '离岗' END) AS IsPostName,WorkPost.WorkPostName,UnitCode"
+ @" ,RoleName= STUFF(( SELECT ',' + RoleName FROM dbo.Sys_Role where PATINDEX('%,' + RTRIM(RoleId) + ',%',',' +ProjectUser.RoleId + ',')>0 FOR XML PATH('')), 1, 1,'')"
+ @" FROM Project_ProjectUser AS ProjectUser "
+ @" LEFT JOIN Base_Project AS Project ON ProjectUser.ProjectId = Project.ProjectId "
+ @" LEFT JOIN Sys_User AS Users ON ProjectUser.UserId = Users.UserId "
+ @" LEFT JOIN Sys_Role AS Role ON ProjectUser.RoleId = Role.RoleId "
+ @" LEFT JOIN Project_ProjectUnit AS ProjectUnit ON ProjectUser.UnitId = ProjectUnit.UnitId AND ProjectUser.ProjectId= ProjectUnit.ProjectId "
+ @" LEFT JOIN Base_Unit AS Unit ON ProjectUser.UnitId = Unit.UnitId "
+ @" LEFT JOIN SitePerson_Person AS Person ON ProjectUser.ProjectId =Person.ProjectId AND Users.IdentityCard = Person.IdentityCard "
+ @" LEFT JOIN Base_WorkPost AS WorkPost ON Person.WorkPostId =WorkPost.WorkPostId "
+ @" LEFT JOIN Sys_Const AS sysConst ON sysConst.GroupId = '" + BLL.ConstValue.Group_ProjectUnitType + "' AND ProjectUnit.UnitType=sysConst.ConstValue "
+ @" WHERE 1=1 ";
List<SqlParameter> listStr = new List<SqlParameter>();
strSql += " AND ProjectUser.ProjectId = @ProjectId";
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
var projectPeople = tb.Rows.Count;
//当前日
// 获取当前日期的00点
DateTime now = DateTime.Now;
DateTime StartDate = DateTime.Now.Date;
DateTime EndDate = new DateTime(now.Year, now.Month, now.Day, 23, 59, 59);
//当前月
// 获取当前年份和月份
int year = DateTime.Now.Year;
int month = DateTime.Now.Month;
// 获取当前月份的开始00点
DateTime startOfMonth = new DateTime(year, month, 1);
DateTime startOfNextMonth = startOfMonth.AddMonths(1);
// 如果你需要当前月份的最后一天的23:59:59
DateTime endOfMonth = startOfNextMonth.AddSeconds(-1);
string strSql1 = "SELECT ClassMeeting.ClassMeetingId,ClassMeeting.ProjectId,CodeRecords.Code AS ClassMeetingCode,Unit.UnitId,Unit.UnitName,ClassMeeting.ClassMeetingName,ClassMeeting.ClassMeetingDate,ClassMeeting.CompileMan,ClassMeeting.ClassMeetingContents,ClassMeeting.CompileDate,ClassMeeting.States "
+ @" ,(CASE WHEN ClassMeeting.States = " + BLL.Const.State_0 + " OR ClassMeeting.States IS NULL THEN '待['+ISNULL(OperateUser.UserName,Users.UserName)+']提交' WHEN ClassMeeting.States = " + BLL.Const.State_2 + " THEN '审核/审批完成' ELSE '待['+OperateUser.UserName+']办理' END) AS FlowOperateName"
+ @" FROM Meeting_ClassMeeting AS ClassMeeting "
+ @" LEFT JOIN Sys_CodeRecords AS CodeRecords ON ClassMeeting.ClassMeetingId = CodeRecords.DataId "
+ @" LEFT JOIN Sys_FlowOperate AS FlowOperate ON ClassMeeting.ClassMeetingId = FlowOperate.DataId AND FlowOperate.IsClosed <> 1"
+ @" LEFT JOIN Sys_User AS OperateUser ON FlowOperate.OperaterId=OperateUser.UserId"
+ @" LEFT JOIN Sys_User AS Users ON ClassMeeting.CompileMan = Users.UserId"
+ @" LEFT JOIN Base_Unit AS Unit ON Unit.UnitId=Users.UnitId WHERE 1=1 ";
List<SqlParameter> listStr1 = new List<SqlParameter>();
if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
{
getallin = getInMaxs.Distinct().ToList();
strSql1 += " AND ClassMeeting.ProjectId = @ProjectId";
listStr1.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
}
//AllCount = getallin.Count();
var getEmployInOutRecords = (from x in Funs.DB.T_d_EmployInOutRecord
join y in Funs.DB.SitePerson_Person on new { ss1 = x.ProjectId, ss = x.IDCardNo } equals new { ss1 = y.ProjectId, ss = y.IdentityCard }
where y.ProjectId == this.CurrUser.LoginProjectId && y.IsUsed == true && x.ProjectId == this.CurrUser.LoginProjectId && x.RecordDate.Value == DateTime.Now.Date
select x.IDCardNo).Distinct();
//if (AllCount > 0)
//{
// ////总人数
// this.divperson.InnerHtml = ((AllCount % 10000) / 1000).ToString();
// this.person00.InnerHtml = ((AllCount % 1000) / 100).ToString();
// this.person01.InnerHtml = ((AllCount % 100) / 10).ToString();
// this.person02.InnerHtml = (AllCount % 10).ToString();
//}
AllCount = getEmployInOutRecords.Count();
if (AllCount > 0)
strSql1 += " AND ClassMeeting.ClassMeetingDate BETWEEN @StartDate AND @EndDate";
listStr1.Add(new SqlParameter("@StartDate", StartDate));
listStr1.Add(new SqlParameter("@EndDate", EndDate));
SqlParameter[] parameter1 = listStr1.ToArray();
DataTable tb1 = SQLHelper.GetDataTableRunText(strSql1, parameter1);
var dr = tb1.Rows.Count;
string strSql2 = "SELECT ClassMeeting.ClassMeetingId,ClassMeeting.ProjectId,CodeRecords.Code AS ClassMeetingCode,Unit.UnitId,Unit.UnitName,ClassMeeting.ClassMeetingName,ClassMeeting.ClassMeetingDate,ClassMeeting.CompileMan,ClassMeeting.ClassMeetingContents,ClassMeeting.CompileDate,ClassMeeting.States "
+ @" ,(CASE WHEN ClassMeeting.States = " + BLL.Const.State_0 + " OR ClassMeeting.States IS NULL THEN '待['+ISNULL(OperateUser.UserName,Users.UserName)+']提交' WHEN ClassMeeting.States = " + BLL.Const.State_2 + " THEN '审核/审批完成' ELSE '待['+OperateUser.UserName+']办理' END) AS FlowOperateName"
+ @" FROM Meeting_ClassMeeting AS ClassMeeting "
+ @" LEFT JOIN Sys_CodeRecords AS CodeRecords ON ClassMeeting.ClassMeetingId = CodeRecords.DataId "
+ @" LEFT JOIN Sys_FlowOperate AS FlowOperate ON ClassMeeting.ClassMeetingId = FlowOperate.DataId AND FlowOperate.IsClosed <> 1"
+ @" LEFT JOIN Sys_User AS OperateUser ON FlowOperate.OperaterId=OperateUser.UserId"
+ @" LEFT JOIN Sys_User AS Users ON ClassMeeting.CompileMan = Users.UserId"
+ @" LEFT JOIN Base_Unit AS Unit ON Unit.UnitId=Users.UnitId WHERE 1=1 ";
List<SqlParameter> listStr2 = new List<SqlParameter>();
if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
{
strSql2 += " AND ClassMeeting.ProjectId = @ProjectId";
listStr2.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
}
strSql2 += " AND ClassMeeting.ClassMeetingDate BETWEEN @StartDate AND @EndDate";
listStr2.Add(new SqlParameter("@StartDate", startOfMonth));
listStr2.Add(new SqlParameter("@EndDate", endOfMonth));
SqlParameter[] parameter2 = listStr2.ToArray();
DataTable tb2 = SQLHelper.GetDataTableRunText(strSql2, parameter2);
var dy = tb2.Rows.Count;
var count1 = projectPeople + dr;
var count2 = projectPeople + dy;
if (count1 > 0)
{
////总人数
this.divperson.InnerHtml = ((AllCount % 10000) / 1000).ToString();
this.person00.InnerHtml = ((AllCount % 1000) / 100).ToString();
this.person01.InnerHtml = ((AllCount % 100) / 10).ToString();
this.person02.InnerHtml = (AllCount % 10).ToString();
this.divperson.InnerHtml = ((count1 % 10000) / 1000).ToString();
this.person00.InnerHtml = ((count1 % 1000) / 100).ToString();
this.person01.InnerHtml = ((count1 % 100) / 10).ToString();
this.person02.InnerHtml = (count1 % 10).ToString();
}
if (count2 > 0)
{
////总人数
this.divperson1.InnerHtml = ((count2 % 10000) / 1000).ToString();
this.person001.InnerHtml = ((count2 % 1000) / 100).ToString();
this.person011.InnerHtml = ((count2 % 100) / 10).ToString();
this.person021.InnerHtml = (count2 % 10).ToString();
}
}
#endregion