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
}
}