修改试车

This commit is contained in:
高飞 2023-10-12 10:17:08 +08:00
parent 738d0dc183
commit b451e0eebd
24 changed files with 2272 additions and 471 deletions

View File

@ -0,0 +1,23 @@
--
ALTER TABLE PreRun_SubInspectTerm ALTER Column PropertyTechnologyId varchar(max) null;
ALTER TABLE PreRun_SubInspectTermItem ALTER Column PropertyTechnologyId varchar(max) null;
--
ALTER TABLE PreRun_InspectTailTerm DROP COLUMN QuestionTechnologyId;
--
ALTER TABLE PreRun_InspectTailTerm Add SubInspectId varchar(50) NULL;
--
delete Sys_Menu where MenuId='2254D22A-94EF-435F-9916-F07BD7082689'
INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('2254D22A-94EF-435F-9916-F07BD7082689','检查表流转',null,'TestRun/BeforeTestRun/InspectWanderAboutList.aspx',10,'AD6E08B6-5571-4FFB-BDBE-9E6811770BD6','Menu_TestRun',0,1,1)
--
alter table PreRun_SubInspectTerm add InspectionIsAllPass int NULL--0/null: 1:
alter table PreRun_SubInspectTerm add SubcontractorIsAllPass int NULL--0/null: 1:
alter table PreRun_SubInspectTerm add ContractorIsAllPass int NULL--0/null: 1:
alter table PreRun_SubInspectTerm add SupervisionIsAllPass int NULL--0/null: 1:
alter table PreRun_SubInspectTerm add OwnerIsAllPass int NULL--0/null: 1:
--
alter table PreRun_SubInspectTermItem add SubcontractorIsPass int NULL--0/null: 1:
alter table PreRun_SubInspectTermItem add ContractorIsPass int NULL--0/null: 1:
alter table PreRun_SubInspectTermItem add SupervisionIsPass int NULL--0/null: 1:
alter table PreRun_SubInspectTermItem add OwnerIsPass int NULL--0/null: 1:

View File

@ -1659,6 +1659,8 @@
<Content Include="TestRun\BeforeTestRun\InspectTailTermList.aspx" />
<Content Include="TestRun\BeforeTestRun\InspectTemplate.aspx" />
<Content Include="TestRun\BeforeTestRun\InspectTemplateEdit.aspx" />
<Content Include="TestRun\BeforeTestRun\InspectWanderAboutConfirm.aspx" />
<Content Include="TestRun\BeforeTestRun\InspectWanderAboutList.aspx" />
<Content Include="TestRun\BeforeTestRun\SelectProperty.aspx" />
<Content Include="TestRun\BeforeTestRun\SelectTechnology.aspx" />
<Content Include="TestRun\BeforeTestRun\SetWorkPackage.aspx" />
@ -15001,6 +15003,20 @@
<Compile Include="TestRun\BeforeTestRun\InspectTemplateEdit.aspx.designer.cs">
<DependentUpon>InspectTemplateEdit.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\BeforeTestRun\InspectWanderAboutConfirm.aspx.cs">
<DependentUpon>InspectWanderAboutConfirm.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="TestRun\BeforeTestRun\InspectWanderAboutConfirm.aspx.designer.cs">
<DependentUpon>InspectWanderAboutConfirm.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\BeforeTestRun\InspectWanderAboutList.aspx.cs">
<DependentUpon>InspectWanderAboutList.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="TestRun\BeforeTestRun\InspectWanderAboutList.aspx.designer.cs">
<DependentUpon>InspectWanderAboutList.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\BeforeTestRun\SelectProperty.aspx.cs">
<DependentUpon>SelectProperty.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>

View File

@ -63,7 +63,7 @@
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="ddlQuestionTechnologyId" ShowRedStar="true" runat="server" Required="true" Label="管道/设备" LabelAlign="Right" AutoPostBack="true" OnSelectedIndexChanged="ddlQuestionTechnologyId_SelectedIndexChanged" EmptyText="--请选择--">
<f:DropDownList ID="ddlSubInspectId" ShowRedStar="true" runat="server" Required="true" Label="管道/设备" LabelAlign="Right" AutoPostBack="true" OnSelectedIndexChanged="ddlSubInspectId_SelectedIndexChanged" EmptyText="--请选择--">
</f:DropDownList>
<f:DropDownList ID="ddlTermItemId" ShowRedStar="true" runat="server" Required="true" Label="检查项" LabelAlign="Right" EmptyText="--请选择--">
</f:DropDownList>

View File

@ -22,6 +22,15 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
set { ViewState["TailTermId"] = value; }
}
/// <summary>
/// 主键
/// </summary>
public string TermItemId
{
get { return (string)ViewState["TermItemId"]; }
set { ViewState["TermItemId"] = value; }
}
/// <summary>
/// 是否查看
/// </summary>
@ -54,6 +63,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
if (!IsPostBack)
{
this.TailTermId = Request["TailTermId"];
this.TermItemId = Request["TermItemId"];
//是否查看
this.IsView = string.IsNullOrWhiteSpace(Request["IsView"]) ? false : bool.Parse(Request["IsView"]);
//数据绑定
@ -70,7 +80,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
txtTailTermCode.Enabled = false;
ddlConstructionUnit.Enabled = false;
ddlProblemType.Enabled = false;
ddlQuestionTechnologyId.Enabled = false;
ddlSubInspectId.Enabled = false;
ddlTermItemId.Enabled = false;
txtQuestionDesc.Enabled = false;
txtRectifyOpinion.Enabled = false;
@ -88,13 +98,27 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
{
QuestionEditImg = 0;
RectifyEditImg = 0;
var selectList = new List<SelectPropertyTechnology>();
//施工单位
UnitService.InitUnitByProjectIdUnitTypeDropDownList(ddlConstructionUnit, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false);
//获取用户信息
var users = from user in Funs.DB.Sys_User
//var users = 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 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<string>() { 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)
{
@ -103,11 +127,13 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
ddlInspectUser.DataValueField = "UserId";
ddlInspectUser.DataSource = users;
ddlInspectUser.DataBind();
ddlInspectUser.SelectedValue = this.CurrUser.UserId;
//审核人
ddlApproveUser.DataTextField = "UserName";
ddlApproveUser.DataValueField = "UserId";
ddlApproveUser.DataSource = users;
ddlApproveUser.DataBind();
ddlApproveUser.SelectedValue = this.CurrUser.UserId;
}
var model = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId);
if (model != null)
@ -121,60 +147,64 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
//问题类别
ddlProblemType.SelectedValue = model.ProblemType.ToString();
//绑定管道或者设备
if (model.ProblemType == 1)
var termitemlist = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.WorkPackType == model.ProblemType).GroupBy(x => new { x.SubInspectId, x.InspectionResults, x.PropertyTechnologyId, x.WorkPackType });
if (termitemlist.Count() > 0)
{
var sysPipingData = from proper in Funs.DB.PreRun_PropertySysPiping
join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId
join termitem in Funs.DB.PreRun_SubInspectTermItem on proper.PropertyId equals termitem.PropertyTechnologyId
where termitem.InspectionResults == 0 && termitem.InspectedUser == this.CurrUser.UserId
group proper by new { proper.PropertyId, proper.PipingCode } into t
select new
var ids = string.Join(",", termitemlist.Select(x => x.Key.PropertyTechnologyId)).Split(',');
if (ddlProblemType.SelectedValue == "1")
{
Id = t.Key.PropertyId,
Code = $"管道:({t.Key.PipingCode})"
};
if (sysPipingData.Count() > 0)
var piplist = Funs.DB.PreRun_PropertySysPiping.Where(x => ids.Contains(x.PropertyId));
foreach (var item in termitemlist)
{
ddlQuestionTechnologyId.DataTextField = "Code";
ddlQuestionTechnologyId.DataValueField = "Id";
ddlQuestionTechnologyId.DataSource = sysPipingData;
ddlQuestionTechnologyId.DataBind();
var pid = item.Key.PropertyTechnologyId.Split(',');
var codes = piplist.Where(x => pid.Contains(x.PropertyId)).ToList();
selectList.Add(new SelectPropertyTechnology()
{
Id = item.Key.SubInspectId,
Code = $"管道:{string.Join(",", codes.ConvertAll(x => x.PipingCode))}"
});
}
}
else
{
var sysPipingData = from technology in Funs.DB.PreRun_TechnologySysPiping
join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId
join termitem in Funs.DB.PreRun_SubInspectTermItem on technology.TechnologyId equals termitem.PropertyTechnologyId
where termitem.InspectionResults == 0 && termitem.InspectedUser == this.CurrUser.UserId
group technology by new { technology.TechnologyId, technology.TagNumber } into t
select new
var techlist = Funs.DB.PreRun_TechnologySysPiping.Where(x => ids.Contains(x.TechnologyId));
foreach (var item in termitemlist)
{
Id = t.Key.TechnologyId,
Code = $"设备:({t.Key.TagNumber})"
};
if (sysPipingData.Count() > 0)
var pid = item.Key.PropertyTechnologyId.Split(',');
var codes = techlist.Where(x => pid.Contains(x.TechnologyId)).ToList();
selectList.Add(new SelectPropertyTechnology()
{
ddlQuestionTechnologyId.DataTextField = "Code";
ddlQuestionTechnologyId.DataValueField = "Id";
ddlQuestionTechnologyId.DataSource = sysPipingData;
ddlQuestionTechnologyId.DataBind();
Id = item.Key.SubInspectId,
Code = $"设备:{string.Join(",", codes.ConvertAll(x => x.TagNumber))}"
});
}
}
if (selectList.Count > 0)
{
ddlSubInspectId.DataTextField = "Code";
ddlSubInspectId.DataValueField = "Id";
ddlSubInspectId.DataSource = selectList;
ddlSubInspectId.DataBind();
}
else
{
ddlSubInspectId.Items.Insert(0, new ListItem("==无数据==", ""));
}
}
//管道/设备
ddlQuestionTechnologyId.SelectedValue = model.QuestionTechnologyId;
ddlSubInspectId.SelectedValue = model.SubInspectId;
//绑定检查项
if (!string.IsNullOrWhiteSpace(ddlQuestionTechnologyId.SelectedValue))
if (!string.IsNullOrWhiteSpace(ddlSubInspectId.SelectedValue))
{
var TermItemIds = Funs.DB.PreRun_InspectTailTerm.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.TailTermId != this.TailTermId).Select(a => a.TermItemId).ToList();
var list = new List<PreRun_SubInspectTermItem>();
if (TermItemIds.Count > 0)
{
list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.PropertyTechnologyId == ddlQuestionTechnologyId.SelectedValue && !TermItemIds.Contains(x.TermItemId)).ToList();
list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.SubInspectId == ddlSubInspectId.SelectedValue && !TermItemIds.Contains(x.TermItemId)).ToList();
}
else
{
list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.PropertyTechnologyId == ddlQuestionTechnologyId.SelectedValue).ToList();
list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.SubInspectId == ddlSubInspectId.SelectedValue).ToList();
}
if (list.Count() > 0)
{
@ -212,6 +242,32 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
string code = projectModel.ProjectCode + "-06-CM03-XJ-";
txtTailTermCode.Text = SQLHelper.RunProcNewId("SpGetNewCode5", "dbo.PreRun_InspectTailTerm", "TailTermCode", code);
}
if (!string.IsNullOrWhiteSpace(TermItemId))
{
var itemTerm = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == this.TermItemId);
if (itemTerm != null)
{
var workPackType = itemTerm.WorkPackType;
if (workPackType == 0)
{
if (Funs.DB.PreRun_PropertySysPiping.Count(x => x.PropertyId == itemTerm.PropertyTechnologyId) > 0)
{
workPackType = 1;
}
else
{
workPackType = 2;
}
}
ddlProblemType.SelectedValue = workPackType.ToString();
//管道/设备
ddlProblemType_SelectedIndexChanged(null, null);
ddlSubInspectId.SelectedValue = itemTerm.SubInspectId;
//检查项
ddlSubInspectId_SelectedIndexChanged(null, null);
ddlTermItemId.SelectedValue = itemTerm.TermItemId;
}
}
}
}
@ -248,7 +304,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
ShowNotify("请选择问题类别!", MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrWhiteSpace(ddlQuestionTechnologyId.SelectedValue))
if (string.IsNullOrWhiteSpace(ddlSubInspectId.SelectedValue))
{
ShowNotify("请选择管道/设备!", MessageBoxIcon.Warning);
return;
@ -281,7 +337,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
model.TailTermCode = txtTailTermCode.Text;
model.ConstructionUnit = ddlConstructionUnit.SelectedValue;
model.ProblemType = int.Parse(ddlProblemType.SelectedValue);
model.QuestionTechnologyId = ddlQuestionTechnologyId.SelectedValue;
model.SubInspectId = ddlSubInspectId.SelectedValue;
model.TermItemId = ddlTermItemId.SelectedValue;
model.QuestionDesc = txtQuestionDesc.Text.Trim();
model.RectifyOpinion = txtRectifyOpinion.Text.Trim();
@ -320,7 +376,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
ShowNotify("请选择问题类别!", MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrWhiteSpace(ddlQuestionTechnologyId.SelectedValue))
if (string.IsNullOrWhiteSpace(ddlSubInspectId.SelectedValue))
{
ShowNotify("请选择管道/设备!", MessageBoxIcon.Warning);
return;
@ -353,7 +409,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
model.TailTermCode = txtTailTermCode.Text;
model.ConstructionUnit = ddlConstructionUnit.SelectedValue;
model.ProblemType = int.Parse(ddlProblemType.SelectedValue);
model.QuestionTechnologyId = ddlQuestionTechnologyId.SelectedValue;
model.SubInspectId = ddlSubInspectId.SelectedValue;
model.TermItemId = ddlTermItemId.SelectedValue;
model.QuestionDesc = txtQuestionDesc.Text.Trim();
model.RectifyOpinion = txtRectifyOpinion.Text.Trim();
@ -404,54 +460,51 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
{
if (!string.IsNullOrWhiteSpace(ddlProblemType.SelectedValue))
{
var selectList = new List<SelectPropertyTechnology>();
var wtype = int.Parse(ddlProblemType.SelectedValue);
var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.WorkPackType == wtype).GroupBy(x => new { x.SubInspectId, x.InspectionResults, x.PropertyTechnologyId, x.WorkPackType });
if (list.Count() > 0)
{
var ids = string.Join(",", list.Select(x => x.Key.PropertyTechnologyId)).Split(',');
if (ddlProblemType.SelectedValue == "1")
{
var sysPipingData = from proper in Funs.DB.PreRun_PropertySysPiping
join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId
join termitem in Funs.DB.PreRun_SubInspectTermItem on proper.PropertyId equals termitem.PropertyTechnologyId
where termitem.InspectionResults == 0 && termitem.InspectedUser == this.CurrUser.UserId
group proper by new { proper.PropertyId, proper.PipingCode } into t
select new
var piplist = Funs.DB.PreRun_PropertySysPiping.Where(x => ids.Contains(x.PropertyId)).ToList();
foreach (var item in list)
{
Id = t.Key.PropertyId,
Code = $"管道:({t.Key.PipingCode})"
};
ddlQuestionTechnologyId.Items.Clear();
if (sysPipingData.Count() > 0)
var pid = item.Key.PropertyTechnologyId.Split(',');
var codes = piplist.Where(x => pid.Contains(x.PropertyId)).ToList();
selectList.Add(new SelectPropertyTechnology()
{
ddlQuestionTechnologyId.DataTextField = "Code";
ddlQuestionTechnologyId.DataValueField = "Id";
ddlQuestionTechnologyId.DataSource = sysPipingData;
ddlQuestionTechnologyId.DataBind();
Id = item.Key.SubInspectId,
Code = $"管道:{string.Join(",", codes.ConvertAll(x => x.PipingCode))}"
});
}
}
else
{
ddlQuestionTechnologyId.Items.Insert(0, new ListItem("==无数据==", ""));
var techlist = Funs.DB.PreRun_TechnologySysPiping.Where(x => ids.Contains(x.TechnologyId)).ToList();
foreach (var item in list)
{
var pid = item.Key.PropertyTechnologyId.Split(',');
var codes = techlist.Where(x => pid.Contains(x.TechnologyId)).ToList();
selectList.Add(new SelectPropertyTechnology()
{
Id = item.Key.SubInspectId,
Code = $"设备:{string.Join(",", codes.ConvertAll(x => x.TagNumber))}"
});
}
}
if (selectList.Count > 0)
{
ddlSubInspectId.DataTextField = "Code";
ddlSubInspectId.DataValueField = "Id";
ddlSubInspectId.DataSource = selectList;
ddlSubInspectId.DataBind();
}
else
{
var sysPipingData = from technology in Funs.DB.PreRun_TechnologySysPiping
join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId
join termitem in Funs.DB.PreRun_SubInspectTermItem on technology.TechnologyId equals termitem.PropertyTechnologyId
where termitem.InspectionResults == 0 && termitem.InspectedUser == this.CurrUser.UserId
group technology by new { technology.TechnologyId, technology.TagNumber } into t
select new
{
Id = t.Key.TechnologyId,
Code = $"设备:({t.Key.TagNumber})"
};
ddlQuestionTechnologyId.Items.Clear();
if (sysPipingData.Count() > 0)
{
ddlQuestionTechnologyId.DataTextField = "Code";
ddlQuestionTechnologyId.DataValueField = "Id";
ddlQuestionTechnologyId.DataSource = sysPipingData;
ddlQuestionTechnologyId.DataBind();
}
else
{
ddlQuestionTechnologyId.Items.Insert(0, new ListItem("==无数据==", ""));
ddlSubInspectId.Items.Insert(0, new ListItem("==无数据==", ""));
}
}
}
@ -460,18 +513,18 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
/// <summary>
/// 管道/设备
/// </summary>
protected void ddlQuestionTechnologyId_SelectedIndexChanged(object sender, EventArgs e)
protected void ddlSubInspectId_SelectedIndexChanged(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(ddlQuestionTechnologyId.SelectedValue)) return;
if (string.IsNullOrWhiteSpace(ddlSubInspectId.SelectedValue)) return;
var TermItemIds = Funs.DB.PreRun_InspectTailTerm.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.TailTermId != this.TailTermId).Select(a => a.TermItemId).ToList();
var list = new List<PreRun_SubInspectTermItem>();
if (TermItemIds.Count > 0)
{
list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.PropertyTechnologyId == ddlQuestionTechnologyId.SelectedValue && !TermItemIds.Contains(x.TermItemId)).ToList();
list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.SubInspectId == ddlSubInspectId.SelectedValue && !TermItemIds.Contains(x.TermItemId)).ToList();
}
else
{
list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.PropertyTechnologyId == ddlQuestionTechnologyId.SelectedValue).ToList();
list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.SubInspectId == ddlSubInspectId.SelectedValue).ToList();
}
ddlTermItemId.Items.Clear();
if (list.Count() > 0)
@ -494,6 +547,30 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
{
}
}
/// <summary>
/// 管道/设备
/// </summary>
public class SelectPropertyTechnology
{
/// <summary>
/// 主键
/// </summary>
public string Id { get; set; }
/// <summary>
/// 编码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 工作包主键
/// </summary>
public string WorkPackId { get; set; }
/// <summary>
/// 子系统主键
/// </summary>
public string SubSystemId { get; set; }
}
#endregion

View File

@ -96,13 +96,13 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
protected global::FineUIPro.DropDownList ddlProblemType;
/// <summary>
/// ddlQuestionTechnologyId 控件。
/// ddlSubInspectId 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlQuestionTechnologyId;
protected global::FineUIPro.DropDownList ddlSubInspectId;
/// <summary>
/// ddlTermItemId 控件。

View File

@ -49,10 +49,18 @@
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch">
<f:Panel ID="Panel1" runat="server" ShowBorder="false" ShowHeader="false" Layout="Region">
<Items>
<f:Panel runat="server" ID="panelLeftRegion" RegionPosition="Left" RegionSplit="true"
EnableCollapse="true" Width="300px" Title="巡检记录" ShowBorder="true" Layout="VBox"
ShowHeader="false" AutoScroll="true" BodyPadding="5px" IconFont="ArrowCircleLeft">
<Items>
<f:Tree ID="tvControlItem" ShowHeader="false" Title="工作包" OnNodeCommand="tvControlItem_NodeCommand"
runat="server" ShowBorder="false" EnableCollapse="true" EnableSingleClickExpand="true"
AutoLeafIdentification="true" EnableSingleExpand="false">
</f:Tree>
</Items>
</f:Panel>
<f:Grid ID="Grid1" ShowBorder="true" EnableAjax="false" ShowHeader="false" Title="质量巡检记录" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="TailTermId" AllowCellEditing="true"
ClicksToEdit="2" DataIDField="TailTermId" AllowSorting="true" SortField="AddTime"
@ -81,6 +89,7 @@
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:Button ID="btnQuery" OnClick="btnQuery_Click" ToolTip="查询" Icon="SystemSearch" EnablePostBack="true" runat="server"></f:Button>
<f:Button ID="btnNew" ToolTip="新增" Icon="Add" runat="server" OnClick="btnNew_Click"></f:Button>
<f:Button ID="btnModify" ToolTip="修改" Icon="Pencil" runat="server" OnClick="btnModify_Click"></f:Button>
<f:Button ID="btnSubmitReview" Text="提交审核" ToolTip="提交审核" runat="server" OnClick="btnSubmitReview_Click"></f:Button>
<f:Button ID="btnwithdraw" Text="撤回提交" ToolTip="撤回提交" runat="server" OnClick="btnwithdraw_Click"></f:Button>
</Items>
@ -106,8 +115,6 @@
</f:RenderField>
<f:RenderField ColumnID="ApproveUserName" DataField="ApproveUserName" HeaderText="办理人" HeaderTextAlign="Center">
</f:RenderField>
<%-- <f:RenderField ColumnID="TailTermCode" HeaderText="整改状态" HeaderTextAlign="Center">
</f:RenderField>--%>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />

View File

@ -16,11 +16,110 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
{
if (!IsPostBack)
{
InitTreeMenu();
//绑定数据
BindGrid();
//BindGrid();
}
}
#region
/// <summary>
/// 加载树
/// </summary>
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 = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.InspectedUser == this.CurrUser.UserId && x.InspectionResults == 0).ToList();
if (userSubInspects.Count == 0) return;
var subSystemIds = userSubInspects.ConvertAll(x => x.SubSystemId);
var workPackIds = userSubInspects.ConvertAll(x => x.WorkPackId);
var list = from a in Funs.DB.PreRun_SysDevice
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 && subSystemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId)
select new { a.PreRunId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode };
if (list.Count() > 0)
{
var selectlist = YscInspectItems(workPackIds, subSystemIds);
var systemIds = list.Select(x => x.SystemId).ToList();
var syslist = Funs.DB.PreRun_SysDevice.Where(x => systemIds.Contains(x.PreRunId));
foreach (var itemSys in syslist)
{
TreeNode rootFirstNode = new TreeNode();//定义根节点
rootFirstNode.NodeID = itemSys.PreRunId;
rootFirstNode.Text = itemSys.PreRunName;
rootFirstNode.ToolTip = itemSys.PreRunName;
rootFirstNode.CommandName = "";
rootFirstNode.EnableClickEvent = false;
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)
{
TreeNode rootUnitNode = new TreeNode();//定义根节点
rootUnitNode.NodeID = item.Key.PreRunId;
rootUnitNode.Text = item.Key.PreRunName;
rootUnitNode.ToolTip = item.Key.PreRunName;
rootUnitNode.CommandName = "";
rootUnitNode.EnableClickEvent = false;
rootUnitNode.EnableExpandEvent = false;
rootFirstNode.Nodes.Add(rootUnitNode);
rootUnitNode.Expanded = true;
var worklist = list.Where(a => a.PreRunId == item.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 + "|" + item.Key.PreRunId;
newNode.ToolTip = itemWork.Key.WorkPackName;
newNode.CommandName = "";
newNode.EnableClickEvent = false;
newNode.EnableExpandEvent = false;
rootUnitNode.Nodes.Add(newNode);
newNode.Expanded = true;
if (selectlist.Count > 0)
{
var workselects = selectlist.Where(x => x.SubSystemId == item.Key.PreRunId && x.WorkPackId == itemWork.Key.WorkPackId);
foreach (var itemSelect in workselects)
{
TreeNode newNodeSelect = new TreeNode();
newNodeSelect.Text = itemSelect.Code.Length > 10 ? $"{itemSelect.Code.Substring(0, 10)}......" : itemSelect.Code;
newNodeSelect.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId + "|" + itemSelect.Id;
newNodeSelect.ToolTip = itemSelect.Code;
newNodeSelect.CommandName = "";
newNodeSelect.EnableClickEvent = true;
newNodeSelect.EnableExpandEvent = true;
newNode.Nodes.Add(newNodeSelect);
newNodeSelect.Expanded = true;
}
}
}
}
}
}
}
}
/// <summary>
/// 点击TreeView
/// </summary>
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
{
this.BindGrid();
}
#endregion
#region
@ -29,10 +128,29 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
/// </summary>
public void BindGrid()
{
string strSql = @"select * from (select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.ProblemType,'管道' as ProblemTypeName,a.QuestionTechnologyId,a.TermItemId,c.WorkInspectName,a.QuestionDesc,a.RectifyTime,a.RectifyOpinion,a.InspectUser,e.UserName as InspectUserName,a.ApproveUser,f.UserName as ApproveUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交' when 1 then '退回' when 2 then '待审核' when 3 then '审核通过' else '待提交' end) as ApproveStateName,a.AddTime from PreRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join PreRun_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 where a.ProblemType=1 and a.ProjectId=@projectid and c.InspectedUser=@InspectedUser union all select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.ProblemType,'设备' as ProblemTypeName,a.QuestionTechnologyId,a.TermItemId,c.WorkInspectName,a.QuestionDesc,a.RectifyTime,a.RectifyOpinion,a.InspectUser,e.UserName as InspectUserName,a.ApproveUser,f.UserName as ApproveUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交' when 1 then '退回' when 2 then '待审核' when 3 then '审核通过' else '待提交' end) as ApproveStateName,a.AddTime from PreRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join PreRun_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 where a.ProblemType=2 and a.ProjectId=@projectid and c.InspectedUser=@InspectedUser) as t where 1=1 ";
string strSql = @"select * from (select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.ProblemType,'管道' as ProblemTypeName,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.ApproveState,(case a.ApproveState when 0 then '待提交' when 1 then '退回' when 2 then '待审核' when 3 then '审核通过' else '待提交' end) as ApproveStateName,a.AddTime,a.WorkPackId,c.SubSystemId from PreRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join PreRun_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 where a.ProblemType=1 and a.ProjectId=@projectid and c.InspectedUser=@InspectedUser union all select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.ProblemType,'设备' as ProblemTypeName,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.ApproveState,(case a.ApproveState when 0 then '待提交' when 1 then '退回' when 2 then '待审核' when 3 then '审核通过' else '待提交' end) as ApproveStateName,a.AddTime,a.WorkPackId,c.SubSystemId from PreRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join PreRun_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 where a.ProblemType=2 and a.ProjectId=@projectid and c.InspectedUser=@InspectedUser) as t where 1=1 ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId));
listStr.Add(new SqlParameter("@InspectedUser", this.CurrUser.UserId));
if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0)
{
var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First();
strSql += " and t.WorkPackId=@WorkPackId";
listStr.Add(new SqlParameter("@WorkPackId", workPackId));
}
if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1)
{
var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
strSql += " and t.SubSystemId=@SubSystemId";
listStr.Add(new SqlParameter("@SubSystemId", subSystemId));
}
var subInspectId = string.Empty;
if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2)
{
subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last();
strSql += " and t.SubInspectId=@SubInspectId";
listStr.Add(new SqlParameter("@SubInspectId", subInspectId));
}
//问题类别
if (!string.IsNullOrWhiteSpace(ddlProblemType.SelectedValue))
{
@ -124,6 +242,14 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId={0}", Grid1.SelectedRowID, "编辑 - ")));
}
/// <summary>
/// 编辑
/// </summary>
protected void btnModify_Click(object sender, EventArgs e)
{
btnMenuModify_Click(null, null);
}
/// <summary>
/// 新增
/// </summary>
@ -239,5 +365,51 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
#endregion
/// <summary>
/// 已生成检查表的管道/设备
/// </summary>
private List<SelectPropertyTechnology> YscInspectItems(List<string> workPackIds, List<string> subSystemIds)
{
List<SelectPropertyTechnology> yczData = new List<SelectPropertyTechnology>();
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;
}
}
}

View File

@ -41,6 +41,24 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// panelLeftRegion 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel panelLeftRegion;
/// <summary>
/// tvControlItem 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tree tvControlItem;
/// <summary>
/// Grid1 控件。
/// </summary>
@ -113,6 +131,15 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
/// </remarks>
protected global::FineUIPro.Button btnNew;
/// <summary>
/// btnModify 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnModify;
/// <summary>
/// btnSubmitReview 控件。
/// </summary>

View File

@ -0,0 +1,74 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectWanderAboutConfirm.aspx.cs" Inherits="FineUIPro.Web.TestRun.BeforeTestRun.InspectWanderAboutConfirm" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>签字确认</title>
<style>
.f-grid-row .f-grid-cell-inner {
white-space: normal;
word-break: break-all;
}
.mycheckbox .f-field-checkbox-switch .f-field-checkbox-switch-text {
min-width: 40px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" ShowBorder="false" ShowHeader="false" Layout="Region">
<Items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="TermItemId" DataKeyNames="TermItemId,SubItemId,InspectionResults,SubInspectId" AllowSorting="true" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowFilters="true" OnSort="Grid1_Sort" EnableTextSelection="True">
<Toolbars>
<f:Toolbar ID="Toolbar1" runat="server">
<Items>
<f:ToolbarFill ID="ToolbarFill" runat="server"></f:ToolbarFill>
<f:Button ID="btnSave" Text="保存" ToolTip="保存" Icon="FilmSave" runat="server" OnClick="btnSave_Click"></f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:RowNumberField EnablePagingNumber="true" Width="50px" HeaderTextAlign="Center" TextAlign="Center" />
<f:RenderField HeaderText="检查事项" ColumnID="WorkInspectName" DataField="WorkInspectName" SortField="WorkInspectName" Width="400px"></f:RenderField>
<f:RenderField HeaderText="检查说明" ColumnID="InspectionIllustrate" DataField="InspectionIllustrate" Width="200px"></f:RenderField>
<f:RenderField ExpandUnusedSpace="true" Width="150px" ColumnID="IsPass" DataField="IsPass"
HeaderText="签字确认" RendererFunction="renderIsPass">
<Editor>
<f:DropDownList ID="ddlrenderIsPass" Required="true" EnableEdit="true" ForceSelection="false" runat="server">
<f:ListItem Value="1" Text="通过" />
<f:ListItem Value="0" Text="未通过" />
</f:DropDownList>
</Editor>
</f:RenderField>
</Columns>
</f:Grid>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="检查项巡检" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" OnClose="Window1_Close"
Width="1300px" Height="660px">
</f:Window>
</form>
<script type="text/javascript">
// 返回false来阻止浏览器右键菜单
function onRowContextMenu(event, rowId) {
return false;
}
function reloadGrid() {
__doPostBack(null, 'reloadGrid');
}
//检查人
var ddlrenderIsPass = '<%= ddlrenderIsPass.ClientID %>';
function renderIsPass(value) {
if (value == null || value == undefined) {
return '';
}
return F(ddlrenderIsPass).getTextByValue(value);
}
</script>
</body>
</html>

View File

@ -0,0 +1,257 @@
using BLL;
using Newtonsoft.Json.Linq;
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.BeforeTestRun
{
public partial class InspectWanderAboutConfirm : PageBase
{
/// <summary>
///
/// </summary>
public string SubInspectId
{
get { return (string)ViewState["SubInspectId"]; }
set { ViewState["SubInspectId"] = value; }
}
/// <summary>
///
/// </summary>
public int ConfirmType
{
get { return (int)ViewState["ConfirmType"]; }
set { ViewState["ConfirmType"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.SubInspectId = Request.Params["SubInspectId"];
this.ConfirmType = int.Parse(Request.Params["ConfirmType"]);
this.BindGrid();
}
}
#region
/// <summary>
/// 绑定数据
/// </summary>
public void BindGrid()
{
//获取子系统
var data = new List<ConfirmIsPass>();
var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.SubInspectId == this.SubInspectId).OrderBy(x => x.Sort).ToList();
if (list.Count > 0)
{
foreach (var item in list)
{
var model = new ConfirmIsPass();
model.TermItemId = item.TermItemId;
model.SubItemId = item.SubItemId;
model.SubInspectId = item.SubInspectId;
model.WorkInspectName = item.WorkInspectName;
model.ConfirmType = this.ConfirmType;
model.InspectionIllustrate = item.InspectionIllustrate;
//1=分包商2=承包商3=监理4=业主
if (this.ConfirmType == 1)
{
model.IsPass = item.SubcontractorIsPass;
model.ConfirmTypeName = "分包商";
}
if (this.ConfirmType == 2)
{
model.IsPass = item.ContractorIsPass;
model.ConfirmTypeName = "承包商";
}
if (this.ConfirmType == 3)
{
model.IsPass = item.SupervisionIsPass;
model.ConfirmTypeName = "监理";
}
if (this.ConfirmType == 4)
{
model.IsPass = item.OwnerIsPass;
model.ConfirmTypeName = "业主";
}
data.Add(model);
}
}
Grid1.DataSource = data;
Grid1.DataBind();
Grid1.Title = this.ConfirmType == 1 ? "分包商确认签字" : this.ConfirmType == 2 ? "承包商确认签字" : this.ConfirmType == 3 ? "监理确认签字" : this.ConfirmType == 4 ? "业主确认签字" : "";
}
/// <summary>
/// 排序
/// </summary>
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
#endregion
#region
/// <summary>
/// 保存
/// </summary>
protected void btnSave_Click(object sender, EventArgs e)
{
try
{
JArray mergedData = Grid1.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
string status = mergedRow.Value<string>("status");
JObject values = mergedRow.Value<JObject>("values");
int i = mergedRow.Value<int>("index");
var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString();
//获取子系统信息
var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == termItemId);
if (model != null)
{
if (!string.IsNullOrWhiteSpace(values.Value<string>("IsPass")))
{
//1=分包商2=承包商3=监理4=业主
if (this.ConfirmType == 1)
{
model.SubcontractorIsPass = int.Parse(values.Value<string>("IsPass"));
}
else if (this.ConfirmType == 2)
{
model.ContractorIsPass = int.Parse(values.Value<string>("IsPass"));
}
else if (this.ConfirmType == 3)
{
model.SupervisionIsPass = int.Parse(values.Value<string>("IsPass"));
}
else if (this.ConfirmType == 4)
{
model.OwnerIsPass = int.Parse(values.Value<string>("IsPass"));
}
}
Funs.DB.SubmitChanges();
}
}
var subInspectId = this.Grid1.Rows[0].DataKeys[3].ToString();
var subModel = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId);
if (subModel != null)
{
//1=分包商2=承包商3=监理4=业主
if (this.ConfirmType == 1)
{
if (Funs.DB.PreRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.SubcontractorIsPass.GetValueOrDefault() != 1) == 0)
{
subModel.SubcontractorIsAllPass = 1;
}
else
{
subModel.SubcontractorIsAllPass = 0;
}
}
else if (this.ConfirmType == 2)
{
if (Funs.DB.PreRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.ContractorIsPass.GetValueOrDefault() != 1) == 0)
{
subModel.ContractorIsAllPass = 1;
}
else
{
subModel.ContractorIsAllPass = 0;
}
}
else if (this.ConfirmType == 3)
{
if (Funs.DB.PreRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.SupervisionIsPass.GetValueOrDefault() != 1) == 0)
{
subModel.SupervisionIsAllPass = 1;
}
else
{
subModel.SupervisionIsAllPass = 0;
}
}
else if (this.ConfirmType == 4)
{
if (Funs.DB.PreRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.OwnerIsPass.GetValueOrDefault() != 1) == 0)
{
subModel.OwnerIsAllPass = 1;
}
else
{
subModel.OwnerIsAllPass = 0;
}
}
}
Funs.DB.SubmitChanges();
BindGrid();
ShowNotify("保存成功!");
}
catch (Exception ex)
{
ShowNotify(ex.Message, MessageBoxIcon.Error);
}
}
#endregion
/// <summary>
/// 实体绑定
/// </summary>
public class ConfirmIsPass
{
/// <summary>
/// 主键
/// </summary>
public string TermItemId { get; set; }
/// <summary>
/// 检查项主键
/// </summary>
public string SubItemId { get; set; }
/// <summary>
/// 检查表主键
/// </summary>
public string SubInspectId { get; set; }
/// <summary>
/// 名称
/// </summary>
public string WorkInspectName { get; set; }
/// <summary>
/// 检查说明
/// </summary>
public string InspectionIllustrate { get; set; }
/// <summary>
/// 确认类型1=分包商2=承包商3=监理4=业主
/// </summary>
public int ConfirmType { get; set; }
/// <summary>
/// 确认类型名称
/// </summary>
public string ConfirmTypeName { get; set; }
/// <summary>
/// 是否通过
/// </summary>
public int? IsPass { get; set; }
}
/// <summary>
/// 窗口关闭
/// </summary>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
BindGrid();
}
}
}

View File

@ -0,0 +1,98 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.TestRun.BeforeTestRun
{
public partial class InspectWanderAboutConfirm
{
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// Grid1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// ToolbarFill 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill;
/// <summary>
/// btnSave 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnSave;
/// <summary>
/// ddlrenderIsPass 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlrenderIsPass;
/// <summary>
/// Window1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window1;
}
}

View File

@ -0,0 +1,144 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectWanderAboutList.aspx.cs" Inherits="FineUIPro.Web.TestRun.BeforeTestRun.InspectWanderAboutList" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="../../Controls/My97DatePicker/WdatePicker.js" type="text/javascript"></script>
<title>检查表流转</title>
<style type="text/css">
.labcenter {
text-align: center;
}
.f-grid-row .f-grid-cell-inner {
white-space: normal;
word-break: break-all;
}
.LabelColor {
color: Red;
font-size: small;
}
.Green {
background-color: Green;
color: white;
}
.Yellow {
background-color: #FFFF93;
}
.Red {
background-color: red;
}
.LightGreen {
background-color: LightGreen
}
.f-grid-colheader-text {
white-space: normal;
word-break: break-all;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" ShowBorder="false" ShowHeader="false" Layout="Region">
<Items>
<f:Panel runat="server" ID="panelLeftRegion" RegionPosition="Left" RegionSplit="true"
EnableCollapse="true" Width="300px" Title="检查表流转" ShowBorder="true" Layout="VBox"
ShowHeader="false" AutoScroll="true" BodyPadding="5px" IconFont="ArrowCircleLeft">
<Items>
<f:Tree ID="tvControlItem" ShowHeader="false" Title="工作包" OnNodeCommand="tvControlItem_NodeCommand"
runat="server" ShowBorder="false" EnableCollapse="true" EnableSingleClickExpand="true"
AutoLeafIdentification="true" EnableSingleExpand="false">
</f:Tree>
</Items>
</f:Panel>
<f:Grid ID="Grid1" ShowBorder="true" EnableAjax="false" ShowHeader="false" Title="检查表流转" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="Id,SubInspectId,ConfirmType" AllowCellEditing="true"
ClicksToEdit="2" DataIDField="Id" AllowSorting="true" SortField="AddTime"
SortDirection="DESC" OnSort="Grid1_Sort" EnableColumnLines="true" ForceFit="true"
AllowPaging="true" IsDatabasePaging="true" PageSize="10" OnPageIndexChange="Grid1_PageIndexChange"
EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" AllowFilters="true" EnableTextSelection="True" EnableMultiSelect="false" EnableCheckBoxSelect="true">
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:DropDownList ID="ddlWorkPackType" runat="server" Label="检查类型" Width="210px" LabelAlign="Right" EnableEdit="true">
<f:ListItem Text="全部" Value="" />
<f:ListItem Text="管道" Value="1" />
<f:ListItem Text="设备" Value="2" />
</f:DropDownList>
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:Button ID="btnQuery" OnClick="btnQuery_Click" ToolTip="查询" Text="搜索" Icon="SystemSearch" EnablePostBack="true" runat="server"></f:Button>
<f:Button ID="btnConfirmation" ToolTip="检查确认" Icon="Accept" Text="确认签字" runat="server" OnClick="btnConfirmation_Click"></f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:RowNumberField />
<f:RenderField ColumnID="ProjectName" DataField="ProjectName" Width="300px" HeaderText="项目名称" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField ColumnID="WorkPackTypeName" DataField="WorkPackTypeName" HeaderText="类型" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField ColumnID="ConfirmName" DataField="ConfirmName" HeaderText="确认人类型" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField ColumnID="WaitConfirmNum" DataField="WaitConfirmNum" Width="100px" HeaderText="检查项待确认数" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField ColumnID="PassConfirmNum" DataField="PassConfirmNum" Width="110px" HeaderText="检查项确认通过数" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField ColumnID="FailConfirmNum" DataField="FailConfirmNum" Width="110px" HeaderText="检查项确认未通过数" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
</Columns>
<Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />
</Listeners>
<PageItems>
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server">
</f:ToolbarSeparator>
<f:ToolbarText ID="ToolbarText1" runat="server" Text="每页记录数:">
</f:ToolbarText>
<f:DropDownList runat="server" ID="ddlPageSize" Width="80px" AutoPostBack="true"
OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged">
<f:ListItem Text="10" Value="10" />
<f:ListItem Text="15" Value="15" />
<f:ListItem Text="20" Value="20" />
<f:ListItem Text="25" Value="25" />
<f:ListItem Text="所有行" Value="100000" />
</f:DropDownList>
<f:ToolbarFill runat="server">
</f:ToolbarFill>
</PageItems>
</f:Grid>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="签字确认" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" CloseAction="HidePostBack" OnClose="Window1_Close" AutoScroll="true"
Width="1300px" Height="660px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<Items>
<f:MenuButton ID="btnMenuConfirmation" EnablePostBack="true" runat="server" Text="检查确认" Icon="Pencil"
OnClick="btnMenuConfirmation_Click">
</f:MenuButton>
</Items>
</f:Menu>
</form>
<script type="text/javascript">
var menuID = '<%= Menu1.ClientID %>';
// 返回false来阻止浏览器右键菜单
function onRowContextMenu(event, rowId) {
F(menuID).show(); //showAt(event.pageX, event.pageY);
return false;
}
</script>
</body>
</html>

View File

@ -0,0 +1,315 @@
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.BeforeTestRun
{
public partial class InspectWanderAboutList : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InitTreeMenu();
}
}
#region
/// <summary>
/// 加载树
/// </summary>
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.PreRun_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 subSystemIds = inspectTerms.ConvertAll(x => x.SubSystemId);
var workPackIds = inspectTerms.ConvertAll(x => x.WorkPackId);
var list = from a in Funs.DB.PreRun_SysDevice
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 && subSystemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId)
select new { a.PreRunId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode };
if (list.Count() > 0)
{
var selectlist = YscInspectItems(workPackIds, subSystemIds);
var systemIds = list.Select(x => x.SystemId).ToList();
var syslist = Funs.DB.PreRun_SysDevice.Where(x => systemIds.Contains(x.PreRunId));
foreach (var itemSys in syslist)
{
TreeNode rootFirstNode = new TreeNode();//定义根节点
rootFirstNode.NodeID = itemSys.PreRunId;
rootFirstNode.Text = itemSys.PreRunName;
rootFirstNode.ToolTip = itemSys.PreRunName;
rootFirstNode.CommandName = "";
rootFirstNode.EnableClickEvent = false;
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)
{
TreeNode rootUnitNode = new TreeNode();//定义根节点
rootUnitNode.NodeID = item.Key.PreRunId;
rootUnitNode.Text = item.Key.PreRunName;
rootUnitNode.ToolTip = item.Key.PreRunName;
rootUnitNode.CommandName = "";
rootUnitNode.EnableClickEvent = false;
rootUnitNode.EnableExpandEvent = false;
rootFirstNode.Nodes.Add(rootUnitNode);
rootUnitNode.Expanded = true;
var worklist = list.Where(a => a.PreRunId == item.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 + "|" + item.Key.PreRunId;
newNode.ToolTip = itemWork.Key.WorkPackName;
newNode.CommandName = "";
newNode.EnableClickEvent = false;
newNode.EnableExpandEvent = false;
rootUnitNode.Nodes.Add(newNode);
newNode.Expanded = true;
if (selectlist.Count > 0)
{
var workselects = selectlist.Where(x => x.SubSystemId == item.Key.PreRunId && x.WorkPackId == itemWork.Key.WorkPackId);
foreach (var itemSelect in workselects)
{
TreeNode newNodeSelect = new TreeNode();
newNodeSelect.Text = itemSelect.Code.Length > 10 ? $"{itemSelect.Code.Substring(0, 10)}......" : itemSelect.Code;
newNodeSelect.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId + "|" + itemSelect.Id;
newNodeSelect.ToolTip = itemSelect.Code;
newNodeSelect.CommandName = "";
newNodeSelect.EnableClickEvent = true;
newNodeSelect.EnableExpandEvent = true;
newNode.Nodes.Add(newNodeSelect);
newNodeSelect.Expanded = true;
}
}
}
}
}
}
}
}
/// <summary>
/// 树点击
/// </summary>
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 绑定数据
/// </summary>
public void BindGrid()
{
//分包商
string subcontractorStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.WorkPackType,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,(case a.WorkPackType when 1 then '管道' else '设备' end) as WorkPackTypeName,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 from PreRun_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.WorkPackType,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,(case a.WorkPackType when 1 then '管道' else '设备' end) as WorkPackTypeName,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 from PreRun_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.WorkPackType,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,(case a.WorkPackType when 1 then '管道' else '设备' end) as WorkPackTypeName,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 from PreRun_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.Supervision = '{this.CurrUser.UserId}' ";
//业主
string ownerStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.WorkPackType,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,(case a.WorkPackType when 1 then '管道' else '设备' end) as WorkPackTypeName,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 from PreRun_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.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 subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
subcontractorStr += $"and a.SubSystemId='{subSystemId}'";
contractorStr += $"and a.SubSystemId='{subSystemId}'";
supervisionStr += $"and a.SubSystemId='{subSystemId}'";
ownerStr += $"and a.SubSystemId='{subSystemId}'";
}
if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2)
{
var subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last();
subcontractorStr += $"and a.SubInspectId='{subInspectId}'";
contractorStr += $"and a.SubInspectId='{subInspectId}'";
supervisionStr += $"and a.SubInspectId='{subInspectId}'";
ownerStr += $"and a.SubInspectId='{subInspectId}'";
}
//检查类型
if (!string.IsNullOrWhiteSpace(ddlWorkPackType.SelectedValue))
{
subcontractorStr += $"and a.WorkPackType='{ddlWorkPackType.SelectedValue}'";
contractorStr += $"and a.WorkPackType='{ddlWorkPackType.SelectedValue}'";
supervisionStr += $"and a.WorkPackType='{ddlWorkPackType.SelectedValue}'";
ownerStr += $"and a.WorkPackType='{ddlWorkPackType.SelectedValue}'";
}
var allSql = $"select * from ({subcontractorStr} union all {contractorStr} union all {supervisionStr} union all {ownerStr}) as t order by t.ConfirmType asc";
List<SqlParameter> listStr = new List<SqlParameter>();
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();
}
/// <summary>
/// 分页
/// </summary>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
/// <summary>
/// 双击事件
/// </summary>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
btnMenuConfirmation_Click(null, null);
}
/// <summary>
/// 分页下拉框
/// </summary>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
/// <summary>
/// 排序
/// </summary>
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 查询
/// </summary>
protected void btnQuery_Click(object sender, EventArgs e)
{
BindGrid();
}
/// <summary>
/// 检查确认
/// </summary>
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(), "编辑 - ")));
}
/// <summary>
/// 右击检查确认
/// </summary>
protected void btnMenuConfirmation_Click(object sender, EventArgs e)
{
btnConfirmation_Click(null, null);
}
/// <summary>
/// 关闭
/// </summary>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
BindGrid();
}
#endregion
#region
/// <summary>
/// 已生成检查表的管道/设备
/// </summary>
private List<SelectPropertyTechnology> YscInspectItems(List<string> workPackIds, List<string> subSystemIds)
{
List<SelectPropertyTechnology> yczData = new List<SelectPropertyTechnology>();
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;
}
#endregion
}
}

View File

@ -0,0 +1,161 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.TestRun.BeforeTestRun
{
public partial class InspectWanderAboutList
{
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// panelLeftRegion 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel panelLeftRegion;
/// <summary>
/// tvControlItem 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tree tvControlItem;
/// <summary>
/// Grid1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid Grid1;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// ddlWorkPackType 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlWorkPackType;
/// <summary>
/// btnQuery 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnQuery;
/// <summary>
/// btnConfirmation 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnConfirmation;
/// <summary>
/// ToolbarSeparator1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1;
/// <summary>
/// ToolbarText1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarText ToolbarText1;
/// <summary>
/// ddlPageSize 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlPageSize;
/// <summary>
/// Window1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window1;
/// <summary>
/// Menu1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Menu Menu1;
/// <summary>
/// btnMenuConfirmation 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuConfirmation;
}
}

View File

@ -38,55 +38,31 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
rootNode.ToolTip = "";
rootNode.EnableClickEvent = true;
this.tvControlItem.Nodes.Add(rootNode);
//var userSubInspects = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).ToList();
//if (userSubInspects.Count == 0) return;
//var subSystemIds = userSubInspects.ConvertAll(x => x.SubSystemId);
//var workPackIds = userSubInspects.ConvertAll(x => x.WorkPackId);
var list = from a in Funs.DB.PreRun_SysDevice
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
select new { a.PreRunId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName };
select new { a.PreRunId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode };
if (list.Count() > 0)
{
var subSystemIds = list.Select(x => x.PreRunId).ToList();
var workPackIds = list.Select(x => x.WorkPackId).ToList();
var selectlist = new List<SelectPropertyTechnology>();
var sysPipingData = from proper in Funs.DB.PreRun_PropertySysPiping
join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId
join inspectterm in Funs.DB.PreRun_SubInspectTerm on selectproper.PropertyId equals inspectterm.PropertyTechnologyId
where subSystemIds.Contains(selectproper.SubSystemId)
select new SelectPropertyTechnology()
var selectlist = YscInspectItems(workPackIds, subSystemIds);
var systemIds = list.Select(x => x.SystemId).ToList();
var syslist = Funs.DB.PreRun_SysDevice.Where(x => systemIds.Contains(x.PreRunId));
foreach (var itemSys in syslist)
{
Id = proper.PropertyId,
Code = $"管道:({proper.PipingCode})",
WorkPackId = inspectterm.WorkPackId,
SubSystemId = selectproper.SubSystemId
};
if (sysPipingData.Count() > 0)
{
selectlist.AddRange(sysPipingData);
}
var technologylist = from technology in Funs.DB.PreRun_TechnologySysPiping
join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId
join inspectterm in Funs.DB.PreRun_SubInspectTerm on selecttechnology.TechnologyId equals inspectterm.PropertyTechnologyId
where subSystemIds.Contains(selecttechnology.SubSystemId)
select new SelectPropertyTechnology()
{
Id = technology.TechnologyId,
Code = $"设备:({technology.TagNumber})",
WorkPackId = inspectterm.WorkPackId,
SubSystemId = selecttechnology.SubSystemId
};
if (technologylist.Count() > 0)
{
selectlist.AddRange(technologylist);
}
var subList = list.GroupBy(x => new { x.PreRunId, x.PreRunCode, x.PreRunName });
TreeNode rootFirstNode = new TreeNode();//定义根节点
rootFirstNode.NodeID = itemSys.PreRunId;
rootFirstNode.Text = itemSys.PreRunName;
rootFirstNode.ToolTip = itemSys.PreRunName;
rootFirstNode.CommandName = "";
rootFirstNode.EnableClickEvent = false;
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)
{
TreeNode rootUnitNode = new TreeNode();//定义根节点
@ -96,12 +72,12 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
rootUnitNode.CommandName = "";
rootUnitNode.EnableClickEvent = false;
rootUnitNode.EnableExpandEvent = false;
rootNode.Nodes.Add(rootUnitNode);
rootFirstNode.Nodes.Add(rootUnitNode);
rootUnitNode.Expanded = true;
var worklist = list.Where(a => a.PreRunId == item.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName }).ToList();
var worklist = list.Where(a => a.PreRunId == item.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackCode }).ToList();
if (worklist.Count > 0)
{
foreach (var itemWork in worklist)
foreach (var itemWork in worklist.OrderBy(o => o.Key.WorkPackCode))
{
TreeNode newNode = new TreeNode();
newNode.Text = itemWork.Key.WorkPackName;
@ -109,16 +85,16 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
newNode.ToolTip = itemWork.Key.WorkPackName;
newNode.CommandName = "";
newNode.Expanded = true;
newNode.EnableClickEvent = true;
var workselects = selectlist.Where(x => x.SubSystemId == item.Key.PreRunId && x.WorkPackId == itemWork.Key.WorkPackId);
if (workselects.Count() > 0)
{
newNode.EnableClickEvent = false;
newNode.EnableExpandEvent = false;
rootUnitNode.Nodes.Add(newNode);
foreach (var itemSelect in workselects)
{
TreeNode newNodeSelect = new TreeNode();
newNodeSelect.Text = itemSelect.Code;
newNodeSelect.Text = itemSelect.Code.Length > 10 ? $"{itemSelect.Code.Substring(0, 10)}......" : itemSelect.Code;
newNodeSelect.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId + "|" + itemSelect.Id;
newNodeSelect.ToolTip = itemSelect.Code;
newNodeSelect.CommandName = "";
@ -139,33 +115,45 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
}
}
}
}
/// <summary>
/// 绑定下拉框
/// </summary>
public void PageInit()
{
var userList = Funs.DB.Sys_User;
if (userList.Count() > 0)
//检查人绑定
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<string>() { 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)
{
ddlfbs.DataTextField = "UserName";
ddlfbs.DataValueField = "UserId";
ddlfbs.DataSource = userList;
ddlfbs.DataSource = users;
ddlfbs.DataBind();
ddlcbs.DataTextField = "UserName";
ddlcbs.DataValueField = "UserId";
ddlcbs.DataSource = userList;
ddlcbs.DataSource = users;
ddlcbs.DataBind();
ddljl.DataTextField = "UserName";
ddljl.DataValueField = "UserId";
ddljl.DataSource = userList;
ddljl.DataSource = users;
ddljl.DataBind();
ddlyz.DataTextField = "UserName";
ddlyz.DataValueField = "UserId";
ddlyz.DataSource = userList;
ddlyz.DataSource = users;
ddlyz.DataBind();
}
}
@ -188,16 +176,31 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
public void BindGrid(bool typechange = true)
{
var result = new List<Brid_SubInspectTermItem>();
var sysPipingData = new List<SelectPropertyTechnology>();
var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0];
var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
var propertytechnologyid = string.Empty;
var subInspectId = string.Empty;
if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2)
{
propertytechnologyid = this.tvControlItem.SelectedNodeID.Split('|').Last();
subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last();
}
if (typechange)
{
var propertyTechnologyIds = string.Empty;
var selectStr = string.Empty;
var inspectItems = Funs.DB.PreRun_SubInspectTerm.Where(x => x.WorkPackId == workPackId && x.SubSystemId == subSystemId).ToList();
if (!string.IsNullOrWhiteSpace(subInspectId))
{
var selectItem = inspectItems.FirstOrDefault(x => x.SubInspectId == subInspectId);
if (selectItem != null)
{
selectStr = selectItem.PropertyTechnologyId;
}
inspectItems.RemoveAll(x => x.SubInspectId == subInspectId);
}
if (inspectItems.Count > 0) propertyTechnologyIds = string.Join(",", inspectItems.ConvertAll(x => x.PropertyTechnologyId));
var workPage = Funs.DB.PreRun_WorkPackage.FirstOrDefault(x => x.WorkPackId == workPackId);
if (workPage != null)
{
@ -222,54 +225,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
ddlWorkPackType.SelectedValue = "2";
}
//加载数据
if (ddlWorkPackType.SelectedValue == "1")
{
var sysData = from proper in Funs.DB.PreRun_PropertySysPiping
join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId
where selectproper.SubSystemId == subSystemId
select new SelectPropertyTechnology()
{
Id = proper.PropertyId,
Code = $"管道:({proper.PipingCode})"
};
if (sysData.Count() > 0)
{
sysPipingData = sysData.ToList();
cbSysPiping.DataTextField = "Code";
cbSysPiping.DataValueField = "Id";
cbSysPiping.DataSource = sysPipingData;
cbSysPiping.DataBind();
}
else
{
cbSysPiping.Items.Clear();
cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", ""));
}
}
else
{
var sysData = from technology in Funs.DB.PreRun_TechnologySysPiping
join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId
where selecttechnology.SubSystemId == subSystemId
select new SelectPropertyTechnology()
{
Id = technology.TechnologyId,
Code = $"设备:({technology.TagNumber})"
};
if (sysData.Count() > 0)
{
sysPipingData = sysData.ToList();
cbSysPiping.DataTextField = "Code";
cbSysPiping.DataValueField = "Id";
cbSysPiping.DataSource = sysPipingData;
cbSysPiping.DataBind();
}
else
{
cbSysPiping.Items.Clear();
cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", ""));
}
}
PipingBrid(ddlWorkPackType.SelectedValue, subSystemId, propertyTechnologyIds, selectStr);
}
}
@ -277,7 +233,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId);
//获取主表数据
var workPackType = int.Parse(ddlWorkPackType.SelectedValue);
var subModel = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.WorkPackId == workPackId && x.SubSystemId == subSystemId && x.WorkPackType == workPackType && x.PropertyTechnologyId == propertytechnologyid);
var subModel = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId);
if (subModel != null)
{
if (subModel.WorkPackType != null)
@ -285,12 +241,6 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
ddlWorkPackType.SelectedValue = subModel.WorkPackType.ToString();
ddlWorkPackType.Enabled = false;
}
var ddlsysModel = sysPipingData.FirstOrDefault(x => x.Id == subModel.PropertyTechnologyId);
if (ddlsysModel != null)
{
ddbSysPiping.Value = ddlsysModel.Id;
ddbSysPiping.Text = ddlsysModel.Code;
}
ddlfbs.SelectedValue = subModel.Subcontractor;
ddlcbs.SelectedValue = subModel.Contractor;
ddljl.SelectedValue = subModel.Supervision;
@ -303,7 +253,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
ddljl.SelectedValue = string.Empty;
ddlyz.SelectedValue = string.Empty;
}
var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.WorkPackId == workPackId && x.SubSystemId == subSystemId && x.WorkPackType == workPackType && x.PropertyTechnologyId == propertytechnologyid).OrderBy(x => x.Sort).ToList();
var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.SubInspectId == subInspectId).OrderBy(x => x.Sort).ToList();
if (list.Count > 0)
{
foreach (var item in list)
@ -360,7 +310,6 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
var checkids = result.Where(x => x.isChick).Select(a => a.SubItemId);
Grid1.SelectedRowIDArray = checkids.ToArray();
}
//检查人绑定
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;
@ -457,14 +406,19 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0];
var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
var subInspectId = string.Empty;
if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2)
{
subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last();
}
var workPackType = int.Parse(ddlWorkPackType.SelectedValue);
List<PreRun_SubInspectTerm> subTrems = new List<PreRun_SubInspectTerm>();
List<PreRun_SubInspectTermItem> subTremItems = new List<PreRun_SubInspectTermItem>();
foreach (var item in ddbSysPiping.Values)
{
var subTrem = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubSystemId == subSystemId && x.WorkPackId == workPackId && x.WorkPackType == workPackType && x.PropertyTechnologyId == item);
//foreach (var item in ddbSysPiping.Values)
//{
var subTrem = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId);
JArray mergedData = Grid1.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
@ -495,15 +449,22 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
subTrem.Contractor = ddlcbs.SelectedValue;
subTrem.Supervision = ddljl.SelectedValue;
subTrem.Owner = ddlyz.SelectedValue;
subTrem.PropertyTechnologyId = item;
subTrem.PropertyTechnologyId = string.Join(",", ddbSysPiping.Values);
subTrem.WorkPackType = int.Parse(ddlWorkPackType.SelectedValue);
subTrem.AddUser = this.CurrUser.UserId;
subTrem.AddTime = DateTime.Now;
subTrems.Add(subTrem);
//Funs.DB.PreRun_SubInspectTerm.InsertOnSubmit(subTrem);
}
else
{
subTrem.Subcontractor = ddlfbs.SelectedValue;
subTrem.Contractor = ddlcbs.SelectedValue;
subTrem.Supervision = ddljl.SelectedValue;
subTrem.Owner = ddlyz.SelectedValue;
Funs.DB.SubmitChanges();
}
var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.SubItemId == subItemId && x.PropertyTechnologyId == item);
var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.SubInspectId == subInspectId);
if (model == null)
{
model = new PreRun_SubInspectTermItem();
@ -523,13 +484,12 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
model.Contractor = ddlcbs.SelectedValue;
model.Supervision = ddljl.SelectedValue;
model.Owner = ddlyz.SelectedValue;
model.PropertyTechnologyId = item;
model.PropertyTechnologyId = string.Join(",", ddbSysPiping.Values);
model.WorkPackType = int.Parse(ddlWorkPackType.SelectedValue);
model.AddUser = this.CurrUser.UserId;
model.AddTime = DateTime.Now;
model.Sort = i + 1;
subTremItems.Add(model);
//Funs.DB.PreRun_SubInspectTermItem.InsertOnSubmit(model);
}
else
{
@ -538,8 +498,6 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
Funs.DB.SubmitChanges();
}
}
//Funs.DB.SubmitChanges();
}
}
Funs.DB.PreRun_SubInspectTerm.InsertAllOnSubmit(subTrems);
@ -666,55 +624,27 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
/// </summary>
protected void ddlWorkPackType_SelectedIndexChanged(object sender, EventArgs e)
{
var selectStr = string.Empty;
var propertyTechnologyIds = string.Empty;
var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0];
var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
if (ddlWorkPackType.SelectedValue == "1")
var subInspectId = string.Empty;
if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2)
{
var sysPipingData = from proper in Funs.DB.PreRun_PropertySysPiping
join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId
where selectproper.SubSystemId == subSystemId
select new
{
Id = proper.PropertyId,
Code = $"管道:({proper.PipingCode})"
};
if (sysPipingData.Count() > 0)
{
cbSysPiping.DataTextField = "Code";
cbSysPiping.DataValueField = "Id";
cbSysPiping.DataSource = sysPipingData;
cbSysPiping.DataBind();
subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last();
}
else
var inspectItems = Funs.DB.PreRun_SubInspectTerm.Where(x => x.WorkPackId == workPackId && x.SubSystemId == subSystemId).ToList();
if (!string.IsNullOrWhiteSpace(subInspectId))
{
cbSysPiping.Items.Clear();
cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", ""));
}
}
else
var selectItem = inspectItems.FirstOrDefault(x => x.SubInspectId == subInspectId);
if (selectItem != null)
{
var sysPipingData = from technology in Funs.DB.PreRun_TechnologySysPiping
join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId
where selecttechnology.SubSystemId == subSystemId
select new
{
Id = technology.TechnologyId,
Code = $"设备:({technology.TagNumber})"
};
if (sysPipingData.Count() > 0)
{
cbSysPiping.DataTextField = "Code";
cbSysPiping.DataValueField = "Id";
cbSysPiping.DataSource = sysPipingData;
cbSysPiping.DataBind();
selectStr = selectItem.PropertyTechnologyId;
}
else
{
cbSysPiping.Items.Clear();
cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", ""));
inspectItems.RemoveAll(x => x.SubInspectId == subInspectId);
}
}
if (inspectItems.Count > 0) propertyTechnologyIds = string.Join(",", inspectItems.ConvertAll(x => x.PropertyTechnologyId));
PipingBrid(ddlWorkPackType.SelectedValue, subSystemId, propertyTechnologyIds, selectStr);
}
/// <summary>
@ -725,6 +655,169 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
BindGrid(false);
}
/// <summary>
/// 已生成检查表的管道/设备
/// </summary>
private List<SelectPropertyTechnology> YscInspectItems(List<string> workPackIds, List<string> subSystemIds)
{
List<SelectPropertyTechnology> yczData = new List<SelectPropertyTechnology>();
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;
}
/// <summary>
/// 管道或设备绑定
/// </summary>
public void PipingBrid(string WorkPackType, string subSystemId, string propertyTechnologyIds, string selectStr)
{
var sysPipingData = new List<SelectPropertyTechnology>();
if (WorkPackType == "1")
{
if (string.IsNullOrWhiteSpace(propertyTechnologyIds))
{
var sysData = from proper in Funs.DB.PreRun_PropertySysPiping
join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId
where selectproper.SubSystemId == subSystemId
select new SelectPropertyTechnology()
{
Id = proper.PropertyId,
Code = $"管道:({proper.PipingCode})"
};
sysPipingData = sysData.ToList();
}
else
{
var ids = propertyTechnologyIds.Split(',');
var sysData = from proper in Funs.DB.PreRun_PropertySysPiping
join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId
where selectproper.SubSystemId == subSystemId && !ids.Contains(proper.PropertyId)
select new SelectPropertyTechnology()
{
Id = proper.PropertyId,
Code = $"管道:({proper.PipingCode})"
};
sysPipingData = sysData.ToList();
}
if (sysPipingData.Count > 0)
{
cbSysPiping.DataTextField = "Code";
cbSysPiping.DataValueField = "Id";
cbSysPiping.DataSource = sysPipingData;
cbSysPiping.DataBind();
List<string> values = new List<string>();
List<string> texts = new List<string>();
if (!string.IsNullOrWhiteSpace(selectStr))
{
var selectIds = selectStr.Split(',').ToList();
var selectData = sysPipingData.Where(x => selectIds.Contains(x.Id)).ToList();
if (selectData.Count() > 0)
{
values = selectData.ConvertAll(x => x.Id);
texts = selectData.ConvertAll(x => x.Code);
}
}
ddbSysPiping.Values = values.ToArray();
ddbSysPiping.Texts = texts.ToArray();
}
else
{
cbSysPiping.Items.Clear();
cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", ""));
}
}
else
{
if (string.IsNullOrWhiteSpace(propertyTechnologyIds))
{
var sysData = from technology in Funs.DB.PreRun_TechnologySysPiping
join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId
where selecttechnology.SubSystemId == subSystemId
select new SelectPropertyTechnology()
{
Id = technology.TechnologyId,
Code = $"设备:({technology.TagNumber})"
};
sysPipingData = sysData.ToList();
}
else
{
var ids = propertyTechnologyIds.Split(',');
var sysData = from technology in Funs.DB.PreRun_TechnologySysPiping
join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId
where selecttechnology.SubSystemId == subSystemId && !ids.Contains(technology.TechnologyId)
select new SelectPropertyTechnology()
{
Id = technology.TechnologyId,
Code = $"设备:({technology.TagNumber})"
};
sysPipingData = sysData.ToList();
}
if (sysPipingData.Count() > 0)
{
cbSysPiping.DataTextField = "Code";
cbSysPiping.DataValueField = "Id";
cbSysPiping.DataSource = sysPipingData;
cbSysPiping.DataBind();
List<string> values = new List<string>();
List<string> texts = new List<string>();
if (!string.IsNullOrWhiteSpace(selectStr))
{
var selectIds = selectStr.Split(',').ToList();
var selectData = sysPipingData.Where(x => selectIds.Contains(x.Id)).ToList();
if (selectData.Count() > 0)
{
values = selectData.ConvertAll(x => x.Id);
texts = selectData.ConvertAll(x => x.Code);
}
}
ddbSysPiping.Values = values.ToArray();
ddbSysPiping.Texts = texts.ToArray();
}
else
{
cbSysPiping.Items.Clear();
cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", ""));
}
}
}
/// <summary>
/// 子系统选择的管道/设备
/// </summary>

View File

@ -20,15 +20,6 @@
<f:Panel runat="server" ID="panelLeftRegion" RegionPosition="Left" RegionSplit="true"
EnableCollapse="true" Width="320px" Title="子系统工作包管理" ShowBorder="true" Layout="VBox"
ShowHeader="false" AutoScroll="true" BodyPadding="5px" IconFont="ArrowCircleLeft">
<%--<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:TextBox ID="txtPreRunName" runat="server" EmptyText="输入查询条件" AutoPostBack="true"
Label="名称" LabelWidth="50px" OnTextChanged="txtPreRunName_TextChanged" Width="300px">
</f:TextBox>
</Items>
</f:Toolbar>
</Toolbars>--%>
<Items>
<f:Tree ID="tvControlItem" ShowHeader="false" Title="子系统工作包管理节点树" OnNodeCommand="tvControlItem_NodeCommand"
Height="1000px" runat="server" ShowBorder="false" EnableCollapse="true" EnableSingleClickExpand="true"

View File

@ -27,7 +27,7 @@
</f:Tree>
</Items>
</f:Panel>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="TermItemId" DataKeyNames="TermItemId,SubItemId" AllowSorting="true" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowFilters="true" OnSort="Grid1_Sort" EnableTextSelection="True">
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="TermItemId" DataKeyNames="TermItemId,SubItemId,InspectionResults,SubInspectId" AllowSorting="true" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowFilters="true" OnSort="Grid1_Sort" EnableTextSelection="True" OnRowCommand="Grid1_RowCommand" OnRowDataBound="Grid1_RowDataBound">
<Toolbars>
<f:Toolbar ID="Toolbar1" runat="server">
<Items>
@ -53,10 +53,15 @@
</f:DropDownList>
</Editor>
</f:RenderField>
<f:LinkButtonField Width="100px" TextAlign="Center" ColumnID="TailTerm" CommandName="TailTerm" Text="尾项申请" />
</Columns>
</f:Grid>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="检查项巡检" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" OnClose="Window1_Close"
Width="1300px" Height="660px">
</f:Window>
</form>
<script type="text/javascript">
// 返回false来阻止浏览器右键菜单

View File

@ -20,7 +20,6 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
}
}
#region
/// <summary>
@ -45,41 +44,24 @@ 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 && subSystemIds.Contains(a.PreRunId) && workPackIds.Contains(c.WorkPackId)
select new { a.PreRunId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName };
select new { a.PreRunId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode };
if (list.Count() > 0)
{
var selectlist = new List<SelectPropertyTechnology>();
var sysPipingData = from proper in Funs.DB.PreRun_PropertySysPiping
join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId
join inspectterm in Funs.DB.PreRun_SubInspectTerm on selectproper.PropertyId equals inspectterm.PropertyTechnologyId
where subSystemIds.Contains(selectproper.SubSystemId)
select new SelectPropertyTechnology()
var selectlist = YscInspectItems(workPackIds, subSystemIds);
var systemIds = list.Select(x => x.SystemId).ToList();
var syslist = Funs.DB.PreRun_SysDevice.Where(x => systemIds.Contains(x.PreRunId));
foreach (var itemSys in syslist)
{
Id = proper.PropertyId,
Code = $"管道:({proper.PipingCode})",
WorkPackId = inspectterm.WorkPackId,
SubSystemId = selectproper.SubSystemId
};
if (sysPipingData.Count() > 0)
{
selectlist.AddRange(sysPipingData);
}
var technologylist = from technology in Funs.DB.PreRun_TechnologySysPiping
join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId
join inspectterm in Funs.DB.PreRun_SubInspectTerm on selecttechnology.TechnologyId equals inspectterm.PropertyTechnologyId
where subSystemIds.Contains(selecttechnology.SubSystemId)
select new SelectPropertyTechnology()
{
Id = technology.TechnologyId,
Code = $"设备:({technology.TagNumber})",
WorkPackId = inspectterm.WorkPackId,
SubSystemId = selecttechnology.SubSystemId
};
if (technologylist.Count() > 0)
{
selectlist.AddRange(technologylist);
}
var subList = list.GroupBy(x => new { x.PreRunId, x.PreRunCode, x.PreRunName });
TreeNode rootFirstNode = new TreeNode();//定义根节点
rootFirstNode.NodeID = itemSys.PreRunId;
rootFirstNode.Text = itemSys.PreRunName;
rootFirstNode.ToolTip = itemSys.PreRunName;
rootFirstNode.CommandName = "";
rootFirstNode.EnableClickEvent = false;
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)
{
TreeNode rootUnitNode = new TreeNode();//定义根节点
@ -89,12 +71,12 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
rootUnitNode.CommandName = "";
rootUnitNode.EnableClickEvent = false;
rootUnitNode.EnableExpandEvent = false;
rootNode.Nodes.Add(rootUnitNode);
rootFirstNode.Nodes.Add(rootUnitNode);
rootUnitNode.Expanded = true;
var worklist = list.Where(a => a.PreRunId == item.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName }).ToList();
var worklist = list.Where(a => a.PreRunId == item.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackCode }).ToList();
if (worklist.Count > 0)
{
foreach (var itemWork in worklist)
foreach (var itemWork in worklist.OrderBy(o => o.Key.WorkPackCode))
{
TreeNode newNode = new TreeNode();
newNode.Text = itemWork.Key.WorkPackName;
@ -111,7 +93,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
foreach (var itemSelect in workselects)
{
TreeNode newNodeSelect = new TreeNode();
newNodeSelect.Text = itemSelect.Code;
newNodeSelect.Text = itemSelect.Code.Length > 10 ? $"{itemSelect.Code.Substring(0, 10)}......" : itemSelect.Code;
newNodeSelect.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId + "|" + itemSelect.Id;
newNodeSelect.ToolTip = itemSelect.Code;
newNodeSelect.CommandName = "";
@ -121,7 +103,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
newNodeSelect.Expanded = true;
}
}
}
}
}
}
@ -147,10 +129,13 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
{
var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First();
var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
var propertytechnologyid = this.tvControlItem.SelectedNodeID.Split('|').Last();
var subInspectId = string.Empty;
if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2)
{
subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last();
}
//获取子系统
var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId);
var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.WorkPackId == workPackId && x.SubSystemId == subSystemId && x.PropertyTechnologyId == propertytechnologyid && x.InspectedUser == this.CurrUser.UserId).OrderBy(x => x.Sort).ToList();
var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.SubInspectId == subInspectId).OrderBy(x => x.Sort).ToList();
Grid1.DataSource = list;
Grid1.DataBind();
}
@ -187,6 +172,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == subItemId);
if (model != null)
{
//model.SubInspectId
model.InspectionIllustrate = !string.IsNullOrWhiteSpace(values.Value<string>("InspectionIllustrate")) ? values.Value<string>("InspectionIllustrate") : string.Empty;
if (!string.IsNullOrWhiteSpace(values.Value<string>("InspectionResults")))
{
@ -195,6 +181,20 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
Funs.DB.SubmitChanges();
}
}
var subInspectId = this.Grid1.Rows[0].DataKeys[3].ToString();
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)
{
subModel.InspectionIsAllPass = 1;
}
else
{
subModel.InspectionIsAllPass = 0;
}
}
Funs.DB.SubmitChanges();
BindGrid();
ShowNotify("保存成功!");
}
@ -229,5 +229,104 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
public string SubSystemId { get; set; }
}
/// <summary>
/// 已生成检查表的管道/设备
/// </summary>
private List<SelectPropertyTechnology> YscInspectItems(List<string> workPackIds, List<string> subSystemIds)
{
List<SelectPropertyTechnology> yczData = new List<SelectPropertyTechnology>();
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;
}
/// <summary>
/// 行内按钮事件
/// </summary>
protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == "TailTerm")
{
var inspectionResults = Grid1.DataKeys[e.RowIndex][2] != null ? int.Parse(Grid1.DataKeys[e.RowIndex][2].ToString()) : -1;
if (inspectionResults == 0)
{
var termItemId = Grid1.DataKeys[e.RowIndex][0].ToString();
var tailModel = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TermItemId == termItemId);
if (tailModel != null)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId={0}&TermItemId={1}", tailModel.TailTermId, tailModel.TermItemId, "编辑 - ")));
}
else
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId={0}&TermItemId={1}", "", termItemId, "新增 - ")));
}
}
else
{
ShowNotify("仅未通过检查项才可填写!", MessageBoxIcon.Warning);
}
}
}
/// <summary>
/// 窗口关闭
/// </summary>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
BindGrid();
}
/// <summary>
/// 行绑定
/// </summary>
protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
{
//System.Data.DataRowView row = e.DataItem as System.Data.DataRowView;
//LinkButtonField TailTerm = Grid1.FindColumn("TailTerm") as LinkButtonField;
//var inspectionResults = Grid1.DataKeys[e.RowIndex][2] != null ? int.Parse(Grid1.DataKeys[e.RowIndex][2].ToString()) : -1;
//if (inspectionResults != 0)
//{
// TailTerm.Enabled = true;
//}
//else
//{
// TailTerm.Enabled = false;
//}
}
}
}

View File

@ -112,5 +112,14 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlInspectionResults;
/// <summary>
/// Window1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window Window1;
}
}

View File

@ -55,7 +55,7 @@
</f:FormRow>
<f:FormRow>
<Items>
<f:Label ID="lblQuestionTechnologyId" runat="server" Label="管道/设备" LabelAlign="Right"></f:Label>
<f:Label ID="lblSubInspectId" runat="server" Label="管道/设备" LabelAlign="Right"></f:Label>
<f:Label ID="lblTermItemId" runat="server" Label="检查项" LabelAlign="Right"></f:Label>
</Items>
</f:FormRow>

View File

@ -56,14 +56,19 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
public void PageInit()
{
//获取用户信息
var users = from user in Funs.DB.Sys_User
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<string>() { 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)
{
//检查人
ddlApproveUser.DataTextField = "UserName";
ddlApproveUser.DataValueField = "UserId";
ddlApproveUser.DataSource = users;
@ -84,7 +89,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
tail.TailTermCode,
unit.UnitName,
TermItemName = termitem.WorkInspectName,
tail.QuestionTechnologyId,
tail.SubInspectId,
tail.QuestionDesc,
tail.RectifyOpinion,
tail.RectifyTime,
@ -107,18 +112,18 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
//管道/设备
if (model.ProblemType == 1)
{
var piping = Funs.DB.PreRun_PropertySysPiping.FirstOrDefault(x => x.PropertyId == model.QuestionTechnologyId);
var piping = Funs.DB.PreRun_PropertySysPiping.FirstOrDefault(x => x.PropertyId == model.SubInspectId);
if (piping != null)
{
lblQuestionTechnologyId.Text = $"管道:{piping.PipingCode}";
lblSubInspectId.Text = $"管道:{piping.PipingCode}";
}
}
else
{
var piping = Funs.DB.PreRun_TechnologySysPiping.FirstOrDefault(x => x.TechnologyId == model.QuestionTechnologyId);
var piping = Funs.DB.PreRun_TechnologySysPiping.FirstOrDefault(x => x.TechnologyId == model.SubInspectId);
if (piping != null)
{
lblQuestionTechnologyId.Text = $"设备:{piping.TagNumber}";
lblSubInspectId.Text = $"设备:{piping.TagNumber}";
}
}
//检查项
@ -190,6 +195,18 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
if (termItemModel != null)
{
termItemModel.InspectionResults = 1;
var subModel = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == termItemModel.SubInspectId);
if (subModel != null)
{
if (Funs.DB.PreRun_SubInspectTermItem.Count(x => x.SubInspectId == termItemModel.SubInspectId && x.InspectionResults.GetValueOrDefault() != 1 && x.TermItemId != termItemModel.TermItemId) == 0)
{
subModel.InspectionIsAllPass = 1;
}
else
{
subModel.InspectionIsAllPass = 0;
}
}
}
tailTerm.ApproveState = 3;
var model = new PreRun_InspectTermApproveRecords();

View File

@ -96,13 +96,13 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
protected global::FineUIPro.Label lblProblemType;
/// <summary>
/// lblQuestionTechnologyId 控件。
/// lblSubInspectId 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblQuestionTechnologyId;
protected global::FineUIPro.Label lblSubInspectId;
/// <summary>
/// lblTermItemId 控件。

View File

@ -28,7 +28,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
/// </summary>
public void BindGrid()
{
string strSql = @"select * from (select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.ProblemType,'管道' as ProblemTypeName,a.QuestionTechnologyId,a.TermItemId,c.WorkInspectName,a.QuestionDesc,a.RectifyTime,a.RectifyOpinion,a.InspectUser,e.UserName as InspectUserName,a.ApproveUser,f.UserName as ApproveUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交' when 1 then '退回' when 2 then '待审核' when 3 then '审核通过' else '待提交' end) as ApproveStateName,a.AddTime from PreRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join PreRun_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 where a.ProblemType=1 and a.ApproveState>1 and a.ProjectId=@projectid and a.ApproveUser=@ApproveUser union all select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.ProblemType,'设备' as ProblemTypeName,a.QuestionTechnologyId,a.TermItemId,c.WorkInspectName,a.QuestionDesc,a.RectifyTime,a.RectifyOpinion,a.InspectUser,e.UserName as InspectUserName,a.ApproveUser,f.UserName as ApproveUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交' when 1 then '退回' when 2 then '待审核' when 3 then '审核通过' else '待提交' end) as ApproveStateName,a.AddTime from PreRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join PreRun_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 where a.ProblemType=2 and a.ApproveState>1 and a.ProjectId=@projectid and a.ApproveUser=@ApproveUser) as t where 1=1 ";
string strSql = @"select * from (select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.ProblemType,'管道' as ProblemTypeName,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.ApproveState,(case a.ApproveState when 0 then '待提交' when 1 then '退回' when 2 then '待审核' when 3 then '审核通过' else '待提交' end) as ApproveStateName,a.AddTime from PreRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join PreRun_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 where a.ProblemType=1 and a.ApproveState>1 and a.ProjectId=@projectid and a.ApproveUser=@ApproveUser union all select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.ProblemType,'设备' as ProblemTypeName,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.ApproveState,(case a.ApproveState when 0 then '待提交' when 1 then '退回' when 2 then '待审核' when 3 then '审核通过' else '待提交' end) as ApproveStateName,a.AddTime from PreRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join PreRun_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 where a.ProblemType=2 and a.ApproveState>1 and a.ProjectId=@projectid and a.ApproveUser=@ApproveUser) as t where 1=1 ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId));
listStr.Add(new SqlParameter("@ApproveUser", this.CurrUser.UserId));

View File

@ -261102,8 +261102,6 @@ namespace Model
private System.Nullable<int> _ProblemType;
private string _QuestionTechnologyId;
private string _TermItemId;
private string _WorkPackId;
@ -261124,6 +261122,8 @@ namespace Model
private System.Nullable<System.DateTime> _AddTime;
private string _SubInspectId;
#region
partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action);
@ -261140,8 +261140,6 @@ namespace Model
partial void OnConstructionUnitChanged();
partial void OnProblemTypeChanging(System.Nullable<int> value);
partial void OnProblemTypeChanged();
partial void OnQuestionTechnologyIdChanging(string value);
partial void OnQuestionTechnologyIdChanged();
partial void OnTermItemIdChanging(string value);
partial void OnTermItemIdChanged();
partial void OnWorkPackIdChanging(string value);
@ -261162,6 +261160,8 @@ namespace Model
partial void OnAddUserChanged();
partial void OnAddTimeChanging(System.Nullable<System.DateTime> value);
partial void OnAddTimeChanged();
partial void OnSubInspectIdChanging(string value);
partial void OnSubInspectIdChanged();
#endregion
public PreRun_InspectTailTerm()
@ -261289,26 +261289,6 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_QuestionTechnologyId", DbType="VarChar(50)")]
public string QuestionTechnologyId
{
get
{
return this._QuestionTechnologyId;
}
set
{
if ((this._QuestionTechnologyId != value))
{
this.OnQuestionTechnologyIdChanging(value);
this.SendPropertyChanging();
this._QuestionTechnologyId = value;
this.SendPropertyChanged("QuestionTechnologyId");
this.OnQuestionTechnologyIdChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TermItemId", DbType="VarChar(50)")]
public string TermItemId
{
@ -261509,6 +261489,26 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SubInspectId", DbType="VarChar(50)")]
public string SubInspectId
{
get
{
return this._SubInspectId;
}
set
{
if ((this._SubInspectId != value))
{
this.OnSubInspectIdChanging(value);
this.SendPropertyChanging();
this._SubInspectId = value;
this.SendPropertyChanged("SubInspectId");
this.OnSubInspectIdChanged();
}
}
}
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangedEventHandler PropertyChanged;
@ -262414,6 +262414,16 @@ namespace Model
private string _PropertyTechnologyId;
private System.Nullable<int> _InspectionIsAllPass;
private System.Nullable<int> _SubcontractorIsAllPass;
private System.Nullable<int> _ContractorIsAllPass;
private System.Nullable<int> _SupervisionIsAllPass;
private System.Nullable<int> _OwnerIsAllPass;
#region
partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action);
@ -262452,6 +262462,16 @@ namespace Model
partial void OnWorkPackTypeChanged();
partial void OnPropertyTechnologyIdChanging(string value);
partial void OnPropertyTechnologyIdChanged();
partial void OnInspectionIsAllPassChanging(System.Nullable<int> value);
partial void OnInspectionIsAllPassChanged();
partial void OnSubcontractorIsAllPassChanging(System.Nullable<int> value);
partial void OnSubcontractorIsAllPassChanged();
partial void OnContractorIsAllPassChanging(System.Nullable<int> value);
partial void OnContractorIsAllPassChanged();
partial void OnSupervisionIsAllPassChanging(System.Nullable<int> value);
partial void OnSupervisionIsAllPassChanged();
partial void OnOwnerIsAllPassChanging(System.Nullable<int> value);
partial void OnOwnerIsAllPassChanged();
#endregion
public PreRun_SubInspectTerm()
@ -262779,7 +262799,7 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PropertyTechnologyId", DbType="VarChar(50)")]
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PropertyTechnologyId", DbType="VarChar(MAX)", UpdateCheck=UpdateCheck.Never)]
public string PropertyTechnologyId
{
get
@ -262799,6 +262819,106 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InspectionIsAllPass", DbType="Int")]
public System.Nullable<int> InspectionIsAllPass
{
get
{
return this._InspectionIsAllPass;
}
set
{
if ((this._InspectionIsAllPass != value))
{
this.OnInspectionIsAllPassChanging(value);
this.SendPropertyChanging();
this._InspectionIsAllPass = value;
this.SendPropertyChanged("InspectionIsAllPass");
this.OnInspectionIsAllPassChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SubcontractorIsAllPass", DbType="Int")]
public System.Nullable<int> SubcontractorIsAllPass
{
get
{
return this._SubcontractorIsAllPass;
}
set
{
if ((this._SubcontractorIsAllPass != value))
{
this.OnSubcontractorIsAllPassChanging(value);
this.SendPropertyChanging();
this._SubcontractorIsAllPass = value;
this.SendPropertyChanged("SubcontractorIsAllPass");
this.OnSubcontractorIsAllPassChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ContractorIsAllPass", DbType="Int")]
public System.Nullable<int> ContractorIsAllPass
{
get
{
return this._ContractorIsAllPass;
}
set
{
if ((this._ContractorIsAllPass != value))
{
this.OnContractorIsAllPassChanging(value);
this.SendPropertyChanging();
this._ContractorIsAllPass = value;
this.SendPropertyChanged("ContractorIsAllPass");
this.OnContractorIsAllPassChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SupervisionIsAllPass", DbType="Int")]
public System.Nullable<int> SupervisionIsAllPass
{
get
{
return this._SupervisionIsAllPass;
}
set
{
if ((this._SupervisionIsAllPass != value))
{
this.OnSupervisionIsAllPassChanging(value);
this.SendPropertyChanging();
this._SupervisionIsAllPass = value;
this.SendPropertyChanged("SupervisionIsAllPass");
this.OnSupervisionIsAllPassChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OwnerIsAllPass", DbType="Int")]
public System.Nullable<int> OwnerIsAllPass
{
get
{
return this._OwnerIsAllPass;
}
set
{
if ((this._OwnerIsAllPass != value))
{
this.OnOwnerIsAllPassChanging(value);
this.SendPropertyChanging();
this._OwnerIsAllPass = value;
this.SendPropertyChanged("OwnerIsAllPass");
this.OnOwnerIsAllPassChanged();
}
}
}
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangedEventHandler PropertyChanged;
@ -262874,6 +262994,14 @@ namespace Model
private System.Nullable<int> _Sort;
private System.Nullable<int> _SubcontractorIsPass;
private System.Nullable<int> _ContractorIsPass;
private System.Nullable<int> _SupervisionIsPass;
private System.Nullable<int> _OwnerIsPass;
#region
partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action);
@ -262926,6 +263054,14 @@ namespace Model
partial void OnAddTimeChanged();
partial void OnSortChanging(System.Nullable<int> value);
partial void OnSortChanged();
partial void OnSubcontractorIsPassChanging(System.Nullable<int> value);
partial void OnSubcontractorIsPassChanged();
partial void OnContractorIsPassChanging(System.Nullable<int> value);
partial void OnContractorIsPassChanged();
partial void OnSupervisionIsPassChanging(System.Nullable<int> value);
partial void OnSupervisionIsPassChanged();
partial void OnOwnerIsPassChanging(System.Nullable<int> value);
partial void OnOwnerIsPassChanged();
#endregion
public PreRun_SubInspectTermItem()
@ -263313,7 +263449,7 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PropertyTechnologyId", DbType="VarChar(50)")]
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PropertyTechnologyId", DbType="VarChar(MAX)", UpdateCheck=UpdateCheck.Never)]
public string PropertyTechnologyId
{
get
@ -263413,6 +263549,86 @@ namespace Model
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SubcontractorIsPass", DbType="Int")]
public System.Nullable<int> SubcontractorIsPass
{
get
{
return this._SubcontractorIsPass;
}
set
{
if ((this._SubcontractorIsPass != value))
{
this.OnSubcontractorIsPassChanging(value);
this.SendPropertyChanging();
this._SubcontractorIsPass = value;
this.SendPropertyChanged("SubcontractorIsPass");
this.OnSubcontractorIsPassChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ContractorIsPass", DbType="Int")]
public System.Nullable<int> ContractorIsPass
{
get
{
return this._ContractorIsPass;
}
set
{
if ((this._ContractorIsPass != value))
{
this.OnContractorIsPassChanging(value);
this.SendPropertyChanging();
this._ContractorIsPass = value;
this.SendPropertyChanged("ContractorIsPass");
this.OnContractorIsPassChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SupervisionIsPass", DbType="Int")]
public System.Nullable<int> SupervisionIsPass
{
get
{
return this._SupervisionIsPass;
}
set
{
if ((this._SupervisionIsPass != value))
{
this.OnSupervisionIsPassChanging(value);
this.SendPropertyChanging();
this._SupervisionIsPass = value;
this.SendPropertyChanged("SupervisionIsPass");
this.OnSupervisionIsPassChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OwnerIsPass", DbType="Int")]
public System.Nullable<int> OwnerIsPass
{
get
{
return this._OwnerIsPass;
}
set
{
if ((this._OwnerIsPass != value))
{
this.OnOwnerIsPassChanging(value);
this.SendPropertyChanging();
this._OwnerIsPass = value;
this.SendPropertyChanged("OwnerIsPass");
this.OnOwnerIsPassChanged();
}
}
}
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangedEventHandler PropertyChanged;