关键事项、周进度、月度计划

This commit is contained in:
2025-03-24 14:21:16 +08:00
parent 4ee7d38c78
commit 477afee030
58 changed files with 4929 additions and 1732 deletions
@@ -2,11 +2,13 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Remoting.Contexts;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using Model;
using AspNet = System.Web.UI.WebControls;
namespace FineUIPro.Web.JDGL.Check
@@ -19,6 +21,9 @@ namespace FineUIPro.Web.JDGL.Check
{
if (!IsPostBack)
{
this.txtMonths.Text = string.Format("{0:yyyy-MM}", DateTime.Now);
this.txtYear.Text = string.Format("{0:yyyy}", DateTime.Now);
this.drpWeekNo.DataTextField = "Text";
this.drpWeekNo.DataValueField = "Value";
var weekPlans = (from x in Funs.DB.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId orderby x.StartDate descending select x.WeekNo).Distinct().OrderByDescending(x => x).ToList();
@@ -57,34 +62,73 @@ namespace FineUIPro.Web.JDGL.Check
/// <param name="cNProfessionalId"></param>
public void BindStatisc()
{
var cycle = this.ckCycle.SelectedValue;
Model.SGGLDB db = Funs.DB;
//周期集合
List<JDGL_WeekPlan> totalList = new List<JDGL_WeekPlan>();
//累计集合
List<JDGL_WeekPlan> sumTotalList = new List<JDGL_WeekPlan>();
string weekNo2 = string.Empty;
var weekPlan = db.JDGL_WeekPlan.FirstOrDefault(x => x.WeekNo == this.drpWeekNo.SelectedValue);
if (weekPlan != null)
{
if (weekPlan.StartDate != null)
if (cycle == "0")
{//按周
var weekPlan = db.JDGL_WeekPlan.FirstOrDefault(x => x.WeekNo == this.drpWeekNo.SelectedValue);
if (weekPlan != null)
{
this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", weekPlan.StartDate);
if (weekPlan.StartDate != null)
{
this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", weekPlan.StartDate);
}
if (weekPlan.EndDate != null)
{
this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", weekPlan.EndDate);
}
var lastWeekPlan = (from x in db.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId && x.StartDate < weekPlan.StartDate orderby x.StartDate descending select x).FirstOrDefault();
if (lastWeekPlan != null)
{
weekNo2 = lastWeekPlan.WeekNo;
}
}
if (weekPlan.EndDate != null)
else
{
this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", weekPlan.EndDate);
this.txtStartDate.Text = string.Empty;
this.txtEndDate.Text = string.Empty;
}
var lastWeekPlan = (from x in db.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId && x.StartDate < weekPlan.StartDate orderby x.StartDate descending select x).FirstOrDefault();
if (lastWeekPlan != null)
//周期集合
totalList = (from x in db.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId && x.WeekNo == weekNo2 select x).ToList();
if (totalList.Count() > 0)
{
weekNo2 = lastWeekPlan.WeekNo;
var startDate = totalList.First().StartDate;
sumTotalList = (from x in db.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId && x.StartDate <= startDate select x).ToList();
}
}
else
{
this.txtStartDate.Text = string.Empty;
this.txtEndDate.Text = string.Empty;
else if (cycle == "1")
{//按月
DateTime months = Convert.ToDateTime(this.txtMonths.Text + "-01");
//周期集合
totalList = (from x in db.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId && x.EndDate == months select x).ToList();
//累计集合
sumTotalList = (from x in db.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId && x.EndDate <= months select x).ToList();
}
else if (cycle == "2")
{//按年(以上一年度12月份至本年度11月份为一个周期)
DateTime sDate = Convert.ToDateTime(this.txtYear.Text + "-12-01").AddYears(-1);
DateTime eDate = Convert.ToDateTime(this.txtYear.Text + "-12-01");
//周期集合
totalList = (from x in db.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId && x.EndDate >= sDate && x.EndDate < eDate select x).ToList();
//累计集合
sumTotalList = (from x in db.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId && x.EndDate < eDate select x).ToList();
}
else if (cycle == "3")
{//按项目周期
//周期集合
totalList = (from x in db.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
//累计集合
sumTotalList = (from x in db.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
}
StatisticsList = new List<Model.JDGL_WeekPlan>();
int i = 1;
//所有集合
var totalList = from x in db.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId && x.WeekNo == weekNo2 select x;
////周期集合
//var totalList = from x in db.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId && x.WeekNo == weekNo2 select x;
if (this.ckType.SelectedValue == "1") //按责任单位
{
var pUnit = from x in db.Project_ProjectUnit
@@ -94,7 +138,7 @@ namespace FineUIPro.Web.JDGL.Check
select y;
foreach (var item in pUnit)
{
//期集合
//期集合
var list = totalList.Where(x => x.UnitId == item.UnitId);
Model.JDGL_WeekPlan JDGL_WeekPlan = new Model.JDGL_WeekPlan();
JDGL_WeekPlan.WorkContent = item.UnitName;
@@ -116,17 +160,27 @@ namespace FineUIPro.Web.JDGL.Check
}
else //按五环责任人
{
var user = (from x in db.Sys_User
join y in db.JDGL_WeekPlan on x.UserId equals y.DutyPerson
where y.ProjectId == this.CurrUser.LoginProjectId
orderby x.UserId
select x).Distinct().ToList();
foreach (var item in user)
var users = UserService.GetUserList();
var dutyPersonIds = (from x in db.JDGL_WeekPlan
where x.ProjectId == this.CurrUser.LoginProjectId
select x.DutyPerson).Distinct().ToList();
var userIds = string.Join(",", dutyPersonIds.ToArray()).Split(',').Distinct().Where(x => x != null && x != "").ToList();
//var user = (from x in db.Sys_User
// join y in db.JDGL_WeekPlan on x.UserId equals y.DutyPerson
// where y.ProjectId == this.CurrUser.LoginProjectId
// orderby x.UserId
// select x).Distinct().ToList();
foreach (var item in userIds)
{
//所有集合
var list = totalList.Where(x => x.DutyPerson == item.UserId);
var user = users.Where(x => x.UserId == item).FirstOrDefault();
//周期集合
//var list = totalList.Where(x => x.DutyPerson == item.UserId);
var list = totalList.Where(x => x.DutyPerson.Contains(item));
Model.JDGL_WeekPlan JDGL_WeekPlan = new Model.JDGL_WeekPlan();
JDGL_WeekPlan.WorkContent = item.UserName;
JDGL_WeekPlan.WorkContent = user.UserName;
int a = list.Count();
int b = list.Count(x => x.IsOK == true);
JDGL_WeekPlan.UnitId = a.ToString();
@@ -161,34 +215,81 @@ namespace FineUIPro.Web.JDGL.Check
}
StatisticsList.Add(StatisticsLast);
}
//增加累计
List<Model.JDGL_WeekPlan> sumTotalList = new List<Model.JDGL_WeekPlan>();
if (totalList.Count() > 0)
{
var startDate = totalList.First().StartDate;
sumTotalList = (from x in db.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId && x.StartDate <= startDate select x).ToList();
}
Model.JDGL_WeekPlan StatisticsSum = new Model.JDGL_WeekPlan();
StatisticsSum.WorkContent = "累计";
int c = sumTotalList.Count();
int d = sumTotalList.Count(x => x.IsOK == true);
StatisticsSum.UnitId = c.ToString();
StatisticsSum.DutyPerson = d.ToString();
if (c != 0)//被除数不能为零
{
StatisticsSum.Remark = Math.Round((double)d / (double)c * 100, 2) + "%";//保留两位小数、后四舍五入
}
else
{
StatisticsSum.Remark = "0%";
}
StatisticsList.Add(StatisticsSum);
this.Grid1.DataSource = StatisticsList;
this.Grid1.DataBind();
////增加累计
//List<Model.JDGL_WeekPlan> sumTotalList = new List<Model.JDGL_WeekPlan>();
//if (totalList.Count() > 0)
//{
// var startDate = totalList.First().StartDate;
// sumTotalList = (from x in db.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId && x.StartDate <= startDate select x).ToList();
//}
//Model.JDGL_WeekPlan StatisticsSum = new Model.JDGL_WeekPlan();
//StatisticsSum.WorkContent = "累计";
//int c = sumTotalList.Count();
//int d = sumTotalList.Count(x => x.IsOK == true);
//StatisticsSum.UnitId = c.ToString();
//StatisticsSum.DutyPerson = d.ToString();
//if (c != 0)//被除数不能为零
//{
// StatisticsSum.Remark = Math.Round((double)d / (double)c * 100, 2) + "%";//保留两位小数、后四舍五入
//}
//else
//{
// StatisticsSum.Remark = "0%";
//}
//StatisticsList.Add(StatisticsSum);
this.Grid1.DataSource = StatisticsList;
this.Grid1.DataBind();
}
#endregion
/// <summary>
/// 统计周期
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ckCycle_SelectedIndexChanged(object sender, EventArgs e)
{
var cycle = this.ckCycle.SelectedValue;
if (cycle == "0")
{//按周
this.drpWeekNo.Hidden = false;
this.txtStartDate.Hidden = false;
this.txtEndDate.Hidden = false;
this.txtMonths.Hidden = true;
this.txtYear.Hidden = true;
}
else if (cycle == "1")
{//按月份
this.drpWeekNo.Hidden = true;
this.txtStartDate.Hidden = true;
this.txtEndDate.Hidden = true;
this.txtMonths.Hidden = false;
this.txtYear.Hidden = true;
}
else if (cycle == "2")
{//按年份
this.drpWeekNo.Hidden = true;
this.txtStartDate.Hidden = true;
this.txtEndDate.Hidden = true;
this.txtMonths.Hidden = true;
this.txtYear.Hidden = false;
}
else
{//按项目周期
this.drpWeekNo.Hidden = true;
this.txtStartDate.Hidden = true;
this.txtEndDate.Hidden = true;
this.txtMonths.Hidden = true;
this.txtYear.Hidden = true;
}
BindStatisc();
}
/// <summary>
/// 统计汇总
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ckType_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.ckType.SelectedValue == "1")