CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/common/mainMenu_TestRun.aspx.cs

140 lines
6.4 KiB
C#
Raw Normal View History

2024-02-08 18:10:24 +08:00
using BLL;
using Newtonsoft.Json;
using System;
2021-04-30 10:28:37 +08:00
using System.Collections.Generic;
2024-02-08 18:10:24 +08:00
using System.Data.SqlClient;
using System.Data;
2021-04-30 10:28:37 +08:00
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
2024-02-08 18:10:24 +08:00
using static FineUIPro.Web.TestRun.Report.ScheduleSetUp;
using NPOI.SS.Formula.Functions;
using Model;
using Newtonsoft.Json.Linq;
2021-04-30 10:28:37 +08:00
namespace FineUIPro.Web
{
2024-02-08 18:10:24 +08:00
public partial class mainMenu_TestRun : PageBase
2021-04-30 10:28:37 +08:00
{
2024-02-08 18:10:24 +08:00
public string oneArrStr { get; set; }
public string oneDataStr { get; set; }
public string twoDataStr { get; set; }
2021-04-30 10:28:37 +08:00
protected void Page_Load(object sender, EventArgs e)
{
2024-02-08 18:10:24 +08:00
if (!IsPostBack)
{
PageInit();
}
}
public void PageInit()
{
OneYsc();
TwoSc();
}
/// <summary>
/// 预试车
/// </summary>
public void OneYsc()
{
List<float> oneArr = new List<float>();
List<string> oneData = new List<string>();
var list = Funs.DB.Run_ScheduleSetUp.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == 1).ToList();
if (list.Count > 0)
{
var workpages = Funs.DB.PreRun_WorkPackage.OrderBy(x => x.Sort).ToList();
foreach (var item in workpages)
{
var model = list.FirstOrDefault(x => x.WorkPackId == item.WorkPackId);
if (model != null)
{
var rate = model.CompleteNum > 0 ? (float)Math.Round((float)model.CompleteNum / (float)model.AllNum * 100, 2, MidpointRounding.AwayFromZero) : 0;
if (rate > 100) rate = 100;
oneArr.Add(rate);
oneData.Add(item.WorkPackName);
}
}
}
else
{
string strSql = @"select a.WorkPackId,a.WorkPackName,(select COUNT(1) from PreRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId) as AllNum,(select COUNT(1) from PreRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId and ISNULL(b.InspectIsClose,0)=0) as ProgressNum,(select COUNT(1) from PreRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId and ISNULL(b.InspectIsClose,0)=1) as CompleteNum from PreRun_WorkPackage as a order by a.Sort"; List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
if (tb.Rows.Count > 0)
{
foreach (DataRow row in tb.Rows)
{
float allNum = float.Parse(row["AllNum"].ToString());
float completeNum = float.Parse(row["CompleteNum"].ToString());
var rate = completeNum > 0 ? (float)Math.Round((completeNum / allNum * 100), 2, MidpointRounding.AwayFromZero) : 0;
if (rate > 100) rate = 100;
oneArr.Add(rate);
oneData.Add(row["WorkPackName"].ToString());
}
}
}
oneArrStr = JsonConvert.SerializeObject(oneArr);
oneDataStr = JsonConvert.SerializeObject(oneData);
}
/// <summary>
/// 试车
/// </summary>
public void TwoSc()
{
var result = new List<TwoDto>();
var list = Funs.DB.Run_ScheduleSetUp.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == 2).ToList();
if (list.Count > 0)
{
var workpages = Funs.DB.TestRun_WorkPackage.OrderBy(x => x.Sort).ToList();
foreach (var item in workpages)
{
var model = list.FirstOrDefault(x => x.WorkPackId == item.WorkPackId);
if (model != null)
{
var rate = model.CompleteNum > 0 ? (float)Math.Round((float)model.CompleteNum / (float)model.AllNum * 100, 2, MidpointRounding.AwayFromZero) : 0;
if (rate > 100) rate = 100;
result.Add(new TwoDto()
{
Name = item.WorkPackName,
Rate = rate
});
}
}
}
else
{
string strSql = @"select a.WorkPackId,a.WorkPackName,(select COUNT(1) from TestRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId) as AllNum,(select COUNT(1) from TestRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId and ISNULL(b.InspectIsClose,0)=0) as ProgressNum,(select COUNT(1) from TestRun_SubInspectTerm as b where b.WorkPackId=a.WorkPackId and b.ProjectId=@ProjectId and ISNULL(b.InspectIsClose,0)=1) as CompleteNum from TestRun_WorkPackage as a order by a.Sort"; List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
if (tb.Rows.Count > 0)
{
foreach (DataRow row in tb.Rows)
{
float allNum = float.Parse(row["AllNum"].ToString());
float completeNum = float.Parse(row["CompleteNum"].ToString());
var rate = completeNum > 0 ? (float)Math.Round((completeNum / allNum) * 100, 2, MidpointRounding.AwayFromZero) : 0;
if (rate > 100) rate = 100;
result.Add(new TwoDto()
{
Name = row["WorkPackName"].ToString(),
Rate = rate
});
}
}
}
twoDataStr = JsonConvert.SerializeObject(result);
}
2021-04-30 10:28:37 +08:00
2024-02-08 18:10:24 +08:00
public class TwoDto
{
public float Rate { get; set; }
public string Name { get; set; }
2021-04-30 10:28:37 +08:00
}
2024-02-08 18:10:24 +08:00
2021-04-30 10:28:37 +08:00
}
}