diff --git a/DataBase/版本日志/SGGLDB_WH_2024-01-05.sql b/DataBase/版本日志/SGGLDB_WH_2024-01-05.sql
new file mode 100644
index 00000000..fcf7ce57
--- /dev/null
+++ b/DataBase/版本日志/SGGLDB_WH_2024-01-05.sql
@@ -0,0 +1,62 @@
+--==ϵͳ
+if object_id(N'TestRun_SubInspectTerm',N'U') is not null
+drop table dbo.TestRun_SubInspectTerm
+CREATE TABLE dbo.TestRun_SubInspectTerm(
+ SubInspectId varchar(50) NOT NULL,--
+ ProjectId varchar(50) NULL,--Ŀ
+ InstallationId varchar(50) NULL,--װ(ֶΣڹ)
+ ProcessesId varchar(50) NULL,--(ֶΣڹ)
+ SystemId varchar(50) NULL,--ϵͳ(ֶΣڹ)
+ WorkPackId varchar(50) NULL,--
+ InspectResult varchar(500) NULL,--
+ Subcontractor varchar(50) null,--ְ
+ Contractor varchar(50) null,--а
+ Supervision varchar(50) null,--
+ Owner varchar(50) null,--ҵ
+ InspectionIsAllPass int NULL,--0/null:δͨ 1:ͨ
+ SubcontractorIsAllPass int NULL,--ְǷͨ0/null:δͨ 1:ͨ
+ ContractorIsAllPass int NULL,--аǷͨ0/null:δͨ 1:ͨ
+ SupervisionIsAllPass int NULL,--Ƿͨ0/null:δͨ 1:ͨ
+ OwnerIsAllPass int NULL,--ҵǷͨ0/null:δͨ 1:ͨ
+ SubcontractorAllPassData datetime null,--ְͨ
+ ContractorAllPassData datetime null,--аͨ
+ SupervisionAllPassData datetime null,--ͨ
+ OwnerAllPassData datetime null,--ҵͨ
+ WanderIsComplete int null,--תǷȫͨ0:δͨ1:ͨ
+ WanderCompleteData datetime null,--ת
+ IsSiteImplement int null,--ֳʵʩǷ0:δ1:
+ SiteImplementUser varchar(50) null,--ֳʵʩȷ
+ SiteImplementConfirmData datetime null,--ֳʵʩ¼ȷʱ
+ RecordUploadData datetime null,--ֳʵʩ¼ϴ
+ InspectIsClose int null,--Ƿر0:δر1:ѹر
+ InspectIsCloseUser varchar(50) null,--ر
+ InspectCloseData datetime null,--ر
+ IsUnifyWanderAbout int null,--Ƿͳһת0:1:
+ UnifyWanderAboutData datetime null,--ͳһתʱ
+ UnifyWanderAboutOpinion varchar(max) null,--ͳһתע
+ InspectTime datetime NULL,--ʱ
+ AddUser varchar(50) NULL,--
+ AddTime datetime NULL,--
+ CONSTRAINT PK_TestRun_SubInspectTerm PRIMARY KEY CLUSTERED
+(
+ SubInspectId ASC
+)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
+) ON [PRIMARY]
+GO
+
+update Sys_Menu set SortIndex=20 where MenuId='29F80818-17A5-4BC0-8C38-A17415B0AC83'
+delete Sys_Menu where MenuId in ('4041089F-5CC2-4070-9556-7DAB83CF6292','2232ED9A-EA3C-4CB5-A53C-D96D3F5E0527','9489BD6A-1A95-43BC-85C0-A65751C2C85E','26F8468D-4358-4E2A-895D-8720A6F1FA89','7081E94C-6A73-40A7-A72A-A13CDB7B5420','6ED76128-1E03-4B65-B474-BF84C536D027','2A441F42-57EF-4480-911A-1E17815C1B6B')
+INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('4041089F-5CC2-4070-9556-7DAB83CF6292','β',null,'TestRun/TestRunManage/InspectTailTermList.aspx',7,'0217CE50-3ABB-44F8-A38A-C9792C436639','Menu_TestRun',0,1,1)
+INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('2232ED9A-EA3C-4CB5-A53C-D96D3F5E0527','β',null,'TestRun/TestRunManage/TailTermHandleList.aspx',8,'0217CE50-3ABB-44F8-A38A-C9792C436639','Menu_TestRun',0,1,1)
+INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('9489BD6A-1A95-43BC-85C0-A65751C2C85E','β',null,'TestRun/TestRunManage/TailTermApproveList.aspx',9,'0217CE50-3ABB-44F8-A38A-C9792C436639','Menu_TestRun',0,1,1)
+INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('26F8468D-4358-4E2A-895D-8720A6F1FA89','ǩ',null,'TestRun/TestRunManage/InspectWanderAboutList.aspx',10,'0217CE50-3ABB-44F8-A38A-C9792C436639','Menu_TestRun',0,1,1)
+INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('7081E94C-6A73-40A7-A72A-A13CDB7B5420','תȫͨ',null,'TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx',11,'0217CE50-3ABB-44F8-A38A-C9792C436639','Menu_TestRun',0,1,1)
+INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('6ED76128-1E03-4B65-B474-BF84C536D027','ֳʵʩ',null,'TestRun/TestRunManage/SiteImplementationList.aspx',12,'0217CE50-3ABB-44F8-A38A-C9792C436639','Menu_TestRun',0,1,1)
+INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('2A441F42-57EF-4480-911A-1E17815C1B6B','Գ¼ϴ',null,'TestRun/TestRunManage/TestRunRecordUploadList.aspx',13,'0217CE50-3ABB-44F8-A38A-C9792C436639','Menu_TestRun',0,1,1)
+go
+
+truncate table TestRun_SubInspectTerm
+truncate table TestRun_SubInspectTermItem
+truncate table TestRun_TermItemInspectedUser
+truncate table TestRun_InspectTailTerm
+truncate table TestRun_InspectTermApproveRecords
diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
index 21917918..15deae93 100644
--- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
+++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
@@ -1794,13 +1794,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -16047,6 +16062,20 @@
DeviceRunEdit.aspx
+
+ InspectTailTermEdit.aspx
+ ASPXCodeBehind
+
+
+ InspectTailTermEdit.aspx
+
+
+ InspectTailTermList.aspx
+ ASPXCodeBehind
+
+
+ InspectTailTermList.aspx
+
InspectTemplate.aspx
ASPXCodeBehind
@@ -16061,6 +16090,41 @@
InspectTemplateEdit.aspx
+
+ InspectWanderAboutAllPass.aspx
+ ASPXCodeBehind
+
+
+ InspectWanderAboutAllPass.aspx
+
+
+ InspectWanderAboutAllPassList.aspx
+ ASPXCodeBehind
+
+
+ InspectWanderAboutAllPassList.aspx
+
+
+ InspectWanderAboutConfirm.aspx
+ ASPXCodeBehind
+
+
+ InspectWanderAboutConfirm.aspx
+
+
+ InspectWanderAboutList.aspx
+ ASPXCodeBehind
+
+
+ InspectWanderAboutList.aspx
+
+
+ SelectTailTermList.aspx
+ ASPXCodeBehind
+
+
+ SelectTailTermList.aspx
+
SetWorkPackage.aspx
ASPXCodeBehind
@@ -16068,6 +16132,20 @@
SetWorkPackage.aspx
+
+ SiteImplementation.aspx
+ ASPXCodeBehind
+
+
+ SiteImplementation.aspx
+
+
+ SiteImplementationList.aspx
+ ASPXCodeBehind
+
+
+ SiteImplementationList.aspx
+
SubInspectTerm.aspx
ASPXCodeBehind
@@ -16096,6 +16174,48 @@
SubWorkInspect.aspx
+
+ TailTermApprove.aspx
+ ASPXCodeBehind
+
+
+ TailTermApprove.aspx
+
+
+ TailTermApproveList.aspx
+ ASPXCodeBehind
+
+
+ TailTermApproveList.aspx
+
+
+ TailTermHandle.aspx
+ ASPXCodeBehind
+
+
+ TailTermHandle.aspx
+
+
+ TailTermHandleList.aspx
+ ASPXCodeBehind
+
+
+ TailTermHandleList.aspx
+
+
+ TestRunRecordUpload.aspx
+ ASPXCodeBehind
+
+
+ TestRunRecordUpload.aspx
+
+
+ TestRunRecordUploadList.aspx
+ ASPXCodeBehind
+
+
+ TestRunRecordUploadList.aspx
+
Video.aspx
ASPXCodeBehind
diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionProposerHandleEdit.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionProposerHandleEdit.aspx
index 25901988..8029794c 100644
--- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionProposerHandleEdit.aspx
+++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/FourDecisionProposerHandleEdit.aspx
@@ -49,8 +49,8 @@
-
-
+
+
diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx.cs
index d0cf3971..2016fa6c 100644
--- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx.cs
+++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermEdit.aspx.cs
@@ -49,15 +49,6 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
set { ViewState["QuestionEditImg"] = value; }
}
- /////
- ///// 整改图片是否可编辑
- /////
- //public int RectifyEditImg
- //{
- // get { return (int)ViewState["RectifyEditImg"]; }
- // set { ViewState["RectifyEditImg"] = value; }
- //}
-
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
@@ -454,6 +445,9 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
{
Funs.DB.PreRun_InspectTailTerm.InsertOnSubmit(model);
}
+ //判断尾项是否保存
+ var itemModel = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == this.TermItemId);
+ if (itemModel != null) itemModel.InspectionResults = 0;
Funs.DB.SubmitChanges();
ShowNotify("操作成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx.cs
index c7a83fa4..1bf2900c 100644
--- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx.cs
+++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectTailTermList.aspx.cs
@@ -18,8 +18,6 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
if (!IsPostBack)
{
InitTreeMenu();
- //绑定数据
- //BindGrid();
}
}
diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx
index 14231b7c..7e715908 100644
--- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx
+++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutConfirm.aspx
@@ -43,7 +43,7 @@
-
+
diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectProperty.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectProperty.aspx.cs
index 69ea00b3..18c4b547 100644
--- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectProperty.aspx.cs
+++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectProperty.aspx.cs
@@ -56,7 +56,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
///
private void BindGrid()
{
- string strSql = @"select * from PreRun_PropertySysPiping where ProjectId=@ProjectId and SystemId=@SystemId ";
+ string strSql = @"select * from PreRun_PropertySysPiping where ProjectId=@ProjectId and SystemId=@SystemId and PropertyId not in (select PropertyId from PreRun_SubPropertySelect where SystemId=@SystemId) ";
List listStr = new List();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
listStr.Add(new SqlParameter("@SystemId", this.SystemId));
diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectTechnology.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectTechnology.aspx.cs
index 420e8c8d..7444f161 100644
--- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectTechnology.aspx.cs
+++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SelectTechnology.aspx.cs
@@ -57,7 +57,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
///
private void BindGrid()
{
- string strSql = @"select * from PreRun_TechnologySysPiping where ProjectId=@ProjectId and SystemId=@SystemId ";
+ string strSql = @"select * from PreRun_TechnologySysPiping where ProjectId=@ProjectId and SystemId=@SystemId and TechnologyId not in (select TechnologyId from PreRun_SubTechnologySelect where SystemId=@SystemId) ";
List listStr = new List();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
listStr.Add(new SqlParameter("@SystemId", this.SystemId));
diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx.cs
index 88d4ed68..eeee3696 100644
--- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx.cs
+++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx.cs
@@ -43,8 +43,8 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
join b in Funs.DB.PreRun_SubSysWorkPackage on a.PreRunId equals b.SubSystemId
join c in Funs.DB.PreRun_WorkPackage on b.WorkPackId equals c.WorkPackId
where a.ProjectId == this.CurrUser.LoginProjectId
- orderby a.Sort, a.PreRunLevel ascending
- select new { a.PreRunId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode };
+ orderby a.Sort, a.PreRunLevel
+ select new { a.PreRunId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode, a.Sort };
if (list.Count() > 0)
{
@@ -64,8 +64,8 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
rootFirstNode.EnableExpandEvent = false;
rootNode.Nodes.Add(rootFirstNode);
rootFirstNode.Expanded = true;
- var subList = list.Where(g => g.SystemId == itemSys.PreRunId).GroupBy(x => new { x.PreRunId, x.SystemId, x.PreRunCode, x.PreRunName });
- foreach (var item in subList)
+ var subList = list.Where(g => g.SystemId == itemSys.PreRunId).GroupBy(x => new { x.PreRunId, x.SystemId, x.PreRunCode, x.PreRunName, x.Sort });
+ foreach (var item in subList.OrderBy(o => o.Key.Sort))
{
TreeNode rootUnitNode = new TreeNode();//定义根节点
rootUnitNode.NodeID = item.Key.PreRunId;
@@ -827,7 +827,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
}
else
{
- ddbSysPiping.Values = null;
+ ddbSysPiping.Values = null;
ddbSysPiping.Texts = null;
cbSysPiping.Items.Clear();
cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", ""));
diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubSysWorkPackage.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubSysWorkPackage.aspx.cs
index 16eab5cf..f38e75f9 100644
--- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubSysWorkPackage.aspx.cs
+++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubSysWorkPackage.aspx.cs
@@ -6,6 +6,7 @@ using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
+using System.Text.RegularExpressions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
@@ -232,7 +233,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
if (!string.IsNullOrWhiteSpace(this.SsubSystemId))
{
var result = new List();
- var data = from a in Funs.DB.PreRun_WorkPackage.Where(p => workPackIds.Contains(p.WorkPackId))
+ var queryData = from a in Funs.DB.PreRun_WorkPackage.Where(p => workPackIds.Contains(p.WorkPackId))
join b in Funs.DB.PreRun_SubSysWorkPackage.Where(p => p.SubSystemId == this.SsubSystemId) on a.WorkPackId equals b.WorkPackId into bb
from t in bb.DefaultIfEmpty()
select new WorkData()
@@ -244,10 +245,10 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
Sort = a.Sort,
Remark = t.Remark
};
- if (data.Count() > 0)
+ if (queryData.Count() > 0)
{
int num = 1;
- int i = 1;
+ var data = queryData.ToList();
foreach (var item in data.OrderBy(p => p.Sort))
{
var model = new WorkData();
@@ -256,14 +257,13 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
model.SystemId = item.SystemId;
if (string.IsNullOrWhiteSpace(item.WorkPackCode))
{
- var workpackages = Funs.DB.TestRun_SubSysWorkPackage.Where(p => p.SystemId == this.SystemId).ToList();
- if (workpackages.Count > 0)
+ var workpackages = data.Where(x => !string.IsNullOrWhiteSpace(x.WorkPackCode)).ToList();
+ if (num == 1)
{
- num = workpackages.ConvertAll(x => int.Parse(x.WorkPackCode.Replace("WP", ""))).Max(m => m);
+ if (workpackages.Count > 0) num = workpackages.ConvertAll(x => int.Parse(x.WorkPackCode.Replace("WP", ""))).Max(m => m) + 1;
}
- num = num + i;
model.WorkPackCode = $"WP{string.Format("{0:d3}", num)}";
- i++;
+ num++;
}
else
{
@@ -273,7 +273,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
model.Remark = item.Remark;
result.Add(model);
}
- result = result.OrderBy(p => p.Sort).ToList();
+ result = result.OrderBy(p => int.Parse(Regex.Replace(p.WorkPackCode, @"\D", ""))).ToList();
Grid1.DataSource = result;
Grid1.DataBind();
}
diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx
index 19bca928..ea0d301e 100644
--- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx
+++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx
@@ -41,7 +41,7 @@
-
+
diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx.cs
index 3464080a..5003abb5 100644
--- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx.cs
+++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubThreeChecksFourDecisionList.aspx.cs
@@ -265,6 +265,11 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
+ if (Grid1.SelectedRowIndexArray.Length > 1)
+ {
+ Alert.ShowInTop("只能选择一条记录!", MessageBoxIcon.Warning);
+ return;
+ }
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SubThreeChecksFourDecisionEdit.aspx?DecisionId={0}&IsView=true", Grid1.SelectedRowID, "查看 - ")));
}
@@ -286,17 +291,18 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
- var model = Funs.DB.PreRun_SubThreeChecksFourDecision.FirstOrDefault(x => x.DecisionId == Grid1.SelectedRowID);
- if (model != null)
+ var ids = Grid1.SelectedRowIDArray.ToList();
+ var list = Funs.DB.PreRun_SubThreeChecksFourDecision.Where(x => ids.Contains(x.DecisionId)).ToList();
+ if (list.Count > 0)
{
var states = new List() { 0, 2 };
- if (!states.Contains(model.ResponsibilityConfirm.Value))
+ var nodeletes = list.Where(x => !states.Contains(x.ResponsibilityProposeSatate.GetValueOrDefault())).ToList();
+ if (nodeletes.Count > 0)
{
- Alert.ShowInTop("责任人“待提交”和“确认退回”才可进行删除操作!", MessageBoxIcon.Warning);
+ Alert.ShowInTop($"编号({string.Join(",", nodeletes.ConvertAll(x => x.FourDecisionCode))})状态不允许删除,仅“待提交”和“确认退回”才可进行删除操作!", MessageBoxIcon.Warning);
return;
}
-
- Funs.DB.PreRun_SubThreeChecksFourDecision.DeleteOnSubmit(model);
+ Funs.DB.PreRun_SubThreeChecksFourDecision.DeleteAllOnSubmit(list);
Funs.DB.SubmitChanges();
BindGrid();
Alert.ShowInTop("删除成功!", MessageBoxIcon.Success);
@@ -329,21 +335,67 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
- var model = Funs.DB.PreRun_SubThreeChecksFourDecision.FirstOrDefault(x => x.DecisionId == Grid1.SelectedRowID);
- if (model != null)
+ var ids = Grid1.SelectedRowIDArray.ToList();
+ var list = Funs.DB.PreRun_SubThreeChecksFourDecision.Where(x => ids.Contains(x.DecisionId)).ToList();
+ if (list.Count > 0)
{
- int state = model.ResponsibilityProposeSatate == null ? 0 : model.ResponsibilityProposeSatate.Value;
- int[] stateArr = { 0, 2 };
- if (stateArr.Contains(state))
+ var states = new List() { 0, 2 };
+ var nodeletes = list.Where(x => !states.Contains(x.ResponsibilityProposeSatate.GetValueOrDefault())).ToList();
+ if (nodeletes.Count > 0)
{
- Alert.ShowInTop("仅“待提交”和“提出人处理退回”状态才可提交提出人处理!", MessageBoxIcon.Warning);
+ Alert.ShowInTop($"编号({string.Join(",", nodeletes.ConvertAll(x => x.FourDecisionCode))})状态不允许提交,仅“待提交”和“处理退回”状态才可提交提出人处理!", MessageBoxIcon.Warning);
return;
}
- model.ResponsibilityProposeSatate = 1;
- Funs.DB.SubmitChanges();
- BindGrid();
- Alert.ShowInTop("确认成功!", MessageBoxIcon.Success);
+ var isNullResponsibilityUnit = list.Where(x => string.IsNullOrWhiteSpace(x.ResponsibilityUnit)).ToList();
+ if (isNullResponsibilityUnit.Count > 0)
+ {
+ Alert.ShowInTop($"编号({string.Join(",", isNullResponsibilityUnit.ConvertAll(x => x.FourDecisionCode))})责任单位为空!", MessageBoxIcon.Warning);
+ return;
+ }
+ var isNullResponsibilityUser = list.Where(x => string.IsNullOrWhiteSpace(x.ResponsibilityUser)).ToList();
+ if (isNullResponsibilityUser.Count > 0)
+ {
+ Alert.ShowInTop($"编号({string.Join(",", isNullResponsibilityUser.ConvertAll(x => x.FourDecisionCode))})责任人为空!", MessageBoxIcon.Warning);
+ return;
+ }
+ var isNullProposeUser = list.Where(x => string.IsNullOrWhiteSpace(x.ProposeUser)).ToList();
+ if (isNullProposeUser.Count > 0)
+ {
+ Alert.ShowInTop($"编号({string.Join(",", isNullProposeUser.ConvertAll(x => x.FourDecisionCode))})提出人为空!", MessageBoxIcon.Warning);
+ return;
+ }
+ var isNullGeneraUser = list.Where(x => string.IsNullOrWhiteSpace(x.GeneraUser)).ToList();
+ if (isNullGeneraUser.Count > 0)
+ {
+ Alert.ShowInTop($"编号({string.Join(",", isNullGeneraUser.ConvertAll(x => x.FourDecisionCode))})总包为空!", MessageBoxIcon.Warning);
+ return;
+ }
+ var isNullSupervisionUser = list.Where(x => string.IsNullOrWhiteSpace(x.SupervisionUser)).ToList();
+ if (isNullSupervisionUser.Count > 0)
+ {
+ Alert.ShowInTop($"编号({string.Join(",", isNullSupervisionUser.ConvertAll(x => x.FourDecisionCode))})监理为空!", MessageBoxIcon.Warning);
+ return;
+ }
+ var isNullOwnerUser = list.Where(x => string.IsNullOrWhiteSpace(x.OwnerUser)).ToList();
+ if (isNullOwnerUser.Count > 0)
+ {
+ Alert.ShowInTop($"编号({string.Join(",", isNullOwnerUser.ConvertAll(x => x.FourDecisionCode))})业主为空!", MessageBoxIcon.Warning);
+ return;
+ }
+ var isNullAskDestructionTime = list.Where(x => x.AskDestructionTime == null).ToList();
+ if (isNullAskDestructionTime.Count > 0)
+ {
+ Alert.ShowInTop($"编号({string.Join(",", isNullAskDestructionTime.ConvertAll(x => x.FourDecisionCode))})要求销项时间为空!", MessageBoxIcon.Warning);
+ return;
+ }
+ foreach (var item in list)
+ {
+ item.ResponsibilityProposeSatate = 1;
+ Funs.DB.SubmitChanges();
+ }
}
+ BindGrid();
+ Alert.ShowInTop("提交成功!", MessageBoxIcon.Success);
}
///
@@ -356,17 +408,23 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
- var model = Funs.DB.PreRun_SubThreeChecksFourDecision.FirstOrDefault(x => x.DecisionId == Grid1.SelectedRowID);
- if (model != null)
+ var ids = Grid1.SelectedRowIDArray.ToList();
+ var list = Funs.DB.PreRun_SubThreeChecksFourDecision.Where(x => ids.Contains(x.DecisionId)).ToList();
+ if (list.Count > 0)
{
- if (model.ResponsibilityProposeSatate == 1)
+ var nodeletes = list.Where(x => x.ResponsibilityProposeSatate.GetValueOrDefault() != 1).ToList();
+ if (nodeletes.Count > 0)
{
- Alert.ShowInTop("仅提出人待处理状态才可撤回!", MessageBoxIcon.Warning);
+ Alert.ShowInTop($"编号({string.Join(",", nodeletes.ConvertAll(x => x.FourDecisionCode))})状态不允许撤回,仅提出人待处理状态才可撤回!", MessageBoxIcon.Warning);
return;
}
- model.ProposeConfirm = 0;
- model.ProposeConfirmData = null;
- Funs.DB.SubmitChanges();
+ foreach (var item in list)
+ {
+ item.ResponsibilityProposeSatate = 0;
+ item.ProposeConfirm = 0;
+ item.ProposeConfirmData = null;
+ Funs.DB.SubmitChanges();
+ }
BindGrid();
Alert.ShowInTop("撤回成功!", MessageBoxIcon.Success);
}
@@ -477,7 +535,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
List users = userNames.Count > 0 ? Funs.DB.Sys_User.Where(x => userNames.Contains(x.UserName)).ToList() : new List();
var baseUserNames = users.ConvertAll(x => x.UserName);
//获取责任单位
- List units = BLL.UnitService.GetUnitByProjectIdUnitTypeList(this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2);
+ List units = BLL.UnitService.GetUnitByProjectIdList(this.CurrUser.LoginProjectId);
#region 验证人员和单位
//验证责任人
diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/TailTermHandle.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/TailTermHandle.aspx.cs
index c5b42dca..be42727f 100644
--- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/TailTermHandle.aspx.cs
+++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/TailTermHandle.aspx.cs
@@ -50,7 +50,6 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
}
}
-
///
/// 绑定数据
///
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx
new file mode 100644
index 00000000..139bbdab
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx
@@ -0,0 +1,181 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectTailTermEdit.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.InspectTailTermEdit" %>
+
+
+
+
+
+ 质量巡检
+
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx.cs
new file mode 100644
index 00000000..246af9ec
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx.cs
@@ -0,0 +1,420 @@
+using BLL;
+using Model;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+ public partial class InspectTailTermEdit : PageBase
+ {
+ ///
+ /// 检查表尾项主键
+ ///
+ public string TailTermId
+ {
+ get { return (string)ViewState["TailTermId"]; }
+ set { ViewState["TailTermId"] = value; }
+ }
+
+ ///
+ /// 检查项主键
+ ///
+ public string TermItemId
+ {
+ get { return (string)ViewState["TermItemId"]; }
+ set { ViewState["TermItemId"] = value; }
+ }
+
+ ///
+ /// 是否查看
+ ///
+ public bool IsView
+ {
+ get { return (bool)ViewState["IsView"]; }
+ set { ViewState["IsView"] = value; }
+ }
+
+ ///
+ /// 问题图片是否可编辑
+ ///
+ public int QuestionEditImg
+ {
+ get { return (int)ViewState["QuestionEditImg"]; }
+ set { ViewState["QuestionEditImg"] = value; }
+ }
+
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ this.TailTermId = Request["TailTermId"];
+ this.TermItemId = Request["TermItemId"];
+ //是否查看
+ this.IsView = string.IsNullOrWhiteSpace(Request["IsView"]) ? false : bool.Parse(Request["IsView"]);
+ //数据绑定
+ PageInit();
+ //处理和审批意见绑定
+ gvRecordBrid();
+ //判断是否查看
+ if (IsView)
+ {
+ btnSave.Hidden = true;
+ btnSubmit.Hidden = true;
+ QuestionEditImg = -1;
+ txtTailTermCode.Enabled = false;
+ ddlConstructionUnit.Enabled = false;
+ ddlTermItemId.Enabled = false;
+ txtQuestionDesc.Enabled = false;
+ txtRectifyOpinion.Enabled = false;
+ ddlApproveUser.Enabled = false;
+ ddlHandleUser.Enabled = false;
+ }
+ }
+ }
+
+ ///
+ /// 默认绑定
+ ///
+ public void PageInit()
+ {
+ QuestionEditImg = 0;
+ //施工单位
+ UnitService.InitUnitByProjectIdUnitTypeDropDownList(ddlConstructionUnit, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false);
+ //检查人绑定
+ var userList = from user in Funs.DB.Sys_User
+ join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId
+ where projectrole.ProjectId == this.CurrUser.LoginProjectId
+ select user;
+ var userids = new List() { Const.sysglyId, Const.hfnbdId, Const.sedinId };
+ var addUserList = Funs.DB.Sys_User.Where(x => userids.Contains(x.UserId));
+ var users = userList.ToList();
+ if (addUserList.Count() > 0)
+ {
+ users.AddRange(addUserList);
+ }
+ //检查人和审核人
+ if (users.Count() > 0)
+ {
+ //处理人
+ ddlHandleUser.DataTextField = "UserName";
+ ddlHandleUser.DataValueField = "UserId";
+ ddlHandleUser.DataSource = users;
+ ddlHandleUser.DataBind();
+ ddlHandleUser.SelectedValue = this.CurrUser.UserId;
+ //审核人
+ ddlApproveUser.DataTextField = "UserName";
+ ddlApproveUser.DataValueField = "UserId";
+ ddlApproveUser.DataSource = users;
+ ddlApproveUser.DataBind();
+ ddlApproveUser.SelectedValue = this.CurrUser.UserId;
+ }
+ var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId);
+ if (model != null)
+ {
+ //项目名称
+ txtProjectName.Text = model.ProjectName;
+ //巡检编号
+ txtTailTermCode.Text = model.TailTermCode;
+ //施工单位
+ ddlConstructionUnit.SelectedValue = model.ConstructionUnit;
+ //提出人
+ var inspectModel = users.FirstOrDefault(x => x.UserId == model.InspectUser);
+ if (inspectModel != null)
+ {
+ lblInspectUser.Text = inspectModel.UserName;
+ hidInspectUserId.Text = inspectModel.UserId;
+ }
+ //绑定检查项
+ var data = from a in Funs.DB.TestRun_TermItemInspectedUser
+ join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId
+ where a.InspectionResults == 0 && a.InspectedUser == this.CurrUser.UserId
+ group new { b.WorkInspectName, b.TermItemId } by new { b.WorkInspectName, b.TermItemId } into gt
+ select new
+ {
+ gt.Key.WorkInspectName,
+ gt.Key.TermItemId
+ };
+ var list = data.ToList();
+ if (list.Count() > 0)
+ {
+ ddlTermItemId.DataTextField = "WorkInspectName";
+ ddlTermItemId.DataValueField = "TermItemId";
+ ddlTermItemId.DataSource = list;
+ ddlTermItemId.DataBind();
+ }
+ //检查项
+ ddlTermItemId.SelectedValue = model.TermItemId;
+ //问题描述
+ txtQuestionDesc.Text = model.QuestionDesc;
+ //整改意见
+ txtRectifyOpinion.Text = model.RectifyOpinion;
+ //提出时间
+ lblRectifyTime.Text = model.RectifyTime != null ? model.RectifyTime.Value.ToString("yyyy-MM-dd") : string.Empty;
+ //处理人
+ ddlHandleUser.SelectedValue = model.HandleUser;
+ //审核人
+ ddlApproveUser.SelectedValue = model.ApproveUser;
+ //整改完成日期
+ txtAdjustCompleteTime.Text = model.AdjustCompleteTime != null ? model.AdjustCompleteTime.Value.ToString("yyyy-MM-dd") : string.Empty;
+ if (model.ApproveState > 1)
+ {
+ QuestionEditImg = -1;
+ }
+ }
+ else
+ {
+ this.TailTermId = Guid.NewGuid().ToString();
+ var projectModel = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == this.CurrUser.LoginProjectId);
+ if (projectModel != null)
+ {
+ txtProjectName.Text = projectModel.ProjectName;
+ string code = projectModel.ProjectCode + "-06-CM03-XJ-";
+ txtTailTermCode.Text = SQLHelper.RunProcNewId("SpGetNewCode5", "dbo.TestRun_InspectTailTerm", "TailTermCode", code);
+ }
+ if (!string.IsNullOrWhiteSpace(this.TermItemId))
+ {
+ var data = from a in Funs.DB.TestRun_TermItemInspectedUser
+ join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId
+ where a.InspectedUser == this.CurrUser.UserId && b.TermItemId == this.TermItemId
+ select new { a.InspectedUser, b.TermItemId };
+ var itemTerm = data.FirstOrDefault();
+ if (itemTerm != null)
+ {
+ //加载检查项
+ var itemdata = from a in Funs.DB.TestRun_TermItemInspectedUser
+ join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId
+ where (a.InspectionResults == 0 || a.TermItemId == this.TermItemId) && a.InspectedUser == this.CurrUser.UserId
+ select new { a.TermItemId, b.WorkInspectName };
+ var list = itemdata.ToList();
+ ddlTermItemId.Items.Clear();
+ if (list.Count() > 0)
+ {
+ ddlTermItemId.DataTextField = "WorkInspectName";
+ ddlTermItemId.DataValueField = "TermItemId";
+ ddlTermItemId.DataSource = list;
+ ddlTermItemId.DataBind();
+ }
+ else
+ {
+ ddlTermItemId.Items.Insert(0, new ListItem("==无数据==", ""));
+ }
+
+ //检查项
+ ddlTermItemId.SelectedValue = itemTerm.TermItemId;
+ //提出人
+ var inspectModel = users.FirstOrDefault(x => x.UserId == itemTerm.InspectedUser);
+ if (inspectModel != null)
+ {
+ lblInspectUser.Text = inspectModel.UserName;
+ hidInspectUserId.Text = inspectModel.UserId;
+ }
+ //提出时间
+ lblRectifyTime.Text = DateTime.Now.ToString("yyyy-MM-dd");
+ }
+ }
+ }
+ }
+
+ ///
+ /// 处理和审批意见绑定
+ ///
+ public void gvRecordBrid()
+ {
+ string strSql = @"select a.InspectTermId,a.ApproveOpinion,a.ApproveTime,a.ApproveType,a.ApproveState,(case a.ApproveType when 0 then (case a.ApproveState when 0 then '处理退回' when 1 then '处理通过' else '' end) else (case a.ApproveState when 0 then '审批退回' when 1 then '审批通过' else '' end) end) as ApproveStateName,b.ConstructionUnit,d.UnitName as ConstructionUnitName,a.AddUser,a.AddTime from TestRun_InspectTermApproveRecords as a inner join TestRun_InspectTailTerm as b on a.TailTermId=b.TailTermId inner join TestRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Unit as d on d.UnitId=b.ConstructionUnit where 1=1 and a.ProjectId=@ProjectId and a.TailTermId=@TailTermId ";
+ List listStr = new List();
+ listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
+ listStr.Add(new SqlParameter("@TailTermId", this.TailTermId));
+ strSql += " order by a.AddTime asc";
+ SqlParameter[] parameter = listStr.ToArray();
+ DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
+ //处理意见
+ var handleTb = tb.AsEnumerable().Where(row => row.Field("ApproveType") == 0);
+ gvHandle.DataSource = handleTb;
+ gvHandle.DataBind();
+ //审批意见
+ var approveTb = tb.AsEnumerable().Where(row => row.Field("ApproveType") == 1);
+ gvApprove.DataSource = approveTb;
+ gvApprove.DataBind();
+ }
+
+ #region 按钮
+
+ ///
+ /// 保存
+ ///
+ protected void btnSave_Click(object sender, EventArgs e)
+ {
+ if (string.IsNullOrWhiteSpace(ddlConstructionUnit.SelectedValue))
+ {
+ ShowNotify("请选择施工单位!", MessageBoxIcon.Warning);
+ return;
+ }
+ if (string.IsNullOrWhiteSpace(ddlTermItemId.SelectedValue))
+ {
+ ShowNotify("请选择检查项!", MessageBoxIcon.Warning);
+ return;
+ }
+ if (string.IsNullOrWhiteSpace(ddlHandleUser.SelectedValue))
+ {
+ ShowNotify("请选择处理人!", MessageBoxIcon.Warning);
+ return;
+ }
+ if (string.IsNullOrWhiteSpace(ddlApproveUser.SelectedValue))
+ {
+ ShowNotify("请选择审核人!", MessageBoxIcon.Warning);
+ return;
+ }
+ var isAdd = false;
+ var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId);
+ if (model == null)
+ {
+ isAdd = true;
+ model = new TestRun_InspectTailTerm();
+ model.TailTermId = this.TailTermId;
+ model.ProjectId = this.CurrUser.LoginProjectId;
+ }
+ model.ProjectName = txtProjectName.Text;
+ model.TailTermCode = txtTailTermCode.Text;
+ model.ConstructionUnit = ddlConstructionUnit.SelectedValue;
+ model.TermItemId = ddlTermItemId.SelectedValue;
+ model.QuestionDesc = txtQuestionDesc.Text.Trim();
+ model.RectifyOpinion = txtRectifyOpinion.Text.Trim();
+ model.RectifyTime = DateTime.Parse(lblRectifyTime.Text);
+ model.InspectUser = hidInspectUserId.Text;
+ model.HandleUser = ddlHandleUser.SelectedValue;
+ model.ApproveUser = ddlApproveUser.SelectedValue;
+ model.AdjustCompleteTime = DateTime.Parse(txtAdjustCompleteTime.Text);
+ model.ApproveState = 0;
+ model.AddUser = this.CurrUser.LoginProjectId;
+ model.AddTime = DateTime.Now;
+ var workPack = Funs.DB.TestRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == model.TermItemId);
+ if (workPack != null)
+ {
+ model.WorkPackId = workPack.WorkPackId;
+ }
+ if (isAdd)
+ {
+ Funs.DB.TestRun_InspectTailTerm.InsertOnSubmit(model);
+ }
+ //判断尾项是否保存
+ var itemModel = Funs.DB.TestRun_TermItemInspectedUser.FirstOrDefault(x => x.TermItemId == this.TermItemId && x.InspectedUser == this.CurrUser.UserId);
+ if (itemModel != null) itemModel.InspectionResults = 0;
+ Funs.DB.SubmitChanges();
+ ShowNotify("操作成功!", MessageBoxIcon.Success);
+ PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
+ }
+
+ ///
+ /// 保存并提交
+ ///
+ protected void btnSubmit_Click(object sender, EventArgs e)
+ {
+ if (string.IsNullOrWhiteSpace(ddlConstructionUnit.SelectedValue))
+ {
+ ShowNotify("请选择施工单位!", MessageBoxIcon.Warning);
+ return;
+ }
+ if (string.IsNullOrWhiteSpace(ddlTermItemId.SelectedValue))
+ {
+ ShowNotify("请选择检查项!", MessageBoxIcon.Warning);
+ return;
+ }
+ if (string.IsNullOrWhiteSpace(ddlHandleUser.SelectedValue))
+ {
+ ShowNotify("请选择处理人!", MessageBoxIcon.Warning);
+ return;
+ }
+ if (string.IsNullOrWhiteSpace(ddlApproveUser.SelectedValue))
+ {
+ ShowNotify("请选择审核人!", MessageBoxIcon.Warning);
+ return;
+ }
+ var isAdd = false;
+ var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId);
+ if (model == null)
+ {
+ isAdd = true;
+ model = new TestRun_InspectTailTerm();
+ model.TailTermId = this.TailTermId;
+ model.ProjectId = this.CurrUser.LoginProjectId;
+ }
+ model.ProjectName = txtProjectName.Text;
+ model.TailTermCode = txtTailTermCode.Text;
+ model.ConstructionUnit = ddlConstructionUnit.SelectedValue;
+ model.TermItemId = ddlTermItemId.SelectedValue;
+ model.QuestionDesc = txtQuestionDesc.Text.Trim();
+ model.RectifyOpinion = txtRectifyOpinion.Text.Trim();
+ model.RectifyTime = DateTime.Parse(lblRectifyTime.Text);
+ model.InspectUser = hidInspectUserId.Text;
+ model.HandleUser = ddlHandleUser.SelectedValue;
+ model.ApproveUser = ddlApproveUser.SelectedValue;
+ model.AdjustCompleteTime = DateTime.Parse(txtAdjustCompleteTime.Text);
+ model.ApproveState = 1;
+ model.AddUser = this.CurrUser.LoginProjectId;
+ model.AddTime = DateTime.Now;
+ var workPack = Funs.DB.TestRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == model.TermItemId);
+ if (workPack != null)
+ {
+ model.WorkPackId = workPack.WorkPackId;
+ }
+ if (isAdd)
+ {
+ Funs.DB.TestRun_InspectTailTerm.InsertOnSubmit(model);
+ }
+ //判断尾项是否保存
+ var itemModel = Funs.DB.TestRun_TermItemInspectedUser.FirstOrDefault(x => x.TermItemId == this.TermItemId && x.InspectedUser == this.CurrUser.UserId);
+ if (itemModel != null) itemModel.InspectionResults = 0;
+ Funs.DB.SubmitChanges();
+ ShowNotify("操作成功!", MessageBoxIcon.Success);
+ PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
+ }
+
+ ///
+ /// 问题图片
+ ///
+ protected void imgBtnQuestionFile_Click(object sender, EventArgs e)
+ {
+ PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", QuestionEditImg, this.TailTermId + "q", Const.InspectTailTerm)));
+ }
+
+ #endregion
+
+ #region 事件
+
+ ///
+ /// 检查项
+ ///
+ protected void ddlTermItemId_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ var itemUserTerm = Funs.DB.TestRun_TermItemInspectedUser.FirstOrDefault(x => x.TermItemId == ddlTermItemId.SelectedValue);
+ if (itemUserTerm != null)
+ {
+ //提出人
+ var inspectModel = Funs.DB.Sys_User.FirstOrDefault(x => x.UserId == itemUserTerm.InspectedUser);
+ if (inspectModel != null)
+ {
+ lblInspectUser.Text = inspectModel.UserName;
+ hidInspectUserId.Text = inspectModel.UserId;
+ }
+ //提出时间
+ lblRectifyTime.Text = DateTime.Now.ToString("yyyy-MM-dd");
+ }
+ }
+
+ ///
+ /// 关闭
+ ///
+ protected void WindowAtt_Close(object sender, WindowCloseEventArgs e)
+ {
+
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx.designer.cs
new file mode 100644
index 00000000..bba51847
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermEdit.aspx.designer.cs
@@ -0,0 +1,269 @@
+//------------------------------------------------------------------------------
+// <自动生成>
+// 此代码由工具生成。
+//
+// 对此文件的更改可能导致不正确的行为,如果
+// 重新生成代码,则所做更改将丢失。
+// 自动生成>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+
+
+ public partial class InspectTailTermEdit
+ {
+
+ ///
+ /// form1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// SimpleForm1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Form SimpleForm1;
+
+ ///
+ /// ContentPanel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ContentPanel ContentPanel1;
+
+ ///
+ /// Form2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Form Form2;
+
+ ///
+ /// txtProjectName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.TextBox txtProjectName;
+
+ ///
+ /// txtTailTermCode 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.TextBox txtTailTermCode;
+
+ ///
+ /// ddlConstructionUnit 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList ddlConstructionUnit;
+
+ ///
+ /// ddlTermItemId 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList ddlTermItemId;
+
+ ///
+ /// txtQuestionDesc 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.TextArea txtQuestionDesc;
+
+ ///
+ /// txtRectifyOpinion 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.TextArea txtRectifyOpinion;
+
+ ///
+ /// lblInspectUser 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblInspectUser;
+
+ ///
+ /// lblRectifyTime 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblRectifyTime;
+
+ ///
+ /// hidInspectUserId 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.HiddenField hidInspectUserId;
+
+ ///
+ /// ddlHandleUser 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList ddlHandleUser;
+
+ ///
+ /// ddlApproveUser 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList ddlApproveUser;
+
+ ///
+ /// txtAdjustCompleteTime 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DatePicker txtAdjustCompleteTime;
+
+ ///
+ /// Panel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel1;
+
+ ///
+ /// imgBtnQuestionFile 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button imgBtnQuestionFile;
+
+ ///
+ /// plApprove2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.FormRow plApprove2;
+
+ ///
+ /// gvHandle 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Grid gvHandle;
+
+ ///
+ /// plApprove3 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.FormRow plApprove3;
+
+ ///
+ /// gvApprove 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Grid gvApprove;
+
+ ///
+ /// Toolbar1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Toolbar Toolbar1;
+
+ ///
+ /// ToolbarFill1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarFill ToolbarFill1;
+
+ ///
+ /// btnSave 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnSave;
+
+ ///
+ /// btnSubmit 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnSubmit;
+
+ ///
+ /// WindowAtt 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Window WindowAtt;
+ }
+}
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx
new file mode 100644
index 00000000..340f01cc
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx
@@ -0,0 +1,189 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectTailTermList.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.InspectTailTermList" %>
+
+
+
+
+
+
+
+
+ 检查表尾项管理
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx.cs
new file mode 100644
index 00000000..f6ef46f9
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx.cs
@@ -0,0 +1,420 @@
+using BLL;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+ public partial class InspectTailTermList : PageBase
+ {
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ InitTreeMenu();
+ }
+ }
+
+ #region 树绑定
+
+ ///
+ /// 加载树
+ ///
+ private void InitTreeMenu()
+ {
+ this.tvControlItem.Nodes.Clear();
+ TreeNode rootNode = new TreeNode();
+ rootNode.Text = "检查表";
+ rootNode.NodeID = "0";
+ rootNode.Expanded = true;
+ rootNode.ToolTip = "";
+ rootNode.EnableClickEvent = true;
+ this.tvControlItem.Nodes.Add(rootNode);
+ var userSubInspects = from a in Funs.DB.TestRun_TermItemInspectedUser
+ join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId
+ join c in Funs.DB.TestRun_InspectTailTerm on a.TermItemId equals c.TermItemId
+ where c.InspectUser == this.CurrUser.UserId && a.ProjectId == this.CurrUser.LoginProjectId && a.InspectionResults == 0
+ select new { a, b };
+ if (userSubInspects.Count() == 0) return;
+ var systemIds = userSubInspects.Select(x => x.b.SystemId);
+ var workPackIds = userSubInspects.Select(x => x.b.WorkPackId);
+ var list = from a in Funs.DB.PreRun_SysDevice
+ join b in Funs.DB.TestRun_SubSysWorkPackage on a.PreRunId equals b.SystemId
+ join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId
+ where a.ProjectId == this.CurrUser.LoginProjectId && systemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId)
+ select new { a.PreRunId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode };
+ if (list.Count() > 0)
+ {
+ var ids = list.Select(x => x.ProcessesId).ToList();
+ ids.AddRange(list.Select(x => x.PreRunId).ToList());
+ ids = ids.Distinct().ToList();
+ var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList();
+ if (syslist.Count > 0)
+ {
+ var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList();
+ foreach (var itemOne in oneIds)
+ {
+ var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne);
+ TreeNode rootOneNode = new TreeNode();
+ rootOneNode.NodeID = itemOneModel.PreRunId;
+ rootOneNode.Text = itemOneModel.PreRunName;
+ rootOneNode.ToolTip = itemOneModel.PreRunName;
+ rootOneNode.CommandName = "";
+ rootOneNode.EnableClickEvent = false;
+ rootOneNode.EnableExpandEvent = false;
+ rootNode.Nodes.Add(rootOneNode);
+ rootOneNode.Expanded = true;
+ var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName });
+ foreach (var itemTwo in subTwoList)
+ {
+ TreeNode rootTwoNode = new TreeNode();
+ rootTwoNode.NodeID = itemTwo.Key.PreRunId;
+ rootTwoNode.Text = itemTwo.Key.PreRunName;
+ rootTwoNode.ToolTip = itemTwo.Key.PreRunName;
+ rootTwoNode.CommandName = "";
+ rootTwoNode.EnableClickEvent = false;
+ rootTwoNode.EnableExpandEvent = false;
+ rootOneNode.Nodes.Add(rootTwoNode);
+ rootTwoNode.Expanded = true;
+ var worklist = list.Where(a => a.PreRunId == itemTwo.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackCode }).ToList();
+ if (worklist.Count > 0)
+ {
+ foreach (var itemWork in worklist.OrderBy(o => o.Key.WorkPackCode))
+ {
+ TreeNode newNode = new TreeNode();
+ newNode.Text = itemWork.Key.WorkPackName;
+ newNode.NodeID = itemWork.Key.WorkPackId + "|" + itemTwo.Key.PreRunId;
+ newNode.ToolTip = itemWork.Key.WorkPackName;
+ newNode.CommandName = "";
+ newNode.Expanded = true;
+ newNode.EnableClickEvent = true;
+ newNode.EnableExpandEvent = true;
+ rootTwoNode.Nodes.Add(newNode);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ }
+
+ ///
+ /// 点击TreeView
+ ///
+ protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
+ {
+ this.BindGrid();
+ }
+
+ #endregion
+
+ #region 绑定数据
+
+ ///
+ /// 数据绑定
+ ///
+ public void BindGrid()
+ {
+ string strSql = @"select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.SubInspectId,a.TermItemId,c.WorkInspectName,a.QuestionDesc,a.RectifyTime,a.RectifyOpinion,a.InspectUser,e.UserName as InspectUserName,a.ApproveUser,f.UserName as ApproveUserName,a.HandleUser,g.UserName as HandleUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交处理' when 1 then '待处理' when 2 then '处理退回' when 3 then '审核退回' when 4 then '待审核' when 5 then '审核通过' else '' end) as ApproveStateName,a.AddTime,a.WorkPackId,c.SystemId,a.AdjustCompleteTime,DATEDIFF(DAY, GETDATE(),a.AdjustCompleteTime) as AdjustDiffDay from TestRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join TestRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Project as d on d.ProjectId=a.ProjectId inner join Sys_User as e on e.UserId=a.InspectUser inner join Sys_User as f on f.UserId=a.ApproveUser inner join Sys_User as g on g.UserId=a.HandleUser where 1=1 and a.ProjectId=@projectid and a.InspectUser=@InspectUser";
+
+ List listStr = new List();
+ listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId));
+ listStr.Add(new SqlParameter("@InspectUser", this.CurrUser.UserId));
+ if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0)
+ {
+ var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First();
+ strSql += " and a.WorkPackId=@WorkPackId";
+ listStr.Add(new SqlParameter("@WorkPackId", workPackId));
+ }
+ if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1)
+ {
+ var systemId = this.tvControlItem.SelectedNodeID.Split('|').Last();
+ strSql += " and c.SystemId=@SystemId";
+ listStr.Add(new SqlParameter("@SystemId", systemId));
+ }
+ //审核状态
+ if (!string.IsNullOrWhiteSpace(ddlApproveState.SelectedValue))
+ {
+ strSql += " and a.ApproveState=@ApproveState";
+ listStr.Add(new SqlParameter("@ApproveState", ddlApproveState.SelectedValue));
+ }
+ //开始时间
+ if (!string.IsNullOrWhiteSpace(txtStartTime.Text))
+ {
+ strSql += $" and a.RectifyTime>='{DateTime.Parse(txtStartTime.Text.Trim()).ToString("yyyy-MM-dd")} 00:00:00'";
+ }
+ //结束时间
+ if (!string.IsNullOrWhiteSpace(txtEndTime.Text))
+ {
+ strSql += $" and a.RectifyTime<='{DateTime.Parse(txtStartTime.Text.Trim()).ToString("yyyy-MM-dd")} 23:59:59'";
+ }
+ strSql += " order by a.AddTime asc";
+ SqlParameter[] parameter = listStr.ToArray();
+ DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
+ Grid1.RecordCount = tb.Rows.Count;
+ var table = this.GetPagedDataTable(Grid1, tb);
+ Grid1.DataSource = table;
+ Grid1.DataBind();
+ }
+
+ ///
+ /// 分页
+ ///
+ protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
+ {
+ Grid1.PageIndex = e.NewPageIndex;
+ BindGrid();
+ }
+
+ ///
+ /// 双击事件
+ ///
+ protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
+ {
+ btnMenuModify_Click(null, null);
+ }
+
+ ///
+ /// 分页下拉框
+ ///
+ protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
+ BindGrid();
+ }
+
+ ///
+ /// 排序
+ ///
+ protected void Grid1_Sort(object sender, GridSortEventArgs e)
+ {
+ BindGrid();
+ }
+
+ ///
+ /// 行数据处理事件
+ ///
+ protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
+ {
+ DataRowView row = e.DataItem as DataRowView;
+
+ // 入学年份
+ int diffDay = Convert.ToInt32(row["AdjustDiffDay"]);
+ TemplateField AdjustDiffDay = Grid1.FindColumn("AdjustDiffDay") as TemplateField;
+ int approveState = int.Parse(Grid1.DataKeys[e.RowIndex][1].ToString());
+ if (approveState != 5)
+ {
+ if (diffDay > 0)
+ {
+ e.CellAttributes[AdjustDiffDay.ColumnIndex]["data-color"] = "color1";
+ }
+ else if (diffDay == 0)
+ {
+ e.CellAttributes[AdjustDiffDay.ColumnIndex]["data-color"] = "color2";
+ }
+ else if (diffDay < 0)
+ {
+ e.CellAttributes[AdjustDiffDay.ColumnIndex]["data-color"] = "color3";
+ }
+ }
+ }
+
+ #endregion
+
+ #region 按钮
+
+ ///
+ /// 修改
+ ///
+ protected void btnMenuModify_Click(object sender, EventArgs e)
+ {
+ if (Grid1.SelectedRowIndexArray.Length == 0)
+ {
+ Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
+ return;
+ }
+
+ var passLs = new List() { 0, 2 };
+ var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID);
+ if (model != null)
+ {
+ if (!passLs.Contains(model.ApproveState.Value))
+ {
+ Alert.ShowInTop("只可编辑“待提交处理”和“处理退回”的记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ }
+ PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId={0}", Grid1.SelectedRowID, "编辑 - ")));
+ }
+
+ ///
+ /// 编辑
+ ///
+ protected void btnModify_Click(object sender, EventArgs e)
+ {
+ btnMenuModify_Click(null, null);
+ }
+
+ ///
+ /// 新增
+ ///
+ protected void btnNew_Click(object sender, EventArgs e)
+ {
+ PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId=", "新增 - ")));
+ }
+
+ ///
+ /// 查看
+ ///
+ protected void btnMenuView_Click(object sender, EventArgs e)
+ {
+ if (Grid1.SelectedRowIndexArray.Length == 0)
+ {
+ Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?IsView=true&TailTermId={0}", Grid1.SelectedRowID, "查看 - ")));
+ }
+
+ ///
+ /// 删除
+ ///
+ protected void btnMenuDel_Click(object sender, EventArgs e)
+ {
+ if (Grid1.SelectedRowIndexArray.Length == 0)
+ {
+ Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID);
+ if (model != null)
+ {
+ if (model.ApproveState != 0)
+ {
+ Alert.ShowInTop("只可删除待提交的记录!", MessageBoxIcon.Warning);
+ return;
+ }
+
+ Funs.DB.TestRun_InspectTailTerm.DeleteOnSubmit(model);
+ Funs.DB.SubmitChanges();
+ BindGrid();
+ Alert.ShowInTop("删除成功!", MessageBoxIcon.Success);
+ }
+ }
+
+ ///
+ /// 查询
+ ///
+ protected void btnQuery_Click(object sender, EventArgs e)
+ {
+ BindGrid();
+ }
+
+ ///
+ /// 弹框关闭
+ ///
+ protected void Window1_Close(object sender, WindowCloseEventArgs e)
+ {
+ BindGrid();
+ }
+
+ ///
+ /// 提交处理
+ ///
+ protected void btnSubmitReview_Click(object sender, EventArgs e)
+ {
+ if (Grid1.SelectedRowIndexArray.Length == 0)
+ {
+ Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ var passLs = new List() { 0, 2 };
+ var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID);
+ if (model != null)
+ {
+ //0:待提交处理1:待处理2:处理退回3:审核退回4:待审核5:审核通过
+ if (!passLs.Contains(model.ApproveState.Value))
+ {
+ Alert.ShowInTop("只可提交“待提交处理”和“处理退回”的记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ model.ApproveState = 1;
+ Funs.DB.SubmitChanges();
+ BindGrid();
+ Alert.ShowInTop("提交成功!", MessageBoxIcon.Success);
+ }
+ }
+
+ ///
+ /// 撤回提交
+ ///
+ protected void btnwithdraw_Click(object sender, EventArgs e)
+ {
+ if (Grid1.SelectedRowIndexArray.Length == 0)
+ {
+ Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID);
+ if (model != null)
+ {
+ //0:待提交处理1:待处理2:处理退回3:审核退回4:待审核5:审核通过
+ if (model.ApproveState != 1)
+ {
+ Alert.ShowInTop("只可撤回“待处理”的记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ model.ApproveState = 0;
+ Funs.DB.SubmitChanges();
+ BindGrid();
+ Alert.ShowInTop("撤回成功!", MessageBoxIcon.Success);
+ }
+ }
+
+ #endregion
+
+ #region 私有方法
+
+ ///
+ /// 是否逾期返回
+ ///
+ ///
+ public string IsOverdue(object diffDayVal, object approveStateVal)
+ {
+ var result = string.Empty;
+ var diffDay = 0;
+ var approveState = 0;
+ if (diffDayVal != null) diffDay = int.Parse(diffDayVal.ToString());
+ if (approveStateVal != null) approveStateVal = int.Parse(approveStateVal.ToString());
+ if (approveState != 5)
+ {
+ if (diffDay > 0)
+ {
+ result = "未逾期";
+ }
+ else if (diffDay == 0)
+ {
+ result = "即将逾期";
+ }
+ else if (diffDay < 0)
+ {
+ result = "已逾期";
+ }
+ }
+ else
+ {
+ result = "整改完毕";
+ }
+ return result;
+ }
+
+ #endregion
+
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx.designer.cs
new file mode 100644
index 00000000..15749c73
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTailTermList.aspx.designer.cs
@@ -0,0 +1,233 @@
+//------------------------------------------------------------------------------
+// <自动生成>
+// 此代码由工具生成。
+//
+// 对此文件的更改可能导致不正确的行为,如果
+// 重新生成代码,则所做更改将丢失。
+// 自动生成>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+
+
+ public partial class InspectTailTermList
+ {
+
+ ///
+ /// form1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// Panel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel1;
+
+ ///
+ /// panelLeftRegion 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel panelLeftRegion;
+
+ ///
+ /// tvControlItem 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Tree tvControlItem;
+
+ ///
+ /// Grid1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Grid Grid1;
+
+ ///
+ /// Toolbar1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Toolbar Toolbar1;
+
+ ///
+ /// ddlApproveState 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList ddlApproveState;
+
+ ///
+ /// txtStartTime 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DatePicker txtStartTime;
+
+ ///
+ /// txtEndTime 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DatePicker txtEndTime;
+
+ ///
+ /// btnQuery 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnQuery;
+
+ ///
+ /// btnNew 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnNew;
+
+ ///
+ /// btnModify 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnModify;
+
+ ///
+ /// btnSubmitReview 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnSubmitReview;
+
+ ///
+ /// btnwithdraw 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnwithdraw;
+
+ ///
+ /// lblIsOverdue 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.WebControls.Label lblIsOverdue;
+
+ ///
+ /// ToolbarSeparator1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
+
+ ///
+ /// ToolbarText1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarText ToolbarText1;
+
+ ///
+ /// ddlPageSize 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList ddlPageSize;
+
+ ///
+ /// Window1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Window Window1;
+
+ ///
+ /// Menu1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Menu Menu1;
+
+ ///
+ /// btnMenuModify 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.MenuButton btnMenuModify;
+
+ ///
+ /// btnMenuView 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.MenuButton btnMenuView;
+
+ ///
+ /// btnMenuDel 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.MenuButton btnMenuDel;
+ }
+}
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx
new file mode 100644
index 00000000..a31b84ac
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx
@@ -0,0 +1,120 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectWanderAboutAllPass.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.InspectWanderAboutAllPass" %>
+
+
+
+
+
+ 全部通过
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx.cs
new file mode 100644
index 00000000..37261967
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx.cs
@@ -0,0 +1,165 @@
+using BLL;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+ public partial class InspectWanderAboutAllPass : PageBase
+ {
+ ///
+ /// 检查表主键
+ ///
+ public string SubInspectId
+ {
+ get { return (string)ViewState["SubInspectId"]; }
+ set { ViewState["SubInspectId"] = value; }
+ }
+
+ ///
+ /// 统一处理附件
+ ///
+ public int UnifyImg
+ {
+ get { return (int)ViewState["UnifyImg"]; }
+ set { ViewState["UnifyImg"] = value; }
+ }
+
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ this.UnifyImg = 0;
+ this.SubInspectId = Request["SubInspectId"];
+ PageInit();
+ }
+ }
+
+ ///
+ /// 绑定数据
+ ///
+ public void PageInit()
+ {
+ var data = from term in Funs.DB.TestRun_SubInspectTerm
+ join workpage in Funs.DB.TestRun_WorkPackage on term.WorkPackId equals workpage.WorkPackId
+ join pro in Funs.DB.Base_Project on term.ProjectId equals pro.ProjectId
+ join subuser in Funs.DB.Sys_User on term.Subcontractor equals subuser.UserId
+ join conuser in Funs.DB.Sys_User on term.Contractor equals conuser.UserId
+ join supuser in Funs.DB.Sys_User on term.Supervision equals supuser.UserId
+ join ownuser in Funs.DB.Sys_User on term.Owner equals ownuser.UserId
+ where term.SubInspectId == this.SubInspectId
+ select new
+ {
+ term.SubInspectId,
+ term.ProjectId,
+ pro.ProjectName,
+ pro.ProjectCode,
+ term.WorkPackId,
+ workpage.WorkPackName,
+ term.AddUser,
+ term.AddTime,
+ SubcontractorName = subuser.UserName,
+ ContractorName = conuser.UserName,
+ SupervisionName = supuser.UserName,
+ OwnerName = ownuser.UserName,
+ term.IsUnifyWanderAbout,
+ term.UnifyWanderAboutData,
+ term.UnifyWanderAboutOpinion
+ };
+ if (data.Count() > 0)
+ {
+ var model = data.FirstOrDefault();
+ //项目名称
+ lblProjectName.Text = model.ProjectName;
+ //项目号
+ lblProjectCode.Text = model.ProjectCode;
+ //工作包名称
+ lblWorkPackName.Text = model.WorkPackName;
+ //分包商
+ lblSubcontractorName.Text = model.SubcontractorName;
+ //承包商
+ lblContractorName.Text = model.ContractorName;
+ //监理
+ lblSupervisionName.Text = model.SupervisionName;
+ //业主
+ lblOwnerName.Text = model.OwnerName;
+ //是否统一流转
+ rblIsUnifyWanderAbout.SelectedValue = model.IsUnifyWanderAbout != null ? model.IsUnifyWanderAbout.ToString() : "1";
+ //审核意见
+ txtUnifyWanderAboutOpinion.Text = model.UnifyWanderAboutOpinion;
+ }
+ }
+
+ ///
+ /// 确认
+ ///
+ protected void btnConfirm_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ if (Funs.DB.AttachFile.Count(x => x.ToKeyId == this.SubInspectId + "_unify" && x.AttachUrl != null && x.AttachUrl != "") == 0)
+ {
+ ShowNotify("请上传附件!", MessageBoxIcon.Warning);
+ return;
+ }
+ var term = Funs.DB.TestRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == this.SubInspectId);
+ if (term != null)
+ {
+ var isPass = int.Parse(rblIsUnifyWanderAbout.SelectedValue);
+ term.IsUnifyWanderAbout = isPass;
+ term.UnifyWanderAboutData = DateTime.Now;
+ term.UnifyWanderAboutOpinion = txtUnifyWanderAboutOpinion.Text;
+ term.SubcontractorIsAllPass = isPass;
+ term.ContractorIsAllPass = isPass;
+ term.SupervisionIsAllPass = isPass;
+ term.OwnerIsAllPass = isPass;
+ term.WanderIsComplete = isPass;
+ if (isPass == 1)
+ {
+ term.SubcontractorAllPassData = DateTime.Now;
+ term.ContractorAllPassData = DateTime.Now;
+ term.SupervisionAllPassData = DateTime.Now;
+ term.OwnerAllPassData = DateTime.Now;
+ term.WanderCompleteData = DateTime.Now;
+ }
+ else
+ {
+ term.SubcontractorAllPassData = null;
+ term.ContractorAllPassData = null;
+ term.SupervisionAllPassData = null;
+ term.OwnerAllPassData = null;
+ term.WanderCompleteData = null;
+ }
+ var termIetms = Funs.DB.TestRun_SubInspectTermItem.Where(x => x.SubInspectId == this.SubInspectId).ToList();
+ if (termIetms.Count > 0)
+ {
+ foreach (var item in termIetms)
+ {
+ item.SubcontractorIsPass = isPass;
+ item.ContractorIsPass = isPass;
+ item.SupervisionIsPass = isPass;
+ item.OwnerIsPass = isPass;
+ Funs.DB.SubmitChanges();
+ }
+ }
+ ShowNotify("确认成功!", MessageBoxIcon.Success);
+ }
+ }
+ catch (Exception ex)
+ {
+ ShowNotify(ex.Message, MessageBoxIcon.Error);
+ }
+ }
+
+ ///
+ /// 附件上传
+ ///
+ protected void btnAttach_Click(object sender, EventArgs e)
+ {
+ PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", UnifyImg, this.SubInspectId + "_unify", Const.TestRunMenuId)));
+ }
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx.designer.cs
new file mode 100644
index 00000000..42628c99
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPass.aspx.designer.cs
@@ -0,0 +1,206 @@
+//------------------------------------------------------------------------------
+// <自动生成>
+// 此代码由工具生成。
+//
+// 对此文件的更改可能导致不正确的行为,如果
+// 重新生成代码,则所做更改将丢失。
+// 自动生成>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+
+
+ public partial class InspectWanderAboutAllPass
+ {
+
+ ///
+ /// form1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// SimpleForm1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Form SimpleForm1;
+
+ ///
+ /// ContentPanel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ContentPanel ContentPanel1;
+
+ ///
+ /// Form2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Form Form2;
+
+ ///
+ /// lblProjectName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblProjectName;
+
+ ///
+ /// lblProjectCode 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblProjectCode;
+
+ ///
+ /// lblSubcontractorName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblSubcontractorName;
+
+ ///
+ /// lblContractorName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblContractorName;
+
+ ///
+ /// lblSupervisionName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblSupervisionName;
+
+ ///
+ /// lblOwnerName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblOwnerName;
+
+ ///
+ /// lblWorkPackName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblWorkPackName;
+
+ ///
+ /// txtUnifyWanderAboutOpinion 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.TextArea txtUnifyWanderAboutOpinion;
+
+ ///
+ /// rblIsUnifyWanderAbout 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.RadioButtonList rblIsUnifyWanderAbout;
+
+ ///
+ /// Panel3 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel3;
+
+ ///
+ /// lblAttach 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblAttach;
+
+ ///
+ /// btnAttach 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnAttach;
+
+ ///
+ /// Toolbar1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Toolbar Toolbar1;
+
+ ///
+ /// ToolbarFill1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarFill ToolbarFill1;
+
+ ///
+ /// btnConfirm 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnConfirm;
+
+ ///
+ /// WindowAtt 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Window WindowAtt;
+ }
+}
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx
new file mode 100644
index 00000000..ff723eaf
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx
@@ -0,0 +1,142 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectWanderAboutAllPassList.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.InspectWanderAboutAllPassList" %>
+
+
+
+
+
+
+
+
+ 检查表流转全部通过
+
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx.cs
new file mode 100644
index 00000000..9f045a7c
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx.cs
@@ -0,0 +1,224 @@
+using BLL;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+ public partial class InspectWanderAboutAllPassList : PageBase
+ {
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ InitTreeMenu();
+ }
+ }
+
+ #region 数加载
+
+ ///
+ /// 加载树
+ ///
+ private void InitTreeMenu()
+ {
+ this.tvControlItem.Nodes.Clear();
+ TreeNode rootNode = new TreeNode();
+ rootNode.Text = "检查表";
+ rootNode.NodeID = "0";
+ rootNode.Expanded = true;
+ rootNode.ToolTip = "";
+ rootNode.EnableClickEvent = true;
+ this.tvControlItem.Nodes.Add(rootNode);
+ var inspectTerms = Funs.DB.TestRun_SubInspectTerm.Where(x => x.InspectionIsAllPass == 1).ToList();
+ if (inspectTerms.Count == 0) return;
+ var systemIds = inspectTerms.ConvertAll(x => x.SystemId);
+ var workPackIds = inspectTerms.ConvertAll(x => x.WorkPackId);
+ var list = from a in Funs.DB.PreRun_SysDevice
+ join b in Funs.DB.TestRun_SubSysWorkPackage on a.PreRunId equals b.SystemId
+ join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId
+ where a.ProjectId == this.CurrUser.LoginProjectId && systemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId)
+ select new { a.PreRunId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode };
+ if (list.Count() > 0)
+ {
+ var ids = list.Select(x => x.ProcessesId).ToList();
+ ids.AddRange(list.Select(x => x.PreRunId).ToList());
+ ids = ids.Distinct().ToList();
+ var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList();
+ if (syslist.Count > 0)
+ {
+ var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList();
+ foreach (var itemOne in oneIds)
+ {
+ var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne);
+ TreeNode rootOneNode = new TreeNode();
+ rootOneNode.NodeID = itemOneModel.PreRunId;
+ rootOneNode.Text = itemOneModel.PreRunName;
+ rootOneNode.ToolTip = itemOneModel.PreRunName;
+ rootOneNode.CommandName = "";
+ rootOneNode.EnableClickEvent = false;
+ rootOneNode.EnableExpandEvent = false;
+ rootNode.Nodes.Add(rootOneNode);
+ rootOneNode.Expanded = true;
+ var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName });
+ foreach (var itemTwo in subTwoList)
+ {
+ TreeNode rootTwoNode = new TreeNode();
+ rootTwoNode.NodeID = itemTwo.Key.PreRunId;
+ rootTwoNode.Text = itemTwo.Key.PreRunName;
+ rootTwoNode.ToolTip = itemTwo.Key.PreRunName;
+ rootTwoNode.CommandName = "";
+ rootTwoNode.EnableClickEvent = false;
+ rootTwoNode.EnableExpandEvent = false;
+ rootOneNode.Nodes.Add(rootTwoNode);
+ rootTwoNode.Expanded = true;
+ var worklist = list.Where(a => a.PreRunId == itemTwo.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackCode }).ToList();
+ if (worklist.Count > 0)
+ {
+ foreach (var itemWork in worklist.OrderBy(o => o.Key.WorkPackCode))
+ {
+ TreeNode newNode = new TreeNode();
+ newNode.Text = itemWork.Key.WorkPackName;
+ newNode.NodeID = itemWork.Key.WorkPackId + "|" + itemTwo.Key.PreRunId;
+ newNode.ToolTip = itemWork.Key.WorkPackName;
+ newNode.CommandName = "";
+ newNode.Expanded = true;
+ newNode.EnableClickEvent = true;
+ newNode.EnableExpandEvent = true;
+ rootTwoNode.Nodes.Add(newNode);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ ///
+ /// 树点击
+ ///
+ protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
+ {
+ BindGrid();
+ }
+
+ #endregion
+
+ #region 数据绑定
+
+ ///
+ /// 绑定数据
+ ///
+ public void BindGrid()
+ {
+ //分包商
+ string sqlStr = $"select a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.WorkPackId,g.WorkPackName,a.AddUser,a.AddTime,c.UserName as SubcontractorName,d.UserName as ContractorName,e.UserName as SupervisionName,f.UserName as OwnerName,IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName from TestRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId=b.ProjectId inner join Sys_User as c on c.UserId=a.Subcontractor inner join Sys_User as d on d.UserId=a.Contractor inner join Sys_User as e on e.UserId = a.Supervision inner join Sys_User as f on f.UserId = a.Owner inner join TestRun_WorkPackage as g on g.WorkPackId = a.WorkPackId where 1 = 1 and a.InspectionIsAllPass = 1 and a.ProjectId='{this.CurrUser.LoginProjectId}' ";
+
+ if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0)
+ {
+ var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First();
+ sqlStr += $"and a.WorkPackId='{workPackId}'";
+ }
+ if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1)
+ {
+ var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
+ sqlStr += $"and a.SystemId='{subSystemId}'";
+ }
+ List listStr = new List();
+ SqlParameter[] parameter = listStr.ToArray();
+ DataTable tb = SQLHelper.GetDataTableRunText(sqlStr);
+ Grid1.RecordCount = tb.Rows.Count;
+ var table = this.GetPagedDataTable(Grid1, tb);
+ Grid1.DataSource = table;
+ Grid1.DataBind();
+ }
+
+ ///
+ /// 分页
+ ///
+ protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
+ {
+ Grid1.PageIndex = e.NewPageIndex;
+ BindGrid();
+ }
+
+ ///
+ /// 双击事件
+ ///
+ protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
+ {
+ btnMenuAllPass_Click(null, null);
+ }
+
+ ///
+ /// 分页下拉框
+ ///
+ protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
+ BindGrid();
+ }
+
+ ///
+ /// 排序
+ ///
+ protected void Grid1_Sort(object sender, GridSortEventArgs e)
+ {
+ BindGrid();
+ }
+
+ #endregion
+
+ #region 按钮和事件
+
+ ///
+ /// 查询
+ ///
+ protected void btnQuery_Click(object sender, EventArgs e)
+ {
+ BindGrid();
+ }
+
+ ///
+ /// 检查全部通过
+ ///
+ protected void btnAllPass_Click(object sender, EventArgs e)
+ {
+ if (Grid1.SelectedRowIndexArray.Length == 0)
+ {
+ Alert.ShowInTop("请选择记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ if (Grid1.SelectedRowIndexArray.Length > 1)
+ {
+ Alert.ShowInTop("只可选择一条记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectWanderAboutAllPass.aspx?SubInspectId={0}", Grid1.DataKeys[Grid1.SelectedRowIndex][0].ToString(), "检查全部通过 - ")));
+ }
+
+ ///
+ /// 右击检查全部通过
+ ///
+ protected void btnMenuAllPass_Click(object sender, EventArgs e)
+ {
+ btnAllPass_Click(null, null);
+ }
+
+ ///
+ /// 关闭
+ ///
+ protected void Window1_Close(object sender, WindowCloseEventArgs e)
+ {
+ BindGrid();
+ }
+
+ #endregion
+
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx.designer.cs
new file mode 100644
index 00000000..5ecdaaca
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutAllPassList.aspx.designer.cs
@@ -0,0 +1,152 @@
+//------------------------------------------------------------------------------
+// <自动生成>
+// 此代码由工具生成。
+//
+// 对此文件的更改可能导致不正确的行为,如果
+// 重新生成代码,则所做更改将丢失。
+// 自动生成>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+
+
+ public partial class InspectWanderAboutAllPassList
+ {
+
+ ///
+ /// form1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// Panel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel1;
+
+ ///
+ /// panelLeftRegion 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel panelLeftRegion;
+
+ ///
+ /// tvControlItem 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Tree tvControlItem;
+
+ ///
+ /// Grid1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Grid Grid1;
+
+ ///
+ /// Toolbar1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Toolbar Toolbar1;
+
+ ///
+ /// btnQuery 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnQuery;
+
+ ///
+ /// btnAllPass 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnAllPass;
+
+ ///
+ /// ToolbarSeparator1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
+
+ ///
+ /// ToolbarText1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarText ToolbarText1;
+
+ ///
+ /// ddlPageSize 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList ddlPageSize;
+
+ ///
+ /// Window1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Window Window1;
+
+ ///
+ /// Menu1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Menu Menu1;
+
+ ///
+ /// btnMenuAllPass 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.MenuButton btnMenuAllPass;
+ }
+}
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx
new file mode 100644
index 00000000..4e861f88
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx
@@ -0,0 +1,138 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectWanderAboutConfirm.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.InspectWanderAboutConfirm" %>
+
+
+
+
+
+ 签字确认
+
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx.cs
new file mode 100644
index 00000000..b58970a7
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx.cs
@@ -0,0 +1,658 @@
+using BLL;
+using Newtonsoft.Json.Linq;
+using NPOI.SS.UserModel;
+using NPOI.SS.Util;
+using NPOI.XSSF.UserModel;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+ public partial class InspectWanderAboutConfirm : PageBase
+ {
+ ///
+ /// 检查表主键
+ ///
+ public string SubInspectId
+ {
+ get { return (string)ViewState["SubInspectId"]; }
+ set { ViewState["SubInspectId"] = value; }
+ }
+
+ ///
+ /// 类型
+ ///
+ public int ConfirmType
+ {
+ get { return (int)ViewState["ConfirmType"]; }
+ set { ViewState["ConfirmType"] = value; }
+ }
+
+ ///
+ /// 类型名称
+ ///
+ public string ConfirmTypeName
+ {
+ get { return (string)ViewState["ConfirmTypeName"]; }
+ set { ViewState["ConfirmTypeName"] = value; }
+ }
+
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ this.SubInspectId = Request.Params["SubInspectId"];
+ this.ConfirmType = int.Parse(Request.Params["ConfirmType"]);
+
+ if (this.ConfirmType == 1)
+ {
+ this.ConfirmTypeName = "分包商";
+ }
+ if (this.ConfirmType == 2)
+ {
+ this.ConfirmTypeName = "承包商";
+ }
+ if (this.ConfirmType == 3)
+ {
+ this.ConfirmTypeName = "监理";
+ }
+ if (this.ConfirmType == 4)
+ {
+ this.ConfirmTypeName = "业主";
+ }
+
+ this.BindGrid();
+ }
+ }
+
+ #region 数据绑定
+
+ ///
+ /// 绑定数据
+ ///
+ public void BindGrid(int isPass = -1)
+ {
+ var term = Funs.DB.TestRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == this.SubInspectId);
+ if (term != null)
+ {
+ lblIsUnifyWanderAbout.Text = term.IsUnifyWanderAbout == 1 ? "是" : "否";
+ lblUnifyWanderAboutData.Text = term.UnifyWanderAboutData != null ? term.UnifyWanderAboutData.Value.ToString("yyyy-MM-dd") : string.Empty;
+ unifyfile.Hidden = term.IsUnifyWanderAbout == 1 ? false : true;
+ }
+ var data = new List();
+ var queryData = Funs.DB.TestRun_SubInspectTermItem.Where(x => x.SubInspectId == this.SubInspectId);
+ if (queryData.Count() > 0)
+ {
+ var list = queryData.ToList();
+ foreach (var item in list)
+ {
+ var model = new ConfirmIsPass();
+ model.TermItemId = item.TermItemId;
+ model.SubInspectId = item.SubInspectId;
+ model.WorkInspectName = item.WorkInspectName;
+ model.ConfirmType = this.ConfirmType;
+ model.ConfirmTypeName = this.ConfirmTypeName;
+ //1=分包商2=承包商3=监理4=业主
+ if (this.ConfirmType == 1)
+ {
+ model.IsPass = isPass != -1 ? isPass : item.SubcontractorIsPass;
+ model.Remark = item.SubcontractorRemark;
+ }
+ if (this.ConfirmType == 2)
+ {
+ model.IsPass = isPass != -1 ? isPass : item.ContractorIsPass;
+ model.Remark = item.ContractorRemark;
+ }
+ if (this.ConfirmType == 3)
+ {
+ model.IsPass = isPass != -1 ? isPass : item.SupervisionIsPass;
+ model.Remark = item.SupervisionRemark;
+ }
+ if (this.ConfirmType == 4)
+ {
+ model.IsPass = isPass != -1 ? isPass : item.OwnerIsPass;
+ model.Remark = item.OwnerRemark;
+ }
+ data.Add(model);
+ }
+ }
+ Grid1.DataSource = data;
+ Grid1.DataBind();
+ titleName.Title = this.ConfirmType == 1 ? "分包商确认签字" : this.ConfirmType == 2 ? "承包商确认签字" : this.ConfirmType == 3 ? "监理确认签字" : this.ConfirmType == 4 ? "业主确认签字" : "";
+ }
+
+ ///
+ /// 排序
+ ///
+ protected void Grid1_Sort(object sender, GridSortEventArgs e)
+ {
+ Grid1.SortDirection = e.SortDirection;
+ Grid1.SortField = e.SortField;
+ BindGrid();
+ }
+
+ #endregion
+
+ #region 按钮和事件
+
+ ///
+ /// 保存
+ ///
+ protected void btnSave_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ JArray mergedData = Grid1.GetMergedData();
+ foreach (JObject mergedRow in mergedData)
+ {
+ string status = mergedRow.Value("status");
+ JObject values = mergedRow.Value("values");
+ int i = mergedRow.Value("index");
+ GridRow row = Grid1.Rows[i];
+ System.Web.UI.WebControls.RadioButtonList rblIsPass = (System.Web.UI.WebControls.RadioButtonList)row.FindControl("rblIsPass");
+ var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString();
+ var inspectedUser = this.Grid1.Rows[i].DataKeys[1].ToString();
+ var model = Funs.DB.TestRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == termItemId && x.InspectedUser == inspectedUser);
+ if (model != null)
+ {
+ if (!string.IsNullOrWhiteSpace(rblIsPass.SelectedValue))
+ {
+ //1=分包商2=承包商3=监理4=业主
+ if (this.ConfirmType == 1)
+ {
+ model.SubcontractorIsPass = int.Parse(rblIsPass.SelectedValue);
+ model.SubcontractorRemark = values.Value("Remark");
+ }
+ else if (this.ConfirmType == 2)
+ {
+ model.ContractorIsPass = int.Parse(rblIsPass.SelectedValue);
+ model.ContractorRemark = values.Value("Remark");
+ }
+ else if (this.ConfirmType == 3)
+ {
+ model.SupervisionIsPass = int.Parse(rblIsPass.SelectedValue);
+ model.SupervisionRemark = values.Value("Remark");
+ }
+ else if (this.ConfirmType == 4)
+ {
+ model.OwnerIsPass = int.Parse(rblIsPass.SelectedValue);
+ model.OwnerRemark = values.Value("Remark");
+ }
+ }
+ Funs.DB.SubmitChanges();
+ }
+ }
+ var subInspectId = this.Grid1.Rows[0].DataKeys[3].ToString();
+ var subModel = Funs.DB.TestRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId);
+ if (subModel != null)
+ {
+ //1=分包商2=承包商3=监理4=业主
+ if (this.ConfirmType == 1)
+ {
+ if (Funs.DB.TestRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.SubcontractorIsPass.GetValueOrDefault() != 1) == 0)
+ {
+ subModel.SubcontractorIsAllPass = 1;
+ subModel.SubcontractorAllPassData = DateTime.Now;
+ }
+ else
+ {
+ subModel.SubcontractorIsAllPass = 0;
+ subModel.SubcontractorAllPassData = null;
+ }
+ }
+ else if (this.ConfirmType == 2)
+ {
+ if (Funs.DB.TestRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.ContractorIsPass.GetValueOrDefault() != 1) == 0)
+ {
+ subModel.ContractorIsAllPass = 1;
+ subModel.ContractorAllPassData = DateTime.Now;
+ }
+ else
+ {
+ subModel.ContractorIsAllPass = 0;
+ subModel.ContractorAllPassData = null;
+ }
+ }
+ else if (this.ConfirmType == 3)
+ {
+ if (Funs.DB.TestRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.SupervisionIsPass.GetValueOrDefault() != 1) == 0)
+ {
+ subModel.SupervisionIsAllPass = 1;
+ subModel.SupervisionAllPassData = DateTime.Now;
+ }
+ else
+ {
+ subModel.SupervisionIsAllPass = 0;
+ subModel.SupervisionAllPassData = null;
+ }
+ }
+ else if (this.ConfirmType == 4)
+ {
+ if (Funs.DB.TestRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.OwnerIsPass.GetValueOrDefault() != 1) == 0)
+ {
+ subModel.OwnerIsAllPass = 1;
+ subModel.OwnerAllPassData = DateTime.Now;
+ }
+ else
+ {
+ subModel.OwnerIsAllPass = 0;
+ subModel.OwnerAllPassData = null;
+ }
+ }
+ //判断是否全部通过
+ if (subModel.SubcontractorIsAllPass == 1 && subModel.ContractorIsAllPass == 1 && subModel.SupervisionIsAllPass == 1 && subModel.OwnerIsAllPass == 1)
+ {
+ subModel.WanderIsComplete = 1;
+ subModel.WanderCompleteData = DateTime.Now;
+ }
+ else
+ {
+ subModel.WanderIsComplete = 0;
+ subModel.WanderCompleteData = null;
+ }
+ }
+ Funs.DB.SubmitChanges();
+ BindGrid();
+ ShowNotify("保存成功!");
+ }
+ catch (Exception ex)
+ {
+ ShowNotify(ex.Message, MessageBoxIcon.Error);
+ }
+ }
+
+ ///
+ /// 导出
+ ///
+ protected void btnExport_Click(object sender, EventArgs e)
+ {
+ string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
+ //导出文件
+ string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
+ if (!Directory.Exists(filePath))
+ {
+ Directory.CreateDirectory(filePath);
+ }
+ string ReportFileName = filePath + this.ConfirmTypeName + "确认签字.xlsx";
+ //获取工作包检查表
+ var termData = from a in Funs.DB.TestRun_SubInspectTerm
+ join b in Funs.DB.Base_Project on a.ProjectId equals b.ProjectId
+ join c in Funs.DB.TestRun_WorkPackage on a.WorkPackId equals c.WorkPackId
+ join zz in Funs.DB.PreRun_SysDevice on a.InstallationId equals zz.PreRunId//装置
+ join gx in Funs.DB.PreRun_SysDevice on a.ProcessesId equals gx.PreRunId//工序
+ join xt in Funs.DB.PreRun_SysDevice on a.SystemId equals xt.PreRunId//系统
+ select new { a.SubInspectId, a.ProjectId, b.ProjectName, b.ShortName, b.ProjectCode, a.InstallationId, a.ProcessesId, a.SystemId, a.WorkPackId, a.InspectResult, a.Subcontractor, a.Contractor, a.Supervision, a.Owner, a.InspectionIsAllPass, a.SubcontractorIsAllPass, a.ContractorIsAllPass, a.SupervisionIsAllPass, a.OwnerIsAllPass, a.InspectTime, a.AddUser, a.AddTime, c.WorkPackName, zzName = zz.PreRunName, gxName = gx.PreRunName, xtName = xt.PreRunName };
+ if (termData != null)
+ {
+ var termModel = termData.FirstOrDefault();
+ //获取工作包检查项表
+ var termItems = Funs.DB.TestRun_SubInspectTermItem.Where(x => x.SubInspectId == this.SubInspectId).OrderBy(x => x.Sort).ToList();
+ int rowIndex = 0;
+ XSSFWorkbook hssfworkbook = new XSSFWorkbook();
+ XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet(this.ConfirmTypeName + "确认签字");
+
+ #region 列宽
+
+ ws.SetColumnWidth(0, (7 * 256));
+ ws.SetColumnWidth(1, (4 * 256));
+ ws.SetColumnWidth(2, (4 * 256));
+ ws.SetColumnWidth(3, (4 * 256));
+ ws.SetColumnWidth(4, (10 * 256));
+ ws.SetColumnWidth(5, (10 * 256));
+ ws.SetColumnWidth(6, (10 * 256));
+ ws.SetColumnWidth(7, (10 * 256));
+ ws.SetColumnWidth(8, (3 * 256));
+ ws.SetColumnWidth(9, (3 * 256));
+ ws.SetColumnWidth(10, (3 * 256));
+ ws.SetColumnWidth(11, (3 * 256));
+ ws.SetColumnWidth(12, (3 * 256));
+ ws.SetColumnWidth(13, (3 * 256));
+ ws.SetColumnWidth(14, (3 * 256));
+ ws.SetColumnWidth(15, (3 * 256));
+ ws.SetColumnWidth(16, (3 * 256));
+ ws.SetColumnWidth(17, (3 * 256));
+
+ #endregion
+
+ #region 样式
+ //头部样式居中
+ ICellStyle titleStyle = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 14, true, true);
+ //头部样式靠左
+ ICellStyle leftTitleStyle = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 14, true, true);
+ //公共样式
+ ICellStyle style = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true);
+ //公共样式靠左
+ ICellStyle leftStyle = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 10.5, true);
+ //公共样式靠左上对其
+ ICellStyle leftTopStyle = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, HorizontalAlignment.Left, 10.5, true);
+ //公共样式加粗
+ ICellStyle styleBold = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true, true);
+
+ #endregion
+
+ #region 头部
+
+ ws = ExcelCreateRowTitle(ws, hssfworkbook, style, rowIndex, rowIndex + 5, 0, 17);
+ //行1
+ var region = new CellRangeAddress(rowIndex, rowIndex + 2, 0, 0);
+ ws.AddMergedRegion(region);
+ byte[] bytes = File.ReadAllBytes(Server.MapPath("~/") + "Images\\Template.png");
+ int pictureIdx = hssfworkbook.AddPicture(bytes, PictureType.JPEG);
+ IDrawing patriarch = ws.CreateDrawingPatriarch();
+ IClientAnchor anchor = patriarch.CreateAnchor(0, 0, 0, 0, 0, rowIndex, 1, rowIndex + 2);
+ IPicture pict = patriarch.CreatePicture(anchor, pictureIdx);
+ //pict.Resize();
+ region = new CellRangeAddress(rowIndex, rowIndex + 2, 1, 3);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex).GetCell(1).SetCellValue("中国五环工程有限公司");
+ ws.GetRow(rowIndex).GetCell(1).CellStyle =
+ ws.GetRow(rowIndex).GetCell(2).CellStyle =
+ ws.GetRow(rowIndex).GetCell(3).CellStyle = leftTitleStyle;
+ region = new CellRangeAddress(rowIndex, rowIndex, 4, 7);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex).GetCell(4).SetCellValue(termModel.ProjectName);
+ ws.GetRow(rowIndex).GetCell(4).CellStyle = style;
+ region = new CellRangeAddress(rowIndex, rowIndex, 8, 12);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex).GetCell(8).SetCellValue("项目号");
+ ws.GetRow(rowIndex).GetCell(8).CellStyle = style;
+ region = new CellRangeAddress(rowIndex, rowIndex, 13, 17);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex).GetCell(13).SetCellValue(termModel.ProjectCode);
+ ws.GetRow(rowIndex).GetCell(13).CellStyle = style;
+ region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 4, 7);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue($"({termModel.zzName})({termModel.gxName}/{termModel.xtName})");
+ ws.GetRow(rowIndex + 1).GetCell(4).CellStyle = style;
+ region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 8, 12);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 1).GetCell(8).SetCellValue("(文件号)");
+ ws.GetRow(rowIndex + 1).GetCell(8).CellStyle = style;
+ region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 13, 17);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 1).GetCell(13).SetCellValue("");
+ ws.GetRow(rowIndex + 1).GetCell(13).CellStyle = style;
+ region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 4, 7);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue($"{termModel.WorkPackName}条件检查表");
+ ws.GetRow(rowIndex + 2).GetCell(4).CellStyle = titleStyle;
+ region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 8, 12);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue("第 1 页");
+ ws.GetRow(rowIndex + 2).GetCell(8).CellStyle = style;
+ region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 13, 17);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 2).GetCell(13).SetCellValue("共 1 页");
+ ws.GetRow(rowIndex + 2).GetCell(13).CellStyle = style;
+ //行4,行5
+ region = new CellRangeAddress(rowIndex + 3, rowIndex + 4, 0, 2);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 3).GetCell(0).CellStyle = style;
+ ws.GetRow(rowIndex + 3).GetCell(0).SetCellValue("");
+ region = new CellRangeAddress(rowIndex + 3, rowIndex + 4, 3, 11);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 3).GetCell(3).CellStyle = leftStyle;
+ ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue("");
+ region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 12, 17);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 3).GetCell(12).CellStyle = style;
+ ws.GetRow(rowIndex + 3).GetCell(12).SetCellValue("检查日期");
+ region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 12, 17);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 4).GetCell(12).CellStyle = style;
+ ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue(DateTime.Now.ToString("yyyy年MM月dd日"));
+ //行6
+ ws.GetRow(rowIndex + 5).GetCell(0).CellStyle = styleBold;
+ ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("序号");
+ region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 1, 7);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 5).GetCell(1).CellStyle = styleBold;
+ ws.GetRow(rowIndex + 5).GetCell(1).SetCellValue("检查项目");
+ region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 8, 12);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 5).GetCell(8).CellStyle = styleBold;
+ ws.GetRow(rowIndex + 5).GetCell(8).SetCellValue("结果");
+ region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 13, 17);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 5).GetCell(13).CellStyle = styleBold;
+ ws.GetRow(rowIndex + 5).GetCell(13).SetCellValue("备注");
+
+ #endregion
+
+ #region 表格
+
+ var start = rowIndex + 6;
+ var end = rowIndex + 5 + termItems.Count;
+
+ ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 17);
+
+ //合并单元格
+ for (int hb = start; hb <= end; hb++)
+ {
+ region = new CellRangeAddress(hb, hb, 1, 7);
+ ws.AddMergedRegion(region);
+ region = new CellRangeAddress(hb, hb, 8, 12);
+ ws.AddMergedRegion(region);
+ region = new CellRangeAddress(hb, hb, 13, 17);
+ ws.AddMergedRegion(region);
+ }
+
+ //数据
+ int num = 1;
+ var dataIndex = 6;
+ foreach (var item in termItems)
+ {
+ //序号
+ ws.GetRow(dataIndex).GetCell(0).SetCellValue(num);
+ //检查项目
+ ws.GetRow(dataIndex).GetCell(1).SetCellValue(item.WorkInspectName);
+ ws.GetRow(dataIndex).GetCell(1).CellStyle = leftStyle;
+ //结果
+ ws.GetRow(dataIndex).GetCell(8).SetCellValue("");
+ //备注
+ ws.GetRow(dataIndex).GetCell(13).SetCellValue("");
+ dataIndex++;
+ num++;
+ }
+ rowIndex = start + termItems.Count;
+
+ #endregion
+
+ #region 尾部
+
+ ws = ExcelCreateRowTitle(ws, hssfworkbook, style, rowIndex, rowIndex, 0, 17, 100);
+ //行1
+ ws.GetRow(rowIndex).GetCell(0).SetCellValue("结论");
+ region = new CellRangeAddress(rowIndex, rowIndex, 1, 17);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex).GetCell(1).SetCellValue("是否同意进行冲洗吹扫(包括整改意见):");
+ ws.GetRow(rowIndex).GetCell(1).CellStyle = leftTopStyle;
+ //行2
+ ws = ExcelCreateRowTitle(ws, hssfworkbook, style, rowIndex + 1, rowIndex + 1, 0, 17, 80);
+ ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("检查人员");
+ region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 4);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("施工单位:");
+ ws.GetRow(rowIndex + 1).GetCell(1).CellStyle = leftTopStyle;
+ region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 5, 6);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 1).GetCell(5).SetCellValue("总承包商:");
+ ws.GetRow(rowIndex + 1).GetCell(5).CellStyle = leftTopStyle;
+ region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 7, 11);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 1).GetCell(7).SetCellValue("监理:");
+ ws.GetRow(rowIndex + 1).GetCell(7).CellStyle = leftTopStyle;
+ region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 12, 17);
+ ws.AddMergedRegion(region);
+ ws.GetRow(rowIndex + 1).GetCell(12).SetCellValue("业主:");
+ ws.GetRow(rowIndex + 1).GetCell(12).CellStyle = leftTopStyle;
+
+ #endregion
+
+ ws.PrintSetup.Landscape = false;
+ ws.PrintSetup.PaperSize = 9;
+ ws.ForceFormulaRecalculation = true;
+ using (FileStream filess = File.OpenWrite(ReportFileName))
+ {
+ hssfworkbook.Write(filess);
+ }
+ FileInfo filet = new FileInfo(ReportFileName);
+ Response.Clear();
+ Response.Charset = "GB2312";
+ Response.ContentEncoding = System.Text.Encoding.UTF8;
+ // 添加头信息,为"文件下载/另存为"对话框指定默认文件名
+ Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(this.ConfirmTypeName + "确认签字.xlsx"));
+ // 添加头信息,指定文件大小,让浏览器能够显示下载进度
+ Response.AddHeader("Content-Length", filet.Length.ToString());
+ // 指定返回的是一个不能被客户端读取的流,必须被下载
+ Response.ContentType = "application/ms-excel";
+ // 把文件流发送到客户端
+ Response.WriteFile(filet.FullName);
+ // 停止页面的执行
+ Response.End();
+ }
+ }
+
+ ///
+ /// 行加载事件
+ ///
+ protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
+ {
+ System.Web.UI.WebControls.RadioButtonList rblIsPass = (System.Web.UI.WebControls.RadioButtonList)Grid1.Rows[e.RowIndex].FindControl("rblIsPass");
+ int isPass = 1;
+ if (Grid1.DataKeys[e.RowIndex][4] != null) isPass = int.Parse(Grid1.DataKeys[e.RowIndex][4].ToString());
+ rblIsPass.SelectedValue = isPass.ToString();
+ if (rblIsPass.SelectedValue != "1")
+ {
+ rblIsAllPass.SelectedValue = "0";
+ }
+ }
+
+ ///
+ /// 实体绑定
+ ///
+ public class ConfirmIsPass
+ {
+ ///
+ /// 检查项主键
+ ///
+ public string TermItemId { get; set; }
+ ///
+ /// 检查表主键
+ ///
+ public string SubInspectId { get; set; }
+ ///
+ /// 名称
+ ///
+ public string WorkInspectName { get; set; }
+ ///
+ /// 确认类型1=分包商2=承包商3=监理4=业主
+ ///
+ public int ConfirmType { get; set; }
+ ///
+ /// 确认类型名称
+ ///
+ public string ConfirmTypeName { get; set; }
+ ///
+ /// 是否通过
+ ///
+ public int? IsPass { get; set; }
+ ///
+ /// 备注
+ ///
+ public string Remark { get; set; }
+
+ }
+
+ ///
+ /// 检查项确认事件
+ ///
+ protected void rblIsPass_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ for (int i = 0; i < Grid1.Rows.Count; i++)
+ {
+ System.Web.UI.WebControls.RadioButtonList rblIsPass = (System.Web.UI.WebControls.RadioButtonList)Grid1.Rows[i].FindControl("rblIsPass");
+ if (rblIsPass.SelectedValue != "1")
+ {
+ rblIsAllPass.SelectedValue = "0";
+ }
+ }
+ }
+
+ ///
+ /// 是否同意进行预试车活动事件
+ ///
+ protected void rblIsAllPass_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ BindGrid(int.Parse(rblIsAllPass.SelectedValue));
+ }
+
+ ///
+ /// 附件上传
+ ///
+ protected void btnAttach_Click(object sender, EventArgs e)
+ {
+ PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/CheckControl&menuId={1}", $"{this.SubInspectId}_{this.ConfirmType}", Const.TestRunMenuId)));
+ }
+
+ ///
+ /// 统一流转通过附件查看
+ ///
+ protected void btnUnifyUpload_Click(object sender, EventArgs e)
+ {
+ PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/CheckControl&menuId={1}", this.SubInspectId + "_unify", Const.TestRunMenuId)));
+ }
+
+ #endregion
+
+ #region 私有方法
+
+ ///
+ /// 创建样式
+ ///
+ ///
+ public static ICellStyle SetExcelStyle(XSSFWorkbook wb, BorderStyle Bottom, BorderStyle Left, BorderStyle Right, BorderStyle Top, VerticalAlignment VerAig, HorizontalAlignment HorAig, double FontSize, bool WrapText = true, bool Bold = false, string FontName = "宋体")
+ {
+ ICellStyle style = wb.CreateCellStyle();
+ style.BorderBottom = Bottom;
+ style.BorderLeft = Left;
+ style.BorderRight = Right;
+ style.BorderTop = Top;
+ style.VerticalAlignment = VerAig;
+ style.Alignment = HorAig;
+ IFont font = wb.CreateFont();
+ font.FontHeightInPoints = FontSize;
+ font.IsBold = Bold;
+ font.FontName = FontName;
+ style.SetFont(font);
+ style.WrapText = WrapText;
+ return style;
+ }
+
+ ///
+ /// 创建头部
+ ///
+ ///
+ private XSSFSheet ExcelCreateRowTitle(XSSFSheet ws, XSSFWorkbook hssfworkbook, ICellStyle style, int sRows, int eRows, int cStart, int cEnd, float height = 21)
+ {
+ for (int i = sRows; i <= eRows; i++)
+ {
+ ws.CreateRow(i);
+ ws.GetRow(i).HeightInPoints = height;
+ for (int j = cStart; j <= cEnd; j++)
+ {
+ ws.GetRow(i).CreateCell(j);
+ ws.GetRow(i).CreateCell(j).CellStyle = style;
+ }
+ }
+ return ws;
+ }
+
+ #endregion
+
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx.designer.cs
new file mode 100644
index 00000000..31409c55
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx.designer.cs
@@ -0,0 +1,233 @@
+//------------------------------------------------------------------------------
+// <自动生成>
+// 此代码由工具生成。
+//
+// 对此文件的更改可能导致不正确的行为,如果
+// 重新生成代码,则所做更改将丢失。
+// 自动生成>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+
+
+ public partial class InspectWanderAboutConfirm
+ {
+
+ ///
+ /// form1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// SimpleForm1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Form SimpleForm1;
+
+ ///
+ /// plApprove2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.FormRow plApprove2;
+
+ ///
+ /// titleName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ContentPanel titleName;
+
+ ///
+ /// Grid1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Grid Grid1;
+
+ ///
+ /// Toolbar1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Toolbar Toolbar1;
+
+ ///
+ /// ToolbarFill 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarFill ToolbarFill;
+
+ ///
+ /// btnExport 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnExport;
+
+ ///
+ /// btnSave 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnSave;
+
+ ///
+ /// rblIsPass 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.WebControls.RadioButtonList rblIsPass;
+
+ ///
+ /// txtRemark 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.TextBox txtRemark;
+
+ ///
+ /// ContentPanel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ContentPanel ContentPanel1;
+
+ ///
+ /// Form2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Form Form2;
+
+ ///
+ /// rblIsAllPass 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.RadioButtonList rblIsAllPass;
+
+ ///
+ /// Panel3 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel3;
+
+ ///
+ /// lblAttach 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblAttach;
+
+ ///
+ /// btnAttach 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnAttach;
+
+ ///
+ /// lblIsUnifyWanderAbout 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblIsUnifyWanderAbout;
+
+ ///
+ /// lblUnifyWanderAboutData 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblUnifyWanderAboutData;
+
+ ///
+ /// unifyfile 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.FormRow unifyfile;
+
+ ///
+ /// Panel2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel2;
+
+ ///
+ /// btnUnifyUpload 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnUnifyUpload;
+
+ ///
+ /// WindowAtt 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Window WindowAtt;
+ }
+}
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx
new file mode 100644
index 00000000..1f6bbef8
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx
@@ -0,0 +1,139 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectWanderAboutList.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.InspectWanderAboutList" %>
+
+
+
+
+
+
+
+
+ 检查表流转
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx.cs
new file mode 100644
index 00000000..5ce754b6
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx.cs
@@ -0,0 +1,238 @@
+using BLL;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+ public partial class InspectWanderAboutList : PageBase
+ {
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ InitTreeMenu();
+ }
+ }
+
+ #region 数加载
+
+ ///
+ /// 加载树
+ ///
+ private void InitTreeMenu()
+ {
+ this.tvControlItem.Nodes.Clear();
+ TreeNode rootNode = new TreeNode();
+ rootNode.Text = "检查表";
+ rootNode.NodeID = "0";
+ rootNode.Expanded = true;
+ rootNode.ToolTip = "";
+ rootNode.EnableClickEvent = true;
+ this.tvControlItem.Nodes.Add(rootNode);
+ var inspectTerms = Funs.DB.TestRun_SubInspectTerm.Where(x => (x.Subcontractor == this.CurrUser.UserId && x.InspectionIsAllPass == 1) || (x.Contractor == this.CurrUser.UserId && x.ContractorIsAllPass == 1) || (x.Supervision == this.CurrUser.UserId && x.SupervisionIsAllPass == 1) || (x.Owner == this.CurrUser.UserId && x.OwnerIsAllPass == 1)).ToList();
+ if (inspectTerms.Count == 0) return;
+ var systemIds = inspectTerms.ConvertAll(x => x.SystemId);
+ var workPackIds = inspectTerms.ConvertAll(x => x.WorkPackId);
+ var list = from a in Funs.DB.PreRun_SysDevice
+ join b in Funs.DB.TestRun_SubSysWorkPackage on a.PreRunId equals b.SystemId
+ join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId
+ where a.ProjectId == this.CurrUser.LoginProjectId && systemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId)
+ select new { a.PreRunId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode };
+ if (list.Count() > 0)
+ {
+ var ids = list.Select(x => x.ProcessesId).ToList();
+ ids.AddRange(list.Select(x => x.PreRunId).ToList());
+ ids = ids.Distinct().ToList();
+ var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList();
+ if (syslist.Count > 0)
+ {
+ var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList();
+ foreach (var itemOne in oneIds)
+ {
+ var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne);
+ TreeNode rootOneNode = new TreeNode();
+ rootOneNode.NodeID = itemOneModel.PreRunId;
+ rootOneNode.Text = itemOneModel.PreRunName;
+ rootOneNode.ToolTip = itemOneModel.PreRunName;
+ rootOneNode.CommandName = "";
+ rootOneNode.EnableClickEvent = false;
+ rootOneNode.EnableExpandEvent = false;
+ rootNode.Nodes.Add(rootOneNode);
+ rootOneNode.Expanded = true;
+ var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName });
+ foreach (var itemTwo in subTwoList)
+ {
+ TreeNode rootTwoNode = new TreeNode();
+ rootTwoNode.NodeID = itemTwo.Key.PreRunId;
+ rootTwoNode.Text = itemTwo.Key.PreRunName;
+ rootTwoNode.ToolTip = itemTwo.Key.PreRunName;
+ rootTwoNode.CommandName = "";
+ rootTwoNode.EnableClickEvent = false;
+ rootTwoNode.EnableExpandEvent = false;
+ rootOneNode.Nodes.Add(rootTwoNode);
+ rootTwoNode.Expanded = true;
+ var worklist = list.Where(a => a.PreRunId == itemTwo.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackCode }).ToList();
+ if (worklist.Count > 0)
+ {
+ foreach (var itemWork in worklist.OrderBy(o => o.Key.WorkPackCode))
+ {
+ TreeNode newNode = new TreeNode();
+ newNode.Text = itemWork.Key.WorkPackName;
+ newNode.NodeID = itemWork.Key.WorkPackId + "|" + itemTwo.Key.PreRunId;
+ newNode.ToolTip = itemWork.Key.WorkPackName;
+ newNode.CommandName = "";
+ newNode.Expanded = true;
+ newNode.EnableClickEvent = true;
+ newNode.EnableExpandEvent = true;
+ rootTwoNode.Nodes.Add(newNode);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ ///
+ /// 树点击
+ ///
+ protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
+ {
+ BindGrid();
+ }
+
+ #endregion
+
+ #region 数据绑定
+
+ ///
+ /// 绑定数据
+ ///
+ public void BindGrid()
+ {
+ //分包商
+ string subcontractorStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,1 as ConfirmType,'分包商' as ConfirmName,(select count (1) from PreRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.SubcontractorIsPass is null) as WaitConfirmNum,(select count (1) from PreRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.SubcontractorIsPass=1) as PassConfirmNum,(select count (1) from PreRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.SubcontractorIsPass=0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.SystemId from TestRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId=b.ProjectId where 1=1 and a.InspectionIsAllPass=1 and a.ProjectId='{this.CurrUser.LoginProjectId}' and a.Subcontractor='{this.CurrUser.UserId}' ";
+ //承包商
+ string contractorStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,2 as ConfirmType,'承包商' as ConfirmName,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ContractorIsPass is null) as WaitConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ContractorIsPass = 1) as PassConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ContractorIsPass = 0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.SystemId from TestRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId = b.ProjectId where 1 = 1 and a.InspectionIsAllPass = 1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.Contractor = '{this.CurrUser.UserId}' ";
+ //监理
+ string supervisionStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,3 as ConfirmType,'监理' as ConfirmName,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.SupervisionIsPass is null) as WaitConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.SupervisionIsPass = 1) as PassConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.SupervisionIsPass = 0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.SystemId from TestRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId = b.ProjectId where 1 = 1 and a.InspectionIsAllPass = 1 and a.InspectionIsAllPass = 1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.Supervision = '{this.CurrUser.UserId}' ";
+ //业主
+ string ownerStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,4 as ConfirmType,'业主' as ConfirmName,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.OwnerIsPass is null) as WaitConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.OwnerIsPass = 1) as PassConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.OwnerIsPass = 0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.SystemId from TestRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId = b.ProjectId where 1 = 1 and a.InspectionIsAllPass = 1 and a.InspectionIsAllPass = 1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.Owner = '{this.CurrUser.UserId}' ";
+
+ if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0)
+ {
+ var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First();
+ subcontractorStr += $"and a.WorkPackId='{workPackId}'";
+ contractorStr += $"and a.WorkPackId='{workPackId}'";
+ supervisionStr += $"and a.WorkPackId='{workPackId}'";
+ ownerStr += $"and a.WorkPackId='{workPackId}'";
+ }
+ if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1)
+ {
+ var systemId = this.tvControlItem.SelectedNodeID.Split('|').Last();
+ subcontractorStr += $"and a.SystemId='{systemId}'";
+ contractorStr += $"and a.SystemId='{systemId}'";
+ supervisionStr += $"and a.SystemId='{systemId}'";
+ ownerStr += $"and a.SystemId='{systemId}'";
+ }
+ var allSql = $"select * from ({subcontractorStr} union all {contractorStr} union all {supervisionStr} union all {ownerStr}) as t order by t.ConfirmType asc";
+ List listStr = new List();
+ SqlParameter[] parameter = listStr.ToArray();
+ DataTable tb = SQLHelper.GetDataTableRunText(allSql);
+ Grid1.RecordCount = tb.Rows.Count;
+ var table = this.GetPagedDataTable(Grid1, tb);
+ Grid1.DataSource = table;
+ Grid1.DataBind();
+
+ }
+
+ ///
+ /// 分页
+ ///
+ protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
+ {
+ Grid1.PageIndex = e.NewPageIndex;
+ BindGrid();
+ }
+
+ ///
+ /// 双击事件
+ ///
+ protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
+ {
+ btnMenuConfirmation_Click(null, null);
+ }
+
+ ///
+ /// 分页下拉框
+ ///
+ protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
+ BindGrid();
+ }
+
+ ///
+ /// 排序
+ ///
+ protected void Grid1_Sort(object sender, GridSortEventArgs e)
+ {
+ BindGrid();
+ }
+
+ #endregion
+
+ #region 按钮和事件
+
+ ///
+ /// 查询
+ ///
+ protected void btnQuery_Click(object sender, EventArgs e)
+ {
+ BindGrid();
+ }
+
+ ///
+ /// 检查确认
+ ///
+ protected void btnConfirmation_Click(object sender, EventArgs e)
+ {
+ if (Grid1.SelectedRowIndexArray.Length == 0)
+ {
+ Alert.ShowInTop("请选择记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ if (Grid1.SelectedRowIndexArray.Length > 1)
+ {
+ Alert.ShowInTop("只可选择一条记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectWanderAboutConfirm.aspx?SubInspectId={0}&ConfirmType={1}", Grid1.DataKeys[Grid1.SelectedRowIndex][1].ToString(), Grid1.DataKeys[Grid1.SelectedRowIndex][2].ToString(), "编辑 - ")));
+ }
+
+ ///
+ /// 右击检查确认
+ ///
+ protected void btnMenuConfirmation_Click(object sender, EventArgs e)
+ {
+ btnConfirmation_Click(null, null);
+ }
+
+ ///
+ /// 关闭
+ ///
+ protected void Window1_Close(object sender, WindowCloseEventArgs e)
+ {
+ BindGrid();
+ }
+
+ #endregion
+
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx.designer.cs
new file mode 100644
index 00000000..dacd94f4
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx.designer.cs
@@ -0,0 +1,152 @@
+//------------------------------------------------------------------------------
+// <自动生成>
+// 此代码由工具生成。
+//
+// 对此文件的更改可能导致不正确的行为,如果
+// 重新生成代码,则所做更改将丢失。
+// 自动生成>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+
+
+ public partial class InspectWanderAboutList
+ {
+
+ ///
+ /// form1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// Panel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel1;
+
+ ///
+ /// panelLeftRegion 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel panelLeftRegion;
+
+ ///
+ /// tvControlItem 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Tree tvControlItem;
+
+ ///
+ /// Grid1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Grid Grid1;
+
+ ///
+ /// Toolbar1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Toolbar Toolbar1;
+
+ ///
+ /// btnQuery 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnQuery;
+
+ ///
+ /// btnConfirmation 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnConfirmation;
+
+ ///
+ /// ToolbarSeparator1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
+
+ ///
+ /// ToolbarText1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarText ToolbarText1;
+
+ ///
+ /// ddlPageSize 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList ddlPageSize;
+
+ ///
+ /// Window1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Window Window1;
+
+ ///
+ /// Menu1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Menu Menu1;
+
+ ///
+ /// btnMenuConfirmation 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.MenuButton btnMenuConfirmation;
+ }
+}
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx
new file mode 100644
index 00000000..da577b30
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx
@@ -0,0 +1,44 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SelectTailTermList.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.SelectTailTermList" %>
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx.cs
new file mode 100644
index 00000000..6c434471
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx.cs
@@ -0,0 +1,89 @@
+using BLL;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+ public partial class SelectTailTermList : PageBase
+ {
+ ///
+ /// 检查项主键
+ ///
+ public string TermItemId
+ {
+ get { return (string)ViewState["TermItemId"]; }
+ set { ViewState["TermItemId"] = value; }
+ }
+
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ this.TermItemId = Request["TermItemId"];
+ DataBrid();
+ }
+ }
+
+ ///
+ /// 数据绑定
+ ///
+ public void DataBrid()
+ {
+ var list = from a in Funs.DB.TestRun_TermItemInspectedUser
+ join b in Funs.DB.TestRun_InspectTailTerm on a.TermItemId equals b.TermItemId
+ join c in Funs.DB.Base_Unit on b.ConstructionUnit equals c.UnitId
+ where a.InspectedUser == this.CurrUser.UserId && b.TermItemId == this.TermItemId && b.ApproveState == 0
+ orderby a.AddTime
+ select new
+ {
+ b.TailTermId,
+ b.AddTime,
+ b.TailTermCode,
+ ConstructionUnit = c.UnitName,
+ b.AdjustCompleteTime
+ };
+ Grid1.RecordCount = list.Count();
+ Grid1.DataSource = list;
+ Grid1.DataBind();
+ }
+
+ ///
+ /// 排序
+ ///
+ protected void Grid1_Sort(object sender, GridSortEventArgs e)
+ {
+ Grid1.SortDirection = e.SortDirection;
+ Grid1.SortField = e.SortField;
+ DataBrid();
+ }
+
+ #region 确认
+
+ ///
+ /// 确认
+ ///
+ protected void btnSave_Click(object sender, EventArgs e)
+ {
+ if (Grid1.SelectedRowIndexArray.Length == 0)
+ {
+ Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(Grid1.SelectedRowID) + ActiveWindow.GetHidePostBackReference());
+ }
+
+ #endregion
+
+ ///
+ /// 表格双击事件
+ ///
+ protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
+ {
+ PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(Grid1.SelectedRowID) + ActiveWindow.GetHidePostBackReference());
+ }
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx.designer.cs
new file mode 100644
index 00000000..28c88d14
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SelectTailTermList.aspx.designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+// <自动生成>
+// 此代码由工具生成。
+//
+// 对此文件的更改可能导致不正确的行为,如果
+// 重新生成代码,则所做更改将丢失。
+// 自动生成>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+
+
+ public partial class SelectTailTermList
+ {
+
+ ///
+ /// form1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// Panel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel1;
+
+ ///
+ /// Grid1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Grid Grid1;
+
+ ///
+ /// Toolbar3 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Toolbar Toolbar3;
+
+ ///
+ /// btnSave 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnSave;
+ }
+}
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx
new file mode 100644
index 00000000..1b7fe675
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx
@@ -0,0 +1,145 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SiteImplementation.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.SiteImplementation" %>
+
+
+
+
+
+ 现场实施
+
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx.cs
new file mode 100644
index 00000000..a9d76090
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx.cs
@@ -0,0 +1,190 @@
+using BLL;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+ public partial class SiteImplementation : PageBase
+ {
+ ///
+ /// 主键
+ ///
+ public string SubInspectId
+ {
+ get { return (string)ViewState["SubInspectId"]; }
+ set { ViewState["SubInspectId"] = value; }
+ }
+
+ ///
+ /// 是否查看
+ ///
+ public bool IsView
+ {
+ get { return (bool)ViewState["IsView"]; }
+ set { ViewState["IsView"] = value; }
+ }
+
+ ///
+ /// 附件
+ ///
+ public int RecordUpload
+ {
+ get { return (int)ViewState["RecordUpload"]; }
+ set { ViewState["RecordUpload"] = value; }
+ }
+
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ this.SubInspectId = Request["SubInspectId"];
+ //是否查看
+ this.IsView = string.IsNullOrWhiteSpace(Request["IsView"]) ? false : bool.Parse(Request["IsView"]);
+ //数据绑定
+ PageInit();
+ //判断是否查看
+ if (IsView)
+ {
+ btnSubmit.Hidden = true;
+ RecordUpload = -1;
+ }
+ }
+ }
+
+ ///
+ /// 默认绑定
+ ///
+ public void PageInit()
+ {
+ RecordUpload = 0;
+ //获取检查表数据
+ var data = from a in Funs.DB.TestRun_SubInspectTerm
+ join b in Funs.DB.TestRun_WorkPackage on a.WorkPackId equals b.WorkPackId
+ join c in Funs.DB.Sys_User on a.AddUser equals c.UserId
+ join d in Funs.DB.Sys_User on a.Subcontractor equals d.UserId
+ join e in Funs.DB.Sys_User on a.Contractor equals e.UserId
+ join f in Funs.DB.Sys_User on a.Supervision equals f.UserId
+ join g in Funs.DB.Sys_User on a.Owner equals g.UserId
+ join h in Funs.DB.Base_Project on a.ProjectId equals h.ProjectId
+ where a.SubInspectId == this.SubInspectId
+ select new
+ {
+ a.SubInspectId,
+ a.ProjectId,
+ h.ProjectCode,
+ h.ProjectName,
+ b.WorkPackName,
+ InspectUser = c.UserName,
+ InspectData = a.AddTime,
+ SubcontractorName = d.UserName,
+ ContractorName = e.UserName,
+ SupervisionName = f.UserName,
+ OwnerName = g.UserName,
+ a.RecordUploadData,
+ a.SiteImplementConfirmData,
+ a.IsSiteImplement
+ };
+ if (data != null)
+ {
+ var inspectTermModel = data.FirstOrDefault();
+ lblProjectName.Text = inspectTermModel.ProjectName;
+ lblProjectCode.Text = inspectTermModel.ProjectCode;
+ lblWorkPackName.Text = inspectTermModel.WorkPackName;
+ lblInspectUser.Text = inspectTermModel.InspectUser;
+ lblInspectData.Text = inspectTermModel.InspectData != null ? inspectTermModel.InspectData.Value.ToString("yyyy-MM-dd") : string.Empty;
+ lblSubcontractorName.Text = inspectTermModel.SubcontractorName;
+ lblContractorName.Text = inspectTermModel.ContractorName;
+ lblSupervisionName.Text = inspectTermModel.SupervisionName;
+ lblOwnerName.Text = inspectTermModel.OwnerName;
+ lblRecordUploadData.Text = inspectTermModel.RecordUploadData != null ? inspectTermModel.RecordUploadData.Value.ToString("yyyy-MM-dd") : string.Empty;
+ lblSiteImplementConfirmData.Text = inspectTermModel.SiteImplementConfirmData != null ? inspectTermModel.SiteImplementConfirmData.Value.ToString("yyyy-MM-dd") : string.Empty;
+ rblIsSiteImplement.SelectedValue = inspectTermModel.IsSiteImplement != null ? inspectTermModel.IsSiteImplement.ToString() : "0";
+ }
+ //获取检查项数据
+ var InspectTermItems = from a in Funs.DB.TestRun_SubInspectTermItem
+ join b in Funs.DB.TestRun_TermItemInspectedUser on a.TermItemId equals b.TermItemId
+ join c in Funs.DB.Sys_User on b.InspectedUser equals c.UserId
+ where a.SubInspectId == this.SubInspectId
+ orderby a.Sort ascending
+ select new
+ {
+ a.TermItemId,
+ a.WorkInspectName,
+ b.InspectedUser,
+ InspectedUserName = c.UserName,
+ b.InspectionResults,
+ InspectionResultsName = b.InspectionResults == 1 ? "通过" : "未通过",
+ b.InspectionIllustrate
+ };
+ var itemDatas = InspectTermItems.ToList();
+ gvTermItem.DataSource = itemDatas;
+ gvTermItem.DataBind();
+ }
+
+ #region 按钮
+
+ ///
+ /// 保存并提交
+ ///
+ protected void btnSubmit_Click(object sender, EventArgs e)
+ {
+ var subModel = Funs.DB.TestRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == this.SubInspectId);
+ if (subModel != null)
+ {
+ subModel.IsSiteImplement = int.Parse(rblIsSiteImplement.SelectedValue);
+ if (!string.IsNullOrWhiteSpace(lblRecordUploadData.Text))
+ {
+ subModel.RecordUploadData = DateTime.Parse(lblRecordUploadData.Text);
+ }
+ else
+ {
+ subModel.RecordUploadData = null;
+ }
+ if (!string.IsNullOrWhiteSpace(lblSiteImplementConfirmData.Text))
+ {
+ subModel.SiteImplementConfirmData = DateTime.Parse(lblSiteImplementConfirmData.Text);
+ subModel.SiteImplementUser = this.CurrUser.UserId;
+ }
+ else
+ {
+ subModel.SiteImplementConfirmData = null;
+ subModel.SiteImplementUser = string.Empty;
+ }
+ }
+ Funs.DB.SubmitChanges();
+ ShowNotify("操作成功!", MessageBoxIcon.Success);
+ PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
+ }
+
+ ///
+ /// 现场实施是否完成
+ ///
+ protected void rblIsSiteImplement_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ lblSiteImplementConfirmData.Text = rblIsSiteImplement.SelectedValue == "1" ? DateTime.Now.ToString("yyyy-MM-dd") : string.Empty;
+ }
+
+ ///
+ /// 试车过程记录上传
+ ///
+ protected void btnRecordUpload_Click(object sender, EventArgs e)
+ {
+ PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", this.RecordUpload, this.SubInspectId + "_xcss", Const.InspectTailTerm)));
+ }
+
+ ///
+ /// 关闭
+ ///
+ protected void WindowAtt_Close(object sender, WindowCloseEventArgs e)
+ {
+ lblRecordUploadData.Text = Funs.DB.AttachFile.Count(x => x.ToKeyId == this.SubInspectId + "_xcss" && x.AttachUrl != null && x.AttachUrl != "") > 0 ? DateTime.Now.ToString("yyyy-MM-dd") : string.Empty;
+ }
+
+ #endregion
+
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx.designer.cs
new file mode 100644
index 00000000..c1484ebb
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementation.aspx.designer.cs
@@ -0,0 +1,242 @@
+//------------------------------------------------------------------------------
+// <自动生成>
+// 此代码由工具生成。
+//
+// 对此文件的更改可能导致不正确的行为,如果
+// 重新生成代码,则所做更改将丢失。
+// 自动生成>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+
+
+ public partial class SiteImplementation
+ {
+
+ ///
+ /// form1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// SimpleForm1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Form SimpleForm1;
+
+ ///
+ /// ContentPanel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ContentPanel ContentPanel1;
+
+ ///
+ /// Form2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Form Form2;
+
+ ///
+ /// lblProjectName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblProjectName;
+
+ ///
+ /// lblProjectCode 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblProjectCode;
+
+ ///
+ /// lblInspectUser 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblInspectUser;
+
+ ///
+ /// lblInspectData 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblInspectData;
+
+ ///
+ /// lblSubcontractorName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblSubcontractorName;
+
+ ///
+ /// lblContractorName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblContractorName;
+
+ ///
+ /// lblSupervisionName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblSupervisionName;
+
+ ///
+ /// lblOwnerName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblOwnerName;
+
+ ///
+ /// lblWorkPackName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblWorkPackName;
+
+ ///
+ /// rblIsSiteImplement 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.RadioButtonList rblIsSiteImplement;
+
+ ///
+ /// lblSiteImplementConfirmData 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblSiteImplementConfirmData;
+
+ ///
+ /// Panel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel1;
+
+ ///
+ /// btnRecordUpload 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnRecordUpload;
+
+ ///
+ /// lblRecordUploadData 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblRecordUploadData;
+
+ ///
+ /// plApprove2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.FormRow plApprove2;
+
+ ///
+ /// gvTermItem 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Grid gvTermItem;
+
+ ///
+ /// Toolbar1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Toolbar Toolbar1;
+
+ ///
+ /// ToolbarFill1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarFill ToolbarFill1;
+
+ ///
+ /// btnSubmit 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnSubmit;
+
+ ///
+ /// WindowAtt 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Window WindowAtt;
+ }
+}
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx
new file mode 100644
index 00000000..c269fa92
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx
@@ -0,0 +1,153 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SiteImplementationList.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.SiteImplementationList" %>
+
+
+
+
+
+
+
+
+ 现场实施
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx.cs
new file mode 100644
index 00000000..7d3e5bec
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx.cs
@@ -0,0 +1,268 @@
+using BLL;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+ public partial class SiteImplementationList : PageBase
+ {
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ InitTreeMenu();
+ }
+ }
+
+
+ #region 数加载
+
+ ///
+ /// 加载树
+ ///
+ private void InitTreeMenu()
+ {
+ this.tvControlItem.Nodes.Clear();
+ TreeNode rootNode = new TreeNode();
+ rootNode.Text = "检查表";
+ rootNode.NodeID = "0";
+ rootNode.Expanded = true;
+ rootNode.ToolTip = "";
+ rootNode.EnableClickEvent = true;
+ this.tvControlItem.Nodes.Add(rootNode);
+ var inspectTerms = Funs.DB.TestRun_SubInspectTerm.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.InspectionIsAllPass == 1 && x.WanderIsComplete == 1).ToList();
+ if (inspectTerms.Count == 0) return;
+
+ var systemIds = inspectTerms.ConvertAll(x => x.SystemId);
+ var workPackIds = inspectTerms.ConvertAll(x => x.WorkPackId);
+ var list = from a in Funs.DB.PreRun_SysDevice
+ join b in Funs.DB.TestRun_SubSysWorkPackage on a.PreRunId equals b.SystemId
+ join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId
+ where a.ProjectId == this.CurrUser.LoginProjectId && systemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId)
+ select new { a.PreRunId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode };
+ if (list.Count() > 0)
+ {
+ var ids = list.Select(x => x.ProcessesId).ToList();
+ ids.AddRange(list.Select(x => x.PreRunId).ToList());
+ ids = ids.Distinct().ToList();
+ var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList();
+ if (syslist.Count > 0)
+ {
+ var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList();
+ foreach (var itemOne in oneIds)
+ {
+ var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne);
+ TreeNode rootOneNode = new TreeNode();
+ rootOneNode.NodeID = itemOneModel.PreRunId;
+ rootOneNode.Text = itemOneModel.PreRunName;
+ rootOneNode.ToolTip = itemOneModel.PreRunName;
+ rootOneNode.CommandName = "";
+ rootOneNode.EnableClickEvent = false;
+ rootOneNode.EnableExpandEvent = false;
+ rootNode.Nodes.Add(rootOneNode);
+ rootOneNode.Expanded = true;
+ var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName });
+ foreach (var itemTwo in subTwoList)
+ {
+ TreeNode rootTwoNode = new TreeNode();
+ rootTwoNode.NodeID = itemTwo.Key.PreRunId;
+ rootTwoNode.Text = itemTwo.Key.PreRunName;
+ rootTwoNode.ToolTip = itemTwo.Key.PreRunName;
+ rootTwoNode.CommandName = "";
+ rootTwoNode.EnableClickEvent = false;
+ rootTwoNode.EnableExpandEvent = false;
+ rootOneNode.Nodes.Add(rootTwoNode);
+ rootTwoNode.Expanded = true;
+ var worklist = list.Where(a => a.PreRunId == itemTwo.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackCode }).ToList();
+ if (worklist.Count > 0)
+ {
+ foreach (var itemWork in worklist.OrderBy(o => o.Key.WorkPackCode))
+ {
+ TreeNode newNode = new TreeNode();
+ newNode.Text = itemWork.Key.WorkPackName;
+ newNode.NodeID = itemWork.Key.WorkPackId + "|" + itemTwo.Key.PreRunId;
+ newNode.ToolTip = itemWork.Key.WorkPackName;
+ newNode.CommandName = "";
+ newNode.Expanded = true;
+ newNode.EnableClickEvent = true;
+ newNode.EnableExpandEvent = true;
+ rootTwoNode.Nodes.Add(newNode);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ ///
+ /// 树点击
+ ///
+ protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
+ {
+ BindGrid();
+ }
+
+ #endregion
+
+ #region 数据绑定
+
+ ///
+ /// 绑定数据
+ ///
+ public void BindGrid()
+ {
+ List listStr = new List();
+ string sqlStr = $"select a.SubInspectId,a.ProjectId,g.ProjectName,g.ProjectCode,a.WorkPackId,b.WorkPackName,a.SystemId,c.UserName as SubcontractorName,d.UserName as ContractorName,e.UserName as SupervisionName,f.UserName as OwnerName,a.IsSiteImplement,(case a.IsSiteImplement when 1 then '已完成' else '未完成' end) as IsSiteImplementName,(case when (a.SubcontractorIsAllPass=1 and a.ContractorIsAllPass=1 and a.SupervisionIsAllPass=1 and a.OwnerIsAllPass=1) then '已完成' else '未完成' end) as IsWanderAboutPassName,a.SiteImplementConfirmData,a.AddTime from TestRun_SubInspectTerm as a left join TestRun_WorkPackage as b on a.WorkPackId=b.WorkPackId left join Sys_User as c on c.UserId=a.Subcontractor left join Sys_User as d on d.UserId=a.Contractor left join Sys_User as e on e.UserId=a.Supervision left join Sys_User as f on f.UserId=a.Owner left join Base_Project as g on g.ProjectId=a.ProjectId where 1=1 and a.ProjectId=@projectid ";
+
+ listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId));
+ if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0)
+ {
+ var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First();
+ sqlStr += $"and a.WorkPackId=@workPackId ";
+ listStr.Add(new SqlParameter("@workPackId", workPackId));
+ }
+ if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1)
+ {
+ var systemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
+ sqlStr += $"and a.systemId=@systemId ";
+ listStr.Add(new SqlParameter("@systemId", systemId));
+ }
+ //是否确认实施完成
+ if (!string.IsNullOrWhiteSpace(ddlIsSiteImplement.SelectedValue))
+ {
+ sqlStr += $"and isnull(a.IsSiteImplement,0)=@isSiteImplement ";
+ listStr.Add(new SqlParameter("@isSiteImplement", ddlIsSiteImplement.SelectedValue));
+ }
+ sqlStr += " order by a.SiteImplementConfirmData desc";
+ SqlParameter[] parameter = listStr.ToArray();
+ DataTable tb = SQLHelper.GetDataTableRunText(sqlStr, parameter);
+ Grid1.RecordCount = tb.Rows.Count;
+ var table = this.GetPagedDataTable(Grid1, tb);
+ Grid1.DataSource = table;
+ Grid1.DataBind();
+ }
+
+ ///
+ /// 分页
+ ///
+ protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
+ {
+ Grid1.PageIndex = e.NewPageIndex;
+ BindGrid();
+ }
+
+ ///
+ /// 分页下拉框
+ ///
+ protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
+ BindGrid();
+ }
+
+ ///
+ /// 排序
+ ///
+ protected void Grid1_Sort(object sender, GridSortEventArgs e)
+ {
+ BindGrid();
+ }
+
+ #endregion
+
+ #region 按钮和事件
+
+ ///
+ /// 查询
+ ///
+ protected void btnQuery_Click(object sender, EventArgs e)
+ {
+ BindGrid();
+ }
+
+ ///
+ /// 确认现场实施
+ ///
+ protected void btnConfirmation_Click(object sender, EventArgs e)
+ {
+ if (Grid1.SelectedRowIndexArray.Length == 0)
+ {
+ Alert.ShowInTop("请选择记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ if (Grid1.SelectedRowIndexArray.Length > 1)
+ {
+ Alert.ShowInTop("只可选择一条记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ if (Grid1.DataKeys[Grid1.SelectedRowIndex][1] != null)
+ {
+ if (Grid1.DataKeys[Grid1.SelectedRowIndex][1].ToString() == "1")
+ {
+ Alert.ShowInTop("现场实施已完成,无法确认现场实施!", MessageBoxIcon.Warning);
+ return;
+ }
+ }
+ PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SiteImplementation.aspx?SubInspectId={0}", Grid1.SelectedRowID, "现场实施 - ")));
+ }
+
+ ///
+ /// 右击确认现场实施完成
+ ///
+ protected void btnMenuConfirmation_Click(object sender, EventArgs e)
+ {
+ btnConfirmation_Click(null, null);
+ }
+
+ ///
+ /// 关闭
+ ///
+ protected void Window1_Close(object sender, WindowCloseEventArgs e)
+ {
+ BindGrid();
+ }
+
+ ///
+ /// 双击事件
+ ///
+ protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
+ {
+ btnConfirmation_Click(null, null);
+ }
+
+ ///
+ /// 查看
+ ///
+ protected void btnView_Click(object sender, EventArgs e)
+ {
+ if (Grid1.SelectedRowIndexArray.Length == 0)
+ {
+ Alert.ShowInTop("请选择记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ if (Grid1.SelectedRowIndexArray.Length > 1)
+ {
+ Alert.ShowInTop("只可选择一条记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SiteImplementation.aspx?SubInspectId={0}&IsView=true", Grid1.SelectedRowID, "现场实施 - ")));
+ }
+
+ ///
+ /// 右击查看
+ ///
+ protected void btnMenuView_Click(object sender, EventArgs e)
+ {
+ btnView_Click(null, null);
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx.designer.cs
new file mode 100644
index 00000000..2943cd6e
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SiteImplementationList.aspx.designer.cs
@@ -0,0 +1,179 @@
+//------------------------------------------------------------------------------
+// <自动生成>
+// 此代码由工具生成。
+//
+// 对此文件的更改可能导致不正确的行为,如果
+// 重新生成代码,则所做更改将丢失。
+// 自动生成>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+
+
+ public partial class SiteImplementationList
+ {
+
+ ///
+ /// form1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// Panel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel1;
+
+ ///
+ /// panelLeftRegion 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel panelLeftRegion;
+
+ ///
+ /// tvControlItem 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Tree tvControlItem;
+
+ ///
+ /// Grid1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Grid Grid1;
+
+ ///
+ /// Toolbar1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Toolbar Toolbar1;
+
+ ///
+ /// ddlIsSiteImplement 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList ddlIsSiteImplement;
+
+ ///
+ /// btnQuery 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnQuery;
+
+ ///
+ /// btnView 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnView;
+
+ ///
+ /// btnConfirmation 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnConfirmation;
+
+ ///
+ /// ToolbarSeparator1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
+
+ ///
+ /// ToolbarText1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarText ToolbarText1;
+
+ ///
+ /// ddlPageSize 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList ddlPageSize;
+
+ ///
+ /// Window1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Window Window1;
+
+ ///
+ /// Menu1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Menu Menu1;
+
+ ///
+ /// btnMenuConfirmation 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.MenuButton btnMenuConfirmation;
+
+ ///
+ /// btnMenuView 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.MenuButton btnMenuView;
+ }
+}
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubInspectTerm.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubInspectTerm.aspx
index c200447b..b0883f0b 100644
--- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubInspectTerm.aspx
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubInspectTerm.aspx
@@ -31,6 +31,7 @@
+ <%----%>
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubInspectTerm.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubInspectTerm.aspx.cs
index 0d6b7152..cab1cbf4 100644
--- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubInspectTerm.aspx.cs
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubInspectTerm.aspx.cs
@@ -285,7 +285,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage
select a;
if (defaultDatas.Count() > 0)
{
- var groups = defaultDatas.GroupBy(x => new { x.GroupName});
+ var groups = defaultDatas.GroupBy(x => new { x.GroupName });
int firstnum = 1;
foreach (var itemGroup in groups)
{
@@ -516,7 +516,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage
model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value("InspectedUser")) ? values.Value("InspectedUser") : string.Empty;
model.WorkInspectName = values.Value("WorkInspectName");
//删除检查项检查人表
- var deleteTermUser = Funs.DB.TestRun_TermItemInspectedUser.Where(x => x.TermItemId == termItemId);
+ var deleteTermUser = Funs.DB.TestRun_TermItemInspectedUser.Where(x => x.TermItemId == termItemId && x.InspectionResults == null);
if (deleteTermUser.Count() > 0)
{
Funs.DB.TestRun_TermItemInspectedUser.DeleteAllOnSubmit(deleteTermUser);
@@ -528,19 +528,22 @@ namespace FineUIPro.Web.TestRun.TestRunManage
var users = values.Value("InspectedUser").Split(',');
foreach (var itemUser in users)
{
- var userModel = new TestRun_TermItemInspectedUser();
- userModel.ItemUserId = Guid.NewGuid().ToString();
- userModel.TermItemId = termItemId;
- userModel.SubInspectId = subTrem.SubInspectId;
- userModel.WorkPackId = workPackId;
- userModel.GroupName = groupName;
- userModel.ProjectId = this.CurrUser.LoginProjectId;
- userModel.InspectedUser = itemUser;
- userModel.AddUser = this.CurrUser.UserId;
- userModel.AddTime = DateTime.Now;
- userModel.Sort = usernum;
- tremItemUsers.Add(userModel);
- usernum++;
+ if (Funs.DB.TestRun_TermItemInspectedUser.Count(x => x.TermItemId == termItemId && x.InspectedUser == itemUser) == 0)
+ {
+ var userModel = new TestRun_TermItemInspectedUser();
+ userModel.ItemUserId = Guid.NewGuid().ToString();
+ userModel.TermItemId = termItemId;
+ userModel.SubInspectId = subTrem.SubInspectId;
+ userModel.WorkPackId = workPackId;
+ userModel.GroupName = groupName;
+ userModel.ProjectId = this.CurrUser.LoginProjectId;
+ userModel.InspectedUser = itemUser;
+ userModel.AddUser = this.CurrUser.UserId;
+ userModel.AddTime = DateTime.Now;
+ userModel.Sort = usernum;
+ tremItemUsers.Add(userModel);
+ usernum++;
+ }
}
}
if (subTrems != null) Funs.DB.TestRun_SubInspectTerm.InsertAllOnSubmit(subTrems);
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubSysWorkPackage.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubSysWorkPackage.aspx.cs
index 12a49217..859f4ec8 100644
--- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubSysWorkPackage.aspx.cs
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubSysWorkPackage.aspx.cs
@@ -4,6 +4,7 @@ using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Text.RegularExpressions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
@@ -218,22 +219,22 @@ namespace FineUIPro.Web.TestRun.TestRunManage
if (!string.IsNullOrWhiteSpace(this.SystemId))
{
var result = new List();
- var data = from a in Funs.DB.TestRun_WorkPackage.Where(p => workPackIds.Contains(p.WorkPackId))
- join b in Funs.DB.TestRun_SubSysWorkPackage.Where(p => p.SystemId == this.SystemId) on a.WorkPackId equals b.WorkPackId into bb
- from t in bb.DefaultIfEmpty()
- select new WorkData()
- {
- WorkPackId = a.WorkPackId,
- WorkPackCode = t.WorkPackCode,
- WorkPackName = a.WorkPackName,
- SystemId = t.SystemId,
- Sort = a.Sort,
- Remark = t.Remark
- };
- if (data.Count() > 0)
+ var queryData = from a in Funs.DB.TestRun_WorkPackage.Where(p => workPackIds.Contains(p.WorkPackId))
+ join b in Funs.DB.TestRun_SubSysWorkPackage.Where(p => p.SystemId == this.SystemId) on a.WorkPackId equals b.WorkPackId into bb
+ from t in bb.DefaultIfEmpty()
+ select new WorkData()
+ {
+ WorkPackId = a.WorkPackId,
+ WorkPackCode = t.WorkPackCode,
+ WorkPackName = a.WorkPackName,
+ SystemId = t.SystemId,
+ Sort = a.Sort,
+ Remark = t.Remark
+ };
+ if (queryData.Count() > 0)
{
int num = 1;
- int i = 1;
+ var data = queryData.ToList();
foreach (var item in data.OrderBy(p => p.Sort))
{
var model = new WorkData();
@@ -242,14 +243,13 @@ namespace FineUIPro.Web.TestRun.TestRunManage
model.SystemId = item.SystemId;
if (string.IsNullOrWhiteSpace(item.WorkPackCode))
{
- var workpackages = Funs.DB.TestRun_SubSysWorkPackage.Where(p => p.SystemId == this.SystemId).ToList();
- if (workpackages.Count > 0)
+ var workpackages = data.Where(x => !string.IsNullOrWhiteSpace(x.WorkPackCode)).ToList();
+ if (num == 1)
{
- num = workpackages.ConvertAll(x => int.Parse(x.WorkPackCode.Replace("WP", ""))).Max(m => m);
+ if (workpackages.Count > 0) num = workpackages.ConvertAll(x => int.Parse(x.WorkPackCode.Replace("WP", ""))).Max(m => m) + 1;
}
- num = num + i;
model.WorkPackCode = $"WP{string.Format("{0:d3}", num)}";
- i++;
+ num++;
}
else
{
@@ -259,7 +259,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage
model.Remark = item.Remark;
result.Add(model);
}
- result = result.OrderBy(p => p.Sort).ToList();
+ result = result.OrderBy(p => int.Parse(Regex.Replace(p.WorkPackCode, @"\D", ""))).ToList();
Grid1.DataSource = result;
Grid1.DataBind();
}
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx
index 078bd4cd..a56743f0 100644
--- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx
@@ -31,11 +31,10 @@
-
+
-
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx.cs
index 121cad02..e4539201 100644
--- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx.cs
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx.cs
@@ -35,13 +35,74 @@ namespace FineUIPro.Web.TestRun.TestRunManage
rootNode.EnableClickEvent = true;
this.tvControlItem.Nodes.Add(rootNode);
var userTermItems = from a in Funs.DB.TestRun_TermItemInspectedUser
- join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId
- where b.InspectedUser == this.CurrUser.UserId && a.ProjectId == this.CurrUser.LoginProjectId
- select new { a, b };
+ join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId
+ where a.InspectedUser == this.CurrUser.UserId && a.ProjectId == this.CurrUser.LoginProjectId
+ select new { a, b };
if (userTermItems.Count() == 0) return;
var systemIds = userTermItems.Select(x => x.b.SystemId);
var workPackIds = userTermItems.Select(x => x.b.WorkPackId);
+ var list = from a in Funs.DB.PreRun_SysDevice
+ join b in Funs.DB.TestRun_SubSysWorkPackage on a.PreRunId equals b.SystemId
+ join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId
+ where a.ProjectId == this.CurrUser.LoginProjectId && systemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId)
+ select new { a.PreRunId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode };
+
+ if (list.Count() > 0)
+ {
+ var ids = list.Select(x => x.ProcessesId).ToList();
+ ids.AddRange(list.Select(x => x.PreRunId).ToList());
+ ids = ids.Distinct().ToList();
+ var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList();
+ if (syslist.Count > 0)
+ {
+ var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList();
+ foreach (var itemOne in oneIds)
+ {
+ var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne);
+ TreeNode rootOneNode = new TreeNode();
+ rootOneNode.NodeID = itemOneModel.PreRunId;
+ rootOneNode.Text = itemOneModel.PreRunName;
+ rootOneNode.ToolTip = itemOneModel.PreRunName;
+ rootOneNode.CommandName = "";
+ rootOneNode.EnableClickEvent = false;
+ rootOneNode.EnableExpandEvent = false;
+ rootNode.Nodes.Add(rootOneNode);
+ rootOneNode.Expanded = true;
+ var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName });
+ foreach (var itemTwo in subTwoList)
+ {
+ TreeNode rootTwoNode = new TreeNode();
+ rootTwoNode.NodeID = itemTwo.Key.PreRunId;
+ rootTwoNode.Text = itemTwo.Key.PreRunName;
+ rootTwoNode.ToolTip = itemTwo.Key.PreRunName;
+ rootTwoNode.CommandName = "";
+ rootTwoNode.EnableClickEvent = false;
+ rootTwoNode.EnableExpandEvent = false;
+ rootOneNode.Nodes.Add(rootTwoNode);
+ rootTwoNode.Expanded = true;
+ var worklist = list.Where(a => a.PreRunId == itemTwo.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackCode }).ToList();
+ if (worklist.Count > 0)
+ {
+ foreach (var itemWork in worklist.OrderBy(o => o.Key.WorkPackCode))
+ {
+ TreeNode newNode = new TreeNode();
+ newNode.Text = itemWork.Key.WorkPackName;
+ newNode.NodeID = itemWork.Key.WorkPackId + "|" + itemTwo.Key.PreRunId;
+ newNode.ToolTip = itemWork.Key.WorkPackName;
+ newNode.CommandName = "";
+ newNode.Expanded = true;
+ newNode.EnableClickEvent = true;
+ newNode.EnableExpandEvent = true;
+ rootTwoNode.Nodes.Add(newNode);
+ }
+ }
+ }
+ }
+ }
+
+
+ }
}
///
@@ -62,29 +123,21 @@ namespace FineUIPro.Web.TestRun.TestRunManage
public void BindGrid(bool istail = false)
{
var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First();
- var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
- var subInspectId = string.Empty;
- if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2)
- {
- subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last();
- lblCodeStr.Text = this.tvControlItem.SelectedNode.ToolTip;
- }
- else
- {
- lblCodeStr.Text = string.Empty;
- }
- //获取子系统
- var data = from termitem in Funs.DB.PreRun_SubInspectTermItem
- join b in Funs.DB.PreRun_InspectTailTerm on termitem.TermItemId equals b.TermItemId into t
+ var subSystemId = this.tvControlItem.SelectedNodeID.Split('|').Last();
+
+ var data = from termuser in Funs.DB.TestRun_TermItemInspectedUser
+ join termitem in Funs.DB.TestRun_SubInspectTermItem on termuser.TermItemId equals termitem.TermItemId
+ join b in Funs.DB.TestRun_InspectTailTerm.Where(x => x.InspectUser == this.CurrUser.UserId) on termitem.TermItemId equals b.TermItemId into t
from tail in t.DefaultIfEmpty()
- where termitem.SubInspectId == subInspectId
- && termitem.InspectedUser == this.CurrUser.UserId
- group termitem by new { termitem.TermItemId, termitem.SubItemId, termitem.SubInspectId, termitem.WorkPackId, termitem.ProjectId, termitem.WorkInspectId, termitem.WorkInspectName, termitem.InstallationId, termitem.ProcessesId, termitem.SystemId, termitem.SubSystemId, termitem.InspectedUser, termitem.InspectionResults, termitem.InspectionIllustrate, termitem.Subcontractor, termitem.Contractor, termitem.Supervision, termitem.Owner, termitem.SubcontractorIsPass, termitem.ContractorIsPass, termitem.SupervisionIsPass, termitem.OwnerIsPass, termitem.SubcontractorRemark, termitem.ContractorRemark, termitem.SupervisionRemark, termitem.OwnerRemark, termitem.WorkPackType, termitem.PropertyTechnologyId, termitem.Remark, termitem.AddUser, termitem.AddTime, termitem.Sort, IsTailTerm = tail.TailTermId == null ? 0 : 1 } into gt
+ where termitem.WorkPackId == workPackId
+ && termitem.SystemId == subSystemId
+ && termuser.InspectedUser == this.CurrUser.UserId
+ group new { termitem.TermItemId, termitem.SubInspectId, termitem.WorkPackId, termitem.ProjectId, termitem.WorkInspectId, termitem.WorkInspectName, termitem.InstallationId, termitem.ProcessesId, termitem.SystemId, termitem.InspectedUser, termuser.InspectionResults, termuser.InspectionIllustrate, termitem.Subcontractor, termitem.Contractor, termitem.Supervision, termitem.Owner, termitem.SubcontractorIsPass, termitem.ContractorIsPass, termitem.SupervisionIsPass, termitem.OwnerIsPass, termitem.SubcontractorRemark, termitem.ContractorRemark, termitem.SupervisionRemark, termitem.OwnerRemark, termitem.Remark, termitem.AddUser, termitem.AddTime, termitem.Sort, IsTailTerm = tail.TailTermId == null ? 0 : 1 }
+ by new { termitem.TermItemId, termitem.SubInspectId, termitem.WorkPackId, termitem.ProjectId, termitem.WorkInspectId, termitem.WorkInspectName, termitem.InstallationId, termitem.ProcessesId, termitem.SystemId, termitem.InspectedUser, termuser.InspectionResults, termuser.InspectionIllustrate, termitem.Subcontractor, termitem.Contractor, termitem.Supervision, termitem.Owner, termitem.SubcontractorIsPass, termitem.ContractorIsPass, termitem.SupervisionIsPass, termitem.OwnerIsPass, termitem.SubcontractorRemark, termitem.ContractorRemark, termitem.SupervisionRemark, termitem.OwnerRemark, termitem.Remark, termitem.AddUser, termitem.AddTime, termitem.Sort, IsTailTerm = tail.TailTermId == null ? 0 : 1 } into gt
orderby gt.Key.Sort
select new TermItemBridDto()
{
TermItemId = gt.Key.TermItemId,
- SubItemId = gt.Key.SubItemId,
SubInspectId = gt.Key.SubInspectId,
WorkPackId = gt.Key.WorkPackId,
ProjectId = gt.Key.ProjectId,
@@ -93,7 +146,6 @@ namespace FineUIPro.Web.TestRun.TestRunManage
InstallationId = gt.Key.InstallationId,
ProcessesId = gt.Key.ProcessesId,
SystemId = gt.Key.SystemId,
- SubSystemId = gt.Key.SubSystemId,
InspectedUser = gt.Key.InspectedUser,
InspectionResults = gt.Key.InspectionResults,
InspectionIllustrate = gt.Key.InspectionIllustrate,
@@ -109,8 +161,6 @@ namespace FineUIPro.Web.TestRun.TestRunManage
ContractorRemark = gt.Key.ContractorRemark,
SupervisionRemark = gt.Key.SupervisionRemark,
OwnerRemark = gt.Key.OwnerRemark,
- WorkPackType = gt.Key.WorkPackType,
- PropertyTechnologyId = gt.Key.PropertyTechnologyId,
Remark = gt.Key.Remark,
AddUser = gt.Key.AddUser,
AddTime = gt.Key.AddTime,
@@ -118,7 +168,6 @@ namespace FineUIPro.Web.TestRun.TestRunManage
IsTailTerm = gt.Key.IsTailTerm
};
var list = data.ToList();
- //list = list.OrderBy(o => o.Sort).ToList();
if (istail)
{
JArray mergedData = Grid1.GetMergedData();
@@ -158,8 +207,8 @@ namespace FineUIPro.Web.TestRun.TestRunManage
{
try
{
- var subInspectId = this.Grid1.Rows[0].DataKeys[3].ToString();
- if (Funs.DB.PreRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && (x.SubcontractorIsPass != null || x.ContractorIsPass != null || x.SupervisionIsPass != null || x.OwnerIsPass != null)) > 0)
+ var subInspectId = this.Grid1.Rows[0].DataKeys[2].ToString();
+ if (Funs.DB.TestRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && (x.SubcontractorIsPass != null || x.ContractorIsPass != null || x.SupervisionIsPass != null || x.OwnerIsPass != null)) > 0)
{
ShowNotify("已进入检查表流转,无法修改检查结果!", MessageBoxIcon.Warning);
return;
@@ -170,10 +219,10 @@ namespace FineUIPro.Web.TestRun.TestRunManage
string status = mergedRow.Value("status");
JObject values = mergedRow.Value("values");
int i = mergedRow.Value("index");
- var subItemId = this.Grid1.Rows[i].DataKeys[0].ToString();
+ var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString();
if (values.Value("InspectionResults") == "0")
{
- if (Funs.DB.PreRun_InspectTailTerm.Count(x => x.TermItemId == subItemId) == 0)
+ if (Funs.DB.TestRun_InspectTailTerm.Count(x => x.TermItemId == termItemId) == 0)
{
ShowNotify("未通过的检查项请填写尾项!", MessageBoxIcon.Warning);
return;
@@ -185,9 +234,9 @@ namespace FineUIPro.Web.TestRun.TestRunManage
string status = mergedRow.Value("status");
JObject values = mergedRow.Value("values");
int i = mergedRow.Value("index");
- var subItemId = this.Grid1.Rows[i].DataKeys[0].ToString();
+ var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString();
//获取子系统信息
- var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == subItemId);
+ var model = Funs.DB.TestRun_TermItemInspectedUser.FirstOrDefault(x => x.TermItemId == termItemId && x.InspectedUser == this.CurrUser.UserId);
if (model != null)
{
model.InspectionIllustrate = !string.IsNullOrWhiteSpace(values.Value("InspectionIllustrate")) ? values.Value("InspectionIllustrate") : string.Empty;
@@ -195,13 +244,27 @@ namespace FineUIPro.Web.TestRun.TestRunManage
{
model.InspectionResults = int.Parse(values.Value("InspectionResults"));
}
+ //检查项表
+ var subItemModel = Funs.DB.TestRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == model.TermItemId);
+ if (subItemModel != null)
+ {
+ if (Funs.DB.TestRun_TermItemInspectedUser.Count(x => x.InspectionResults.GetValueOrDefault() != 1 && x.TermItemId == model.TermItemId && x.InspectedUser != model.InspectedUser) == 0 && model.InspectionResults == 1)
+ {
+ subItemModel.AllUserInspectionPass = 1;
+ }
+ else
+ {
+ subItemModel.AllUserInspectionPass = 0;
+ }
+ }
Funs.DB.SubmitChanges();
}
}
+ //检查表
var subModel = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId);
if (subModel != null)
{
- if (Funs.DB.PreRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.InspectionResults.GetValueOrDefault() != 1) == 0)
+ if (Funs.DB.TestRun_TermItemInspectedUser.Count(x => x.SubInspectId == subInspectId && x.InspectionResults.GetValueOrDefault() != 1) == 0)
{
subModel.InspectionIsAllPass = 1;
}
@@ -210,6 +273,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage
subModel.InspectionIsAllPass = 0;
}
}
+
Funs.DB.SubmitChanges();
BindGrid();
ShowNotify("保存成功!");
@@ -222,29 +286,6 @@ namespace FineUIPro.Web.TestRun.TestRunManage
#endregion
- ///
- /// 子系统选择的管道/设备
- ///
- public class SelectPropertyTechnology
- {
- ///
- /// 主键
- ///
- public string Id { get; set; }
- ///
- /// 编码
- ///
- public string Code { get; set; }
- ///
- /// 工作包主键
- ///
- public string WorkPackId { get; set; }
- ///
- /// 子系统主键
- ///
- public string SubSystemId { get; set; }
- }
-
///
/// 尾项数据绑定实体
///
@@ -291,10 +332,6 @@ namespace FineUIPro.Web.TestRun.TestRunManage
///
public string SystemId { get; set; }
///
- /// 子系统主键
- ///
- public string SubSystemId { get; set; }
- ///
/// 检查人主键
///
public string InspectedUser { get; set; }
@@ -355,14 +392,6 @@ namespace FineUIPro.Web.TestRun.TestRunManage
///
public string OwnerRemark { get; set; }
///
- /// 类型0=全部1=管道2=设备
- ///
- public int? WorkPackType { get; set; }
- ///
- /// 管道或工艺设备主键
- ///
- public string PropertyTechnologyId { get; set; }
- ///
/// 备注
///
public string Remark { get; set; }
@@ -384,52 +413,6 @@ namespace FineUIPro.Web.TestRun.TestRunManage
public int IsTailTerm { get; set; }
}
- ///
- /// 已生成检查表的管道/设备
- ///
- private List YscInspectItems(List workPackIds, List subSystemIds)
- {
- List yczData = new List();
- var yscInspectItems = Funs.DB.PreRun_SubInspectTerm.Where(x => workPackIds.Contains(x.WorkPackId) && subSystemIds.Contains(x.SubSystemId)).ToList();
- if (yscInspectItems.Count > 0)
- {
- var selectPtids = string.Join(",", yscInspectItems.ConvertAll(x => x.PropertyTechnologyId)).Split(',').ToList();
- var listPros = Funs.DB.PreRun_PropertySysPiping.Where(x => selectPtids.Contains(x.PropertyId)).ToList();
- var listTechno = Funs.DB.PreRun_TechnologySysPiping.Where(x => selectPtids.Contains(x.TechnologyId)).ToList();
-
- foreach (var itemYsc in yscInspectItems)
- {
- var codeStr = string.Empty;
- var ids = itemYsc.PropertyTechnologyId.Split(',');
- var itemPros = listPros.Where(x => ids.Contains(x.PropertyId)).ToList();
- if (itemPros.Count > 0)
- {
- codeStr = $"管道:{string.Join(",", itemPros.ConvertAll(x => x.PipingCode))}";
- yczData.Add(new SelectPropertyTechnology()
- {
- Id = itemYsc.SubInspectId,
- Code = codeStr,
- WorkPackId = itemYsc.WorkPackId,
- SubSystemId = itemYsc.SubSystemId
- });
- }
- var itemTechno = listTechno.Where(x => ids.Contains(x.TechnologyId)).ToList();
- if (itemTechno.Count > 0)
- {
- codeStr = $"设备:{string.Join(",", itemTechno.ConvertAll(x => x.TagNumber))}";
- yczData.Add(new SelectPropertyTechnology()
- {
- Id = itemYsc.SubInspectId,
- Code = codeStr,
- WorkPackId = itemYsc.WorkPackId,
- SubSystemId = itemYsc.SubSystemId
- });
- }
- }
- }
- return yczData;
- }
-
///
/// 行内按钮事件
///
@@ -439,7 +422,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage
if (e.CommandName == "TailTerm")
{
var termItemId = Grid1.DataKeys[e.RowIndex][0].ToString();
- var inspectionResults = Grid1.DataKeys[e.RowIndex][2] != null ? int.Parse(Grid1.DataKeys[e.RowIndex][2].ToString()) : -1;
+ var inspectionResults = Grid1.DataKeys[e.RowIndex][1] != null ? int.Parse(Grid1.DataKeys[e.RowIndex][1].ToString()) : -1;
if (inspectionResults == 0)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId={0}&TermItemId={1}", "", termItemId, "新增 - ")));
@@ -462,10 +445,10 @@ namespace FineUIPro.Web.TestRun.TestRunManage
if (e.CommandName == "TailTermUpdate")
{
var termItemId = Grid1.DataKeys[e.RowIndex][0].ToString();
- var inspectionResults = Grid1.DataKeys[e.RowIndex][2] != null ? int.Parse(Grid1.DataKeys[e.RowIndex][2].ToString()) : -1;
+ var inspectionResults = Grid1.DataKeys[e.RowIndex][1] != null ? int.Parse(Grid1.DataKeys[e.RowIndex][1].ToString()) : -1;
if (inspectionResults == 0)
{
- var tails = Funs.DB.PreRun_InspectTailTerm.Where(x => x.TermItemId == termItemId).ToList();
+ var tails = Funs.DB.TestRun_InspectTailTerm.Where(x => x.TermItemId == termItemId && x.InspectUser == this.CurrUser.UserId).ToList();
if (tails.Count > 0)
{
if (tails.Count(x => x.ApproveState == 0) == 0)
@@ -509,7 +492,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage
///
protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
{
- var isTailTerm = Grid1.DataKeys[e.RowIndex][4].ToString();
+ var isTailTerm = Grid1.DataKeys[e.RowIndex][3].ToString();
LinkButtonField TailTermUpdate = Grid1.FindColumn("TailTermUpdate") as LinkButtonField;
if (isTailTerm == "0")
{
@@ -526,7 +509,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage
{
if (!string.IsNullOrWhiteSpace(hidTailTermId.Text))
{
- var model = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == hidTailTermId.Text);
+ var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == hidTailTermId.Text);
if (model != null)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId={0}&TermItemId={1}", hidTailTermId.Text, model.TermItemId, "编辑 - ")));
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx.designer.cs
index 2eb6f329..5257d4e1 100644
--- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx.designer.cs
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/SubWorkInspect.aspx.designer.cs
@@ -77,15 +77,6 @@ namespace FineUIPro.Web.TestRun.TestRunManage
///
protected global::FineUIPro.Toolbar Toolbar1;
- ///
- /// lblCodeStr 控件。
- ///
- ///
- /// 自动生成的字段。
- /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
- ///
- protected global::FineUIPro.Label lblCodeStr;
-
///
/// ToolbarFill 控件。
///
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx
new file mode 100644
index 00000000..cd8da27d
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx
@@ -0,0 +1,153 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TailTermApprove.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.TailTermApprove" %>
+
+
+
+
+
+ 质量巡检
+
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx.cs
new file mode 100644
index 00000000..0ccc14c5
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx.cs
@@ -0,0 +1,246 @@
+using BLL;
+using Model;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+ public partial class TailTermApprove : PageBase
+ {
+ ///
+ /// 主键
+ ///
+ public string TailTermId
+ {
+ get { return (string)ViewState["TailTermId"]; }
+ set { ViewState["TailTermId"] = value; }
+ }
+
+ ///
+ /// 问题图片是否可编辑
+ ///
+ public int QuestionEditImg
+ {
+ get { return (int)ViewState["QuestionEditImg"]; }
+ set { ViewState["QuestionEditImg"] = value; }
+ }
+
+ ///
+ /// 整改图片是否可编辑
+ ///
+ public int RectifyEditImg
+ {
+ get { return (int)ViewState["RectifyEditImg"]; }
+ set { ViewState["RectifyEditImg"] = value; }
+ }
+
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ this.TailTermId = Request["TailTermId"];
+ this.QuestionEditImg = -1;
+ this.RectifyEditImg = -1;
+ //数据绑定
+ PageInit();
+ //处理意见绑定
+ gvHandleBrid();
+ }
+ }
+
+ ///
+ /// 绑定数据
+ ///
+ public void PageInit()
+ {
+ var data = from tail in Funs.DB.TestRun_InspectTailTerm
+ join unit in Funs.DB.Base_Unit on tail.ConstructionUnit equals unit.UnitId
+ join inspuser in Funs.DB.Sys_User on tail.InspectUser equals inspuser.UserId
+ join approuser in Funs.DB.Sys_User on tail.ApproveUser equals approuser.UserId
+ join termitem in Funs.DB.TestRun_SubInspectTermItem on tail.TermItemId equals termitem.TermItemId
+ where tail.TailTermId == this.TailTermId
+ select new
+ {
+ tail.ProjectName,
+ tail.TailTermCode,
+ unit.UnitName,
+ TermItemName = termitem.WorkInspectName,
+ tail.SubInspectId,
+ tail.QuestionDesc,
+ tail.RectifyOpinion,
+ tail.RectifyTime,
+ tail.InspectUser,
+ InspectUserName = inspuser.UserName,
+ tail.ApproveUser,
+ ApproveUserName = approuser.UserName,
+ tail.AdjustCompleteTime
+ };
+ if (data.Count() > 0)
+ {
+ var model = data.FirstOrDefault();
+ //项目名称
+ lblProjectName.Text = model.ProjectName;
+ //巡检编号
+ lblTailTermCode.Text = model.TailTermCode;
+ //施工单位
+ lblConstructionUnit.Text = model.UnitName;
+ //检查项
+ lblTermItemName.Text = model.TermItemName;
+ //问题描述
+ lblQuestionDesc.Text = model.QuestionDesc;
+ //整改意见
+ lblRectifyOpinion.Text = model.RectifyOpinion;
+ //要求整改完成时间
+ lblAdjustCompleteTime.Text = model.AdjustCompleteTime != null ? model.AdjustCompleteTime.Value.ToString("yyyy-MM-dd hh:mm:ss") : string.Empty;
+ //检查人
+ lblInspectUser.Text = model.InspectUserName;
+ //审核人
+ lblApproveUser.Text = model.ApproveUserName;
+ hidApproveUserId.Text = model.ApproveUser;
+ //审核时间
+ lblApproveTime.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
+ }
+ }
+
+ ///
+ /// 处理意见绑定
+ ///
+ public void gvHandleBrid()
+ {
+ string strSql = @"select a.InspectTermId,a.ApproveOpinion,a.ApproveTime,a.ApproveType,a.ApproveState,(case a.ApproveState when 0 then '处理退回' when 1 then '处理完成' else '' end) as ApproveStateName,b.ConstructionUnit,d.UnitName as ConstructionUnitName,a.AddUser,a.AddTime from TestRun_InspectTermApproveRecords as a inner join TestRun_InspectTailTerm as b on a.TailTermId=b.TailTermId inner join TestRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Unit as d on d.UnitId=b.ConstructionUnit where 1=1 and a.ApproveType=0 and a.ProjectId=@ProjectId and a.TailTermId=@TailTermId ";
+ List listStr = new List();
+ listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
+ listStr.Add(new SqlParameter("@TailTermId", this.TailTermId));
+ strSql += " order by a.AddTime asc";
+ SqlParameter[] parameter = listStr.ToArray();
+ DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
+ gvHandle.DataSource = tb;
+ gvHandle.DataBind();
+ }
+
+ ///
+ /// 问题图片
+ ///
+ protected void imgBtnQuestionFile_Click(object sender, EventArgs e)
+ {
+ PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", QuestionEditImg, this.TailTermId + "q", Const.InspectTailTerm)));
+ }
+
+ ///
+ /// 整改图片
+ ///
+ protected void imgBtnRectifyFile_Click(object sender, EventArgs e)
+ {
+ PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", RectifyEditImg, this.TailTermId + "h", Const.InspectTailTerm)));
+ }
+
+ ///
+ /// 退回
+ ///
+ protected void btnReturn_Click(object sender, EventArgs e)
+ {
+ var tailTerm = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId);
+ if (tailTerm != null)
+ {
+ tailTerm.ApproveState = 3;
+ var model = new TestRun_InspectTermApproveRecords();
+ model.InspectTermId = Guid.NewGuid().ToString();
+ model.ProjectId = this.CurrUser.LoginProjectId;
+ model.TermItemId = tailTerm.TermItemId;
+ model.TailTermId = this.TailTermId;
+ model.ApproveOpinion = txtApproveOpinion.Text;
+ model.ApproveTime = DateTime.Parse(lblApproveTime.Text);
+ model.ApproveUser = hidApproveUserId.Text;
+ //0:处理记录1:审核记录
+ model.ApproveType = 1;
+ //0:退回1:通过
+ model.ApproveState = 0;
+ model.AddUser = this.CurrUser.UserId;
+ model.AddTime = DateTime.Now;
+ Funs.DB.TestRun_InspectTermApproveRecords.InsertOnSubmit(model);
+ Funs.DB.SubmitChanges();
+ ShowNotify("退回成功!", MessageBoxIcon.Success);
+ PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
+ }
+ }
+
+ ///
+ /// 通过
+ ///
+ protected void btnPass_Click(object sender, EventArgs e)
+ {
+ var tailTerm = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId);
+ if (tailTerm != null)
+ {
+ //获取审核项
+ if (Funs.DB.TestRun_InspectTailTerm.Count(x => x.TermItemId == tailTerm.TermItemId && x.ApproveState != 5 && x.TailTermId != this.TailTermId && x.InspectUser == tailTerm.InspectUser) == 0)
+ {
+ var termItemModel = Funs.DB.TestRun_TermItemInspectedUser.FirstOrDefault(x => x.TermItemId == tailTerm.TermItemId && x.InspectedUser == tailTerm.InspectUser);
+ if (termItemModel != null)
+ {
+ termItemModel.InspectionResults = 1;
+ //检查表
+ var subModel = Funs.DB.TestRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == termItemModel.SubInspectId);
+ if (subModel != null)
+ {
+ if (Funs.DB.TestRun_TermItemInspectedUser.Count(x => x.SubInspectId == termItemModel.SubInspectId && x.InspectionResults.GetValueOrDefault() != 1 && x.TermItemId != termItemModel.TermItemId) == 0)
+ {
+ subModel.InspectionIsAllPass = 1;
+ }
+ else
+ {
+ subModel.InspectionIsAllPass = 0;
+ }
+ }
+ //检查项表
+ var subItemModel = Funs.DB.TestRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == termItemModel.TermItemId);
+ if (subItemModel != null)
+ {
+ if (Funs.DB.TestRun_TermItemInspectedUser.Count(x => x.InspectionResults.GetValueOrDefault() != 1 && x.TermItemId == termItemModel.TermItemId && x.InspectedUser != tailTerm.InspectUser) == 0)
+ {
+ subItemModel.AllUserInspectionPass = 1;
+ }
+ else
+ {
+ subItemModel.AllUserInspectionPass = 0;
+ }
+ }
+ }
+ }
+ tailTerm.ApproveState = 5;
+ var model = new TestRun_InspectTermApproveRecords();
+ model.InspectTermId = Guid.NewGuid().ToString();
+ model.ProjectId = this.CurrUser.LoginProjectId;
+ model.TermItemId = tailTerm.TermItemId;
+ model.TailTermId = this.TailTermId;
+ model.ApproveOpinion = txtApproveOpinion.Text;
+ model.ApproveTime = DateTime.Parse(lblApproveTime.Text);
+ model.ApproveUser = hidApproveUserId.Text;
+ //0:处理记录1:审核记录
+ model.ApproveType = 1;
+ //0:退回1:通过
+ model.ApproveState = 1;
+ model.AddUser = this.CurrUser.UserId;
+ model.AddTime = DateTime.Now;
+ Funs.DB.TestRun_InspectTermApproveRecords.InsertOnSubmit(model);
+ Funs.DB.SubmitChanges();
+ ShowNotify("审核成功!", MessageBoxIcon.Success);
+ PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
+ }
+ }
+
+ ///
+ /// 关闭
+ ///
+ protected void WindowAtt_Close(object sender, WindowCloseEventArgs e)
+ {
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx.designer.cs
new file mode 100644
index 00000000..3bf23a18
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApprove.aspx.designer.cs
@@ -0,0 +1,278 @@
+//------------------------------------------------------------------------------
+// <自动生成>
+// 此代码由工具生成。
+//
+// 对此文件的更改可能导致不正确的行为,如果
+// 重新生成代码,则所做更改将丢失。
+// 自动生成>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+
+
+ public partial class TailTermApprove
+ {
+
+ ///
+ /// form1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// SimpleForm1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Form SimpleForm1;
+
+ ///
+ /// ContentPanel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ContentPanel ContentPanel1;
+
+ ///
+ /// Form2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Form Form2;
+
+ ///
+ /// lblProjectName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblProjectName;
+
+ ///
+ /// lblTailTermCode 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblTailTermCode;
+
+ ///
+ /// lblConstructionUnit 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblConstructionUnit;
+
+ ///
+ /// lblTermItemName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblTermItemName;
+
+ ///
+ /// lblQuestionDesc 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblQuestionDesc;
+
+ ///
+ /// lblRectifyOpinion 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblRectifyOpinion;
+
+ ///
+ /// lblInspectUser 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblInspectUser;
+
+ ///
+ /// lblAdjustCompleteTime 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblAdjustCompleteTime;
+
+ ///
+ /// Panel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel1;
+
+ ///
+ /// imgBtnQuestionFile 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button imgBtnQuestionFile;
+
+ ///
+ /// Panel2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel2;
+
+ ///
+ /// lblAttach 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblAttach;
+
+ ///
+ /// imgBtnRectifyFile 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button imgBtnRectifyFile;
+
+ ///
+ /// plApprove2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.FormRow plApprove2;
+
+ ///
+ /// gvHandle 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Grid gvHandle;
+
+ ///
+ /// lblApproveUser 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblApproveUser;
+
+ ///
+ /// hidApproveUserId 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.HiddenField hidApproveUserId;
+
+ ///
+ /// lblApproveTime 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblApproveTime;
+
+ ///
+ /// txtApproveOpinion 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.TextArea txtApproveOpinion;
+
+ ///
+ /// Toolbar1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Toolbar Toolbar1;
+
+ ///
+ /// ToolbarFill1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarFill ToolbarFill1;
+
+ ///
+ /// btnReturn 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnReturn;
+
+ ///
+ /// btnPass 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnPass;
+
+ ///
+ /// WindowAtt 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Window WindowAtt;
+ }
+}
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx
new file mode 100644
index 00000000..e71c3957
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx
@@ -0,0 +1,146 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TailTermApproveList.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.TailTermApproveList" %>
+
+
+
+
+
+
+
+
+ 质量巡检审核
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx.cs
new file mode 100644
index 00000000..efc384b9
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx.cs
@@ -0,0 +1,243 @@
+using BLL;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+ public partial class TailTermApproveList : PageBase
+ {
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ //绑定数据
+ InitTreeMenu();
+ }
+ }
+
+
+ #region 树绑定
+
+ ///
+ /// 加载树
+ ///
+ private void InitTreeMenu()
+ {
+ this.tvControlItem.Nodes.Clear();
+ TreeNode rootNode = new TreeNode();
+ rootNode.Text = "检查表";
+ rootNode.NodeID = "0";
+ rootNode.Expanded = true;
+ rootNode.ToolTip = "";
+ rootNode.EnableClickEvent = true;
+ this.tvControlItem.Nodes.Add(rootNode);
+ var userSubInspects = from a in Funs.DB.TestRun_TermItemInspectedUser
+ join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId
+ join c in Funs.DB.TestRun_InspectTailTerm on a.TermItemId equals c.TermItemId
+ where c.ApproveUser == this.CurrUser.UserId && a.ProjectId == this.CurrUser.LoginProjectId && c.ApproveState >= 3
+ select new { a, b };
+ if (userSubInspects.Count() == 0) return;
+ var systemIds = userSubInspects.Select(x => x.b.SystemId);
+ var workPackIds = userSubInspects.Select(x => x.b.WorkPackId);
+ var list = from a in Funs.DB.PreRun_SysDevice
+ join b in Funs.DB.TestRun_SubSysWorkPackage on a.PreRunId equals b.SystemId
+ join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId
+ where a.ProjectId == this.CurrUser.LoginProjectId && systemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId)
+ select new { a.PreRunId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode };
+ if (list.Count() > 0)
+ {
+ var ids = list.Select(x => x.ProcessesId).ToList();
+ ids.AddRange(list.Select(x => x.PreRunId).ToList());
+ ids = ids.Distinct().ToList();
+ var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList();
+ if (syslist.Count > 0)
+ {
+ var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList();
+ foreach (var itemOne in oneIds)
+ {
+ var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne);
+ TreeNode rootOneNode = new TreeNode();
+ rootOneNode.NodeID = itemOneModel.PreRunId;
+ rootOneNode.Text = itemOneModel.PreRunName;
+ rootOneNode.ToolTip = itemOneModel.PreRunName;
+ rootOneNode.CommandName = "";
+ rootOneNode.EnableClickEvent = false;
+ rootOneNode.EnableExpandEvent = false;
+ rootNode.Nodes.Add(rootOneNode);
+ rootOneNode.Expanded = true;
+ var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName });
+ foreach (var itemTwo in subTwoList)
+ {
+ TreeNode rootTwoNode = new TreeNode();
+ rootTwoNode.NodeID = itemTwo.Key.PreRunId;
+ rootTwoNode.Text = itemTwo.Key.PreRunName;
+ rootTwoNode.ToolTip = itemTwo.Key.PreRunName;
+ rootTwoNode.CommandName = "";
+ rootTwoNode.EnableClickEvent = false;
+ rootTwoNode.EnableExpandEvent = false;
+ rootOneNode.Nodes.Add(rootTwoNode);
+ rootTwoNode.Expanded = true;
+ var worklist = list.Where(a => a.PreRunId == itemTwo.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackCode }).ToList();
+ if (worklist.Count > 0)
+ {
+ foreach (var itemWork in worklist.OrderBy(o => o.Key.WorkPackCode))
+ {
+ TreeNode newNode = new TreeNode();
+ newNode.Text = itemWork.Key.WorkPackName;
+ newNode.NodeID = itemWork.Key.WorkPackId + "|" + itemTwo.Key.PreRunId;
+ newNode.ToolTip = itemWork.Key.WorkPackName;
+ newNode.CommandName = "";
+ newNode.Expanded = true;
+ newNode.EnableClickEvent = true;
+ newNode.EnableExpandEvent = true;
+ rootTwoNode.Nodes.Add(newNode);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ ///
+ /// 点击TreeView
+ ///
+ protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
+ {
+ this.BindGrid();
+ }
+
+ #endregion
+
+ #region 绑定数据
+
+ ///
+ /// 数据绑定
+ ///
+ public void BindGrid()
+ {
+ string strSql = @"select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.SubInspectId,a.TermItemId,c.WorkInspectName,a.QuestionDesc,a.RectifyTime,a.RectifyOpinion,a.InspectUser,e.UserName as InspectUserName,a.ApproveUser,f.UserName as ApproveUserName,a.HandleUser,g.UserName as HandleUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交处理' when 1 then '待处理' when 2 then '处理退回' when 3 then '审核退回' when 4 then '待审核' when 5 then '审核通过' else '' end) as ApproveStateName,a.AddTime,a.WorkPackId,c.SystemId,a.AdjustCompleteTime,DATEDIFF(DAY, GETDATE(),a.AdjustCompleteTime) as AdjustDiffDay from TestRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join TestRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Project as d on d.ProjectId=a.ProjectId inner join Sys_User as e on e.UserId=a.InspectUser inner join Sys_User as f on f.UserId=a.ApproveUser inner join Sys_User as g on g.UserId=a.HandleUser where 1=1 and a.ProjectId=@projectid and a.ApproveUser=@ApproveUser and a.ApproveState>=3";
+ List listStr = new List();
+ listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId));
+ listStr.Add(new SqlParameter("@ApproveUser", this.CurrUser.UserId));
+ if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0)
+ {
+ var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First();
+ strSql += " and a.WorkPackId=@WorkPackId";
+ listStr.Add(new SqlParameter("@WorkPackId", workPackId));
+ }
+ if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1)
+ {
+ var systemId = this.tvControlItem.SelectedNodeID.Split('|').Last();
+ strSql += " and c.SystemId=@SystemId";
+ listStr.Add(new SqlParameter("@SystemId", systemId));
+ }
+ //审核状态
+ if (!string.IsNullOrWhiteSpace(ddlApproveState.SelectedValue))
+ {
+ strSql += " and a.ApproveState=@ApproveState";
+ listStr.Add(new SqlParameter("@ApproveState", ddlApproveState.SelectedValue));
+ }
+ strSql += " order by a.AddTime asc";
+ SqlParameter[] parameter = listStr.ToArray();
+ DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
+ Grid1.RecordCount = tb.Rows.Count;
+ var table = this.GetPagedDataTable(Grid1, tb);
+ Grid1.DataSource = table;
+ Grid1.DataBind();
+ }
+
+ ///
+ /// 分页
+ ///
+ protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
+ {
+ Grid1.PageIndex = e.NewPageIndex;
+ BindGrid();
+ }
+
+ ///
+ /// 双击事件
+ ///
+ protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
+ {
+ btnMenuApprove_Click(null, null);
+ }
+
+ ///
+ /// 分页下拉框
+ ///
+ protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
+ BindGrid();
+ }
+
+ ///
+ /// 排序
+ ///
+ protected void Grid1_Sort(object sender, GridSortEventArgs e)
+ {
+ BindGrid();
+ }
+
+ #endregion
+
+ #region 按钮和操作
+
+ ///
+ /// 关闭弹框
+ ///
+ protected void Window1_Close(object sender, WindowCloseEventArgs e)
+ {
+ BindGrid();
+ }
+
+ ///
+ /// 审核
+ ///
+ protected void btnReview_Click(object sender, EventArgs e)
+ {
+ btnMenuApprove_Click(null, null);
+ }
+
+ ///
+ /// 审核
+ ///
+ protected void btnMenuApprove_Click(object sender, EventArgs e)
+ {
+ if (Grid1.SelectedRowIndexArray.Length == 0)
+ {
+ Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID);
+ if (model != null)
+ {
+ if (model.ApproveState != 4)
+ {
+ Alert.ShowInTop("只可审核“待审核”的记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ }
+ PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TailTermApprove.aspx?TailTermId={0}", Grid1.SelectedRowID, "审核 - ")));
+ }
+
+ ///
+ /// 搜索
+ ///
+ protected void btnQuery_Click(object sender, EventArgs e)
+ {
+ BindGrid();
+ }
+
+ #endregion
+
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx.designer.cs
new file mode 100644
index 00000000..e6b7e43b
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermApproveList.aspx.designer.cs
@@ -0,0 +1,161 @@
+//------------------------------------------------------------------------------
+// <自动生成>
+// 此代码由工具生成。
+//
+// 对此文件的更改可能导致不正确的行为,如果
+// 重新生成代码,则所做更改将丢失。
+// 自动生成>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+
+
+ public partial class TailTermApproveList
+ {
+
+ ///
+ /// form1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// Panel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel1;
+
+ ///
+ /// panelLeftRegion 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel panelLeftRegion;
+
+ ///
+ /// tvControlItem 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Tree tvControlItem;
+
+ ///
+ /// Grid1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Grid Grid1;
+
+ ///
+ /// Toolbar1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Toolbar Toolbar1;
+
+ ///
+ /// ddlApproveState 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList ddlApproveState;
+
+ ///
+ /// btnQuery 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnQuery;
+
+ ///
+ /// btnReview 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnReview;
+
+ ///
+ /// ToolbarSeparator1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
+
+ ///
+ /// ToolbarText1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarText ToolbarText1;
+
+ ///
+ /// ddlPageSize 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList ddlPageSize;
+
+ ///
+ /// Window1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Window Window1;
+
+ ///
+ /// Menu1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Menu Menu1;
+
+ ///
+ /// btnMenuApprove 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.MenuButton btnMenuApprove;
+ }
+}
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx
new file mode 100644
index 00000000..bf241230
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx
@@ -0,0 +1,131 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TailTermHandle.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.TailTermHandle" %>
+
+
+
+
+
+ 质量巡检
+
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx.cs
new file mode 100644
index 00000000..487522f3
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx.cs
@@ -0,0 +1,191 @@
+using BLL;
+using Model;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+ public partial class TailTermHandle : PageBase
+ {
+ ///
+ /// 主键
+ ///
+ public string TailTermId
+ {
+ get { return (string)ViewState["TailTermId"]; }
+ set { ViewState["TailTermId"] = value; }
+ }
+
+ ///
+ /// 问题图片是否可编辑
+ ///
+ public int QuestionEditImg
+ {
+ get { return (int)ViewState["QuestionEditImg"]; }
+ set { ViewState["QuestionEditImg"] = value; }
+ }
+
+ ///
+ /// 整改图片是否可编辑
+ ///
+ public int RectifyEditImg
+ {
+ get { return (int)ViewState["RectifyEditImg"]; }
+ set { ViewState["RectifyEditImg"] = value; }
+ }
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ this.TailTermId = Request["TailTermId"];
+ this.QuestionEditImg = -1;
+ this.RectifyEditImg = 0;
+ //数据绑定
+ PageInit();
+ }
+ }
+
+ ///
+ /// 绑定数据
+ ///
+ public void PageInit()
+ {
+ var data = from tail in Funs.DB.TestRun_InspectTailTerm
+ join unit in Funs.DB.Base_Unit on tail.ConstructionUnit equals unit.UnitId
+ join inspuser in Funs.DB.Sys_User on tail.InspectUser equals inspuser.UserId
+ join handleuser in Funs.DB.Sys_User on tail.HandleUser equals handleuser.UserId
+ join termitem in Funs.DB.TestRun_SubInspectTermItem on tail.TermItemId equals termitem.TermItemId
+ where tail.TailTermId == this.TailTermId
+ select new
+ {
+ tail.ProjectName,
+ tail.TailTermCode,
+ unit.UnitName,
+ TermItemName = termitem.WorkInspectName,
+ tail.SubInspectId,
+ tail.QuestionDesc,
+ tail.RectifyOpinion,
+ tail.RectifyTime,
+ tail.InspectUser,
+ InspectUserName = inspuser.UserName,
+ tail.HandleUser,
+ HandleUserName = handleuser.UserName,
+ tail.AdjustCompleteTime
+ };
+ if (data.Count() > 0)
+ {
+ var model = data.FirstOrDefault();
+ //项目名称
+ lblProjectName.Text = model.ProjectName;
+ //巡检编号
+ lblTailTermCode.Text = model.TailTermCode;
+ //施工单位
+ lblConstructionUnit.Text = model.UnitName;
+ //检查项
+ lblTermItemName.Text = model.TermItemName;
+ //问题描述
+ lblQuestionDesc.Text = model.QuestionDesc;
+ //整改意见
+ lblRectifyOpinion.Text = model.RectifyOpinion;
+ //要求整改完成时间
+ lblAdjustCompleteTime.Text = model.AdjustCompleteTime != null ? model.AdjustCompleteTime.Value.ToString("yyyy-MM-dd hh:mm:ss") : string.Empty;
+ //检查人
+ lblInspectUser.Text = model.InspectUserName;
+ //处理人
+ lblApproveUser.Text = model.HandleUserName;
+ hidApproveUserId.Text = model.HandleUser;
+ //处理时间
+ lblApproveTime.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
+ }
+ }
+
+ ///
+ /// 问题图片
+ ///
+ protected void imgBtnQuestionFile_Click(object sender, EventArgs e)
+ {
+ PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", QuestionEditImg, this.TailTermId + "q", Const.InspectTailTerm)));
+ }
+
+ ///
+ /// 整改图片
+ ///
+ protected void imgBtnRectifyFile_Click(object sender, EventArgs e)
+ {
+ PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", RectifyEditImg, this.TailTermId + "h", Const.InspectTailTerm)));
+ }
+
+ ///
+ /// 处理退回
+ ///
+ protected void btnReturn_Click(object sender, EventArgs e)
+ {
+ var tailTerm = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId);
+ if (tailTerm != null)
+ {
+ tailTerm.ApproveState = 2;
+ var model = new TestRun_InspectTermApproveRecords();
+ model.InspectTermId = Guid.NewGuid().ToString();
+ model.ProjectId = this.CurrUser.LoginProjectId;
+ model.TermItemId = tailTerm.TermItemId;
+ model.TailTermId = this.TailTermId;
+ model.ApproveOpinion = txtApproveOpinion.Text;
+ model.ApproveTime = DateTime.Parse(lblApproveTime.Text);
+ model.ApproveUser = hidApproveUserId.Text;
+ //0:处理记录1:审核记录
+ model.ApproveType = 0;
+ //0:退回1:通过
+ model.ApproveState = 0;
+ model.AddUser = this.CurrUser.UserId;
+ model.AddTime = DateTime.Now;
+ Funs.DB.TestRun_InspectTermApproveRecords.InsertOnSubmit(model);
+ Funs.DB.SubmitChanges();
+ ShowNotify("退回成功!", MessageBoxIcon.Success);
+ PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
+ }
+ }
+
+ ///
+ /// 处理通过并提交审核
+ ///
+ protected void btnPass_Click(object sender, EventArgs e)
+ {
+ var tailTerm = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId);
+ if (tailTerm != null)
+ {
+ tailTerm.ApproveState = 4;
+ var model = new TestRun_InspectTermApproveRecords();
+ model.InspectTermId = Guid.NewGuid().ToString();
+ model.ProjectId = this.CurrUser.LoginProjectId;
+ model.TermItemId = tailTerm.TermItemId;
+ model.TailTermId = this.TailTermId;
+ model.ApproveOpinion = txtApproveOpinion.Text;
+ model.ApproveTime = DateTime.Parse(lblApproveTime.Text);
+ model.ApproveUser = hidApproveUserId.Text;
+ //0:处理记录1:审核记录
+ model.ApproveType = 0;
+ //0:退回1:通过
+ model.ApproveState = 1;
+ model.AddUser = this.CurrUser.UserId;
+ model.AddTime = DateTime.Now;
+ Funs.DB.TestRun_InspectTermApproveRecords.InsertOnSubmit(model);
+ Funs.DB.SubmitChanges();
+ ShowNotify("处理成功!", MessageBoxIcon.Success);
+ PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
+ }
+ }
+
+ ///
+ /// 关闭
+ ///
+ protected void WindowAtt_Close(object sender, WindowCloseEventArgs e)
+ {
+
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx.designer.cs
new file mode 100644
index 00000000..dc2d0c87
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandle.aspx.designer.cs
@@ -0,0 +1,260 @@
+//------------------------------------------------------------------------------
+// <自动生成>
+// 此代码由工具生成。
+//
+// 对此文件的更改可能导致不正确的行为,如果
+// 重新生成代码,则所做更改将丢失。
+// 自动生成>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+
+
+ public partial class TailTermHandle
+ {
+
+ ///
+ /// form1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// SimpleForm1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Form SimpleForm1;
+
+ ///
+ /// ContentPanel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ContentPanel ContentPanel1;
+
+ ///
+ /// Form2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Form Form2;
+
+ ///
+ /// lblProjectName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblProjectName;
+
+ ///
+ /// lblTailTermCode 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblTailTermCode;
+
+ ///
+ /// lblConstructionUnit 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblConstructionUnit;
+
+ ///
+ /// lblTermItemName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblTermItemName;
+
+ ///
+ /// lblQuestionDesc 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblQuestionDesc;
+
+ ///
+ /// lblRectifyOpinion 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblRectifyOpinion;
+
+ ///
+ /// lblInspectUser 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblInspectUser;
+
+ ///
+ /// lblAdjustCompleteTime 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblAdjustCompleteTime;
+
+ ///
+ /// Panel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel1;
+
+ ///
+ /// imgBtnQuestionFile 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button imgBtnQuestionFile;
+
+ ///
+ /// Panel2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel2;
+
+ ///
+ /// lblAttach 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblAttach;
+
+ ///
+ /// imgBtnRectifyFile 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button imgBtnRectifyFile;
+
+ ///
+ /// lblApproveUser 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblApproveUser;
+
+ ///
+ /// hidApproveUserId 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.HiddenField hidApproveUserId;
+
+ ///
+ /// lblApproveTime 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblApproveTime;
+
+ ///
+ /// txtApproveOpinion 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.TextArea txtApproveOpinion;
+
+ ///
+ /// Toolbar1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Toolbar Toolbar1;
+
+ ///
+ /// ToolbarFill1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarFill ToolbarFill1;
+
+ ///
+ /// btnReturn 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnReturn;
+
+ ///
+ /// btnPass 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnPass;
+
+ ///
+ /// WindowAtt 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Window WindowAtt;
+ }
+}
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx
new file mode 100644
index 00000000..6fc243f8
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx
@@ -0,0 +1,146 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TailTermHandleList.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.TailTermHandleList" %>
+
+
+
+
+
+
+
+
+ 质量巡检处理确认
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx.cs
new file mode 100644
index 00000000..ae1a6c68
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx.cs
@@ -0,0 +1,244 @@
+using BLL;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+ public partial class TailTermHandleList : PageBase
+ {
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ //绑定数据
+ InitTreeMenu();
+ }
+ }
+
+ #region 树绑定
+
+ ///
+ /// 加载树
+ ///
+ private void InitTreeMenu()
+ {
+ this.tvControlItem.Nodes.Clear();
+ TreeNode rootNode = new TreeNode();
+ rootNode.Text = "检查表";
+ rootNode.NodeID = "0";
+ rootNode.Expanded = true;
+ rootNode.ToolTip = "";
+ rootNode.EnableClickEvent = true;
+ this.tvControlItem.Nodes.Add(rootNode);
+ var userSubInspects = from a in Funs.DB.TestRun_TermItemInspectedUser
+ join b in Funs.DB.TestRun_SubInspectTermItem on a.TermItemId equals b.TermItemId
+ join c in Funs.DB.TestRun_InspectTailTerm on a.TermItemId equals c.TermItemId
+ where c.HandleUser == this.CurrUser.UserId && a.ProjectId == this.CurrUser.LoginProjectId && c.ApproveState >= 1
+ select new { a, b };
+ if (userSubInspects.Count() == 0) return;
+ var systemIds = userSubInspects.Select(x => x.b.SystemId);
+ var workPackIds = userSubInspects.Select(x => x.b.WorkPackId);
+ var list = from a in Funs.DB.PreRun_SysDevice
+ join b in Funs.DB.TestRun_SubSysWorkPackage on a.PreRunId equals b.SystemId
+ join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId
+ where a.ProjectId == this.CurrUser.LoginProjectId && systemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId)
+ select new { a.PreRunId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode };
+ if (list.Count() > 0)
+ {
+ var ids = list.Select(x => x.ProcessesId).ToList();
+ ids.AddRange(list.Select(x => x.PreRunId).ToList());
+ ids = ids.Distinct().ToList();
+ var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList();
+ if (syslist.Count > 0)
+ {
+ var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList();
+ foreach (var itemOne in oneIds)
+ {
+ var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne);
+ TreeNode rootOneNode = new TreeNode();
+ rootOneNode.NodeID = itemOneModel.PreRunId;
+ rootOneNode.Text = itemOneModel.PreRunName;
+ rootOneNode.ToolTip = itemOneModel.PreRunName;
+ rootOneNode.CommandName = "";
+ rootOneNode.EnableClickEvent = false;
+ rootOneNode.EnableExpandEvent = false;
+ rootNode.Nodes.Add(rootOneNode);
+ rootOneNode.Expanded = true;
+ var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName });
+ foreach (var itemTwo in subTwoList)
+ {
+ TreeNode rootTwoNode = new TreeNode();
+ rootTwoNode.NodeID = itemTwo.Key.PreRunId;
+ rootTwoNode.Text = itemTwo.Key.PreRunName;
+ rootTwoNode.ToolTip = itemTwo.Key.PreRunName;
+ rootTwoNode.CommandName = "";
+ rootTwoNode.EnableClickEvent = false;
+ rootTwoNode.EnableExpandEvent = false;
+ rootOneNode.Nodes.Add(rootTwoNode);
+ rootTwoNode.Expanded = true;
+ var worklist = list.Where(a => a.PreRunId == itemTwo.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackCode }).ToList();
+ if (worklist.Count > 0)
+ {
+ foreach (var itemWork in worklist.OrderBy(o => o.Key.WorkPackCode))
+ {
+ TreeNode newNode = new TreeNode();
+ newNode.Text = itemWork.Key.WorkPackName;
+ newNode.NodeID = itemWork.Key.WorkPackId + "|" + itemTwo.Key.PreRunId;
+ newNode.ToolTip = itemWork.Key.WorkPackName;
+ newNode.CommandName = "";
+ newNode.Expanded = true;
+ newNode.EnableClickEvent = true;
+ newNode.EnableExpandEvent = true;
+ rootTwoNode.Nodes.Add(newNode);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ ///
+ /// 点击TreeView
+ ///
+ protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
+ {
+ this.BindGrid();
+ }
+
+ #endregion
+
+ #region 绑定数据
+
+ ///
+ /// 数据绑定
+ ///
+ public void BindGrid()
+ {
+ string strSql = @"select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.SubInspectId,a.TermItemId,c.WorkInspectName,a.QuestionDesc,a.RectifyTime,a.RectifyOpinion,a.InspectUser,e.UserName as InspectUserName,a.ApproveUser,f.UserName as ApproveUserName,a.HandleUser,g.UserName as HandleUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交处理' when 1 then '待处理' when 2 then '处理退回' when 3 then '审核退回' when 4 then '待审核' when 5 then '审核通过' else '' end) as ApproveStateName,a.AddTime,a.WorkPackId,c.SystemId,a.AdjustCompleteTime,DATEDIFF(DAY, GETDATE(),a.AdjustCompleteTime) as AdjustDiffDay from TestRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join TestRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Project as d on d.ProjectId=a.ProjectId inner join Sys_User as e on e.UserId=a.InspectUser inner join Sys_User as f on f.UserId=a.ApproveUser inner join Sys_User as g on g.UserId=a.HandleUser where 1=1 and a.ProjectId=@projectid and a.HandleUser=@HandleUser and a.ApproveState>=1";
+ List listStr = new List();
+ listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId));
+ listStr.Add(new SqlParameter("@HandleUser", this.CurrUser.UserId));
+ if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0)
+ {
+ var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First();
+ strSql += " and a.WorkPackId=@WorkPackId";
+ listStr.Add(new SqlParameter("@WorkPackId", workPackId));
+ }
+ if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1)
+ {
+ var systemId = this.tvControlItem.SelectedNodeID.Split('|').Last();
+ strSql += " and c.SystemId=@SystemId";
+ listStr.Add(new SqlParameter("@SystemId", systemId));
+ }
+ //审核状态
+ if (!string.IsNullOrWhiteSpace(ddlApproveState.SelectedValue))
+ {
+ strSql += " and a.ApproveState=@ApproveState";
+ listStr.Add(new SqlParameter("@ApproveState", ddlApproveState.SelectedValue));
+ }
+ strSql += " order by a.AddTime asc";
+ SqlParameter[] parameter = listStr.ToArray();
+ DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
+ Grid1.RecordCount = tb.Rows.Count;
+ var table = this.GetPagedDataTable(Grid1, tb);
+ Grid1.DataSource = table;
+ Grid1.DataBind();
+ }
+
+ ///
+ /// 分页
+ ///
+ protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
+ {
+ Grid1.PageIndex = e.NewPageIndex;
+ BindGrid();
+ }
+
+ ///
+ /// 双击事件
+ ///
+ protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
+ {
+ btnMenuApprove_Click(null, null);
+ }
+
+ ///
+ /// 分页下拉框
+ ///
+ protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
+ BindGrid();
+ }
+
+ ///
+ /// 排序
+ ///
+ protected void Grid1_Sort(object sender, GridSortEventArgs e)
+ {
+ BindGrid();
+ }
+
+ #endregion
+
+ #region 按钮
+
+ ///
+ /// 关闭弹框
+ ///
+ protected void Window1_Close(object sender, WindowCloseEventArgs e)
+ {
+ BindGrid();
+ }
+
+ ///
+ /// 处理
+ ///
+ protected void btnReview_Click(object sender, EventArgs e)
+ {
+ btnMenuApprove_Click(null, null);
+ }
+
+ ///
+ /// 处理
+ ///
+ protected void btnMenuApprove_Click(object sender, EventArgs e)
+ {
+ if (Grid1.SelectedRowIndexArray.Length == 0)
+ {
+ Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
+ return;
+ }
+
+ var passLs = new List() { 1, 3 };
+ var model = Funs.DB.TestRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID);
+ if (model != null)
+ {
+ if (!passLs.Contains(model.ApproveState.Value))
+ {
+ Alert.ShowInTop("只可处理“待处理”和“审核退回”的记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ }
+ PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TailTermHandle.aspx?TailTermId={0}", Grid1.SelectedRowID, "审核 - ")));
+ }
+
+ ///
+ /// 搜索
+ ///
+ protected void btnQuery_Click(object sender, EventArgs e)
+ {
+ BindGrid();
+ }
+
+ #endregion
+
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx.designer.cs
new file mode 100644
index 00000000..3fc738bc
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TailTermHandleList.aspx.designer.cs
@@ -0,0 +1,161 @@
+//------------------------------------------------------------------------------
+// <自动生成>
+// 此代码由工具生成。
+//
+// 对此文件的更改可能导致不正确的行为,如果
+// 重新生成代码,则所做更改将丢失。
+// 自动生成>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+
+
+ public partial class TailTermHandleList
+ {
+
+ ///
+ /// form1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// Panel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel1;
+
+ ///
+ /// panelLeftRegion 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel panelLeftRegion;
+
+ ///
+ /// tvControlItem 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Tree tvControlItem;
+
+ ///
+ /// Grid1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Grid Grid1;
+
+ ///
+ /// Toolbar1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Toolbar Toolbar1;
+
+ ///
+ /// ddlApproveState 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList ddlApproveState;
+
+ ///
+ /// btnQuery 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnQuery;
+
+ ///
+ /// btnReview 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnReview;
+
+ ///
+ /// ToolbarSeparator1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
+
+ ///
+ /// ToolbarText1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarText ToolbarText1;
+
+ ///
+ /// ddlPageSize 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList ddlPageSize;
+
+ ///
+ /// Window1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Window Window1;
+
+ ///
+ /// Menu1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Menu Menu1;
+
+ ///
+ /// btnMenuApprove 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.MenuButton btnMenuApprove;
+ }
+}
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx
new file mode 100644
index 00000000..63c0b06b
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx
@@ -0,0 +1,163 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestRunRecordUpload.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.TestRunRecordUpload" %>
+
+
+
+
+
+ 记录文件上传和任务单关闭
+
+
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx.cs
new file mode 100644
index 00000000..8eb5fff5
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx.cs
@@ -0,0 +1,206 @@
+using BLL;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+ public partial class TestRunRecordUpload : PageBase
+ {
+ ///
+ /// 主键
+ ///
+ public string SubInspectId
+ {
+ get { return (string)ViewState["SubInspectId"]; }
+ set { ViewState["SubInspectId"] = value; }
+ }
+
+ ///
+ /// 是否查看
+ ///
+ public bool IsView
+ {
+ get { return (bool)ViewState["IsView"]; }
+ set { ViewState["IsView"] = value; }
+ }
+
+ ///
+ /// 实施附件查看
+ ///
+ public int SiteImplement
+ {
+ get { return (int)ViewState["SiteImplement"]; }
+ set { ViewState["SiteImplement"] = value; }
+ }
+
+ ///
+ /// 附件
+ ///
+ public int RecordUpload
+ {
+ get { return (int)ViewState["RecordUpload"]; }
+ set { ViewState["RecordUpload"] = value; }
+ }
+
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ this.SubInspectId = Request["SubInspectId"];
+ //是否查看
+ this.IsView = string.IsNullOrWhiteSpace(Request["IsView"]) ? false : bool.Parse(Request["IsView"]);
+ //数据绑定
+ PageInit();
+ //判断是否查看
+ if (IsView)
+ {
+ btnSubmit.Hidden = true;
+ SiteImplement = -1;
+ RecordUpload = -1;
+ }
+ }
+ }
+
+ ///
+ /// 默认绑定
+ ///
+ public void PageInit()
+ {
+ SiteImplement = -1;
+ RecordUpload = 0;
+ //获取检查表数据
+ var data = from a in Funs.DB.TestRun_SubInspectTerm
+ join b in Funs.DB.TestRun_WorkPackage on a.WorkPackId equals b.WorkPackId
+ join c in Funs.DB.Sys_User on a.AddUser equals c.UserId
+ join d in Funs.DB.Sys_User on a.Subcontractor equals d.UserId
+ join e in Funs.DB.Sys_User on a.Contractor equals e.UserId
+ join f in Funs.DB.Sys_User on a.Supervision equals f.UserId
+ join g in Funs.DB.Sys_User on a.Owner equals g.UserId
+ join h in Funs.DB.Base_Project on a.ProjectId equals h.ProjectId
+ join i in Funs.DB.Sys_User on a.SiteImplementUser equals i.UserId
+ where a.SubInspectId == this.SubInspectId
+ select new
+ {
+ a.SubInspectId,
+ a.ProjectId,
+ h.ProjectCode,
+ h.ProjectName,
+ b.WorkPackName,
+ InspectUser = c.UserName,
+ InspectData = a.AddTime,
+ SubcontractorName = d.UserName,
+ ContractorName = e.UserName,
+ SupervisionName = f.UserName,
+ OwnerName = g.UserName,
+ a.RecordUploadData,
+ a.IsSiteImplement,
+ a.SiteImplementConfirmData,
+ SiteImplementName = i.UserName,
+ a.SiteImplementUser,
+ a.InspectIsClose,
+ a.InspectCloseData
+ };
+ var inspectTermModel = data.FirstOrDefault();
+ if (inspectTermModel != null)
+ {
+ lblProjectName.Text = inspectTermModel.ProjectName;
+ lblProjectCode.Text = inspectTermModel.ProjectCode;
+ lblWorkPackName.Text = inspectTermModel.WorkPackName;
+ lblInspectUser.Text = inspectTermModel.InspectUser;
+ lblInspectData.Text = inspectTermModel.InspectData != null ? inspectTermModel.InspectData.Value.ToString("yyyy-MM-dd") : string.Empty;
+ lblSubcontractorName.Text = inspectTermModel.SubcontractorName;
+ lblContractorName.Text = inspectTermModel.ContractorName;
+ lblSupervisionName.Text = inspectTermModel.SupervisionName;
+ lblOwnerName.Text = inspectTermModel.OwnerName;
+ lblSiteImplementName.Text = inspectTermModel.SiteImplementName;
+ lblSiteImplementConfirmData.Text = inspectTermModel.SiteImplementConfirmData != null ? inspectTermModel.SiteImplementConfirmData.Value.ToString("yyyy-MM-dd") : string.Empty;
+ rblInspectIsClose.SelectedValue = inspectTermModel.InspectIsClose != null ? inspectTermModel.InspectIsClose.ToString() : "0";
+ lblInspectCloseData.Text = inspectTermModel.InspectCloseData != null ? inspectTermModel.InspectCloseData.Value.ToString("yyyy-MM-dd") : string.Empty;
+ }
+ //获取检查项数据
+ var InspectTermItems = from a in Funs.DB.TestRun_SubInspectTermItem
+ join b in Funs.DB.TestRun_TermItemInspectedUser on a.TermItemId equals b.TermItemId
+ join c in Funs.DB.Sys_User on b.InspectedUser equals c.UserId
+ where a.SubInspectId == this.SubInspectId
+ orderby a.Sort ascending
+ select new
+ {
+ a.TermItemId,
+ a.WorkInspectName,
+ b.InspectedUser,
+ InspectedUserName = c.UserName,
+ b.InspectionResults,
+ InspectionResultsName = b.InspectionResults == 1 ? "通过" : "未通过",
+ b.InspectionIllustrate
+ };
+ var itemDatas = InspectTermItems.ToList();
+ gvTermItem.DataSource = itemDatas;
+ gvTermItem.DataBind();
+ }
+
+ #region 按钮
+
+ ///
+ /// 保存并提交
+ ///
+ protected void btnSubmit_Click(object sender, EventArgs e)
+ {
+ var subModel = Funs.DB.TestRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == this.SubInspectId);
+ if (subModel != null)
+ {
+ subModel.InspectIsClose = int.Parse(rblInspectIsClose.SelectedValue);
+ if (!string.IsNullOrWhiteSpace(lblInspectCloseData.Text))
+ {
+ subModel.InspectCloseData = DateTime.Parse(lblInspectCloseData.Text);
+ subModel.InspectIsCloseUser = this.CurrUser.UserId;
+ }
+ else
+ {
+ subModel.InspectCloseData = null;
+ subModel.InspectIsCloseUser = string.Empty;
+ }
+ }
+ Funs.DB.SubmitChanges();
+ ShowNotify("操作成功!", MessageBoxIcon.Success);
+ PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
+ }
+
+ ///
+ /// 现场实施是否完成
+ ///
+ protected void rblInspectIsClose_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ lblInspectCloseData.Text = rblInspectIsClose.SelectedValue == "1" ? DateTime.Now.ToString("yyyy-MM-dd") : string.Empty;
+ }
+
+ ///
+ /// 试车记录上传
+ ///
+ protected void btnRecordUpload_Click(object sender, EventArgs e)
+ {
+ PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", this.RecordUpload, this.SubInspectId + "_scjlsc", Const.InspectTailTerm)));
+ }
+
+ ///
+ /// 现场实施记录查看
+ ///
+ protected void btnSiteImplement_Click(object sender, EventArgs e)
+ {
+ PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", this.SiteImplement, this.SubInspectId + "_xcss", Const.InspectTailTerm)));
+ }
+
+ ///
+ /// 关闭
+ ///
+ protected void WindowAtt_Close(object sender, WindowCloseEventArgs e)
+ {
+ lblSiteImplementConfirmData.Text = Funs.DB.AttachFile.Count(x => x.ToKeyId == this.SubInspectId + "_scjlsc" && x.AttachUrl != null && x.AttachUrl != "") > 0 ? DateTime.Now.ToString("yyyy-MM-dd") : string.Empty;
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx.designer.cs
new file mode 100644
index 00000000..804dc5eb
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUpload.aspx.designer.cs
@@ -0,0 +1,278 @@
+//------------------------------------------------------------------------------
+// <自动生成>
+// 此代码由工具生成。
+//
+// 对此文件的更改可能导致不正确的行为,如果
+// 重新生成代码,则所做更改将丢失。
+// 自动生成>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+
+
+ public partial class TestRunRecordUpload
+ {
+
+ ///
+ /// form1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// SimpleForm1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Form SimpleForm1;
+
+ ///
+ /// ContentPanel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ContentPanel ContentPanel1;
+
+ ///
+ /// Form2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Form Form2;
+
+ ///
+ /// lblProjectName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblProjectName;
+
+ ///
+ /// lblProjectCode 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblProjectCode;
+
+ ///
+ /// lblInspectUser 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblInspectUser;
+
+ ///
+ /// lblInspectData 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblInspectData;
+
+ ///
+ /// lblSubcontractorName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblSubcontractorName;
+
+ ///
+ /// lblContractorName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblContractorName;
+
+ ///
+ /// lblSupervisionName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblSupervisionName;
+
+ ///
+ /// lblOwnerName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblOwnerName;
+
+ ///
+ /// lblSiteImplementName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblSiteImplementName;
+
+ ///
+ /// lblSiteImplementConfirmData 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblSiteImplementConfirmData;
+
+ ///
+ /// lblWorkPackName 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblWorkPackName;
+
+ ///
+ /// rblInspectIsClose 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.RadioButtonList rblInspectIsClose;
+
+ ///
+ /// lblInspectCloseData 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Label lblInspectCloseData;
+
+ ///
+ /// xcssfj 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.FormRow xcssfj;
+
+ ///
+ /// Panel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel1;
+
+ ///
+ /// btnSiteImplement 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnSiteImplement;
+
+ ///
+ /// Panel2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel2;
+
+ ///
+ /// btnRecordUpload 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnRecordUpload;
+
+ ///
+ /// plApprove2 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.FormRow plApprove2;
+
+ ///
+ /// gvTermItem 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Grid gvTermItem;
+
+ ///
+ /// Toolbar1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Toolbar Toolbar1;
+
+ ///
+ /// ToolbarFill1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarFill ToolbarFill1;
+
+ ///
+ /// btnSubmit 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnSubmit;
+
+ ///
+ /// WindowAtt 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Window WindowAtt;
+ }
+}
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx
new file mode 100644
index 00000000..2fb83592
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx
@@ -0,0 +1,152 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestRunRecordUploadList.aspx.cs" Inherits="FineUIPro.Web.TestRun.TestRunManage.TestRunRecordUploadList" %>
+
+
+
+
+
+
+
+
+ 试车记录上传
+
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx.cs
new file mode 100644
index 00000000..3f4a0daa
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx.cs
@@ -0,0 +1,269 @@
+using BLL;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+ public partial class TestRunRecordUploadList : PageBase
+ {
+ protected void Page_Load(object sender, EventArgs e)
+ {
+ if (!IsPostBack)
+ {
+ InitTreeMenu();
+ }
+ }
+
+
+ #region 数加载
+
+ ///
+ /// 加载树
+ ///
+ private void InitTreeMenu()
+ {
+ this.tvControlItem.Nodes.Clear();
+ TreeNode rootNode = new TreeNode();
+ rootNode.Text = "检查表";
+ rootNode.NodeID = "0";
+ rootNode.Expanded = true;
+ rootNode.ToolTip = "";
+ rootNode.EnableClickEvent = true;
+ this.tvControlItem.Nodes.Add(rootNode);
+ var inspectTerms = Funs.DB.TestRun_SubInspectTerm.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.InspectionIsAllPass == 1 && x.IsSiteImplement == 1).ToList();
+ if (inspectTerms.Count == 0) return;
+
+ var systemIds = inspectTerms.ConvertAll(x => x.SystemId);
+ var workPackIds = inspectTerms.ConvertAll(x => x.WorkPackId);
+ var list = from a in Funs.DB.PreRun_SysDevice
+ join b in Funs.DB.TestRun_SubSysWorkPackage on a.PreRunId equals b.SystemId
+ join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId
+ where a.ProjectId == this.CurrUser.LoginProjectId && systemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId)
+ select new { a.PreRunId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode };
+ if (list.Count() > 0)
+ {
+ var ids = list.Select(x => x.ProcessesId).ToList();
+ ids.AddRange(list.Select(x => x.PreRunId).ToList());
+ ids = ids.Distinct().ToList();
+ var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList();
+ if (syslist.Count > 0)
+ {
+ var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList();
+ foreach (var itemOne in oneIds)
+ {
+ var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne);
+ TreeNode rootOneNode = new TreeNode();
+ rootOneNode.NodeID = itemOneModel.PreRunId;
+ rootOneNode.Text = itemOneModel.PreRunName;
+ rootOneNode.ToolTip = itemOneModel.PreRunName;
+ rootOneNode.CommandName = "";
+ rootOneNode.EnableClickEvent = false;
+ rootOneNode.EnableExpandEvent = false;
+ rootNode.Nodes.Add(rootOneNode);
+ rootOneNode.Expanded = true;
+ var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName });
+ foreach (var itemTwo in subTwoList)
+ {
+ TreeNode rootTwoNode = new TreeNode();
+ rootTwoNode.NodeID = itemTwo.Key.PreRunId;
+ rootTwoNode.Text = itemTwo.Key.PreRunName;
+ rootTwoNode.ToolTip = itemTwo.Key.PreRunName;
+ rootTwoNode.CommandName = "";
+ rootTwoNode.EnableClickEvent = false;
+ rootTwoNode.EnableExpandEvent = false;
+ rootOneNode.Nodes.Add(rootTwoNode);
+ rootTwoNode.Expanded = true;
+ var worklist = list.Where(a => a.PreRunId == itemTwo.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackCode }).ToList();
+ if (worklist.Count > 0)
+ {
+ foreach (var itemWork in worklist.OrderBy(o => o.Key.WorkPackCode))
+ {
+ TreeNode newNode = new TreeNode();
+ newNode.Text = itemWork.Key.WorkPackName;
+ newNode.NodeID = itemWork.Key.WorkPackId + "|" + itemTwo.Key.PreRunId;
+ newNode.ToolTip = itemWork.Key.WorkPackName;
+ newNode.CommandName = "";
+ newNode.Expanded = true;
+ newNode.EnableClickEvent = true;
+ newNode.EnableExpandEvent = true;
+ rootTwoNode.Nodes.Add(newNode);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ ///
+ /// 树点击
+ ///
+ protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
+ {
+ BindGrid();
+ }
+
+ #endregion
+
+ #region 数据绑定
+
+ ///
+ /// 绑定数据
+ ///
+ public void BindGrid()
+ {
+ List listStr = new List();
+ string sqlStr = $"select a.SubInspectId,a.ProjectId,h.ProjectName,h.ProjectCode,a.WorkPackId,b.WorkPackName,a.SystemId,c.UserName as SubcontractorName,d.UserName as ContractorName,e.UserName as SupervisionName,f.UserName as OwnerName,a.SiteImplementConfirmData,g.UserName as SiteImplementUserName,a.InspectIsClose,(case a.InspectIsClose when 1 then '已关闭' else '未关闭' end) as InspectIsCloseName,a.InspectCloseData from TestRun_SubInspectTerm as a left join TestRun_WorkPackage as b on a.WorkPackId=b.WorkPackId left join Sys_User as c on c.UserId=a.Subcontractor left join Sys_User as d on d.UserId=a.Contractor left join Sys_User as e on e.UserId = a.Supervision left join Sys_User as f on f.UserId = a.Owner left join Sys_User as g on g.UserId = a.SiteImplementUser left join Base_Project as h on h.ProjectId = a.ProjectId where IsSiteImplement = 1 and a.ProjectId=@projectid ";
+
+ listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId));
+ if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0)
+ {
+ var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First();
+ sqlStr += $"and a.WorkPackId=@workPackId ";
+ listStr.Add(new SqlParameter("@workPackId", workPackId));
+ }
+ if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1)
+ {
+ var subSystemId = this.tvControlItem.SelectedNodeID.Split('|').Last();
+ sqlStr += $"and a.systemId=@systemId ";
+ listStr.Add(new SqlParameter("@systemId", subSystemId));
+ }
+ //是否确认实施完成
+ if (!string.IsNullOrWhiteSpace(ddlInspectIsClose.SelectedValue))
+ {
+ sqlStr += $"and isnull(a.InspectIsClose,0)=@inspectIsClose ";
+ listStr.Add(new SqlParameter("@inspectIsClose", ddlInspectIsClose.SelectedValue));
+ }
+ sqlStr += " order by a.InspectCloseData desc";
+ SqlParameter[] parameter = listStr.ToArray();
+ DataTable tb = SQLHelper.GetDataTableRunText(sqlStr, parameter);
+ Grid1.RecordCount = tb.Rows.Count;
+ var table = this.GetPagedDataTable(Grid1, tb);
+ Grid1.DataSource = table;
+ Grid1.DataBind();
+ }
+
+ ///
+ /// 分页
+ ///
+ protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
+ {
+ Grid1.PageIndex = e.NewPageIndex;
+ BindGrid();
+ }
+
+ ///
+ /// 分页下拉框
+ ///
+ protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
+ BindGrid();
+ }
+
+ ///
+ /// 排序
+ ///
+ protected void Grid1_Sort(object sender, GridSortEventArgs e)
+ {
+ BindGrid();
+ }
+
+ #endregion
+
+ #region 按钮和事件
+
+ ///
+ /// 查询
+ ///
+ protected void btnQuery_Click(object sender, EventArgs e)
+ {
+ BindGrid();
+ }
+
+ ///
+ /// 上传记录文件
+ ///
+ protected void btnUploadRecord_Click(object sender, EventArgs e)
+ {
+ if (Grid1.SelectedRowIndexArray.Length == 0)
+ {
+ Alert.ShowInTop("请选择记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ if (Grid1.SelectedRowIndexArray.Length > 1)
+ {
+ Alert.ShowInTop("只可选择一条记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ if (Grid1.DataKeys[Grid1.SelectedRowIndex][1] != null)
+ {
+ if (Grid1.DataKeys[Grid1.SelectedRowIndex][1].ToString() == "1")
+ {
+ Alert.ShowInTop("任务单已关闭,无法上传记录文件和关闭任务单处理!", MessageBoxIcon.Warning);
+ return;
+ }
+ }
+ PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TestRunRecordUpload.aspx?SubInspectId={0}", Grid1.SelectedRowID, "试车记录上传 - ")));
+ }
+
+ ///
+ /// 右击上传记录文件
+ ///
+ protected void btnMenuUploadRecord_Click(object sender, EventArgs e)
+ {
+ btnUploadRecord_Click(null, null);
+ }
+
+ ///
+ /// 关闭
+ ///
+ protected void Window1_Close(object sender, WindowCloseEventArgs e)
+ {
+ BindGrid();
+ }
+
+ ///
+ /// 双击事件
+ ///
+ protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
+ {
+ btnUploadRecord_Click(null, null);
+ }
+
+ ///
+ /// 查看
+ ///
+ protected void btnView_Click(object sender, EventArgs e)
+ {
+ if (Grid1.SelectedRowIndexArray.Length == 0)
+ {
+ Alert.ShowInTop("请选择记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ if (Grid1.SelectedRowIndexArray.Length > 1)
+ {
+ Alert.ShowInTop("只可选择一条记录!", MessageBoxIcon.Warning);
+ return;
+ }
+ PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TestRunRecordUpload.aspx?SubInspectId={0}&IsView=true", Grid1.SelectedRowID, "现场实施 - ")));
+ }
+
+ ///
+ /// 右击查看
+ ///
+ protected void btnMenuView_Click(object sender, EventArgs e)
+ {
+ btnView_Click(null, null);
+ }
+
+ #endregion
+
+ }
+}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx.designer.cs
new file mode 100644
index 00000000..76f0e4a9
--- /dev/null
+++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/TestRunRecordUploadList.aspx.designer.cs
@@ -0,0 +1,179 @@
+//------------------------------------------------------------------------------
+// <自动生成>
+// 此代码由工具生成。
+//
+// 对此文件的更改可能导致不正确的行为,如果
+// 重新生成代码,则所做更改将丢失。
+// 自动生成>
+//------------------------------------------------------------------------------
+
+namespace FineUIPro.Web.TestRun.TestRunManage
+{
+
+
+ public partial class TestRunRecordUploadList
+ {
+
+ ///
+ /// form1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::System.Web.UI.HtmlControls.HtmlForm form1;
+
+ ///
+ /// PageManager1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.PageManager PageManager1;
+
+ ///
+ /// Panel1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel Panel1;
+
+ ///
+ /// panelLeftRegion 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Panel panelLeftRegion;
+
+ ///
+ /// tvControlItem 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Tree tvControlItem;
+
+ ///
+ /// Grid1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Grid Grid1;
+
+ ///
+ /// Toolbar1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Toolbar Toolbar1;
+
+ ///
+ /// ddlInspectIsClose 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList ddlInspectIsClose;
+
+ ///
+ /// btnQuery 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnQuery;
+
+ ///
+ /// btnView 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnView;
+
+ ///
+ /// btnUploadRecord 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnUploadRecord;
+
+ ///
+ /// ToolbarSeparator1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
+
+ ///
+ /// ToolbarText1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.ToolbarText ToolbarText1;
+
+ ///
+ /// ddlPageSize 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.DropDownList ddlPageSize;
+
+ ///
+ /// Window1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Window Window1;
+
+ ///
+ /// Menu1 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Menu Menu1;
+
+ ///
+ /// btnMenuUploadRecord 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.MenuButton btnMenuUploadRecord;
+
+ ///
+ /// btnMenuView 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.MenuButton btnMenuView;
+ }
+}
diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs
index c77eac42..b57b3694 100644
--- a/SGGL/Model/Model.cs
+++ b/SGGL/Model/Model.cs
@@ -355575,8 +355575,6 @@ namespace Model
private System.Nullable _OwnerIsAllPass;
- private string _PropertyTechnologyId;
-
private System.Nullable _SubcontractorAllPassData;
private System.Nullable _ContractorAllPassData;
@@ -355651,8 +355649,6 @@ namespace Model
partial void OnSupervisionIsAllPassChanged();
partial void OnOwnerIsAllPassChanging(System.Nullable value);
partial void OnOwnerIsAllPassChanged();
- partial void OnPropertyTechnologyIdChanging(string value);
- partial void OnPropertyTechnologyIdChanged();
partial void OnSubcontractorAllPassDataChanging(System.Nullable value);
partial void OnSubcontractorAllPassDataChanged();
partial void OnContractorAllPassDataChanging(System.Nullable value);
@@ -356018,26 +356014,6 @@ namespace Model
}
}
- [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PropertyTechnologyId", DbType="VarChar(MAX)", UpdateCheck=UpdateCheck.Never)]
- public string PropertyTechnologyId
- {
- get
- {
- return this._PropertyTechnologyId;
- }
- set
- {
- if ((this._PropertyTechnologyId != value))
- {
- this.OnPropertyTechnologyIdChanging(value);
- this.SendPropertyChanging();
- this._PropertyTechnologyId = value;
- this.SendPropertyChanged("PropertyTechnologyId");
- this.OnPropertyTechnologyIdChanged();
- }
- }
- }
-
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SubcontractorAllPassData", DbType="DateTime")]
public System.Nullable SubcontractorAllPassData
{