2023-10-26 15:38:13 +08:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Reflection;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Web.UI.WebControls;
|
|
|
|
|
using BLL;
|
|
|
|
|
using Model;
|
|
|
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
|
using AspNet = System.Web.UI.WebControls;
|
|
|
|
|
|
|
|
|
|
namespace FineUIPro.Web.CQMS.Performance
|
|
|
|
|
{
|
|
|
|
|
public partial class Performance : PageBase
|
|
|
|
|
{
|
|
|
|
|
#region 定义项
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 主键
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string PerformanceGid
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return (string)ViewState["PerformanceGid"];
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
ViewState["PerformanceGid"] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string CompileDateMonth
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return (string)ViewState["CompileDateMonth"];
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
ViewState["CompileDateMonth"] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string CreateUser
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return (string)ViewState["CreateUser"];
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
ViewState["CreateUser"] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 页面加载
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (!IsPostBack)
|
|
|
|
|
{
|
|
|
|
|
CreateUser = CurrUser.UserId;
|
|
|
|
|
BindGrid();
|
|
|
|
|
|
|
|
|
|
OutputSummaryData();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OutputSummaryData()
|
|
|
|
|
{
|
|
|
|
|
decimal EvaScore = 0;
|
|
|
|
|
EvaScore = Funs.DB.CQMS_Performance_Child1.Where(x => x.PerformanceGid == PerformanceGid).Sum(x => x.EvaScore) ?? 0;
|
|
|
|
|
|
|
|
|
|
JObject summary = new JObject();
|
|
|
|
|
//summary.Add("Major", "全部合计");
|
|
|
|
|
summary.Add("EvaScore", EvaScore.ToString("F2"));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Grid1.SummaryData = summary;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 加载表头
|
|
|
|
|
/// </summary>
|
|
|
|
|
protected void Page_Init(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
CreateUser = CurrUser.UserId;
|
|
|
|
|
drpCompileDateMonth.Text = DateTime.Now.ToString();
|
|
|
|
|
if (string.IsNullOrEmpty(CompileDateMonth))
|
|
|
|
|
{
|
|
|
|
|
CompileDateMonth = Request.QueryString["CompileDateMonth"];
|
|
|
|
|
if (!string.IsNullOrEmpty(CompileDateMonth))
|
|
|
|
|
{
|
|
|
|
|
drpCompileDateMonth.Text = CompileDateMonth;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
drpCompileDateMonth.Text = CompileDateMonth;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
InitGrid();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region 加载表头
|
|
|
|
|
string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
|
|
|
|
|
|
|
|
|
|
private void InitGrid()
|
|
|
|
|
{
|
|
|
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
|
|
|
{
|
|
|
|
|
var NowDate = Convert.ToDateTime(drpCompileDateMonth.Text.Trim());
|
2023-10-30 16:30:10 +08:00
|
|
|
|
var Year = NowDate.Year;
|
2023-10-26 15:38:13 +08:00
|
|
|
|
var Month = 1;
|
|
|
|
|
if (NowDate.Month != 12)
|
|
|
|
|
{
|
|
|
|
|
Month = NowDate.Month + 1;
|
|
|
|
|
}
|
2023-10-30 16:30:10 +08:00
|
|
|
|
else {
|
|
|
|
|
Year += 1;
|
|
|
|
|
}
|
2023-10-26 15:38:13 +08:00
|
|
|
|
|
|
|
|
|
//获取配置
|
2023-10-30 16:30:10 +08:00
|
|
|
|
var modelConfig = Funs.DB.CQMS_Performance_SetUp.FirstOrDefault(x => x.CreateYear == Year.ToString() && x.SortIndex == Month);
|
2023-10-26 15:38:13 +08:00
|
|
|
|
if (modelConfig != null)
|
|
|
|
|
{
|
|
|
|
|
int child3Index = 1;
|
|
|
|
|
//先加载周,再加载周里面的天数
|
|
|
|
|
for (int i = 1; i <= modelConfig.SetUpWeek; i++)
|
|
|
|
|
{
|
|
|
|
|
#region 第?周任务安排、工程量、人材机资源需求计划
|
|
|
|
|
BoundField bf = new BoundField();
|
|
|
|
|
bf.Width = Unit.Pixel(150);
|
|
|
|
|
bf.DataField = "TaskContent" + i.ToString();
|
|
|
|
|
bf.ColumnID = "TaskContent" + i.ToString();
|
|
|
|
|
bf.HeaderText = "第" + i.ToString() + "周施工工作任务安排";
|
|
|
|
|
bf.TextAlign = TextAlign.Center;
|
|
|
|
|
Grid1.Columns.Add(bf);
|
|
|
|
|
|
|
|
|
|
bf = new BoundField();
|
|
|
|
|
bf.Width = Unit.Pixel(100);
|
|
|
|
|
bf.DataField = "ProjectQuantity" + i.ToString();
|
|
|
|
|
bf.ColumnID = "ProjectQuantity" + i.ToString();
|
|
|
|
|
bf.HeaderText = "工程量";
|
|
|
|
|
Grid1.Columns.Add(bf);
|
|
|
|
|
|
|
|
|
|
bf = new BoundField();
|
|
|
|
|
bf.Width = Unit.Pixel(150);
|
|
|
|
|
bf.DataField = "DemandPlan" + i.ToString();
|
|
|
|
|
bf.ColumnID = "DemandPlan" + i.ToString();
|
|
|
|
|
bf.HeaderText = "人材机资源需求计划";
|
|
|
|
|
Grid1.Columns.Add(bf);
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
var month = Convert.ToDateTime(drpCompileDateMonth.Text.Trim()).Year + "-" + Convert.ToDateTime(drpCompileDateMonth.Text.Trim()).Month;
|
|
|
|
|
if (Convert.ToDateTime(drpCompileDateMonth.Text.Trim()).Month.ToString().Length == 1)
|
|
|
|
|
{
|
|
|
|
|
month = Convert.ToDateTime(drpCompileDateMonth.Text.Trim()).Year + "-0" + Convert.ToDateTime(drpCompileDateMonth.Text.Trim()).Month;
|
|
|
|
|
}
|
|
|
|
|
//1.先获取主表的基础数据
|
|
|
|
|
var modelCQMS_Performance = db.CQMS_Performance.FirstOrDefault(x => x.ProjectId == CurrUser.LoginProjectId
|
|
|
|
|
&& x.CreateDateMonth == month && x.CreateMan == CreateUser);
|
|
|
|
|
if (modelCQMS_Performance != null)
|
|
|
|
|
{
|
|
|
|
|
PerformanceGid = modelCQMS_Performance.PerformanceGid;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
ShowNotify("未查询到数据,请先生成表单。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Child2Model = db.CQMS_Performance_Child2.FirstOrDefault(x => x.NowWeek == i && x.CreateMan == CreateUser && x.PerformanceGid== PerformanceGid);
|
|
|
|
|
if (Child2Model==null)
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("未查询到数据,请先生成表单。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
//获取当前周的gid
|
|
|
|
|
var Child2Gid = Child2Model.Performance_ChildGid2;
|
|
|
|
|
//根据周gid获取天数
|
|
|
|
|
var listChild3 = db.CQMS_Performance_Child3.Where(x => x.Performance_ChildGid2 == Child2Gid
|
|
|
|
|
&& x.CreateMan==CreateUser).OrderBy(x => x.CurrentDate).ToList();
|
|
|
|
|
|
|
|
|
|
if (listChild3.Count==0)
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("未查询到数据,请先生成表单。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach (var item in listChild3)
|
|
|
|
|
{
|
|
|
|
|
var Cdate = Convert.ToDateTime(item.CurrentDate);
|
|
|
|
|
string week = Day[Convert.ToInt32(Cdate.DayOfWeek.ToString("d"))].ToString();
|
|
|
|
|
//头部
|
|
|
|
|
GroupField p = new GroupField();
|
|
|
|
|
p.Width = Unit.Pixel(200);
|
|
|
|
|
p.HeaderText = week + "(" + Cdate.Month + "月" + Cdate.Day + "日)";
|
|
|
|
|
p.TextAlign = TextAlign.Left;
|
|
|
|
|
|
|
|
|
|
BoundField gzjh = new BoundField();
|
|
|
|
|
gzjh.Width = Unit.Pixel(200);
|
|
|
|
|
gzjh.HeaderText = "本日工作计划";
|
|
|
|
|
gzjh.DataField = "WorkPlan" + child3Index.ToString();
|
|
|
|
|
gzjh.ColumnID = "WorkPlan" + child3Index.ToString();
|
|
|
|
|
gzjh.TextAlign = TextAlign.Center;
|
|
|
|
|
|
|
|
|
|
BoundField wcqk = new BoundField();
|
|
|
|
|
wcqk.Width = Unit.Pixel(200);
|
|
|
|
|
wcqk.HeaderText = "本日完成情况";
|
|
|
|
|
wcqk.DataField = "CompletStatus" + child3Index.ToString();
|
|
|
|
|
wcqk.ColumnID = "CompletStatus" + child3Index.ToString();
|
|
|
|
|
p.Columns.Add(gzjh);
|
|
|
|
|
p.Columns.Add(wcqk);
|
|
|
|
|
|
|
|
|
|
Grid1.Columns.Add(p);
|
|
|
|
|
child3Index += 1;
|
|
|
|
|
}
|
|
|
|
|
bf = new BoundField();
|
|
|
|
|
bf.Width = Unit.Pixel(150);
|
|
|
|
|
bf.DataField = "TaskCompletContent" + i.ToString();
|
|
|
|
|
bf.ColumnID = "TaskCompletContent" + i.ToString();
|
|
|
|
|
bf.HeaderText = "本周工作任务完成情况";
|
|
|
|
|
Grid1.Columns.Add(bf);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
ShowNotify("当前日期未设置规则,请前往施工绩效设置页面进行操作。", MessageBoxIcon.Warning);
|
2023-10-31 15:22:02 +08:00
|
|
|
|
//PageContext.RegisterStartupScript("CloseRefresh()");
|
2023-10-26 15:38:13 +08:00
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 合并单元格定义项
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 第一行的gid 为了合并单元格用
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string OneGid
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return (string)ViewState["OneGid"];
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
ViewState["OneGid"] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string Gid2
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return (string)ViewState["Gid2"];
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
ViewState["Gid2"] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string Gid3
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return (string)ViewState["Gid3"];
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
ViewState["Gid3"] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string Gid4
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return (string)ViewState["Gid4"];
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
ViewState["Gid4"] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string Gid5
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return (string)ViewState["Gid5"];
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
ViewState["Gid5"] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string Gid6
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return (string)ViewState["Gid6"];
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
ViewState["Gid6"] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int child2Count
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return Convert.ToInt32(ViewState["child2Count"]);
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
ViewState["child2Count"] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 加载表格数据
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 加载表格的实体类
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class GridModels {
|
|
|
|
|
public string Performance_ChildGid1 { get; set; }
|
|
|
|
|
public string PerformanceGid { get; set; }
|
|
|
|
|
public string PType { get; set; }
|
|
|
|
|
|
|
|
|
|
public decimal? EvaScore { get; set; }
|
|
|
|
|
public string Itemize { get; set; }
|
|
|
|
|
public string WorkArea { get; set; }
|
|
|
|
|
public string MonthTarget { get; set; }
|
|
|
|
|
|
|
|
|
|
public int? SortIndex { get; set; }
|
|
|
|
|
|
|
|
|
|
#region 任务安排 下标9;工程量 14;材机资源需求计划 19
|
|
|
|
|
public string Performance_ChildGid2 { get; set; }
|
|
|
|
|
|
|
|
|
|
//任务安排 下标9
|
|
|
|
|
public string TaskContent1 { get; set; }
|
|
|
|
|
public string TaskContent2 { get; set; }
|
|
|
|
|
public string TaskContent3 { get; set; }
|
|
|
|
|
public string TaskContent4 { get; set; }
|
|
|
|
|
public string TaskContent5 { get; set; }
|
|
|
|
|
|
|
|
|
|
//工程量 14
|
|
|
|
|
public string ProjectQuantity1 { get; set; }
|
|
|
|
|
public string ProjectQuantity2 { get; set; }
|
|
|
|
|
public string ProjectQuantity3 { get; set; }
|
|
|
|
|
public string ProjectQuantity4 { get; set; }
|
|
|
|
|
public string ProjectQuantity5 { get; set; }
|
|
|
|
|
|
|
|
|
|
//材机资源需求计划 19
|
|
|
|
|
public string DemandPlan1 { get; set; }
|
|
|
|
|
public string DemandPlan2 { get; set; }
|
|
|
|
|
public string DemandPlan3 { get; set; }
|
|
|
|
|
public string DemandPlan4 { get; set; }
|
|
|
|
|
public string DemandPlan5 { get; set; }
|
|
|
|
|
|
|
|
|
|
//本周工作任务完成情况 24
|
|
|
|
|
public string TaskCompletContent1 { get; set; }
|
|
|
|
|
public string TaskCompletContent2 { get; set; }
|
|
|
|
|
public string TaskCompletContent3 { get; set; }
|
|
|
|
|
public string TaskCompletContent4 { get; set; }
|
|
|
|
|
public string TaskCompletContent5 { get; set; }
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 每天任务完成情况 下标29
|
|
|
|
|
public string WorkPlan1 { get; set; }
|
|
|
|
|
public string WorkPlan2 { get; set; }
|
|
|
|
|
public string WorkPlan3 { get; set; }
|
|
|
|
|
public string WorkPlan4 { get; set; }
|
|
|
|
|
public string WorkPlan5 { get; set; }
|
|
|
|
|
public string WorkPlan6 { get; set; }
|
|
|
|
|
public string WorkPlan7 { get; set; }
|
|
|
|
|
public string WorkPlan8 { get; set; }
|
|
|
|
|
public string WorkPlan9 { get; set; }
|
|
|
|
|
public string WorkPlan10 { get; set; }
|
|
|
|
|
public string WorkPlan11 { get; set; }
|
|
|
|
|
public string WorkPlan12 { get; set; }
|
|
|
|
|
public string WorkPlan13 { get; set; }
|
|
|
|
|
public string WorkPlan14 { get; set; }
|
|
|
|
|
public string WorkPlan15 { get; set; }
|
|
|
|
|
public string WorkPlan16 { get; set; }
|
|
|
|
|
public string WorkPlan17 { get; set; }
|
|
|
|
|
public string WorkPlan18 { get; set; }
|
|
|
|
|
public string WorkPlan19 { get; set; }
|
|
|
|
|
public string WorkPlan20 { get; set; }
|
|
|
|
|
public string WorkPlan21 { get; set; }
|
|
|
|
|
public string WorkPlan22 { get; set; }
|
|
|
|
|
public string WorkPlan23 { get; set; }
|
|
|
|
|
public string WorkPlan24 { get; set; }
|
|
|
|
|
public string WorkPlan25 { get; set; }
|
|
|
|
|
public string WorkPlan26 { get; set; }
|
|
|
|
|
public string WorkPlan27 { get; set; }
|
|
|
|
|
public string WorkPlan28 { get; set; }
|
|
|
|
|
public string WorkPlan29 { get; set; }
|
|
|
|
|
public string WorkPlan30 { get; set; }
|
|
|
|
|
public string WorkPlan31 { get; set; }
|
|
|
|
|
public string WorkPlan32 { get; set; }
|
|
|
|
|
public string WorkPlan33 { get; set; }
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 本日完成情况 下标 62
|
|
|
|
|
public string CompletStatus1 { get; set; }
|
|
|
|
|
public string CompletStatus2 { get; set; }
|
|
|
|
|
public string CompletStatus3 { get; set; }
|
|
|
|
|
public string CompletStatus4 { get; set; }
|
|
|
|
|
public string CompletStatus5 { get; set; }
|
|
|
|
|
public string CompletStatus6 { get; set; }
|
|
|
|
|
public string CompletStatus7 { get; set; }
|
|
|
|
|
public string CompletStatus8 { get; set; }
|
|
|
|
|
public string CompletStatus9 { get; set; }
|
|
|
|
|
public string CompletStatus10 { get; set; }
|
|
|
|
|
public string CompletStatus11 { get; set; }
|
|
|
|
|
public string CompletStatus12 { get; set; }
|
|
|
|
|
public string CompletStatus13 { get; set; }
|
|
|
|
|
public string CompletStatus14 { get; set; }
|
|
|
|
|
public string CompletStatus15 { get; set; }
|
|
|
|
|
public string CompletStatus16 { get; set; }
|
|
|
|
|
public string CompletStatus17 { get; set; }
|
|
|
|
|
public string CompletStatus18 { get; set; }
|
|
|
|
|
public string CompletStatus19 { get; set; }
|
|
|
|
|
public string CompletStatus20 { get; set; }
|
|
|
|
|
public string CompletStatus21 { get; set; }
|
|
|
|
|
public string CompletStatus22 { get; set; }
|
|
|
|
|
public string CompletStatus23 { get; set; }
|
|
|
|
|
public string CompletStatus24 { get; set; }
|
|
|
|
|
public string CompletStatus25 { get; set; }
|
|
|
|
|
public string CompletStatus26 { get; set; }
|
|
|
|
|
public string CompletStatus27 { get; set; }
|
|
|
|
|
public string CompletStatus28 { get; set; }
|
|
|
|
|
public string CompletStatus29 { get; set; }
|
|
|
|
|
public string CompletStatus30 { get; set; }
|
|
|
|
|
public string CompletStatus31 { get; set; }
|
|
|
|
|
public string CompletStatus32 { get; set; }
|
|
|
|
|
public string CompletStatus33 { get; set; }
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 定义索引
|
|
|
|
|
//定义索引器,name 字段的索引值为 0 ,password 字段的索引值为 1
|
|
|
|
|
public string this[int index]
|
|
|
|
|
{
|
|
|
|
|
#region get
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (index == 0)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan1;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 1)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan2;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 2)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan3;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 3)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan4;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 4)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan5;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 5)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan6;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 6)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan7;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 7)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan8;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 8)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan9;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 9)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan10;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 10)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan11;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 11)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan12;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 12)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan13;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 13)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan14;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 14)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan15;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 15)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan16;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 16)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan17;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 17)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan18;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 18)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan19;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 19)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan20;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 20)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan21;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 21)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan22;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 22)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan23;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 23)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan24;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 24)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan25;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 25)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan26;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 26)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan27;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 27)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan28;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 28)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan29;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 29)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan30;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 30)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan31;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 31)
|
|
|
|
|
{
|
|
|
|
|
return WorkPlan32;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 32)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus1;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 33)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus2;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 34)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus3;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 35)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus4;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 36)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus5;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 37)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus6;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 38)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus7;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 39)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus8;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 40)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus9;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 41)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus10;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 42)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus11;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 43)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus12;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 44)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus13;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 45)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus14;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 46)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus15;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 47)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus16;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 48)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus17;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 49)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus18;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 50)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus19;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 51)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus20;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 52)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus21;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 53)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus22;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 54)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus23;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 55)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus24;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 56)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus25;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 57)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus26;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 58)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus27;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 59)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus28;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 60)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus29;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 61)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus30;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 62)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus31;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 63)
|
|
|
|
|
{
|
|
|
|
|
return CompletStatus32;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
else { return null; }
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (index == 0)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan1 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 1)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan2 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 2)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan3 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 3)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan4 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 4)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan5 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 5)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan6 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 6)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan7 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 7)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan8 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 8)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan9 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 9)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan10 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 10)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan11 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 11)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan12 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 12)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan13 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 13)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan14 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 14)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan15 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 15)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan16 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 16)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan17 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 17)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan18 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 18)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan19 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 19)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan20 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 20)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan21 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 21)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan22 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 22)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan23 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 23)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan24 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 24)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan25 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 25)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan26 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 26)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan27 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 27)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan28 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 28)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan29 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 29)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan30 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 30)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan31 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 31)
|
|
|
|
|
{
|
|
|
|
|
WorkPlan32 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 32)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus1 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 33)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus2 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 34)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus3 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 35)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus4 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 36)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus5 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 37)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus6 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 38)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus7 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 39)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus8 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 40)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus9 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 41)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus10 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 42)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus11 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 43)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus12 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 44)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus13 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 45)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus14 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 46)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus15 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 47)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus16 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 48)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus17 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 49)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus18 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 50)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus19 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 51)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus20 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 52)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus21 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 53)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus22 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 54)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus23 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 55)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus24 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 56)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus25 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 57)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus26 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 58)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus27 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 59)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus28 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 60)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus29 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 61)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus30 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 62)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus31 = value;
|
|
|
|
|
}
|
|
|
|
|
else if (index == 63)
|
|
|
|
|
{
|
|
|
|
|
CompletStatus32 = value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void BindGrid()
|
|
|
|
|
{
|
|
|
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
|
|
|
{
|
|
|
|
|
var month = Convert.ToDateTime(drpCompileDateMonth.Text.Trim()).Year + "-" + Convert.ToDateTime(drpCompileDateMonth.Text.Trim()).Month;
|
|
|
|
|
if (Convert.ToDateTime(drpCompileDateMonth.Text.Trim()).Month.ToString().Length==1)
|
|
|
|
|
{
|
|
|
|
|
month = Convert.ToDateTime(drpCompileDateMonth.Text.Trim()).Year + "-0" + Convert.ToDateTime(drpCompileDateMonth.Text.Trim()).Month;
|
|
|
|
|
}
|
|
|
|
|
//1.先获取主表的基础数据
|
|
|
|
|
var modelCQMS_Performance = db.CQMS_Performance.FirstOrDefault(x => x.ProjectId == CurrUser.LoginProjectId
|
|
|
|
|
&& x.CreateDateMonth == month && x.CreateMan== CreateUser);
|
|
|
|
|
if (modelCQMS_Performance != null)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
Grid1.Title= "五环责任人:" + modelCQMS_Performance.HeadUserid + ";本月完成专业产值:" +
|
|
|
|
|
modelCQMS_Performance.ProOutputValue + "万元;分包商负责人:" +
|
|
|
|
|
modelCQMS_Performance.SubUserids + ";分包工程师、班组长:" + modelCQMS_Performance.SubpackageUserids;
|
|
|
|
|
PerformanceGid = modelCQMS_Performance.PerformanceGid;
|
|
|
|
|
//根据主键查询CQMS_Performance_Child1
|
|
|
|
|
var listChild1 = db.CQMS_Performance_Child1.Where(x => x.PerformanceGid == PerformanceGid).OrderBy(x => x.SortIndex)
|
|
|
|
|
.Select(x=> new GridModels {
|
|
|
|
|
Performance_ChildGid1=x.Performance_ChildGid1,
|
|
|
|
|
PerformanceGid=x.PerformanceGid,
|
|
|
|
|
PType=x.PType,
|
|
|
|
|
EvaScore=x.EvaScore,
|
|
|
|
|
Itemize=x.Itemize,
|
|
|
|
|
WorkArea=x.WorkArea,
|
|
|
|
|
MonthTarget=x.MonthTarget,
|
|
|
|
|
SortIndex=x.SortIndex
|
|
|
|
|
}).ToList();
|
|
|
|
|
#region 合并单元格参数
|
|
|
|
|
//获取各行的gid
|
|
|
|
|
OneGid = listChild1[0].Performance_ChildGid1;
|
|
|
|
|
Gid2 = listChild1[1].Performance_ChildGid1;
|
|
|
|
|
Gid3 = listChild1[2].Performance_ChildGid1;
|
|
|
|
|
Gid4 = listChild1[3].Performance_ChildGid1;
|
|
|
|
|
Gid5 = listChild1[4].Performance_ChildGid1;
|
|
|
|
|
Gid6 = listChild1[5].Performance_ChildGid1;
|
|
|
|
|
//获取CQMS_Performance_Child2 表中的数据
|
|
|
|
|
int child2Count = db.CQMS_Performance_Child2.Where(x => x.NowWeek == 1 && x.PerformanceGid == PerformanceGid).ToList().Count();
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//加载各周任务、工程量、人材机、完成情况
|
|
|
|
|
|
|
|
|
|
//根据gid获取CQMS_Performance_Child2 施工进度管理的子表数据,大于一条,就要多增加数据到List中
|
|
|
|
|
var ChildSgjdCount = db.CQMS_Performance_Child2.Where(x => x.NowWeek == 1 && x.PerformanceGid == PerformanceGid
|
|
|
|
|
&&x.Performance_ChildGid1== OneGid).ToList().Count();
|
2023-11-06 15:45:52 +08:00
|
|
|
|
|
|
|
|
|
for (int i = 0; i < ChildSgjdCount-1; i++)
|
|
|
|
|
{
|
|
|
|
|
var addList = db.CQMS_Performance_Child1.Where(x => x.PerformanceGid == PerformanceGid && x.SortIndex == 1)
|
|
|
|
|
.Select(x => new GridModels
|
|
|
|
|
{
|
|
|
|
|
Performance_ChildGid1 = x.Performance_ChildGid1,
|
|
|
|
|
PerformanceGid = x.PerformanceGid,
|
|
|
|
|
PType = x.PType,
|
|
|
|
|
EvaScore = x.EvaScore,
|
|
|
|
|
Itemize = x.Itemize,
|
|
|
|
|
WorkArea = x.WorkArea,
|
|
|
|
|
MonthTarget = x.MonthTarget,
|
|
|
|
|
SortIndex = x.SortIndex
|
|
|
|
|
}).ToList();
|
|
|
|
|
|
|
|
|
|
addList[0].Performance_ChildGid1 = addList[0].Performance_ChildGid1 + "one"+i.ToString();
|
|
|
|
|
listChild1.InsertRange(i+1, addList);
|
|
|
|
|
}
|
|
|
|
|
//if (ChildSgjdCount == 2)
|
|
|
|
|
//{
|
|
|
|
|
// addList[0].Performance_ChildGid1 = addList[0].Performance_ChildGid1 + "one";
|
|
|
|
|
// listChild1.InsertRange(1, addList);
|
|
|
|
|
//}
|
|
|
|
|
//else if (ChildSgjdCount == 3)
|
|
|
|
|
//{
|
|
|
|
|
// var pgid = addList[0].Performance_ChildGid1;
|
|
|
|
|
// addList[0].Performance_ChildGid1 = pgid + "one";
|
|
|
|
|
// listChild1.InsertRange(1, addList);
|
|
|
|
|
// addList[0].Performance_ChildGid1 = pgid + "two";
|
|
|
|
|
// listChild1.InsertRange(2, addList);
|
|
|
|
|
//}
|
2023-10-26 15:38:13 +08:00
|
|
|
|
|
|
|
|
|
//循环list给每周任务、工程量、资源需求计划、本周工作任务完成情况 ,每日工作计划、完成情况赋值
|
|
|
|
|
//获取周数
|
|
|
|
|
var NowDate = Convert.ToDateTime(drpCompileDateMonth.Text.Trim());
|
2023-10-30 16:30:10 +08:00
|
|
|
|
var Year = NowDate.Year;
|
2023-10-26 15:38:13 +08:00
|
|
|
|
var Month = 1;
|
|
|
|
|
if (NowDate.Month != 12)
|
|
|
|
|
{
|
|
|
|
|
Month = NowDate.Month + 1;
|
|
|
|
|
}
|
2023-10-30 16:30:10 +08:00
|
|
|
|
else {
|
|
|
|
|
Year += 1;
|
|
|
|
|
}
|
2023-10-26 15:38:13 +08:00
|
|
|
|
|
2023-10-30 16:30:10 +08:00
|
|
|
|
var modelConfig = Funs.DB.CQMS_Performance_SetUp.FirstOrDefault(x => x.CreateYear == Year.ToString() && x.SortIndex == Month);
|
2023-10-26 15:38:13 +08:00
|
|
|
|
|
|
|
|
|
for (int i = 0; i < listChild1.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
var CompletStatusIndex = 32;
|
|
|
|
|
var zIndex = 0;
|
|
|
|
|
//循环周数-
|
|
|
|
|
for (int y = 0; y < modelConfig.SetUpWeek; y++)
|
|
|
|
|
{
|
|
|
|
|
var chilGid = listChild1[i].Performance_ChildGid1;
|
|
|
|
|
if (chilGid.IndexOf("one")>-1|| chilGid.IndexOf("two") > -1)
|
|
|
|
|
{
|
2023-11-06 15:45:52 +08:00
|
|
|
|
chilGid = chilGid.Substring(0, chilGid.Length - 4);
|
2023-10-26 15:38:13 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//根据周数获取数据
|
|
|
|
|
var Child2ListNew = db.CQMS_Performance_Child2.FirstOrDefault(x => x.PerformanceGid == listChild1[i].PerformanceGid
|
|
|
|
|
&& x.Performance_ChildGid1 == chilGid && x.NowWeek == (y + 1) && x.SortIndex == (i + 1));
|
|
|
|
|
//将list中的周数数据插入
|
|
|
|
|
if (Child2ListNew==null)
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("数据有误。请重新生成", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
switch (y)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
|
|
|
|
listChild1[i].TaskContent1 = Child2ListNew.TaskContent;
|
|
|
|
|
listChild1[i].ProjectQuantity1 = Child2ListNew.ProjectQuantity;
|
|
|
|
|
listChild1[i].DemandPlan1 = Child2ListNew.DemandPlan;
|
|
|
|
|
listChild1[i].TaskCompletContent1= Child2ListNew.TaskCompletContent;
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
listChild1[i].TaskContent2 = Child2ListNew.TaskContent;
|
|
|
|
|
listChild1[i].ProjectQuantity2 = Child2ListNew.ProjectQuantity;
|
|
|
|
|
listChild1[i].DemandPlan2 = Child2ListNew.DemandPlan;
|
|
|
|
|
listChild1[i].TaskCompletContent2 = Child2ListNew.TaskCompletContent;
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
listChild1[i].TaskContent3 = Child2ListNew.TaskContent;
|
|
|
|
|
listChild1[i].ProjectQuantity3 = Child2ListNew.ProjectQuantity;
|
|
|
|
|
listChild1[i].DemandPlan3 = Child2ListNew.DemandPlan;
|
|
|
|
|
listChild1[i].TaskCompletContent3 = Child2ListNew.TaskCompletContent;
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
listChild1[i].TaskContent4 = Child2ListNew.TaskContent;
|
|
|
|
|
listChild1[i].ProjectQuantity4 = Child2ListNew.ProjectQuantity;
|
|
|
|
|
listChild1[i].DemandPlan4 = Child2ListNew.DemandPlan;
|
|
|
|
|
listChild1[i].TaskCompletContent4 = Child2ListNew.TaskCompletContent;
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
listChild1[i].TaskContent5 = Child2ListNew.TaskContent;
|
|
|
|
|
listChild1[i].ProjectQuantity5 = Child2ListNew.ProjectQuantity;
|
|
|
|
|
listChild1[i].DemandPlan5 = Child2ListNew.DemandPlan;
|
|
|
|
|
listChild1[i].TaskCompletContent5 = Child2ListNew.TaskCompletContent;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region 根据周id获取日
|
|
|
|
|
var Child3ListNew = db.CQMS_Performance_Child3.Where(x => x.Performance_ChildGid2 == Child2ListNew.Performance_ChildGid2)
|
|
|
|
|
.OrderBy(x => x.CurrentDate).ToList();
|
|
|
|
|
|
|
|
|
|
for (var z = 0; z < Child3ListNew.Count; z++)
|
|
|
|
|
{
|
|
|
|
|
listChild1[i][zIndex] = Child3ListNew[z].WorkPlan;
|
|
|
|
|
listChild1[i][CompletStatusIndex] = Child3ListNew[z].CompletStatus;
|
|
|
|
|
CompletStatusIndex += 1;
|
|
|
|
|
zIndex += 1;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//重新给list设置 序号
|
|
|
|
|
int sindex = 1;
|
|
|
|
|
listChild1.ForEach(x =>
|
|
|
|
|
{
|
|
|
|
|
x.SortIndex = sindex;
|
|
|
|
|
sindex += 1;
|
|
|
|
|
});
|
|
|
|
|
var table = ToDataTable<GridModels>(listChild1);
|
|
|
|
|
Grid1.DataSource = table;
|
|
|
|
|
Grid1.DataBind();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 合并单元格
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var DateIffs = DateDiff(Convert.ToDateTime(modelConfig.SetUpStartDate), Convert.ToDateTime(modelConfig.SetUpEndDate))+1;
|
|
|
|
|
if (ChildSgjdCount > 1)
|
|
|
|
|
{
|
|
|
|
|
//合并单元格方法
|
|
|
|
|
PageContext.RegisterStartupScript("onGridDataLoad('" + OneGid + "','" + child2Count + "','" + Gid2 + "','"
|
|
|
|
|
+ Gid3 + "','" + Gid4 + "','" + Gid5 + "','" + Gid6 + "','"+ ChildSgjdCount + "','"+ modelConfig.SetUpWeek + "',"+ DateIffs + ")");
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
//合并单元格方法
|
|
|
|
|
PageContext.RegisterStartupScript("onGridDataLoad('" + OneGid + "','" + child2Count + "','" + Gid2 + "','"
|
|
|
|
|
+ Gid3 + "','" + Gid4 + "','" + Gid5 + "','" + Gid6 + "',0,'" + modelConfig.SetUpWeek + "'," + DateIffs + ")");
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2023-10-31 15:22:02 +08:00
|
|
|
|
var NowDate = Convert.ToDateTime(drpCompileDateMonth.Text.Trim());
|
|
|
|
|
var Year = NowDate.Year;
|
|
|
|
|
var Month = 1;
|
|
|
|
|
if (NowDate.Month != 12)
|
|
|
|
|
{
|
|
|
|
|
Month = NowDate.Month + 1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Year += 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取配置
|
|
|
|
|
var modelConfig = Funs.DB.CQMS_Performance_SetUp.FirstOrDefault(x => x.CreateYear == Year.ToString() && x.SortIndex == Month);
|
|
|
|
|
if (modelConfig==null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
2023-10-26 15:38:13 +08:00
|
|
|
|
if (string.IsNullOrEmpty(CurrUser.LoginProjectId))
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("未查询到当前项目,请刷新页面重试。", MessageBoxIcon.Warning);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("未查询到数据,请先生成表单。", MessageBoxIcon.Warning);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 计算日期之间的天数
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="dateStart"></param>
|
|
|
|
|
/// <param name="dateEnd"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
private int DateDiff(DateTime dateStart, DateTime dateEnd)
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
DateTime start = Convert.ToDateTime(dateStart.ToShortDateString());
|
|
|
|
|
|
|
|
|
|
DateTime end = Convert.ToDateTime(dateEnd.ToShortDateString());
|
|
|
|
|
|
|
|
|
|
TimeSpan sp = end.Subtract(start);
|
|
|
|
|
|
|
|
|
|
return sp.Days;
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 查询绑定数据
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
protected void btnBindGrid(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
var Rurl = Request.Url.ToString();
|
|
|
|
|
if (Rurl.IndexOf("?")>-1)
|
|
|
|
|
{
|
|
|
|
|
Rurl = Rurl.Substring(0, Rurl.IndexOf("?"));
|
|
|
|
|
}
|
|
|
|
|
//重定向当前页面传值
|
|
|
|
|
Response.Redirect(Rurl + "?CompileDateMonth="+ drpCompileDateMonth.Text);
|
|
|
|
|
//BindGrid();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 判断生成操作
|
|
|
|
|
/// </summary>
|
|
|
|
|
protected void btnNew_Juge(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(this.drpCompileDateMonth.Text.Trim()))
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("日期不能为空。", MessageBoxIcon.Warning);
|
|
|
|
|
PageContext.RegisterStartupScript("CloseRefresh()");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var dates = Convert.ToDateTime(drpCompileDateMonth.Text.Trim());
|
2023-10-30 16:30:10 +08:00
|
|
|
|
var Year = dates.Year;
|
2023-10-26 15:38:13 +08:00
|
|
|
|
var Month = 1;
|
|
|
|
|
if (dates.Month != 12)
|
|
|
|
|
{
|
|
|
|
|
Month = dates.Month + 1;
|
|
|
|
|
}
|
2023-10-30 16:30:10 +08:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Year += 1;
|
|
|
|
|
}
|
2023-10-26 15:38:13 +08:00
|
|
|
|
|
|
|
|
|
//按照日期查询是否有设置
|
2023-10-30 16:30:10 +08:00
|
|
|
|
var modelConfig = Funs.DB.CQMS_Performance_SetUp.FirstOrDefault(x => x.CreateYear == Year.ToString() && x.SortIndex == Month);
|
2023-10-26 15:38:13 +08:00
|
|
|
|
if (modelConfig == null)
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("当前日期未设置规则,请前往施工绩效设置页面进行操作。", MessageBoxIcon.Warning);
|
|
|
|
|
PageContext.RegisterStartupScript("CloseRefresh()");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
//根据日期查询是否有数据
|
|
|
|
|
var modelSum = Funs.DB.CQMS_Performance.Where(x => x.CreateDateMonth == drpCompileDateMonth.Text.Trim() && x.ProjectId == CurrUser.LoginProjectId&&x.CreateMan== CreateUser).FirstOrDefault();
|
|
|
|
|
//查到数据,二次确认
|
|
|
|
|
if (modelSum != null)
|
|
|
|
|
{
|
|
|
|
|
PageContext.RegisterStartupScript(Confirm.GetShowReference("该日期已生成数据,是否确认重新生成?", String.Empty, MessageBoxIcon.Question,
|
|
|
|
|
PageManager1.GetCustomEventReference("Confirmgd_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel")));
|
|
|
|
|
//PageContext.RegisterStartupScript("CloseRefresh()");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PerformanceEdit.aspx?CreateDateMonth=" + drpCompileDateMonth.Text.Trim(), ""),
|
|
|
|
|
"新增", Unit.Parse("1000px"), Unit.Parse("800px")));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 确认按钮
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
protected void PageManager1_CustomEvent(object sender, CustomEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (e.EventArgument == "Confirmgd_OK")
|
|
|
|
|
{
|
|
|
|
|
// 根据日期查询是否有数据
|
|
|
|
|
var modelSum = Funs.DB.CQMS_Performance.Where(x => x.CreateDateMonth == drpCompileDateMonth.Text.Trim()).FirstOrDefault();
|
|
|
|
|
if (modelSum != null)
|
|
|
|
|
{
|
|
|
|
|
//删除数据
|
|
|
|
|
PerformanceService.Delete(modelSum.CreateDateMonth);
|
|
|
|
|
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PerformanceEdit.aspx?CreateDateMonth="
|
|
|
|
|
+ drpCompileDateMonth.Text.Trim(), ""), "新增", Unit.Parse("1000px"), Unit.Parse("800px")));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//BindGrid();
|
|
|
|
|
//btnNew_Click();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region list转换datatable
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Convert a List{T} to a DataTable.
|
|
|
|
|
/// </summary>
|
|
|
|
|
private DataTable ToDataTable<T>(List<T> items)
|
|
|
|
|
{
|
|
|
|
|
var tb = new DataTable(typeof(T).Name);
|
|
|
|
|
|
|
|
|
|
PropertyInfo[] props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
|
|
|
|
|
|
|
|
|
|
foreach (PropertyInfo prop in props)
|
|
|
|
|
{
|
|
|
|
|
Type t = GetCoreType(prop.PropertyType);
|
|
|
|
|
tb.Columns.Add(prop.Name, t);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach (T item in items)
|
|
|
|
|
{
|
|
|
|
|
var values = new object[props.Length];
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < props.Length-1; i++)
|
|
|
|
|
{
|
|
|
|
|
values[i] = props[i].GetValue(item, null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tb.Rows.Add(values);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return tb;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Determine of specified type is nullable
|
|
|
|
|
/// </summary>
|
|
|
|
|
public static bool IsNullable(Type t)
|
|
|
|
|
{
|
|
|
|
|
return !t.IsValueType || (t.IsGenericType && t.GetGenericTypeDefinition() == typeof(Nullable<>));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Return underlying type if type is Nullable otherwise return the type
|
|
|
|
|
/// </summary>
|
|
|
|
|
public static Type GetCoreType(Type t)
|
|
|
|
|
{
|
|
|
|
|
if (t != null && IsNullable(t))
|
|
|
|
|
{
|
|
|
|
|
if (!t.IsValueType)
|
|
|
|
|
{
|
|
|
|
|
return t;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return Nullable.GetUnderlyingType(t);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return t;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
protected void Window1_Close(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
BindGrid();
|
2023-10-27 22:27:34 +08:00
|
|
|
|
OutputSummaryData();
|
2023-10-26 15:38:13 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 修改月节点目标
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
|
|
|
|
|
protected void btnMonthTarget(object sender, EventArgs e) {
|
|
|
|
|
if (string.IsNullOrEmpty(PerformanceGid))
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("未查询到数据,请先生成表单。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
//查询状态是否是0 不是0的不允许修改
|
|
|
|
|
var model = Funs.DB.CQMS_Performance.FirstOrDefault(x => x.PerformanceGid == PerformanceGid);
|
|
|
|
|
if (model == null)
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("未查询到数据,请先生成表单。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (CurrUser.UserId != Const.sysglyId && CurrUser.UserId != Const.hfnbdId)
|
|
|
|
|
{
|
|
|
|
|
if (model.States != "0")
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("当前数据已经提交,不允许修改。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("MonthTargetEdit.aspx?PerformanceGid=" + PerformanceGid, ""),
|
|
|
|
|
"修改月节点目标", Unit.Parse("1000px"), Unit.Parse("800px")));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 修改各周工作任务
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
protected void btnTaskContent(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(PerformanceGid))
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("未查询到数据,请先生成表单。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//查询状态是否是0 不是0的不允许修改
|
|
|
|
|
var model = Funs.DB.CQMS_Performance.FirstOrDefault(x => x.PerformanceGid == PerformanceGid);
|
|
|
|
|
if (model == null)
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("未查询到数据,请先生成表单。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (CurrUser.UserId != Const.sysglyId && CurrUser.UserId != Const.hfnbdId)
|
|
|
|
|
{
|
|
|
|
|
if (model.States != "0")
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("当前数据已经提交,不允许修改。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TaskContentEdit.aspx?PerformanceGid=" + PerformanceGid+ "&CreateDateMonth="+ drpCompileDateMonth.Text.Trim(), ""),
|
|
|
|
|
"修改各周工作任务", Unit.Parse("1000px"), Unit.Parse("800px")));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
|
|
|
|
|
protected void btnWorkPlan(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(PerformanceGid))
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("未查询到数据,请先生成表单。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//查询状态是否是0 不是0的不允许修改
|
|
|
|
|
var model = Funs.DB.CQMS_Performance.FirstOrDefault(x => x.PerformanceGid == PerformanceGid);
|
|
|
|
|
if (model == null)
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("未查询到数据,请先生成表单。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (CurrUser.UserId != Const.sysglyId && CurrUser.UserId != Const.hfnbdId)
|
|
|
|
|
{
|
|
|
|
|
if (model.States != "0")
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("当前数据已经提交,不允许修改。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WorkPlanEdit.aspx?PerformanceGid=" + PerformanceGid + "&CreateDateMonth=" + drpCompileDateMonth.Text.Trim(), ""),
|
|
|
|
|
"填写每日工作计划", Unit.Parse("1000px"), Unit.Parse("800px")));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 提交打分
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
protected void btnSubmit(object sender, EventArgs e) {
|
|
|
|
|
if (string.IsNullOrEmpty(PerformanceGid))
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("未查询到数据,请先生成表单。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
var model = Funs.DB.CQMS_Performance.FirstOrDefault(x => x.PerformanceGid == PerformanceGid);
|
|
|
|
|
if (model.States == "1")
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("无需重复提交。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else {
|
2023-10-31 15:22:02 +08:00
|
|
|
|
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("PerformanceSubmit.aspx?PerformanceGid=" + PerformanceGid + "&CreateDateMonth=" + drpCompileDateMonth.Text.Trim(), ""),
|
|
|
|
|
"提交报表", Unit.Parse("440px"), Unit.Parse("300px")));
|
|
|
|
|
//model.States = "1";
|
|
|
|
|
//Funs.DB.SubmitChanges();
|
|
|
|
|
//ShowNotify("提交成功,请等待领导打分。", MessageBoxIcon.Success);
|
2023-10-26 15:38:13 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-10-31 15:22:02 +08:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 修改出差天数
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
protected void btnDays_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(PerformanceGid))
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("未查询到数据,请先生成表单。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//查询状态是否是0 不是0的不允许修改
|
|
|
|
|
var model = Funs.DB.CQMS_Performance.FirstOrDefault(x => x.PerformanceGid == PerformanceGid);
|
|
|
|
|
if (model == null)
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("未查询到数据,请先生成表单。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (CurrUser.UserId != Const.sysglyId && CurrUser.UserId != Const.hfnbdId)
|
|
|
|
|
{
|
|
|
|
|
if (model.States != "0")
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("当前数据已经提交,不允许修改。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("OutDayEdit.aspx?PerformanceGid=" + PerformanceGid, ""),
|
|
|
|
|
"修改出差天数", Unit.Parse("440px"), Unit.Parse("300px")));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-10-26 15:38:13 +08:00
|
|
|
|
#region 导出excel
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 格式化html
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="grid"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
private string GetGridTableHtml(Grid grid)
|
|
|
|
|
{
|
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
|
|
|
|
|
|
MultiHeaderTable mht = new MultiHeaderTable();
|
|
|
|
|
mht.ResolveMultiHeaderTable(Grid1.Columns);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sb.Append("<meta http-equiv=\"Content-Type\" content=\"application/vnd.ms-excel;charset=utf-8\"/>");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
|
|
|
|
|
|
|
|
|
|
////列数
|
|
|
|
|
//var rowCount = "";
|
|
|
|
|
//var list = Funs.DB.Base_Project.Where(x => x.ProjectState == Const.ProjectState_1 || x.ProjectState == null).OrderBy(x => x.ProjectCode).ToList();
|
|
|
|
|
//for (int i = 0; i < list.Count; i++)
|
|
|
|
|
//{
|
|
|
|
|
// rowCount+="{}"
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
foreach (List<object[]> rows in mht.MultiTable)
|
|
|
|
|
{
|
|
|
|
|
sb.Append("<tr>");
|
|
|
|
|
foreach (object[] cell in rows)
|
|
|
|
|
{
|
|
|
|
|
int rowspan = Convert.ToInt32(cell[0]);
|
|
|
|
|
int colspan = Convert.ToInt32(cell[1]);
|
|
|
|
|
GridColumn column = cell[2] as GridColumn;
|
|
|
|
|
|
|
|
|
|
sb.AppendFormat("<th{0}{1}{2}>{3}</th>",
|
|
|
|
|
rowspan != 1 ? " rowspan=\"" + rowspan + "\"" : "",
|
|
|
|
|
colspan != 1 ? " colspan=\"" + colspan + "\"" : "",
|
|
|
|
|
colspan != 1 ? " style=\"text-align:center;\"" : "",
|
|
|
|
|
column.HeaderText);
|
|
|
|
|
}
|
|
|
|
|
sb.Append("</tr>");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int i = 0;
|
|
|
|
|
foreach (GridRow row in grid.Rows)
|
|
|
|
|
{
|
|
|
|
|
sb.Append("<tr>");
|
|
|
|
|
|
|
|
|
|
string MenuC = "";
|
|
|
|
|
int y = 1;
|
|
|
|
|
foreach (GridColumn column in mht.Columns)
|
|
|
|
|
{
|
|
|
|
|
string html = row.Values[column.ColumnIndex].ToString();
|
|
|
|
|
if (column.ColumnID == "tfNumber")
|
|
|
|
|
{
|
|
|
|
|
html = (row.FindControl("spanNumber") as System.Web.UI.HtmlControls.HtmlGenericControl).InnerText;
|
|
|
|
|
}
|
|
|
|
|
else if (column.ColumnID == "tfGender")
|
|
|
|
|
{
|
|
|
|
|
html = (row.FindControl("labGender") as AspNet.Label).Text;
|
|
|
|
|
}
|
|
|
|
|
else if (column.ColumnID == "MenuC")
|
|
|
|
|
{
|
|
|
|
|
MenuC = html;
|
|
|
|
|
}
|
|
|
|
|
#region 合并单元格
|
|
|
|
|
//合并类别
|
|
|
|
|
else if (column.ColumnID == "PType" && i == 0)
|
|
|
|
|
{
|
|
|
|
|
sb.AppendFormat("<td rowspan='" + grid.Rows.Count + "'>{0}</td>", html);
|
|
|
|
|
}
|
|
|
|
|
else if (column.ColumnID == "PType" && i != 0)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//合并分项
|
|
|
|
|
else if (column.ColumnID== "Itemize"&& row.Values[column.ColumnIndex].ToString().IndexOf("施工进度管理")==-1)
|
|
|
|
|
{
|
|
|
|
|
sb.AppendFormat("<td colspan='2'>{0}</td>", html);
|
|
|
|
|
}
|
|
|
|
|
//施工区域不显示
|
|
|
|
|
else if (column.ColumnID == "WorkArea" && row.Values[column.ColumnIndex - 1].ToString().IndexOf("施工进度管理") == -1)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//合并施工工作任务安排
|
|
|
|
|
else if (column.ColumnID.IndexOf("TaskContent")!=-1 && row.Values[3].ToString().IndexOf("施工进度管理") == -1)
|
|
|
|
|
{
|
|
|
|
|
sb.AppendFormat("<td colspan='3'>{0}</td>", html);
|
|
|
|
|
}
|
|
|
|
|
else if (column.ColumnID.IndexOf("ProjectQuantity") != -1 && row.Values[3].ToString().IndexOf("施工进度管理") == -1)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else if (column.ColumnID.IndexOf("DemandPlan") != -1 && row.Values[3].ToString().IndexOf("施工进度管理") == -1)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//合并本日工作计划
|
|
|
|
|
else if (column.ColumnID.IndexOf("WorkPlan") != -1 && row.Values[3].ToString().IndexOf("施工进度管理") == -1)
|
|
|
|
|
{
|
|
|
|
|
sb.AppendFormat("<td colspan='2'>{0}</td>", html);
|
|
|
|
|
}
|
|
|
|
|
else if (column.ColumnID.IndexOf("CompletStatus") != -1 && row.Values[3].ToString().IndexOf("施工进度管理") == -1)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
sb.AppendFormat("<td>{0}</td>", html);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y += 1;
|
|
|
|
|
}
|
|
|
|
|
i += 1;
|
|
|
|
|
sb.Append("</tr>");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sb.Append("</table>");
|
|
|
|
|
|
|
|
|
|
return sb.ToString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static string MidStrEx(string sourse, string startstr, string endstr)
|
|
|
|
|
{
|
|
|
|
|
string result = string.Empty;
|
|
|
|
|
int startindex, endindex;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
startindex = sourse.IndexOf(startstr);
|
|
|
|
|
if (startindex == -1)
|
|
|
|
|
return result;
|
|
|
|
|
string tmpstr = sourse.Substring(startindex + startstr.Length);
|
|
|
|
|
endindex = tmpstr.IndexOf(endstr);
|
|
|
|
|
if (endindex == -1)
|
|
|
|
|
return result;
|
|
|
|
|
result = tmpstr.Remove(endindex);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 多表头处理
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 处理多表头的类
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class MultiHeaderTable
|
|
|
|
|
{
|
|
|
|
|
// 包含 rowspan,colspan 的多表头,方便生成 HTML 的 table 标签
|
|
|
|
|
public List<List<object[]>> MultiTable = new List<List<object[]>>();
|
|
|
|
|
// 最终渲染的列数组
|
|
|
|
|
public List<GridColumn> Columns = new List<GridColumn>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void ResolveMultiHeaderTable(GridColumnCollection columns)
|
|
|
|
|
{
|
|
|
|
|
List<object[]> row = new List<object[]>();
|
|
|
|
|
foreach (GridColumn column in columns)
|
|
|
|
|
{
|
|
|
|
|
object[] cell = new object[4];
|
|
|
|
|
cell[0] = 1; // rowspan
|
|
|
|
|
cell[1] = 1; // colspan
|
|
|
|
|
cell[2] = column;
|
|
|
|
|
cell[3] = null;
|
|
|
|
|
|
|
|
|
|
row.Add(cell);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ResolveMultiTable(row, 0);
|
|
|
|
|
|
|
|
|
|
ResolveColumns(row);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ResolveColumns(List<object[]> row)
|
|
|
|
|
{
|
|
|
|
|
foreach (object[] cell in row)
|
|
|
|
|
{
|
|
|
|
|
GroupField groupField = cell[2] as GroupField;
|
|
|
|
|
if (groupField != null && groupField.Columns.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
List<object[]> subrow = new List<object[]>();
|
|
|
|
|
foreach (GridColumn column in groupField.Columns)
|
|
|
|
|
{
|
|
|
|
|
subrow.Add(new object[]
|
|
|
|
|
{
|
|
|
|
|
1,
|
|
|
|
|
1,
|
|
|
|
|
column,
|
|
|
|
|
groupField
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ResolveColumns(subrow);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Columns.Add(cell[2] as GridColumn);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ResolveMultiTable(List<object[]> row, int level)
|
|
|
|
|
{
|
|
|
|
|
List<object[]> nextrow = new List<object[]>();
|
|
|
|
|
|
|
|
|
|
foreach (object[] cell in row)
|
|
|
|
|
{
|
|
|
|
|
GroupField groupField = cell[2] as GroupField;
|
|
|
|
|
if (groupField != null && groupField.Columns.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
// 如果当前列包含子列,则更改当前列的 colspan,以及增加父列(向上递归)的colspan
|
|
|
|
|
cell[1] = Convert.ToInt32(groupField.Columns.Count);
|
|
|
|
|
PlusColspan(level - 1, cell[3] as GridColumn, groupField.Columns.Count - 1);
|
|
|
|
|
|
|
|
|
|
foreach (GridColumn column in groupField.Columns)
|
|
|
|
|
{
|
|
|
|
|
nextrow.Add(new object[]
|
|
|
|
|
{
|
|
|
|
|
1,
|
|
|
|
|
1,
|
|
|
|
|
column,
|
|
|
|
|
groupField
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MultiTable.Add(row);
|
|
|
|
|
|
|
|
|
|
// 如果当前下一行,则增加上一行(向上递归)中没有子列的列的 rowspan
|
|
|
|
|
if (nextrow.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
PlusRowspan(level);
|
|
|
|
|
|
|
|
|
|
ResolveMultiTable(nextrow, level + 1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void PlusRowspan(int level)
|
|
|
|
|
{
|
|
|
|
|
if (level < 0)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach (object[] cells in MultiTable[level])
|
|
|
|
|
{
|
|
|
|
|
GroupField groupField = cells[2] as GroupField;
|
|
|
|
|
if (groupField != null && groupField.Columns.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
// ...
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
cells[0] = Convert.ToInt32(cells[0]) + 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PlusRowspan(level - 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void PlusColspan(int level, GridColumn parent, int plusCount)
|
|
|
|
|
{
|
|
|
|
|
if (level < 0)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach (object[] cells in MultiTable[level])
|
|
|
|
|
{
|
|
|
|
|
GridColumn column = cells[2] as GridColumn;
|
|
|
|
|
if (column == parent)
|
|
|
|
|
{
|
|
|
|
|
cells[1] = Convert.ToInt32(cells[1]) + plusCount;
|
|
|
|
|
|
|
|
|
|
PlusColspan(level - 1, cells[3] as GridColumn, plusCount);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
#endregion
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 导出exccel
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
protected void btnOut_Click(object sender, EventArgs e) {
|
|
|
|
|
Response.ClearContent();
|
|
|
|
|
var projectname = ProjectService.GetProjectNameByProjectId(CurrUser.LoginProjectId);
|
|
|
|
|
var excelDate = Convert.ToDateTime(drpCompileDateMonth.Text).Year + "年" + Convert.ToDateTime(drpCompileDateMonth.Text).Month + "月";
|
2023-10-27 22:27:34 +08:00
|
|
|
|
var userName = CurrUser.UserName;
|
2023-10-26 15:38:13 +08:00
|
|
|
|
|
2023-10-27 22:27:34 +08:00
|
|
|
|
var FileName = projectname+"项目"+ excelDate+ "施工工程师("+ userName +")绩效考核数据表(暨施工日报表)";
|
2023-10-26 15:38:13 +08:00
|
|
|
|
Response.AddHeader("content-disposition", "attachment; filename=" + FileName + ".xls");
|
|
|
|
|
Response.ContentType = "application/vnd.ms-excel";
|
|
|
|
|
Response.ContentEncoding = System.Text.Encoding.UTF8;
|
|
|
|
|
Response.Write(GetGridTableHtml(Grid1));
|
|
|
|
|
Response.End();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|