2024-01-29 10:02:33 +08:00
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
2024-01-29 17:56:17 +08:00
|
|
|
|
using System.Data;
|
2024-01-29 10:02:33 +08:00
|
|
|
|
using System.Linq;
|
2024-01-29 17:56:17 +08:00
|
|
|
|
using BLL;
|
2024-01-29 10:02:33 +08:00
|
|
|
|
|
|
|
|
|
namespace FineUIPro.Web.Transfer.Chart
|
|
|
|
|
{
|
2024-01-29 17:56:17 +08:00
|
|
|
|
public partial class Instrumentation : PageBase
|
2024-01-29 10:02:33 +08:00
|
|
|
|
{
|
2024-01-29 17:56:17 +08:00
|
|
|
|
#region 定义项
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 项目主键
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string ProjectId
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return (string)ViewState["ProjectId"];
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
ViewState["ProjectId"] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 加载页面
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 加载页面
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
2024-01-29 10:02:33 +08:00
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
|
|
|
{
|
2024-01-29 17:56:17 +08:00
|
|
|
|
if (!IsPostBack)
|
|
|
|
|
{
|
|
|
|
|
this.ProjectId = this.CurrUser.LoginProjectId;
|
|
|
|
|
if (!string.IsNullOrEmpty(Request.Params["projectId"]))
|
|
|
|
|
{
|
|
|
|
|
this.ProjectId = Request.Params["projectId"];
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-01 16:28:37 +08:00
|
|
|
|
//this.AnalyseData();
|
2024-01-29 17:56:17 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
2024-02-01 16:28:37 +08:00
|
|
|
|
protected void drpdateType_SelectedIndexChanged(object sender, EventArgs e) {
|
|
|
|
|
if (drpdateType.SelectedValue == "0")
|
|
|
|
|
{
|
|
|
|
|
txtStarTime.Hidden = false;
|
|
|
|
|
txtEndTime.Hidden = false;
|
|
|
|
|
|
|
|
|
|
txtStarTime1.Hidden = true;
|
|
|
|
|
txtEndTime1.Hidden = true;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
txtStarTime1.Hidden = false;
|
|
|
|
|
txtEndTime1.Hidden = false;
|
|
|
|
|
|
|
|
|
|
txtStarTime.Hidden = true;
|
|
|
|
|
txtEndTime.Hidden = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-01-29 17:56:17 +08:00
|
|
|
|
#region 统计
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 统计方法
|
|
|
|
|
/// </summary>
|
|
|
|
|
private void AnalyseData()
|
|
|
|
|
{
|
2024-01-30 16:01:53 +08:00
|
|
|
|
if (string.IsNullOrEmpty(ProjectId))
|
|
|
|
|
{
|
|
|
|
|
Alert.ShowInTop("项目未获取到,请刷新页面。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
2024-01-29 17:56:17 +08:00
|
|
|
|
var sTime = DateTime.Now.AddDays(-7);
|
|
|
|
|
var eTime = DateTime.Now; ;
|
|
|
|
|
|
2024-02-01 16:28:37 +08:00
|
|
|
|
if (drpdateType.SelectedValue == "0")
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(txtStarTime.Text) || string.IsNullOrEmpty(txtEndTime.Text))
|
|
|
|
|
{
|
|
|
|
|
Alert.ShowInTop("请选择日期。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
sTime = Convert.ToDateTime(txtStarTime.Text);
|
2024-01-29 17:56:17 +08:00
|
|
|
|
|
2024-02-01 16:28:37 +08:00
|
|
|
|
eTime = Convert.ToDateTime(txtEndTime.Text).AddMonths(1).AddDays(-1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (string.IsNullOrEmpty(txtStarTime1.Text) || string.IsNullOrEmpty(txtEndTime1.Text))
|
|
|
|
|
{
|
|
|
|
|
Alert.ShowInTop("请选择日期。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
sTime = Convert.ToDateTime(txtStarTime1.Text);
|
|
|
|
|
eTime = Convert.ToDateTime(txtEndTime1.Text);
|
|
|
|
|
}
|
2024-01-29 17:56:17 +08:00
|
|
|
|
}
|
2024-02-01 16:28:37 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
////如果没有填写日期,则是七天内的
|
|
|
|
|
//if (!string.IsNullOrEmpty(txtStarTime.Text) && !string.IsNullOrEmpty(txtEndTime.Text))
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//}
|
2024-01-29 17:56:17 +08:00
|
|
|
|
|
|
|
|
|
//查询当前日期中的system的具体数目,去除重复
|
2024-01-30 16:01:53 +08:00
|
|
|
|
var list = Funs.DB.View_TransferDetail.Where(x => x.Projectid == ProjectId
|
|
|
|
|
&& x.FDate >= sTime && x.FDate <= eTime).ToList();
|
2024-02-01 16:50:35 +08:00
|
|
|
|
|
2024-01-29 17:56:17 +08:00
|
|
|
|
var SystemList = (from x in list select x.SystemName).Distinct();
|
|
|
|
|
|
|
|
|
|
//先加载左侧system 树菜单
|
|
|
|
|
LoadData(SystemList);
|
|
|
|
|
|
|
|
|
|
DataTable dtTime = new DataTable();
|
|
|
|
|
dtTime.Columns.Add("日期", typeof(string));
|
2024-02-05 09:37:30 +08:00
|
|
|
|
dtTime.Columns.Add("Plan Finished", typeof(string));
|
|
|
|
|
//dtTime.Columns.Add("Finished", typeof(string));
|
|
|
|
|
//dtTime.Columns.Add("In Progress", typeof(string));
|
|
|
|
|
//dtTime.Columns.Add("Not Start", typeof(string));
|
2024-01-29 17:56:17 +08:00
|
|
|
|
|
|
|
|
|
var systemBol = false;
|
2024-02-01 16:28:37 +08:00
|
|
|
|
for (var i = sTime; i <= eTime; i=returnDay(i))
|
2024-01-29 17:56:17 +08:00
|
|
|
|
{
|
|
|
|
|
var finishedCount = 0;
|
|
|
|
|
var inProgress = 0;
|
|
|
|
|
var notStart = 0;
|
|
|
|
|
DataRow rowTime = dtTime.NewRow();
|
|
|
|
|
Model.SpTDesktopItem newspItem = new Model.SpTDesktopItem();
|
2024-02-01 16:28:37 +08:00
|
|
|
|
|
|
|
|
|
//按年月
|
|
|
|
|
if (drpdateType.SelectedValue == "0")
|
|
|
|
|
{
|
|
|
|
|
rowTime["日期"] = string.Format("{0:yyyy-MM}", i);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
rowTime["日期"] = string.Format("{0:yyyy-MM-dd}", i);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2024-01-29 17:56:17 +08:00
|
|
|
|
//根据日期查询当前system的数量
|
2024-01-30 16:01:53 +08:00
|
|
|
|
var systemListbyDate = Funs.DB.View_TransferDetail.Where(x => x.Projectid == ProjectId
|
|
|
|
|
&& x.FDate >= Convert.ToDateTime(rowTime["日期"])
|
|
|
|
|
&& x.FDate < Convert.ToDateTime(rowTime["日期"]).AddDays(1)).ToList();
|
2024-02-01 16:28:37 +08:00
|
|
|
|
//如果按年月
|
|
|
|
|
if (drpdateType.SelectedValue == "0")
|
|
|
|
|
{
|
|
|
|
|
systemListbyDate = Funs.DB.View_TransferDetail.Where(x => x.Projectid == ProjectId
|
|
|
|
|
&& x.FDate >= Convert.ToDateTime(rowTime["日期"])
|
|
|
|
|
&& x.FDate < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)).ToList();
|
|
|
|
|
}
|
|
|
|
|
|
2024-01-30 16:01:53 +08:00
|
|
|
|
|
|
|
|
|
//查询TestPackage 去重
|
|
|
|
|
var testpackageList = (from x in systemListbyDate select x.TestPackage).Distinct();
|
2024-02-05 09:37:30 +08:00
|
|
|
|
|
2024-01-30 16:01:53 +08:00
|
|
|
|
if (testpackageList.ToList().Count>0)
|
2024-01-29 17:56:17 +08:00
|
|
|
|
{
|
|
|
|
|
systemBol = true;
|
|
|
|
|
}
|
2024-01-30 16:01:53 +08:00
|
|
|
|
foreach (var item in testpackageList)
|
2024-01-29 17:56:17 +08:00
|
|
|
|
{
|
2024-01-30 16:01:53 +08:00
|
|
|
|
//查询当前日期每个testpackage的数量
|
|
|
|
|
var systemSumCount = systemListbyDate.Where(x => x.TestPackage == item).ToList().Count;
|
|
|
|
|
|
2024-02-05 09:37:30 +08:00
|
|
|
|
|
2024-01-29 17:56:17 +08:00
|
|
|
|
//子系统中完成的数量
|
2024-01-30 16:01:53 +08:00
|
|
|
|
var subSystemSumCount = systemListbyDate.Where(x => x.TestPackage == item &&
|
|
|
|
|
x.Status.ToLower() == "finished").ToList().Count;
|
2024-01-29 17:56:17 +08:00
|
|
|
|
|
2024-02-05 09:37:30 +08:00
|
|
|
|
////子系统中没完成的情况
|
|
|
|
|
//var subSystemSumNotStartCount = systemListbyDate.Where(x => x.TestPackage == item &&
|
|
|
|
|
//(x.Status.ToLower() == "not start"|| x.Status=="" || x.Status==null )).ToList().Count;
|
2024-01-29 17:56:17 +08:00
|
|
|
|
|
2024-01-30 16:01:53 +08:00
|
|
|
|
//如果总数量等于完成的数量,完成量+1
|
2024-01-29 17:56:17 +08:00
|
|
|
|
if (systemSumCount == subSystemSumCount)
|
|
|
|
|
{
|
2024-01-30 16:01:53 +08:00
|
|
|
|
//如果都是完成,需要最后 12表 test packge 必须是Finished才能是完成
|
2024-02-05 09:37:30 +08:00
|
|
|
|
var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
|
|
|
|
|
&& x.Test_Package == item
|
2024-02-01 16:28:37 +08:00
|
|
|
|
).ToList();
|
|
|
|
|
|
|
|
|
|
////如果按年月
|
|
|
|
|
//if (drpdateType.SelectedValue == "0") {
|
|
|
|
|
// punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
|
|
|
|
|
// && x.Test_Package == item
|
|
|
|
|
// && x.PUNCH_ITEM_FINISH_DATE >= Convert.ToDateTime(rowTime["日期"])
|
|
|
|
|
// && x.PUNCH_ITEM_FINISH_DATE < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)).ToList();
|
|
|
|
|
//}
|
|
|
|
|
|
2024-02-05 09:37:30 +08:00
|
|
|
|
//如果查到
|
|
|
|
|
if (punchlistFromList.Count > 0)
|
2024-01-30 16:01:53 +08:00
|
|
|
|
{
|
|
|
|
|
//12表当前日期完成的数量
|
|
|
|
|
var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
|
|
|
|
|
//如果完成的数量等于总得数量,则是完成
|
|
|
|
|
if (punchlistFromFinshCount == punchlistFromList.Count)
|
|
|
|
|
{
|
|
|
|
|
finishedCount += 1;
|
|
|
|
|
}
|
2024-02-05 09:37:30 +08:00
|
|
|
|
//else
|
|
|
|
|
//{
|
|
|
|
|
// inProgress += 1;
|
|
|
|
|
//}
|
2024-01-30 16:01:53 +08:00
|
|
|
|
}
|
2024-02-05 09:37:30 +08:00
|
|
|
|
else
|
|
|
|
|
{
|
2024-02-01 16:28:37 +08:00
|
|
|
|
finishedCount += 1;
|
2024-01-30 16:01:53 +08:00
|
|
|
|
}
|
2024-01-29 17:56:17 +08:00
|
|
|
|
}
|
2024-02-05 09:37:30 +08:00
|
|
|
|
////如果总数量等于not start,未开始量+1
|
|
|
|
|
//else if (systemSumCount == subSystemSumNotStartCount)
|
|
|
|
|
//{
|
|
|
|
|
// notStart += 1;
|
|
|
|
|
//}
|
|
|
|
|
//else
|
|
|
|
|
//{
|
|
|
|
|
// inProgress += 1;
|
|
|
|
|
//}
|
2024-01-29 17:56:17 +08:00
|
|
|
|
}
|
2024-02-05 09:37:30 +08:00
|
|
|
|
//rowTime["Finished"] = finishedCount;
|
|
|
|
|
//rowTime["In Progress"] = inProgress;
|
|
|
|
|
//rowTime["Not Start"] = notStart;
|
|
|
|
|
rowTime["Plan Finished"] = finishedCount;
|
2024-01-29 17:56:17 +08:00
|
|
|
|
dtTime.Rows.Add(rowTime);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (systemBol)
|
|
|
|
|
{
|
2024-02-04 11:11:43 +08:00
|
|
|
|
this.ChartUc.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "PROGRESS REPORT", "Column", 1100, 600, false));
|
2024-01-29 17:56:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-01 16:28:37 +08:00
|
|
|
|
public DateTime returnDay(DateTime x) {
|
|
|
|
|
//按年月
|
|
|
|
|
if (drpdateType.SelectedValue == "0")
|
|
|
|
|
{
|
|
|
|
|
x = x.AddMonths(1);
|
|
|
|
|
return x;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
x = x.AddDays(1);
|
|
|
|
|
return x;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-01-29 17:56:17 +08:00
|
|
|
|
public class CheckAnalysisModel
|
|
|
|
|
{
|
|
|
|
|
public string itemType { get; set; }
|
|
|
|
|
public int count { get; set; }
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
2024-01-29 10:02:33 +08:00
|
|
|
|
|
2024-01-29 17:56:17 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// 统计分析
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
protected void BtnAnalyse_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
this.AnalyseData();
|
2024-01-29 10:02:33 +08:00
|
|
|
|
}
|
2024-01-29 17:56:17 +08:00
|
|
|
|
|
|
|
|
|
protected void drpChartType_SelectedIndexChanged(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
this.AnalyseData();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void LoadData(IEnumerable<String> list)
|
|
|
|
|
{
|
2024-01-30 16:01:53 +08:00
|
|
|
|
this.trRectify.Nodes.Clear();
|
|
|
|
|
this.trRectify.ShowBorder = false;
|
|
|
|
|
this.trRectify.ShowHeader = false;
|
|
|
|
|
this.trRectify.EnableIcons = true;
|
|
|
|
|
this.trRectify.AutoScroll = true;
|
|
|
|
|
this.trRectify.EnableSingleClickExpand = true;
|
|
|
|
|
TreeNode rootNode = new TreeNode
|
2024-01-29 17:56:17 +08:00
|
|
|
|
{
|
2024-01-30 16:01:53 +08:00
|
|
|
|
Text = "全部",
|
|
|
|
|
NodeID = "ALL",
|
|
|
|
|
EnableClickEvent = true,
|
|
|
|
|
Expanded = true
|
|
|
|
|
};
|
|
|
|
|
this.trRectify.Nodes.Add(rootNode);
|
|
|
|
|
BoundTree(rootNode.Nodes, list);
|
2024-02-01 16:28:37 +08:00
|
|
|
|
this.trRectify.AutoScroll = true;
|
2024-01-29 17:56:17 +08:00
|
|
|
|
}
|
|
|
|
|
|
2024-01-30 16:01:53 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// 加载树
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="nodes"></param>
|
|
|
|
|
/// <param name="menuId"></param>
|
|
|
|
|
private void BoundTree(TreeNodeCollection nodes, IEnumerable<String> list)
|
2024-01-29 17:56:17 +08:00
|
|
|
|
{
|
2024-01-30 16:01:53 +08:00
|
|
|
|
TreeNode tn = null;
|
|
|
|
|
foreach (var item in list)
|
2024-01-29 17:56:17 +08:00
|
|
|
|
{
|
2024-01-30 16:01:53 +08:00
|
|
|
|
tn = new TreeNode
|
2024-01-29 17:56:17 +08:00
|
|
|
|
{
|
2024-01-30 16:01:53 +08:00
|
|
|
|
Text = item.ToString(),
|
|
|
|
|
NodeID = item.ToString(),
|
|
|
|
|
EnableClickEvent = true
|
|
|
|
|
};
|
|
|
|
|
nodes.Add(tn);
|
2024-01-29 17:56:17 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-01-30 16:01:53 +08:00
|
|
|
|
|
2024-01-29 17:56:17 +08:00
|
|
|
|
|
2024-01-30 16:01:53 +08:00
|
|
|
|
|
2024-01-29 17:56:17 +08:00
|
|
|
|
|
2024-01-30 16:01:53 +08:00
|
|
|
|
#region 点击树节点
|
|
|
|
|
protected void trRectify_NodeCommand(object sender, TreeCommandEventArgs e) {
|
|
|
|
|
var SystemName = this.trRectify.SelectedNodeID;
|
|
|
|
|
if (SystemName == "ALL")
|
2024-01-29 17:56:17 +08:00
|
|
|
|
{
|
2024-01-30 16:01:53 +08:00
|
|
|
|
AnalyseData();
|
2024-01-29 17:56:17 +08:00
|
|
|
|
}
|
2024-01-30 16:01:53 +08:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var sTime = DateTime.Now.AddDays(-7);
|
|
|
|
|
var eTime = DateTime.Now; ;
|
|
|
|
|
|
2024-02-01 16:28:37 +08:00
|
|
|
|
if (drpdateType.SelectedValue == "0")
|
2024-01-30 16:01:53 +08:00
|
|
|
|
{
|
2024-02-01 16:28:37 +08:00
|
|
|
|
if (string.IsNullOrEmpty(txtStarTime.Text) || string.IsNullOrEmpty(txtEndTime.Text))
|
|
|
|
|
{
|
|
|
|
|
Alert.ShowInTop("请选择日期。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
sTime = Convert.ToDateTime(txtStarTime.Text);
|
2024-01-29 17:56:17 +08:00
|
|
|
|
|
2024-02-01 16:28:37 +08:00
|
|
|
|
eTime = Convert.ToDateTime(txtEndTime.Text).AddMonths(1).AddDays(-1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(txtStarTime1.Text) || string.IsNullOrEmpty(txtEndTime1.Text))
|
|
|
|
|
{
|
|
|
|
|
Alert.ShowInTop("请选择日期。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
sTime = Convert.ToDateTime(txtStarTime1.Text);
|
|
|
|
|
eTime = Convert.ToDateTime(txtEndTime1.Text);
|
|
|
|
|
}
|
2024-01-30 16:01:53 +08:00
|
|
|
|
}
|
2024-02-05 09:37:30 +08:00
|
|
|
|
|
2024-02-01 16:28:37 +08:00
|
|
|
|
|
|
|
|
|
|
2024-01-30 16:01:53 +08:00
|
|
|
|
DataTable dtTime = new DataTable();
|
2024-02-05 09:37:30 +08:00
|
|
|
|
//dtTime.Columns.Add("日期", typeof(string));
|
|
|
|
|
//dtTime.Columns.Add("Finished", typeof(string));
|
|
|
|
|
//dtTime.Columns.Add("In Progress", typeof(string));
|
|
|
|
|
//dtTime.Columns.Add("Not Start", typeof(string));
|
|
|
|
|
|
2024-01-30 16:01:53 +08:00
|
|
|
|
dtTime.Columns.Add("日期", typeof(string));
|
2024-02-05 09:37:30 +08:00
|
|
|
|
dtTime.Columns.Add("Actual Finished", typeof(string));
|
|
|
|
|
dtTime.Columns.Add("Plan Finished", typeof(string));
|
2024-01-30 16:01:53 +08:00
|
|
|
|
|
|
|
|
|
var systemBol = false;
|
2024-02-01 16:28:37 +08:00
|
|
|
|
for (var i = sTime; i <= eTime; i = returnDay(i))
|
2024-01-30 16:01:53 +08:00
|
|
|
|
{
|
2024-02-05 09:37:30 +08:00
|
|
|
|
var AfinishedCount = 0;//实际完成数量
|
|
|
|
|
var PfinishedCount = 0;//计划完成数量
|
2024-02-01 16:28:37 +08:00
|
|
|
|
|
2024-02-05 09:37:30 +08:00
|
|
|
|
//var finishedCount = 0;
|
|
|
|
|
//var inProgress = 0;
|
|
|
|
|
//var notStart = 0;
|
|
|
|
|
DataRow rowTime = dtTime.NewRow();
|
2024-02-01 16:28:37 +08:00
|
|
|
|
//按年月
|
|
|
|
|
if (drpdateType.SelectedValue == "0")
|
|
|
|
|
{
|
|
|
|
|
rowTime["日期"] = string.Format("{0:yyyy-MM}", i);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
rowTime["日期"] = string.Format("{0:yyyy-MM-dd}", i);
|
|
|
|
|
}
|
|
|
|
|
|
2024-01-30 16:01:53 +08:00
|
|
|
|
//根据日期查询当前system的数量
|
|
|
|
|
var systemListbyDate = Funs.DB.View_TransferDetail.Where(x => x.Projectid == ProjectId && x.SystemName == SystemName
|
|
|
|
|
&& x.FDate >= Convert.ToDateTime(rowTime["日期"])
|
|
|
|
|
&& x.FDate < Convert.ToDateTime(rowTime["日期"]).AddDays(1)).ToList();
|
|
|
|
|
|
2024-02-01 16:28:37 +08:00
|
|
|
|
//如果按年月
|
|
|
|
|
if (drpdateType.SelectedValue == "0")
|
|
|
|
|
{
|
|
|
|
|
systemListbyDate = Funs.DB.View_TransferDetail.Where(x => x.Projectid == ProjectId && x.SystemName == SystemName
|
|
|
|
|
&& x.FDate >= Convert.ToDateTime(rowTime["日期"])
|
|
|
|
|
&& x.FDate < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)).ToList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2024-01-30 16:01:53 +08:00
|
|
|
|
//查询TestPackage 去重
|
|
|
|
|
var testpackageList = (from x in systemListbyDate select x.TestPackage).Distinct();
|
|
|
|
|
|
|
|
|
|
if (testpackageList.ToList().Count > 0)
|
|
|
|
|
{
|
|
|
|
|
systemBol = true;
|
|
|
|
|
}
|
|
|
|
|
foreach (var item in testpackageList)
|
|
|
|
|
{
|
|
|
|
|
//查询当前日期每个testpackage的数量
|
|
|
|
|
var systemSumCount = systemListbyDate.Where(x => x.TestPackage == item).ToList().Count;
|
2024-01-29 17:56:17 +08:00
|
|
|
|
|
2024-01-30 16:01:53 +08:00
|
|
|
|
//子系统中完成的数量
|
|
|
|
|
var subSystemSumCount = systemListbyDate.Where(x => x.TestPackage == item &&
|
|
|
|
|
x.Status.ToLower() == "finished").ToList().Count;
|
|
|
|
|
|
2024-02-05 09:37:30 +08:00
|
|
|
|
////子系统中没完成的情况
|
|
|
|
|
//var subSystemSumNotStartCount = systemListbyDate.Where(x => x.TestPackage == item &&
|
|
|
|
|
//(x.Status.ToLower() == "not start" || x.Status == "" || x.Status == null)).ToList().Count;
|
2024-01-30 16:01:53 +08:00
|
|
|
|
|
|
|
|
|
//如果总数量等于完成的数量,完成量+1
|
|
|
|
|
if (systemSumCount == subSystemSumCount)
|
|
|
|
|
{
|
|
|
|
|
//如果都是完成,需要最后 12表 test packge 必须是Finished才能是完成
|
|
|
|
|
var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
|
|
|
|
|
&& x.SystemName==SystemName
|
|
|
|
|
&& x.Test_Package == item
|
2024-02-01 16:28:37 +08:00
|
|
|
|
).ToList();
|
|
|
|
|
|
|
|
|
|
//&& x.PUNCH_ITEM_FINISH_DATE >= Convert.ToDateTime(rowTime["日期"])
|
|
|
|
|
//&& x.PUNCH_ITEM_FINISH_DATE < Convert.ToDateTime(rowTime["日期"]).AddDays(1)
|
2024-01-30 16:01:53 +08:00
|
|
|
|
//如果查到
|
|
|
|
|
if (punchlistFromList.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
//12表当前日期完成的数量
|
|
|
|
|
var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
|
|
|
|
|
//如果完成的数量等于总得数量,则是完成
|
|
|
|
|
if (punchlistFromFinshCount == punchlistFromList.Count)
|
|
|
|
|
{
|
2024-02-05 09:37:30 +08:00
|
|
|
|
PfinishedCount += 1;
|
2024-01-30 16:01:53 +08:00
|
|
|
|
}
|
2024-02-05 09:37:30 +08:00
|
|
|
|
//else
|
|
|
|
|
//{
|
|
|
|
|
// inProgress += 1;
|
|
|
|
|
//}
|
2024-01-30 16:01:53 +08:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2024-02-05 09:37:30 +08:00
|
|
|
|
PfinishedCount += 1;
|
2024-01-30 16:01:53 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2024-02-05 09:37:30 +08:00
|
|
|
|
////如果总数量等于not start,未开始量+1
|
|
|
|
|
//else if (systemSumCount == subSystemSumNotStartCount)
|
|
|
|
|
//{
|
|
|
|
|
// notStart += 1;
|
|
|
|
|
//}
|
|
|
|
|
//else
|
|
|
|
|
//{
|
|
|
|
|
// inProgress += 1;
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
rowTime["Plan Finished"] = PfinishedCount;
|
|
|
|
|
|
|
|
|
|
//实际的完成数量
|
|
|
|
|
systemListbyDate = Funs.DB.View_TransferDetail.Where(x => x.Projectid == ProjectId
|
|
|
|
|
&& x.ADate >= Convert.ToDateTime(rowTime["日期"])
|
|
|
|
|
&& x.ADate < Convert.ToDateTime(rowTime["日期"]).AddDays(1)
|
|
|
|
|
&& x.Status.ToLower() == "finished").ToList();
|
|
|
|
|
//如果按年月
|
|
|
|
|
if (drpdateType.SelectedValue == "0")
|
|
|
|
|
{
|
|
|
|
|
systemListbyDate = Funs.DB.View_TransferDetail.Where(x => x.Projectid == ProjectId && x.SystemName == SystemName
|
|
|
|
|
&& x.ADate >= Convert.ToDateTime(rowTime["日期"])
|
|
|
|
|
&& x.ADate < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)).ToList();
|
|
|
|
|
}
|
|
|
|
|
//查询TestPackage的总数量,状态是完成的。
|
|
|
|
|
testpackageList = (from x in systemListbyDate select x.TestPackage).Distinct();
|
|
|
|
|
foreach (var item in testpackageList)
|
|
|
|
|
{
|
|
|
|
|
//查询第12个表的数量
|
|
|
|
|
var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
|
|
|
|
|
&& x.Test_Package == item
|
|
|
|
|
).ToList();
|
|
|
|
|
//如果查到
|
|
|
|
|
if (punchlistFromList.Count > 0)
|
2024-01-30 16:01:53 +08:00
|
|
|
|
{
|
2024-02-05 09:37:30 +08:00
|
|
|
|
//12表当前日期完成的数量
|
|
|
|
|
var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
|
|
|
|
|
//如果完成的数量等于总得数量,则是完成
|
|
|
|
|
if (punchlistFromFinshCount == punchlistFromList.Count)
|
|
|
|
|
{
|
|
|
|
|
AfinishedCount += 1;
|
|
|
|
|
}
|
2024-01-30 16:01:53 +08:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2024-02-05 09:37:30 +08:00
|
|
|
|
AfinishedCount += 1;
|
2024-01-30 16:01:53 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2024-02-05 09:37:30 +08:00
|
|
|
|
rowTime["Actual Finished"] = AfinishedCount;
|
|
|
|
|
|
|
|
|
|
//rowTime["Finished"] = finishedCount;
|
|
|
|
|
//rowTime["In Progress"] = inProgress;
|
|
|
|
|
//rowTime["Not Start"] = notStart;
|
2024-01-30 16:01:53 +08:00
|
|
|
|
dtTime.Rows.Add(rowTime);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (systemBol)
|
|
|
|
|
{
|
2024-02-04 11:11:43 +08:00
|
|
|
|
this.ChartUc.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "SYSTEM PROGRESS REPORT", "Column", 1100, 600, false));
|
2024-01-30 16:01:53 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
2024-01-29 17:56:17 +08:00
|
|
|
|
#endregion
|
2024-02-04 11:11:43 +08:00
|
|
|
|
|
|
|
|
|
#region 附件上传
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 上传附件
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
protected void btnAttachUrl_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
//必须点击系统
|
|
|
|
|
var SystemName = this.trRectify.SelectedNodeID;
|
|
|
|
|
if (SystemName=="ALL"|| SystemName=="")
|
|
|
|
|
{
|
|
|
|
|
Alert.ShowInTop("请选择系统。", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var toKeyId = "D142B96F-4D36-429D-AB08-FA0D7C30BB69" + SystemName;
|
|
|
|
|
PageContext.RegisterStartupScript(WindowAtt.GetShowReference
|
|
|
|
|
(String.Format("~/AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/Trancfer&menuId={1}",
|
|
|
|
|
toKeyId, "E6F5125D-DD94-4978-B7EB-D9C26694D86D")));
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
2024-01-29 10:02:33 +08:00
|
|
|
|
}
|
|
|
|
|
}
|