提交试车代码

This commit is contained in:
高飞 2023-10-24 10:17:27 +08:00
parent aa4f2bbe25
commit 75581e1eef
30 changed files with 2332 additions and 310 deletions

View File

@ -0,0 +1,22 @@
--
truncate table PreRun_SubInspectTerm
truncate table PreRun_SubInspectTermItem
truncate table PreRun_InspectTailTerm
truncate table PreRun_InspectTermApproveRecords
--
update Sys_Menu set SortIndex=100 where MenuId='A5D6EBB7-E7C8-48EE-8DBD-735117D3C62D'
delete Sys_Menu where MenuId='F7A324D0-2410-4B37-858C-10F0A3059C90'
delete Sys_Menu where MenuId='8542644D-BD9B-4188-9FDE-AE5D6D6D9A40'
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('F7A324D0-2410-4B37-858C-10F0A3059C90','检查项确认',null,'TestRun/BeforeTestRun/TailTermHandleList.aspx',9,'AD6E08B6-5571-4FFB-BDBE-9E6811770BD6','Menu_TestRun',0,1,1)
INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('8542644D-BD9B-4188-9FDE-AE5D6D6D9A40','检查项审核',null,'TestRun/BeforeTestRun/TailTermApproveList.aspx',10,'AD6E08B6-5571-4FFB-BDBE-9E6811770BD6','Menu_TestRun',0,1,1)
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',11,'AD6E08B6-5571-4FFB-BDBE-9E6811770BD6','Menu_TestRun',0,1,1)
go
--
alter table PreRun_InspectTailTerm add HandleUser varchar(50) NULL
--
alter table PreRun_InspectTailTerm add AdjustCompleteTime datetime NULL
--0:1:
alter table PreRun_InspectTermApproveRecords add ApproveType int NULL

View File

@ -1671,6 +1671,8 @@
<Content Include="TestRun\BeforeTestRun\SysPipingDeviceImport.aspx" /> <Content Include="TestRun\BeforeTestRun\SysPipingDeviceImport.aspx" />
<Content Include="TestRun\BeforeTestRun\TailTermApprove.aspx" /> <Content Include="TestRun\BeforeTestRun\TailTermApprove.aspx" />
<Content Include="TestRun\BeforeTestRun\TailTermApproveList.aspx" /> <Content Include="TestRun\BeforeTestRun\TailTermApproveList.aspx" />
<Content Include="TestRun\BeforeTestRun\TailTermHandle.aspx" />
<Content Include="TestRun\BeforeTestRun\TailTermHandleList.aspx" />
<Content Include="TestRun\DriverGoods\GoodsBuy.aspx" /> <Content Include="TestRun\DriverGoods\GoodsBuy.aspx" />
<Content Include="TestRun\DriverGoods\GoodsBuyEdit.aspx" /> <Content Include="TestRun\DriverGoods\GoodsBuyEdit.aspx" />
<Content Include="TestRun\DriverGoods\GoodsPlan.aspx" /> <Content Include="TestRun\DriverGoods\GoodsPlan.aspx" />
@ -15088,6 +15090,18 @@
<Compile Include="TestRun\BeforeTestRun\TailTermApproveList.aspx.designer.cs"> <Compile Include="TestRun\BeforeTestRun\TailTermApproveList.aspx.designer.cs">
<DependentUpon>TailTermApproveList.aspx</DependentUpon> <DependentUpon>TailTermApproveList.aspx</DependentUpon>
</Compile> </Compile>
<Compile Include="TestRun\BeforeTestRun\TailTermHandle.aspx.cs">
<DependentUpon>TailTermHandle.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\BeforeTestRun\TailTermHandle.aspx.designer.cs">
<DependentUpon>TailTermHandle.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\BeforeTestRun\TailTermHandleList.aspx.cs">
<DependentUpon>TailTermHandleList.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\BeforeTestRun\TailTermHandleList.aspx.designer.cs">
<DependentUpon>TailTermHandleList.aspx</DependentUpon>
</Compile>
<Compile Include="TestRun\DriverGoods\GoodsBuy.aspx.cs"> <Compile Include="TestRun\DriverGoods\GoodsBuy.aspx.cs">
<DependentUpon>GoodsBuy.aspx</DependentUpon> <DependentUpon>GoodsBuy.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>

View File

@ -65,7 +65,7 @@
<Items> <Items>
<f:DropDownList ID="ddlSubInspectId" ShowRedStar="true" runat="server" Required="true" Label="管道/设备" LabelAlign="Right" AutoPostBack="true" OnSelectedIndexChanged="ddlSubInspectId_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>
<f:DropDownList ID="ddlTermItemId" ShowRedStar="true" runat="server" Required="true" Label="检查项" LabelAlign="Right" EmptyText="--请选择--"> <f:DropDownList ID="ddlTermItemId" ShowRedStar="true" runat="server" Required="true" Label="检查项" LabelAlign="Right" AutoPostBack="true" OnSelectedIndexChanged="ddlTermItemId_SelectedIndexChanged" EmptyText="--请选择--">
</f:DropDownList> </f:DropDownList>
</Items> </Items>
</f:FormRow> </f:FormRow>
@ -83,19 +83,26 @@
</f:FormRow> </f:FormRow>
<f:FormRow> <f:FormRow>
<Items> <Items>
<f:DatePicker ID="txtRectifyTime" ShowRedStar="true" Required="true" runat="server" Label="整改时间" LabelAlign="Right" <f:Label ID="lblInspectUser" Label="提出人" Text="" runat="server" LabelAlign="Right" LabelWidth="150px"></f:Label>
EnableEdit="true"> <f:Label ID="lblRectifyTime" Label="提出时间" Text="" runat="server" LabelAlign="Right" LabelWidth="150px"></f:Label>
</f:DatePicker> <f:HiddenField ID="hidInspectUserId" runat="server"></f:HiddenField>
</Items> </Items>
</f:FormRow> </f:FormRow>
<f:FormRow> <f:FormRow>
<Items> <Items>
<f:DropDownList ID="ddlInspectUser" runat="server" Label="检查人" Required="true" LabelAlign="Right" EnableEdit="true"> <f:DropDownList ID="ddlHandleUser" runat="server" Label="处理人" Required="true" LabelAlign="Right" EnableEdit="true">
</f:DropDownList> </f:DropDownList>
<f:DropDownList ID="ddlApproveUser" runat="server" Label="审核人" Required="true" LabelAlign="Right" EnableEdit="true"> <f:DropDownList ID="ddlApproveUser" runat="server" Label="审核人" Required="true" LabelAlign="Right" EnableEdit="true">
</f:DropDownList> </f:DropDownList>
</Items> </Items>
</f:FormRow> </f:FormRow>
<f:FormRow>
<Items>
<f:DatePicker runat="server" Required="true" EnableEdit="false" Label="整改完成时间" LabelWidth="150px" EmptyText="请选择日期"
ID="txtAdjustCompleteTime" ShowRedStar="true">
</f:DatePicker>
</Items>
</f:FormRow>
<f:FormRow> <f:FormRow>
<Items> <Items>
<f:Panel ID="Panel1" ShowHeader="false" ShowBorder="false" Layout="Column" runat="server"> <f:Panel ID="Panel1" ShowHeader="false" ShowBorder="false" Layout="Column" runat="server">
@ -122,8 +129,27 @@
</f:ContentPanel> </f:ContentPanel>
</Items> </Items>
</f:FormRow> </f:FormRow>
<f:FormRow ID="plApprove2"> <f:FormRow ID="plApprove2">
<Items>
<f:ContentPanel Title="巡检处理列表" ShowBorder="true"
BodyPadding="10px" EnableCollapse="true" ShowHeader="true" AutoScroll="true"
runat="server">
<f:Grid ID="gvHandle" IsFluid="true" CssClass="blockpanel" ShowBorder="true" ShowHeader="false" runat="server" EnableCollapse="false"
DataKeyNames="InspectTermId" EnableColumnLines="true" ForceFit="true">
<Columns>
<f:RowNumberField />
<f:RenderField ColumnID="ApproveStateName" Width="100px" DataField="ApproveStateName" HeaderText="处理状态" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField ColumnID="ApproveTime" Width="150px" DataField="ApproveTime" HeaderText="处理时间" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField ColumnID="ApproveOpinion" DataField="ApproveOpinion" HeaderText="处理意见" HeaderTextAlign="Center">
</f:RenderField>
</Columns>
</f:Grid>
</f:ContentPanel>
</Items>
</f:FormRow>
<f:FormRow ID="plApprove3">
<Items> <Items>
<f:ContentPanel Title="巡检审批列表" ShowBorder="true" <f:ContentPanel Title="巡检审批列表" ShowBorder="true"
BodyPadding="10px" EnableCollapse="true" ShowHeader="true" AutoScroll="true" BodyPadding="10px" EnableCollapse="true" ShowHeader="true" AutoScroll="true"
@ -149,9 +175,9 @@
<Items> <Items>
<f:ToolbarFill ID="ToolbarFill1" runat="server"> <f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill> </f:ToolbarFill>
<f:Button ID="btnSave" Icon="SystemSave" runat="server" ToolTip="保存" ValidateForms="SimpleForm1" OnClick="btnSave_Click"> <f:Button ID="btnSave" Icon="SystemSave" runat="server" Text="保存" ToolTip="保存" ValidateForms="SimpleForm1" OnClick="btnSave_Click">
</f:Button> </f:Button>
<f:Button ID="btnSubmit" Icon="SystemSaveNew" runat="server" ToolTip="保存并提交" ValidateForms="SimpleForm1" OnClick="btnSubmit_Click"> <f:Button ID="btnSubmit" Icon="SystemSaveNew" runat="server" Text="保存并提交处理" ToolTip="保存并提交处理" ValidateForms="SimpleForm1" OnClick="btnSubmit_Click">
</f:Button> </f:Button>
</Items> </Items>
</f:Toolbar> </f:Toolbar>

View File

@ -68,8 +68,8 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
this.IsView = string.IsNullOrWhiteSpace(Request["IsView"]) ? false : bool.Parse(Request["IsView"]); this.IsView = string.IsNullOrWhiteSpace(Request["IsView"]) ? false : bool.Parse(Request["IsView"]);
//数据绑定 //数据绑定
PageInit(); PageInit();
//审批已经绑定 //处理和审批意见绑定
gvApproveBrid(); gvRecordBrid();
//判断是否查看 //判断是否查看
if (IsView) if (IsView)
{ {
@ -84,9 +84,8 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
ddlTermItemId.Enabled = false; ddlTermItemId.Enabled = false;
txtQuestionDesc.Enabled = false; txtQuestionDesc.Enabled = false;
txtRectifyOpinion.Enabled = false; txtRectifyOpinion.Enabled = false;
txtRectifyTime.Enabled = false;
ddlInspectUser.Enabled = false;
ddlApproveUser.Enabled = false; ddlApproveUser.Enabled = false;
ddlHandleUser.Enabled = false;
} }
} }
} }
@ -101,12 +100,6 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
var selectList = new List<SelectPropertyTechnology>(); var selectList = new List<SelectPropertyTechnology>();
//施工单位 //施工单位
UnitService.InitUnitByProjectIdUnitTypeDropDownList(ddlConstructionUnit, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false); UnitService.InitUnitByProjectIdUnitTypeDropDownList(ddlConstructionUnit, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false);
//获取用户信息
//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 var userList = from user in Funs.DB.Sys_User
join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId
@ -122,12 +115,12 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
//检查人和审核人 //检查人和审核人
if (users.Count() > 0) if (users.Count() > 0)
{ {
//检查 //处理
ddlInspectUser.DataTextField = "UserName"; ddlHandleUser.DataTextField = "UserName";
ddlInspectUser.DataValueField = "UserId"; ddlHandleUser.DataValueField = "UserId";
ddlInspectUser.DataSource = users; ddlHandleUser.DataSource = users;
ddlInspectUser.DataBind(); ddlHandleUser.DataBind();
ddlInspectUser.SelectedValue = this.CurrUser.UserId; ddlHandleUser.SelectedValue = this.CurrUser.UserId;
//审核人 //审核人
ddlApproveUser.DataTextField = "UserName"; ddlApproveUser.DataTextField = "UserName";
ddlApproveUser.DataValueField = "UserId"; ddlApproveUser.DataValueField = "UserId";
@ -146,6 +139,13 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
ddlConstructionUnit.SelectedValue = model.ConstructionUnit; ddlConstructionUnit.SelectedValue = model.ConstructionUnit;
//问题类别 //问题类别
ddlProblemType.SelectedValue = model.ProblemType.ToString(); ddlProblemType.SelectedValue = model.ProblemType.ToString();
//提出人
var inspectModel = users.FirstOrDefault(x => x.UserId == model.InspectUser);
if (inspectModel != null)
{
lblInspectUser.Text = inspectModel.UserName;
hidInspectUserId.Text = inspectModel.UserId;
}
//绑定管道或者设备 //绑定管道或者设备
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 }); 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) if (termitemlist.Count() > 0)
@ -220,12 +220,14 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
txtQuestionDesc.Text = model.QuestionDesc; txtQuestionDesc.Text = model.QuestionDesc;
//整改意见 //整改意见
txtRectifyOpinion.Text = model.RectifyOpinion; txtRectifyOpinion.Text = model.RectifyOpinion;
//整改时间 //提出时间
txtRectifyTime.Text = model.RectifyTime != null ? model.RectifyTime.Value.ToString("yyyy-MM-dd hh:mm:ss") : string.Empty; lblRectifyTime.Text = model.RectifyTime != null ? model.RectifyTime.Value.ToString("yyyy-MM-dd") : string.Empty;
//检查 //处理
ddlInspectUser.SelectedValue = model.InspectUser; ddlHandleUser.SelectedValue = model.HandleUser;
//审核人 //审核人
ddlApproveUser.SelectedValue = model.ApproveUser; ddlApproveUser.SelectedValue = model.ApproveUser;
//整改完成日期
txtAdjustCompleteTime.Text = model.AdjustCompleteTime != null ? model.AdjustCompleteTime.Value.ToString("yyyy-MM-dd") : string.Empty;
if (model.ApproveState > 1) if (model.ApproveState > 1)
{ {
QuestionEditImg = -1; QuestionEditImg = -1;
@ -242,7 +244,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
string code = projectModel.ProjectCode + "-06-CM03-XJ-"; string code = projectModel.ProjectCode + "-06-CM03-XJ-";
txtTailTermCode.Text = SQLHelper.RunProcNewId("SpGetNewCode5", "dbo.PreRun_InspectTailTerm", "TailTermCode", code); txtTailTermCode.Text = SQLHelper.RunProcNewId("SpGetNewCode5", "dbo.PreRun_InspectTailTerm", "TailTermCode", code);
} }
if (!string.IsNullOrWhiteSpace(TermItemId)) if (!string.IsNullOrWhiteSpace(this.TermItemId))
{ {
var itemTerm = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == this.TermItemId); var itemTerm = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == this.TermItemId);
if (itemTerm != null) if (itemTerm != null)
@ -266,24 +268,39 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
//检查项 //检查项
ddlSubInspectId_SelectedIndexChanged(null, null); ddlSubInspectId_SelectedIndexChanged(null, null);
ddlTermItemId.SelectedValue = itemTerm.TermItemId; ddlTermItemId.SelectedValue = itemTerm.TermItemId;
//提出人
var inspectModel = users.FirstOrDefault(x => x.UserId == itemTerm.InspectedUser);
if (inspectModel != null)
{
lblInspectUser.Text = inspectModel.UserName;
hidInspectUserId.Text = inspectModel.UserId;
}
//提出时间
lblRectifyTime.Text = DateTime.Now.ToString("yyyy-MM-dd");
} }
} }
} }
} }
/// <summary> /// <summary>
/// 审批意见绑定 /// 处理和审批意见绑定
/// </summary> /// </summary>
public void gvApproveBrid() public void gvRecordBrid()
{ {
string strSql = @"select a.InspectTermId,a.ApproveOpinion,a.ApproveTime,a.ApproveState,(case a.ApproveState when 0 then '退回' when 1 then '通过' else '' end) as ApproveStateName,a.AddUser,a.AddTime from PreRun_InspectTermApproveRecords as a inner join PreRun_InspectTailTerm as b on a.TailTermId=b.TailTermId inner join PreRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId where 1=1 and a.ProjectId=@ProjectId and a.TailTermId=@TailTermId "; string strSql = @"select a.InspectTermId,a.ApproveOpinion,a.ApproveTime,a.ApproveType,a.ApproveState,(case a.ApproveType when 0 then (case a.ApproveState when 0 then '处理退回' when 1 then '处理通过' else '' end) else (case a.ApproveState when 0 then '审批退回' when 1 then '审批通过' else '' end) end) as ApproveStateName,a.AddUser,a.AddTime from PreRun_InspectTermApproveRecords as a inner join PreRun_InspectTailTerm as b on a.TailTermId=b.TailTermId inner join PreRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId where 1=1 and a.ProjectId=@ProjectId and a.TailTermId=@TailTermId ";
List<SqlParameter> listStr = new List<SqlParameter>(); List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
listStr.Add(new SqlParameter("@TailTermId", this.TailTermId)); listStr.Add(new SqlParameter("@TailTermId", this.TailTermId));
strSql += " order by a.AddTime asc"; strSql += " order by a.AddTime asc";
SqlParameter[] parameter = listStr.ToArray(); SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
gvApprove.DataSource = tb; //处理意见
var handleTb = tb.AsEnumerable().Where(row => row.Field<int>("ApproveType") == 0);
gvHandle.DataSource = handleTb;
gvHandle.DataBind();
//审批意见
var approveTb = tb.AsEnumerable().Where(row => row.Field<int>("ApproveType") == 1);
gvApprove.DataSource = approveTb;
gvApprove.DataBind(); gvApprove.DataBind();
} }
@ -314,9 +331,9 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
ShowNotify("请选择检查项!", MessageBoxIcon.Warning); ShowNotify("请选择检查项!", MessageBoxIcon.Warning);
return; return;
} }
if (string.IsNullOrWhiteSpace(ddlInspectUser.SelectedValue)) if (string.IsNullOrWhiteSpace(ddlHandleUser.SelectedValue))
{ {
ShowNotify("请选择检查人!", MessageBoxIcon.Warning); ShowNotify("请选择处理人!", MessageBoxIcon.Warning);
return; return;
} }
if (string.IsNullOrWhiteSpace(ddlApproveUser.SelectedValue)) if (string.IsNullOrWhiteSpace(ddlApproveUser.SelectedValue))
@ -341,9 +358,11 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
model.TermItemId = ddlTermItemId.SelectedValue; model.TermItemId = ddlTermItemId.SelectedValue;
model.QuestionDesc = txtQuestionDesc.Text.Trim(); model.QuestionDesc = txtQuestionDesc.Text.Trim();
model.RectifyOpinion = txtRectifyOpinion.Text.Trim(); model.RectifyOpinion = txtRectifyOpinion.Text.Trim();
model.RectifyTime = DateTime.Parse(txtRectifyTime.Text); model.RectifyTime = DateTime.Parse(lblRectifyTime.Text);
model.InspectUser = ddlInspectUser.SelectedValue; model.InspectUser = hidInspectUserId.Text;
model.HandleUser = ddlHandleUser.SelectedValue;
model.ApproveUser = ddlApproveUser.SelectedValue; model.ApproveUser = ddlApproveUser.SelectedValue;
model.AdjustCompleteTime = DateTime.Parse(txtAdjustCompleteTime.Text);
model.ApproveState = 0; model.ApproveState = 0;
model.AddUser = this.CurrUser.LoginProjectId; model.AddUser = this.CurrUser.LoginProjectId;
model.AddTime = DateTime.Now; model.AddTime = DateTime.Now;
@ -386,9 +405,9 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
ShowNotify("请选择检查项!", MessageBoxIcon.Warning); ShowNotify("请选择检查项!", MessageBoxIcon.Warning);
return; return;
} }
if (string.IsNullOrWhiteSpace(ddlInspectUser.SelectedValue)) if (string.IsNullOrWhiteSpace(ddlHandleUser.SelectedValue))
{ {
ShowNotify("请选择检查人!", MessageBoxIcon.Warning); ShowNotify("请选择处理人!", MessageBoxIcon.Warning);
return; return;
} }
if (string.IsNullOrWhiteSpace(ddlApproveUser.SelectedValue)) if (string.IsNullOrWhiteSpace(ddlApproveUser.SelectedValue))
@ -413,10 +432,12 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
model.TermItemId = ddlTermItemId.SelectedValue; model.TermItemId = ddlTermItemId.SelectedValue;
model.QuestionDesc = txtQuestionDesc.Text.Trim(); model.QuestionDesc = txtQuestionDesc.Text.Trim();
model.RectifyOpinion = txtRectifyOpinion.Text.Trim(); model.RectifyOpinion = txtRectifyOpinion.Text.Trim();
model.RectifyTime = DateTime.Parse(txtRectifyTime.Text); model.RectifyTime = DateTime.Parse(lblRectifyTime.Text);
model.InspectUser = ddlInspectUser.SelectedValue; model.InspectUser = hidInspectUserId.Text;
model.HandleUser = ddlHandleUser.SelectedValue;
model.ApproveUser = ddlApproveUser.SelectedValue; model.ApproveUser = ddlApproveUser.SelectedValue;
model.ApproveState = 2; model.AdjustCompleteTime = DateTime.Parse(txtAdjustCompleteTime.Text);
model.ApproveState = 1;
model.AddUser = this.CurrUser.LoginProjectId; model.AddUser = this.CurrUser.LoginProjectId;
model.AddTime = DateTime.Now; model.AddTime = DateTime.Now;
var workPack = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == model.TermItemId); var workPack = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == model.TermItemId);
@ -507,6 +528,15 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
ddlSubInspectId.Items.Insert(0, new ListItem("==无数据==", "")); ddlSubInspectId.Items.Insert(0, new ListItem("==无数据==", ""));
} }
} }
else
{
ddlSubInspectId.DataSource = null;
ddlSubInspectId.DataBind();
ddlSubInspectId.Items.Insert(0, new ListItem("==无数据==", ""));
ddlTermItemId.DataSource = null;
ddlTermItemId.DataBind();
ddlTermItemId.Items.Insert(0, new ListItem("==无数据==", ""));
}
} }
} }
@ -541,13 +571,32 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
} }
/// <summary> /// <summary>
/// /// 检查项
/// </summary>
protected void ddlTermItemId_SelectedIndexChanged(object sender, EventArgs e)
{
var itemTerm = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == ddlTermItemId.SelectedValue);
if (itemTerm != null)
{
//提出人
var inspectModel = Funs.DB.Sys_User.FirstOrDefault(x => x.UserId == itemTerm.InspectedUser);
if (inspectModel != null)
{
lblInspectUser.Text = inspectModel.UserName;
hidInspectUserId.Text = inspectModel.UserId;
}
//提出时间
lblRectifyTime.Text = DateTime.Now.ToString("yyyy-MM-dd");
}
}
/// <summary>
/// 关闭
/// </summary> /// </summary>
protected void WindowAtt_Close(object sender, WindowCloseEventArgs e) protected void WindowAtt_Close(object sender, WindowCloseEventArgs e)
{ {
} }
} }
/// <summary> /// <summary>

View File

@ -132,22 +132,40 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
protected global::FineUIPro.TextArea txtRectifyOpinion; protected global::FineUIPro.TextArea txtRectifyOpinion;
/// <summary> /// <summary>
/// txtRectifyTime 控件。 /// lblInspectUser 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUIPro.DatePicker txtRectifyTime; protected global::FineUIPro.Label lblInspectUser;
/// <summary> /// <summary>
/// ddlInspectUser 控件。 /// lblRectifyTime 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUIPro.DropDownList ddlInspectUser; protected global::FineUIPro.Label lblRectifyTime;
/// <summary>
/// hidInspectUserId 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.HiddenField hidInspectUserId;
/// <summary>
/// ddlHandleUser 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlHandleUser;
/// <summary> /// <summary>
/// ddlApproveUser 控件。 /// ddlApproveUser 控件。
@ -158,6 +176,15 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
/// </remarks> /// </remarks>
protected global::FineUIPro.DropDownList ddlApproveUser; protected global::FineUIPro.DropDownList ddlApproveUser;
/// <summary>
/// txtAdjustCompleteTime 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtAdjustCompleteTime;
/// <summary> /// <summary>
/// Panel1 控件。 /// Panel1 控件。
/// </summary> /// </summary>
@ -212,6 +239,24 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
/// </remarks> /// </remarks>
protected global::FineUIPro.FormRow plApprove2; protected global::FineUIPro.FormRow plApprove2;
/// <summary>
/// gvHandle 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid gvHandle;
/// <summary>
/// plApprove3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.FormRow plApprove3;
/// <summary> /// <summary>
/// gvApprove 控件。 /// gvApprove 控件。
/// </summary> /// </summary>

View File

@ -44,6 +44,21 @@
white-space: normal; white-space: normal;
word-break: break-all; word-break: break-all;
} }
.f-grid-cell[data-color=color1] {
background-color: #56ff00;
color: #fff;
}
.f-grid-cell[data-color=color2] {
background-color: #e1db21;
color: #fff;
}
.f-grid-cell[data-color=color3] {
background-color: #e23129;
color: #fff;
}
</style> </style>
</head> </head>
<body> <body>
@ -62,11 +77,11 @@
</Items> </Items>
</f:Panel> </f:Panel>
<f:Grid ID="Grid1" ShowBorder="true" EnableAjax="false" ShowHeader="false" Title="质量巡检记录" EnableCollapse="true" <f:Grid ID="Grid1" ShowBorder="true" EnableAjax="false" ShowHeader="false" Title="质量巡检记录" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="TailTermId" AllowCellEditing="true" runat="server" BoxFlex="1" DataKeyNames="TailTermId,ApproveState" AllowCellEditing="true"
ClicksToEdit="2" DataIDField="TailTermId" AllowSorting="true" SortField="AddTime" ClicksToEdit="2" DataIDField="TailTermId" AllowSorting="true" SortField="AddTime"
SortDirection="DESC" OnSort="Grid1_Sort" EnableColumnLines="true" ForceFit="true" SortDirection="DESC" OnSort="Grid1_Sort" EnableColumnLines="true" ForceFit="true"
AllowPaging="true" IsDatabasePaging="true" PageSize="10" OnPageIndexChange="Grid1_PageIndexChange" AllowPaging="true" IsDatabasePaging="true" PageSize="10" OnPageIndexChange="Grid1_PageIndexChange"
EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" AllowFilters="true" EnableTextSelection="True" EnableMultiSelect="false" EnableCheckBoxSelect="true"> EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" AllowFilters="true" EnableTextSelection="True" EnableMultiSelect="false" EnableCheckBoxSelect="true" OnRowDataBound="Grid1_RowDataBound">
<Toolbars> <Toolbars>
<f:Toolbar ID="Toolbar1" Position="Top" runat="server" ToolbarAlign="Left"> <f:Toolbar ID="Toolbar1" Position="Top" runat="server" ToolbarAlign="Left">
<Items> <Items>
@ -77,10 +92,12 @@
</f:DropDownList> </f:DropDownList>
<f:DropDownList ID="ddlApproveState" runat="server" Label="审核状态" LabelAlign="Right" EnableEdit="true"> <f:DropDownList ID="ddlApproveState" runat="server" Label="审核状态" LabelAlign="Right" EnableEdit="true">
<f:ListItem Text="全部" Value="" /> <f:ListItem Text="全部" Value="" />
<f:ListItem Text="待申请" Value="0" /> <f:ListItem Text="待提交处理" Value="0" />
<f:ListItem Text="待审核" Value="1" /> <f:ListItem Text="待处理" Value="1" />
<f:ListItem Text="退回" Value="2" /> <f:ListItem Text="处理退回" Value="2" />
<f:ListItem Text="审核通过" Value="3" /> <f:ListItem Text="审核退回" Value="3" />
<f:ListItem Text="待审核" Value="4" />
<f:ListItem Text="审核通过" Value="5" />
</f:DropDownList> </f:DropDownList>
<f:DatePicker runat="server" DateFormatString="yyyy-MM-dd" Label="开始日期" ID="txtStartTime" LabelAlign="right"> <f:DatePicker runat="server" DateFormatString="yyyy-MM-dd" Label="开始日期" ID="txtStartTime" LabelAlign="right">
</f:DatePicker> </f:DatePicker>
@ -88,10 +105,10 @@
</f:DatePicker> </f:DatePicker>
<f:ToolbarFill runat="server"></f:ToolbarFill> <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="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="btnNew" Text="新增" 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="btnModify" Text="修改" 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="btnSubmitReview" Text="提交处理" ToolTip="提交处理" runat="server" OnClick="btnSubmitReview_Click"></f:Button>
<f:Button ID="btnwithdraw" Text="撤回提交" ToolTip="撤回提交" runat="server" OnClick="btnwithdraw_Click"></f:Button> <f:Button ID="btnwithdraw" Text="撤回提交处理" ToolTip="撤回提交处理" runat="server" OnClick="btnwithdraw_Click"></f:Button>
</Items> </Items>
</f:Toolbar> </f:Toolbar>
</Toolbars> </Toolbars>
@ -107,14 +124,22 @@
</f:RenderField> </f:RenderField>
<f:RenderField ColumnID="RectifyOpinion" DataField="RectifyOpinion" HeaderText="整改意见" HeaderTextAlign="Center"> <f:RenderField ColumnID="RectifyOpinion" DataField="RectifyOpinion" HeaderText="整改意见" HeaderTextAlign="Center">
</f:RenderField> </f:RenderField>
<f:RenderField ColumnID="RectifyTime" DataField="RectifyTime" SortField="RectifyTime" HeaderText="整改时间" HeaderTextAlign="Center"> <f:BoundField DataField="RectifyTime" DataFormatString="{0:yyyy-MM-dd}" HeaderText="整改时间" />
</f:RenderField>
<f:RenderField ColumnID="InspectUserName" DataField="InspectUserName" HeaderText="检查人" HeaderTextAlign="Center"> <f:RenderField ColumnID="InspectUserName" DataField="InspectUserName" HeaderText="检查人" HeaderTextAlign="Center">
</f:RenderField> </f:RenderField>
<f:RenderField ColumnID="ApproveStateName" DataField="ApproveStateName" HeaderText="审批状态" HeaderTextAlign="Center"> <f:RenderField ColumnID="ApproveStateName" DataField="ApproveStateName" HeaderText="流程状态" HeaderTextAlign="Center">
</f:RenderField> </f:RenderField>
<f:RenderField ColumnID="ApproveUserName" DataField="ApproveUserName" HeaderText="办理人" HeaderTextAlign="Center"> <f:BoundField DataField="AdjustCompleteTime" DataFormatString="{0:yyyy-MM-dd}" HeaderText="要求整改日期" />
<f:RenderField ColumnID="ApproveUserName" DataField="HandleUserName" HeaderText="处理人" HeaderTextAlign="Center">
</f:RenderField> </f:RenderField>
<f:RenderField ColumnID="ApproveUserName" DataField="ApproveUserName" HeaderText="审核人" HeaderTextAlign="Center">
</f:RenderField>
<f:TemplateField ColumnID="AdjustDiffDay" HeaderText="整改是否逾期" HeaderTextAlign="Center" TextAlign="Center"
EnableLock="true" Locked="False">
<ItemTemplate>
<asp:Label ID="lblIsOverdue" runat="server" Text='<%# IsOverdue(Eval("AdjustDiffDay"),Eval("ApproveState")) %>'></asp:Label>
</ItemTemplate>
</f:TemplateField>
</Columns> </Columns>
<Listeners> <Listeners>
<f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" /> <f:Listener Event="beforerowcontextmenu" Handler="onRowContextMenu" />

View File

@ -128,7 +128,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
/// </summary> /// </summary>
public void BindGrid() 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.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 "; 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.HandleUser,g.UserName as HandleUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交处理' when 1 then '待处理' when 2 then '处理退回' when 3 then '审核退回' when 4 then '待审核' when 5 then '审核通过' else '' end) as ApproveStateName,a.AddTime,a.WorkPackId,c.SubSystemId,a.AdjustCompleteTime,DATEDIFF(DAY, GETDATE(),a.AdjustCompleteTime) as AdjustDiffDay 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 inner join Sys_User as g on g.UserId=a.HandleUser 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.HandleUser,g.UserName as HandleUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交处理' when 1 then '待处理' when 2 then '处理退回' when 3 then '审核退回' when 4 then '待审核' when 5 then '审核通过' else '' end) as ApproveStateName,a.AddTime,a.WorkPackId,c.SubSystemId,a.AdjustCompleteTime,DATEDIFF(DAY, GETDATE(),a.AdjustCompleteTime) as AdjustDiffDay 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 inner join Sys_User as g on g.UserId=a.HandleUser where a.ProblemType=2 and a.ProjectId=@projectid and c.InspectedUser=@InspectedUser) as t where 1=1 ";
List<SqlParameter> listStr = new List<SqlParameter>(); List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId)); listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId));
listStr.Add(new SqlParameter("@InspectedUser", this.CurrUser.UserId)); listStr.Add(new SqlParameter("@InspectedUser", this.CurrUser.UserId));
@ -216,6 +216,34 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
BindGrid(); BindGrid();
} }
/// <summary>
/// 行数据处理事件
/// </summary>
protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
{
DataRowView row = e.DataItem as DataRowView;
// 入学年份
int diffDay = Convert.ToInt32(row["AdjustDiffDay"]);
TemplateField AdjustDiffDay = Grid1.FindColumn("AdjustDiffDay") as TemplateField;
int approveState = int.Parse(Grid1.DataKeys[e.RowIndex][1].ToString());
if (approveState != 5)
{
if (diffDay > 0)
{
e.CellAttributes[AdjustDiffDay.ColumnIndex]["data-color"] = "color1";
}
else if (diffDay == 0)
{
e.CellAttributes[AdjustDiffDay.ColumnIndex]["data-color"] = "color2";
}
else if (diffDay < 0)
{
e.CellAttributes[AdjustDiffDay.ColumnIndex]["data-color"] = "color3";
}
}
}
#endregion #endregion
#region #region
@ -230,12 +258,14 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return; return;
} }
var passLs = new List<int>() { 0, 2 };
var model = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID); var model = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID);
if (model != null) if (model != null)
{ {
if (model.ApproveState > 1) if (!passLs.Contains(model.ApproveState.Value))
{ {
Alert.ShowInTop("只可编辑“待提交”和“退回”的记录!", MessageBoxIcon.Warning); Alert.ShowInTop("只可编辑“待提交处理”和“处理退回”的记录!", MessageBoxIcon.Warning);
return; return;
} }
} }
@ -314,7 +344,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
} }
/// <summary> /// <summary>
/// 提交审核 /// 提交处理
/// </summary> /// </summary>
protected void btnSubmitReview_Click(object sender, EventArgs e) protected void btnSubmitReview_Click(object sender, EventArgs e)
{ {
@ -323,15 +353,17 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return; return;
} }
var passLs = new List<int>() { 0, 2 };
var model = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID); var model = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID);
if (model != null) if (model != null)
{ {
if (model.ApproveState > 1) //0:待提交处理1:待处理2:处理退回3:审核退回54:待审核:审核通过
if (!passLs.Contains(model.ApproveState.Value))
{ {
Alert.ShowInTop("只可提交“待提交”和“退回”的记录!", MessageBoxIcon.Warning); Alert.ShowInTop("只可提交“待提交处理”和“处理退回”的记录!", MessageBoxIcon.Warning);
return; return;
} }
model.ApproveState = 2; model.ApproveState = 1;
Funs.DB.SubmitChanges(); Funs.DB.SubmitChanges();
BindGrid(); BindGrid();
Alert.ShowInTop("提交成功!", MessageBoxIcon.Success); Alert.ShowInTop("提交成功!", MessageBoxIcon.Success);
@ -351,9 +383,10 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
var model = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID); var model = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID);
if (model != null) if (model != null)
{ {
if (model.ApproveState != 2) //0:待提交处理1:待处理2:处理退回3:审核退回54:待审核:审核通过
if (model.ApproveState != 1)
{ {
Alert.ShowInTop("只可撤回“待审核”的记录!", MessageBoxIcon.Warning); Alert.ShowInTop("只可撤回“待处理”的记录!", MessageBoxIcon.Warning);
return; return;
} }
model.ApproveState = 0; model.ApproveState = 0;
@ -365,6 +398,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
#endregion #endregion
#region
/// <summary> /// <summary>
/// 已生成检查表的管道/设备 /// 已生成检查表的管道/设备
@ -411,5 +445,41 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
} }
return yczData; return yczData;
} }
/// <summary>
/// 是否逾期返回
/// </summary>
/// <returns></returns>
public string IsOverdue(object diffDayVal, object approveStateVal)
{
var result = string.Empty;
var diffDay = 0;
var approveState = 0;
if (diffDayVal != null) diffDay = int.Parse(diffDayVal.ToString());
if (approveStateVal != null) approveStateVal = int.Parse(approveStateVal.ToString());
if (approveState != 5)
{
if (diffDay > 0)
{
result = "未逾期";
}
else if (diffDay == 0)
{
result = "即将逾期";
}
else if (diffDay < 0)
{
result = "已逾期";
}
}
else
{
result = "整改完毕";
}
return result;
}
#endregion
} }
} }

View File

@ -158,6 +158,15 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
/// </remarks> /// </remarks>
protected global::FineUIPro.Button btnwithdraw; protected global::FineUIPro.Button btnwithdraw;
/// <summary>
/// lblIsOverdue 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblIsOverdue;
/// <summary> /// <summary>
/// ToolbarSeparator1 控件。 /// ToolbarSeparator1 控件。
/// </summary> /// </summary>

View File

@ -27,7 +27,7 @@
</f:Tree> </f:Tree>
</Items> </Items>
</f:Panel> </f:Panel>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="WorkInspectId" DataKeyNames="WorkInspectId,WorkPackId" AllowSorting="true" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowPaging="true" IsDatabasePaging="true" PageSize="15" AllowFilters="true" OnPageIndexChange="Grid1_PageIndexChange" OnSort="Grid1_Sort" OnRowCommand="Grid1_RowCommand"> <f:Grid ID="Grid1" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="WorkInspectId" DataKeyNames="WorkInspectId,WorkPackId" AllowSorting="true" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowPaging="true" IsDatabasePaging="true" PageSize="15" AllowFilters="true" OnPageIndexChange="Grid1_PageIndexChange" OnSort="Grid1_Sort" OnRowCommand="Grid1_RowCommand" ClicksToEdit="1">
<Toolbars> <Toolbars>
<f:Toolbar ID="Toolbar1" runat="server"> <f:Toolbar ID="Toolbar1" runat="server">
<Items> <Items>

View File

@ -37,7 +37,6 @@
<f:FormRow runat="server"> <f:FormRow runat="server">
<Items> <Items>
<f:Label ID="lblgzbmc" Label="工作包名称" Text="" runat="server" LabelAlign="Right" LabelWidth="150px"></f:Label> <f:Label ID="lblgzbmc" Label="工作包名称" Text="" runat="server" LabelAlign="Right" LabelWidth="150px"></f:Label>
<%-- <f:Label ID="lblgzbbm" Label="工作包编码" Text="" runat="server" LabelAlign="Right" LabelWidth="150px"></f:Label>--%>
</Items> </Items>
</f:FormRow> </f:FormRow>
<f:FormRow ColumnWidth="100"> <f:FormRow ColumnWidth="100">

View File

@ -14,51 +14,82 @@
.mycheckbox .f-field-checkbox-switch .f-field-checkbox-switch-text { .mycheckbox .f-field-checkbox-switch .f-field-checkbox-switch-text {
min-width: 40px; min-width: 40px;
} }
.f-grid-tpl .ispass input {
margin: 3px;
}
.f-grid-tpl .ispass label {
margin-left: 3px;
margin-right: 10px;
}
</style> </style>
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" /> <f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" ShowBorder="false" ShowHeader="false" Layout="Region"> <f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
<Items> BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Left">
<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"> <Rows>
<Toolbars> <f:FormRow>
<f:Toolbar ID="Toolbar1" runat="server"> <Items>
<Items> <f:Grid ID="Grid1" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="TermItemId" DataKeyNames="TermItemId,SubItemId,InspectionResults,SubInspectId,IsPass" AllowSorting="true" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" AllowFilters="true" OnSort="Grid1_Sort" EnableTextSelection="True" OnRowDataBound="Grid1_RowDataBound" ClicksToEdit="1">
<f:FileUpload runat="server" ID="fileData" LabelAlign="Right" EmptyText="请选择Excel文件" Label="附件" Required="true" ButtonIcon="Add" ShowRedStar="true"></f:FileUpload> <Toolbars>
<f:Button ID="btnImport" runat="server" OnClick="btnImport_Click" Text="导入"></f:Button> <f:Toolbar ID="Toolbar1" runat="server">
<f:ToolbarFill ID="ToolbarFill" runat="server"></f:ToolbarFill> <Items>
<f:Button ID="btnExport" runat="server" Icon="ApplicationGo" Text="导出" ToolTip="导出" OnClick="btnExport_Click"></f:Button> <f:FileUpload runat="server" ID="fileData" LabelAlign="Right" EmptyText="请选择Excel文件" Label="附件" Required="true" ButtonIcon="Add" ShowRedStar="true"></f:FileUpload>
<f:Button ID="btnSave" Text="保存" ToolTip="保存" Icon="FilmSave" runat="server" OnClick="btnSave_Click"></f:Button> <f:Button ID="btnImport" runat="server" OnClick="btnImport_Click" Text="导入"></f:Button>
</Items> <f:ToolbarFill ID="ToolbarFill" runat="server"></f:ToolbarFill>
</f:Toolbar> <f:Button ID="btnExport" runat="server" Icon="ApplicationGo" Text="导出" ToolTip="导出" OnClick="btnExport_Click"></f:Button>
</Toolbars> <f:Button ID="btnSave" Text="保存" ToolTip="保存" Icon="FilmSave" runat="server" OnClick="btnSave_Click"></f:Button>
<Columns> </Items>
<f:RowNumberField EnablePagingNumber="true" Width="50px" HeaderTextAlign="Center" TextAlign="Center" /> </f:Toolbar>
<f:RenderField HeaderText="检查事项" ColumnID="WorkInspectName" DataField="WorkInspectName" SortField="WorkInspectName" Width="400px"></f:RenderField> </Toolbars>
<f:RenderField HeaderText="检查说明" ColumnID="InspectionIllustrate" DataField="InspectionIllustrate" Width="200px"></f:RenderField> <Columns>
<f:RenderField ExpandUnusedSpace="true" Width="150px" ColumnID="IsPass" DataField="IsPass" <f:RowNumberField EnablePagingNumber="true" Width="50px" HeaderTextAlign="Center" TextAlign="Center" />
HeaderText="签字确认" RendererFunction="renderIsPass"> <f:RenderField HeaderText="检查事项" ColumnID="WorkInspectName" DataField="WorkInspectName" SortField="WorkInspectName" Width="400px"></f:RenderField>
<Editor> <f:RenderField HeaderText="检查说明" ColumnID="InspectionIllustrate" DataField="InspectionIllustrate" Width="200px"></f:RenderField>
<f:DropDownList ID="ddlrenderIsPass" Required="true" EnableEdit="true" ForceSelection="false" runat="server"> <f:TemplateField Width="200px" HeaderText="签字确认" ColumnID="IsPass">
<f:ListItem Value="1" Text="通过" /> <ItemTemplate>
<f:ListItem Value="0" Text="未通过" /> <asp:RadioButtonList runat="server" RepeatLayout="Flow" CssClass="ispass" RepeatDirection="Horizontal" ID="rblIsPass" AutoPostBack="true" OnSelectedIndexChanged="rblIsPass_SelectedIndexChanged">
</f:DropDownList> <asp:ListItem Text="通过" Value="1" Selected="True"></asp:ListItem>
</Editor> <asp:ListItem Text="未通过" Value="0"></asp:ListItem>
</f:RenderField> </asp:RadioButtonList>
<f:RenderField HeaderText="备注" ColumnID="Remark" DataField="Remark" SortField="Remark" </ItemTemplate>
FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="300px"> </f:TemplateField>
<Editor> <f:RenderField HeaderText="备注" ColumnID="Remark" DataField="Remark" SortField="Remark"
<f:TextBox runat="server" ID="txtRemark"></f:TextBox> FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="300px">
</Editor> <Editor>
</f:RenderField> <f:TextBox runat="server" ID="txtRemark"></f:TextBox>
</Columns> </Editor>
</f:Grid> </f:RenderField>
</Items> </Columns>
</f:Panel> </f:Grid>
<f:Window ID="Window1" Title="检查项巡检" Hidden="true" EnableIFrame="true" EnableMaximize="true" </Items>
Target="Parent" EnableResize="false" runat="server" IsModal="true" OnClose="Window1_Close" </f:FormRow>
Width="1300px" Height="660px"> <f:FormRow ID="plApprove2">
<Items>
<f:ContentPanel Title="是否同意进行预试车活动" ShowBorder="true" BodyPadding="10px" EnableCollapse="true" ShowHeader="true" AutoScroll="true" runat="server">
<f:RadioButtonList ID="rblIsAllPass" Label="是否同意进行预试车活动" LabelWidth="180px" LabelAlign="Right" ColumnNumber="2" runat="server" AutoColumnWidth="true" AutoPostBack="true" OnSelectedIndexChanged="rblIsAllPass_SelectedIndexChanged">
<f:RadioItem Text="通过" Value="1" Selected="true" />
<f:RadioItem Text="未通过" Value="0" />
</f:RadioButtonList>
<f:Panel ID="Panel3" Width="500px" ShowHeader="false" ShowBorder="false" Layout="Column" CssClass="" runat="server">
<Items>
<f:Label ID="lblAttach" runat="server" Label="上传附件" LabelWidth="180px" LabelAlign="Right">
</f:Label>
<f:Button ID="btnAttach" Icon="TableCell" EnablePostBack="true" Text="附件" runat="server" OnClick="btnAttach_Click">
</f:Button>
</Items>
</f:Panel>
</f:ContentPanel>
</Items>
</f:FormRow>
</Rows>
</f:Form>
<f:Window ID="WindowAtt" Title="弹出窗体" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" runat="server" IsModal="true" Width="700px"
Height="500px">
</f:Window> </f:Window>
</form> </form>
<script type="text/javascript"> <script type="text/javascript">
@ -70,14 +101,10 @@
__doPostBack(null, 'reloadGrid'); __doPostBack(null, 'reloadGrid');
} }
//检查人 function onUpdateIsPassClick() {
var ddlrenderIsPass = '<%= ddlrenderIsPass.ClientID %>'; alert(1);
function renderIsPass(value) {
if (value == null || value == undefined) {
return '';
}
return F(ddlrenderIsPass).getTextByValue(value);
} }
</script> </script>
</body> </body>
</html> </html>

View File

@ -76,7 +76,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
/// <summary> /// <summary>
/// 绑定数据 /// 绑定数据
/// </summary> /// </summary>
public void BindGrid() public void BindGrid(int isPass = -1)
{ {
//获取子系统 //获取子系统
var data = new List<ConfirmIsPass>(); var data = new List<ConfirmIsPass>();
@ -96,22 +96,22 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
//1=分包商2=承包商3=监理4=业主 //1=分包商2=承包商3=监理4=业主
if (this.ConfirmType == 1) if (this.ConfirmType == 1)
{ {
model.IsPass = item.SubcontractorIsPass; model.IsPass = isPass != -1 ? isPass : item.SubcontractorIsPass;
model.Remark = item.SubcontractorRemark; model.Remark = item.SubcontractorRemark;
} }
if (this.ConfirmType == 2) if (this.ConfirmType == 2)
{ {
model.IsPass = item.ContractorIsPass; model.IsPass = isPass != -1 ? isPass : item.ContractorIsPass;
model.Remark = item.ContractorRemark; model.Remark = item.ContractorRemark;
} }
if (this.ConfirmType == 3) if (this.ConfirmType == 3)
{ {
model.IsPass = item.SupervisionIsPass; model.IsPass = isPass != -1 ? isPass : item.SupervisionIsPass;
model.Remark = item.SupervisionRemark; model.Remark = item.SupervisionRemark;
} }
if (this.ConfirmType == 4) if (this.ConfirmType == 4)
{ {
model.IsPass = item.OwnerIsPass; model.IsPass = isPass != -1 ? isPass : item.OwnerIsPass;
model.Remark = item.OwnerRemark; model.Remark = item.OwnerRemark;
} }
data.Add(model); data.Add(model);
@ -134,7 +134,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
#endregion #endregion
#region #region
/// <summary> /// <summary>
/// 保存 /// 保存
@ -149,32 +149,35 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
string status = mergedRow.Value<string>("status"); string status = mergedRow.Value<string>("status");
JObject values = mergedRow.Value<JObject>("values"); JObject values = mergedRow.Value<JObject>("values");
int i = mergedRow.Value<int>("index"); int i = mergedRow.Value<int>("index");
GridRow row = Grid1.Rows[i];
System.Web.UI.WebControls.RadioButtonList rblIsPass = (System.Web.UI.WebControls.RadioButtonList)row.FindControl("rblIsPass");
var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString();
//获取子系统信息 //获取子系统信息
var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == termItemId); var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == termItemId);
if (model != null) if (model != null)
{ {
if (!string.IsNullOrWhiteSpace(values.Value<string>("IsPass"))) if (!string.IsNullOrWhiteSpace(rblIsPass.SelectedValue))
{ {
//1=分包商2=承包商3=监理4=业主 //1=分包商2=承包商3=监理4=业主
if (this.ConfirmType == 1) if (this.ConfirmType == 1)
{ {
model.SubcontractorIsPass = int.Parse(values.Value<string>("IsPass")); model.SubcontractorIsPass = int.Parse(rblIsPass.SelectedValue);
model.SubcontractorRemark = values.Value<string>("Remark"); model.SubcontractorRemark = values.Value<string>("Remark");
} }
else if (this.ConfirmType == 2) else if (this.ConfirmType == 2)
{ {
model.ContractorIsPass = int.Parse(values.Value<string>("IsPass")); model.ContractorIsPass = int.Parse(rblIsPass.SelectedValue);
model.ContractorRemark = values.Value<string>("Remark"); model.ContractorRemark = values.Value<string>("Remark");
} }
else if (this.ConfirmType == 3) else if (this.ConfirmType == 3)
{ {
model.SupervisionIsPass = int.Parse(values.Value<string>("IsPass")); model.SupervisionIsPass = int.Parse(rblIsPass.SelectedValue);
model.SupervisionRemark = values.Value<string>("Remark"); model.SupervisionRemark = values.Value<string>("Remark");
} }
else if (this.ConfirmType == 4) else if (this.ConfirmType == 4)
{ {
model.OwnerIsPass = int.Parse(values.Value<string>("IsPass")); model.OwnerIsPass = int.Parse(rblIsPass.SelectedValue);
model.OwnerRemark = values.Value<string>("Remark"); model.OwnerRemark = values.Value<string>("Remark");
} }
} }
@ -241,59 +244,13 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
} }
} }
#endregion ///// <summary>
///// 窗口关闭
/// <summary> ///// </summary>
/// 实体绑定 //protected void Window1_Close(object sender, WindowCloseEventArgs e)
/// </summary> //{
public class ConfirmIsPass // BindGrid();
{ //}
/// <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>
public string Remark { get; set; }
}
/// <summary>
/// 窗口关闭
/// </summary>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
BindGrid();
}
/// <summary> /// <summary>
/// 导出 /// 导出
@ -734,6 +691,98 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
} }
} }
/// <summary>
/// 行加载事件
/// </summary>
protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
{
System.Web.UI.WebControls.RadioButtonList rblIsPass = (System.Web.UI.WebControls.RadioButtonList)Grid1.Rows[e.RowIndex].FindControl("rblIsPass");
int isPass = 1;
if (Grid1.DataKeys[e.RowIndex][4] != null) isPass = int.Parse(Grid1.DataKeys[e.RowIndex][4].ToString());
rblIsPass.SelectedValue = isPass.ToString();
if (rblIsPass.SelectedValue != "1")
{
rblIsAllPass.SelectedValue = "0";
}
}
/// <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>
public string Remark { get; set; }
}
/// <summary>
/// 检查项确认事件
/// </summary>
protected void rblIsPass_SelectedIndexChanged(object sender, EventArgs e)
{
for (int i = 0; i < Grid1.Rows.Count; i++)
{
System.Web.UI.WebControls.RadioButtonList rblIsPass = (System.Web.UI.WebControls.RadioButtonList)Grid1.Rows[i].FindControl("rblIsPass");
if (rblIsPass.SelectedValue != "1")
{
rblIsAllPass.SelectedValue = "0";
}
}
}
/// <summary>
/// 是否同意进行预试车活动事件
/// </summary>
protected void rblIsAllPass_SelectedIndexChanged(object sender, EventArgs e)
{
BindGrid(int.Parse(rblIsAllPass.SelectedValue));
}
/// <summary>
/// 附件上传
/// </summary>
protected void btnAttach_Click(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/CheckControl&menuId={1}", $"{this.SubInspectId}_{this.ConfirmType}", Const.TestRunMenuId)));
}
#endregion
#region #region
private bool VerifyFile(DataSet ds) private bool VerifyFile(DataSet ds)
@ -817,5 +866,6 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
} }
#endregion #endregion
} }
} }

View File

@ -33,13 +33,13 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
protected global::FineUIPro.PageManager PageManager1; protected global::FineUIPro.PageManager PageManager1;
/// <summary> /// <summary>
/// Panel1 控件。 /// SimpleForm1 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUIPro.Panel Panel1; protected global::FineUIPro.Form SimpleForm1;
/// <summary> /// <summary>
/// Grid1 控件。 /// Grid1 控件。
@ -105,13 +105,13 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
protected global::FineUIPro.Button btnSave; protected global::FineUIPro.Button btnSave;
/// <summary> /// <summary>
/// ddlrenderIsPass 控件。 /// rblIsPass 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUIPro.DropDownList ddlrenderIsPass; protected global::System.Web.UI.WebControls.RadioButtonList rblIsPass;
/// <summary> /// <summary>
/// txtRemark 控件。 /// txtRemark 控件。
@ -123,12 +123,57 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
protected global::FineUIPro.TextBox txtRemark; protected global::FineUIPro.TextBox txtRemark;
/// <summary> /// <summary>
/// Window1 控件。 /// plApprove2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUIPro.Window Window1; protected global::FineUIPro.FormRow plApprove2;
/// <summary>
/// rblIsAllPass 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.RadioButtonList rblIsAllPass;
/// <summary>
/// Panel3 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel3;
/// <summary>
/// lblAttach 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblAttach;
/// <summary>
/// btnAttach 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnAttach;
/// <summary>
/// WindowAtt 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window WindowAtt;
} }
} }

View File

@ -27,7 +27,7 @@
</f:Tree> </f:Tree>
</Items> </Items>
</f:Panel> </f:Panel>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="TermItemId" DataKeyNames="TermItemId,SubItemId,WorkInspectId,SubInspectId,WorkPackId,InstallationId,ProcessesId,SystemId,SubSystemId" AllowSorting="true" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" AllowFilters="true" OnSort="Grid1_Sort" OnRowCommand="Grid1_RowCommand" IsDatabasePaging="true" BoxFlex="1"> <f:Grid ID="Grid1" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="TermItemId" DataKeyNames="TermItemId,SubItemId,WorkInspectId,SubInspectId,WorkPackId,InstallationId,ProcessesId,SystemId,SubSystemId" AllowSorting="true" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" AllowFilters="true" OnSort="Grid1_Sort" OnRowCommand="Grid1_RowCommand" IsDatabasePaging="true" BoxFlex="1" ClicksToEdit="1">
<Toolbars> <Toolbars>
<f:Toolbar ID="Toolbar1" runat="server"> <f:Toolbar ID="Toolbar1" runat="server">
<Items> <Items>
@ -111,79 +111,71 @@
</f:Panel> </f:Panel>
</form> </form>
<script type="text/javascript"> <script type="text/javascript">
// 返回false来阻止浏览器右键菜单 // 返回false来阻止浏览器右键菜单
function onRowContextMenu(event, rowId) { function onRowContextMenu(event, rowId) {
return false; return false;
}
function reloadGrid() {
__doPostBack(null, 'reloadGrid');
}
//检查人
var ddlInspectedUser = '<%= ddlInspectedUser.ClientID %>';
function renderInspectedUser(value) {
if (value == -1) {
return '';
} else {
return F(ddlInspectedUser).getTextByValue(value);
} }
function reloadGrid() { }
__doPostBack(null, 'reloadGrid');
} var ddbSysPipingClientID = '<%= ddbSysPiping.ClientID %>';
//检查人 var cbSysPipingClientID = '<%= cbSysPiping.ClientID %>';
var ddlInspectedUser = '<%= ddlInspectedUser.ClientID %>'; function onSelectAllClick() {
function renderInspectedUser(value) { var cbSysPiping = F(cbSysPipingClientID);
if (value == -1) { $.each(cbSysPiping.items, function (index, item) {
return ''; item.setValue(true);
} else { });
return F(ddlInspectedUser).getTextByValue(value);
// 将数据控件中的值同步到输入框
F(ddbSysPipingClientID).syncToBox();
}
function onClearAllClick() {
var cbSysPiping = F(cbSysPipingClientID);
$.each(cbSysPiping.items, function (index, item) {
item.setValue(false);
});
// 将数据控件中的值同步到输入框
F(ddbSysPipingClientID).syncToBox();
}
//验证
function isValid() {
debugger;
var grid1 = F('<%= Grid1.ClientID %>');
var valid = true, modifiedData = grid1.getMergedData();
$.each(modifiedData, function (index, rowData) {
if (rowData.status === 'deleted') {
return true; // continue
} }
} var name = rowData.values['InspectedUser'];
if (typeof (name) != 'undefined' && $.trim(name) == '') {
F.alert({
message: '检查人不能为空!',
ok: function () {
grid1.startEdit(rowData.id, 'InspectedUser');
}
});
var ddbSysPipingClientID = '<%= ddbSysPiping.ClientID %>'; valid = false;
var cbSysPipingClientID = '<%= cbSysPiping.ClientID %>';
function onSelectAllClick() {
var cbSysPiping = F(cbSysPipingClientID);
$.each(cbSysPiping.items, function (index, item) {
item.setValue(true);
});
// 将数据控件中的值同步到输入框 return false;
F(ddbSysPipingClientID).syncToBox(); }
} });
return valid;
function onClearAllClick() { }
var cbSysPiping = F(cbSysPipingClientID);
$.each(cbSysPiping.items, function (index, item) {
item.setValue(false);
});
// 将数据控件中的值同步到输入框
F(ddbSysPipingClientID).syncToBox();
}
//验证
function isValid() {
debugger;
var grid1 = F('<%= Grid1.ClientID %>');
var valid = true, modifiedData = grid1.getMergedData();
$.each(modifiedData, function (index, rowData) {
debugger;
// rowData.id: 行ID
// rowData.status: 行状态newadded, modified, deleted
// rowData.values: 行中修改单元格对象,比如 { "Name": "刘国2", "Gender": 0, "EntranceYear": 2003 }
if (rowData.status === 'deleted') {
return true; // continue
}
var name = rowData.values['InspectedUser'];
// 更改了姓名列,并且为空字符串
// 如果typeof(name)=='undefined',则表示姓名没有更改,需要排除在外!!
if (typeof (name) != 'undefined' && $.trim(name) == '') {
F.alert({
message: '检查人不能为空!',
ok: function () {
grid1.startEdit(rowData.id, 'InspectedUser');
}
});
valid = false;
return false; // break
}
});
return valid;
}
</script> </script>
</body> </body>

View File

@ -71,8 +71,7 @@
</f:FormRow> </f:FormRow>
<f:FormRow runat="server" ID="gzb" Hidden="true"> <f:FormRow runat="server" ID="gzb" Hidden="true">
<Items> <Items>
<f:Grid Height="450px" ID="Grid1" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="WorkPackId" DataKeyNames="WorkPackId" AllowSorting="true" <f:Grid Height="450px" ID="Grid1" ShowBorder="true" ShowHeader="true" EnableCollapse="true" runat="server" DataIDField="WorkPackId" DataKeyNames="WorkPackId" AllowSorting="true" SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" OnRowCommand="Grid1_RowCommand" ClicksToEdit="1">
SortField="Sort" SortDirection="ASC" EnableColumnLines="true" AllowCellEditing="true" EnableMultiSelect="false" OnRowCommand="Grid1_RowCommand">
<Toolbars> <Toolbars>
<f:Toolbar ID="Toolbar1" runat="server"> <f:Toolbar ID="Toolbar1" runat="server">
<Items> <Items>

View File

@ -27,12 +27,12 @@
</f:Tree> </f:Tree>
</Items> </Items>
</f:Panel> </f:Panel>
<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"> <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" ClicksToEdit="1">
<Toolbars> <Toolbars>
<f:Toolbar ID="Toolbar1" runat="server"> <f:Toolbar ID="Toolbar1" runat="server">
<Items> <Items>
<f:ToolbarFill ID="ToolbarFill" runat="server"></f:ToolbarFill> <f:ToolbarFill ID="ToolbarFill" runat="server"></f:ToolbarFill>
<f:Button ID="btnSave" Text="保存" ToolTip="保存" Icon="FilmSave" runat="server" OnClick="btnSave_Click"></f:Button> <f:Button ID="btnSave" Text="保存" ToolTip="保存" Icon="FilmSave" runat="server" OnClientClick="if(!isValid()){return false;}" OnClick="btnSave_Click"></f:Button>
</Items> </Items>
</f:Toolbar> </f:Toolbar>
</Toolbars> </Toolbars>
@ -71,7 +71,7 @@
function reloadGrid() { function reloadGrid() {
__doPostBack(null, 'reloadGrid'); __doPostBack(null, 'reloadGrid');
} }
//检查 //检查结果
var ddlInspectionResults = '<%= ddlInspectionResults.ClientID %>'; var ddlInspectionResults = '<%= ddlInspectionResults.ClientID %>';
function renderInspectionResults(value) { function renderInspectionResults(value) {
if (value == -1) { if (value == -1) {
@ -79,6 +79,32 @@
} }
return F(ddlInspectionResults).getTextByValue(value); return F(ddlInspectionResults).getTextByValue(value);
} }
//验证检查结果
function isValid() {
debugger;
var grid1 = F('<%= Grid1.ClientID %>');
var valid = true, modifiedData = grid1.getMergedData();
$.each(modifiedData, function (index, rowData) {
if (rowData.status === 'deleted') {
return true;
}
var results = rowData.values['InspectionResults'];
if (typeof (results) != 'undefined' && $.trim(results) == '') {
F.alert({
message: '请选择检查结果!',
ok: function () {
grid1.startEdit(rowData.id, 'InspectionResults');
}
});
valid = false;
return false;
}
});
return valid;
}
</script> </script>
</body> </body>
</html> </html>

View File

@ -135,7 +135,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last(); subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last();
} }
//获取子系统 //获取子系统
var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.SubInspectId == subInspectId).OrderBy(x => x.Sort).ToList(); var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.SubInspectId == subInspectId && x.InspectedUser == this.CurrUser.UserId).OrderBy(x => x.Sort).ToList();
Grid1.DataSource = list; Grid1.DataSource = list;
Grid1.DataBind(); Grid1.DataBind();
} }

View File

@ -92,13 +92,31 @@
</f:Panel> </f:Panel>
</Items> </Items>
</f:FormRow> </f:FormRow>
<f:FormRow ID="plApprove2">
<Items>
<f:ContentPanel Title="巡检处理列表" ShowBorder="true"
BodyPadding="10px" EnableCollapse="true" ShowHeader="true" AutoScroll="true"
runat="server">
<f:Grid ID="gvHandle" IsFluid="true" CssClass="blockpanel" ShowBorder="true" ShowHeader="false" runat="server" EnableCollapse="false"
DataKeyNames="InspectTermId" EnableColumnLines="true" ForceFit="true">
<Columns>
<f:RowNumberField />
<f:RenderField ColumnID="ApproveStateName" Width="100px" DataField="ApproveStateName" HeaderText="处理状态" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField ColumnID="ApproveTime" Width="150px" DataField="ApproveTime" HeaderText="处理时间" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField ColumnID="ApproveOpinion" DataField="ApproveOpinion" HeaderText="处理意见" HeaderTextAlign="Center">
</f:RenderField>
</Columns>
</f:Grid>
</f:ContentPanel>
</Items>
</f:FormRow>
<f:FormRow> <f:FormRow>
<Items> <Items>
<f:DropDownList ID="ddlApproveUser" runat="server" Label="审核人" Required="true" LabelAlign="Right" EnableEdit="true"> <f:Label runat="server" ID="lblApproveUser" Label="审核人"></f:Label>
</f:DropDownList> <f:HiddenField runat="server" ID="hidApproveUserId"></f:HiddenField>
<f:DatePicker ID="txtApproveTime" ShowRedStar="true" Required="true" runat="server" Label="审核时间" LabelAlign="Right" <f:Label runat="server" ID="lblApproveTime" Label="审核时间"></f:Label>
EnableEdit="true">
</f:DatePicker>
</Items> </Items>
</f:FormRow> </f:FormRow>
<f:FormRow> <f:FormRow>

View File

@ -2,6 +2,8 @@
using Model; using Model;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq; using System.Linq;
using System.Web; using System.Web;
using System.Web.UI; using System.Web.UI;
@ -47,6 +49,8 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
this.RectifyEditImg = -1; this.RectifyEditImg = -1;
//数据绑定 //数据绑定
PageInit(); PageInit();
//处理意见绑定
gvHandleBrid();
} }
} }
@ -55,27 +59,27 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
/// </summary> /// </summary>
public void PageInit() public void PageInit()
{ {
//获取用户信息 ////获取用户信息
var userList = 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 // join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId
where projectrole.ProjectId == this.CurrUser.LoginProjectId // where projectrole.ProjectId == this.CurrUser.LoginProjectId
select user; // select user;
var userids = new List<string>() { Const.sysglyId, Const.hfnbdId, Const.sedinId }; //var userids = new List<string>() { Const.sysglyId, Const.hfnbdId, Const.sedinId };
var addUserList = Funs.DB.Sys_User.Where(x => userids.Contains(x.UserId)); //var addUserList = Funs.DB.Sys_User.Where(x => userids.Contains(x.UserId));
var users = userList.ToList(); //var users = userList.ToList();
if (addUserList.Count() > 0) //if (addUserList.Count() > 0)
{ //{
users.AddRange(addUserList); // users.AddRange(addUserList);
} //}
if (users.Count() > 0) //if (users.Count() > 0)
{ //{
ddlApproveUser.DataTextField = "UserName"; // ddlApproveUser.DataTextField = "UserName";
ddlApproveUser.DataValueField = "UserId"; // ddlApproveUser.DataValueField = "UserId";
ddlApproveUser.DataSource = users; // ddlApproveUser.DataSource = users;
ddlApproveUser.DataBind(); // ddlApproveUser.DataBind();
} //}
txtApproveTime.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); //txtApproveTime.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
ddlApproveUser.SelectedValue = this.CurrUser.UserId; //ddlApproveUser.SelectedValue = this.CurrUser.UserId;
var data = from tail in Funs.DB.PreRun_InspectTailTerm var data = from tail in Funs.DB.PreRun_InspectTailTerm
join unit in Funs.DB.Base_Unit on tail.ConstructionUnit equals unit.UnitId join unit in Funs.DB.Base_Unit on tail.ConstructionUnit equals unit.UnitId
@ -94,7 +98,9 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
tail.RectifyOpinion, tail.RectifyOpinion,
tail.RectifyTime, tail.RectifyTime,
tail.ProblemType, tail.ProblemType,
tail.InspectUser,
InspectUserName = inspuser.UserName, InspectUserName = inspuser.UserName,
tail.ApproveUser,
ApproveUserName = approuser.UserName, ApproveUserName = approuser.UserName,
}; };
@ -136,9 +142,30 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
lblRectifyTime.Text = model.RectifyTime != null ? model.RectifyTime.Value.ToString("yyyy-MM-dd hh:mm:ss") : string.Empty; lblRectifyTime.Text = model.RectifyTime != null ? model.RectifyTime.Value.ToString("yyyy-MM-dd hh:mm:ss") : string.Empty;
//检查人 //检查人
lblInspectUser.Text = model.InspectUserName; lblInspectUser.Text = model.InspectUserName;
//审核人
lblApproveUser.Text = model.ApproveUserName;
hidApproveUserId.Text = model.ApproveUser;
//审核时间
lblApproveTime.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
} }
} }
/// <summary>
/// 处理意见绑定
/// </summary>
public void gvHandleBrid()
{
string strSql = @"select a.InspectTermId,a.ApproveOpinion,a.ApproveTime,a.ApproveType,a.ApproveState,(case a.ApproveState when 0 then '处理退回' when 1 then '处理通过' else '' end) as ApproveStateName,a.AddUser,a.AddTime from PreRun_InspectTermApproveRecords as a inner join PreRun_InspectTailTerm as b on a.TailTermId=b.TailTermId inner join PreRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId where 1=1 and a.ApproveType=0 and a.ProjectId=@ProjectId and a.TailTermId=@TailTermId ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
listStr.Add(new SqlParameter("@TailTermId", this.TailTermId));
strSql += " order by a.AddTime asc";
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
gvHandle.DataSource = tb;
gvHandle.DataBind();
}
/// <summary> /// <summary>
/// 问题图片 /// 问题图片
/// </summary> /// </summary>
@ -163,15 +190,18 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
var tailTerm = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); var tailTerm = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId);
if (tailTerm != null) if (tailTerm != null)
{ {
tailTerm.ApproveState = 1; tailTerm.ApproveState = 3;
var model = new PreRun_InspectTermApproveRecords(); var model = new PreRun_InspectTermApproveRecords();
model.InspectTermId = Guid.NewGuid().ToString(); model.InspectTermId = Guid.NewGuid().ToString();
model.ProjectId = this.CurrUser.LoginProjectId; model.ProjectId = this.CurrUser.LoginProjectId;
model.TermItemId = tailTerm.TermItemId; model.TermItemId = tailTerm.TermItemId;
model.TailTermId = this.TailTermId; model.TailTermId = this.TailTermId;
model.ApproveOpinion = txtApproveOpinion.Text; model.ApproveOpinion = txtApproveOpinion.Text;
model.ApproveTime = DateTime.Parse(txtApproveTime.Text); model.ApproveTime = DateTime.Parse(lblApproveTime.Text);
model.ApproveUser = ddlApproveUser.SelectedValue; model.ApproveUser = hidApproveUserId.Text;
//0:处理记录1:审核记录
model.ApproveType = 1;
//0:退回1:通过
model.ApproveState = 0; model.ApproveState = 0;
model.AddUser = this.CurrUser.UserId; model.AddUser = this.CurrUser.UserId;
model.AddTime = DateTime.Now; model.AddTime = DateTime.Now;
@ -208,15 +238,18 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
} }
} }
} }
tailTerm.ApproveState = 3; tailTerm.ApproveState = 5;
var model = new PreRun_InspectTermApproveRecords(); var model = new PreRun_InspectTermApproveRecords();
model.InspectTermId = Guid.NewGuid().ToString(); model.InspectTermId = Guid.NewGuid().ToString();
model.ProjectId = this.CurrUser.LoginProjectId; model.ProjectId = this.CurrUser.LoginProjectId;
model.TermItemId = tailTerm.TermItemId; model.TermItemId = tailTerm.TermItemId;
model.TailTermId = this.TailTermId; model.TailTermId = this.TailTermId;
model.ApproveOpinion = txtApproveOpinion.Text; model.ApproveOpinion = txtApproveOpinion.Text;
model.ApproveTime = DateTime.Parse(txtApproveTime.Text); model.ApproveTime = DateTime.Parse(lblApproveTime.Text);
model.ApproveUser = ddlApproveUser.SelectedValue; model.ApproveUser = hidApproveUserId.Text;
//0:处理记录1:审核记录
model.ApproveType = 1;
//0:退回1:通过
model.ApproveState = 1; model.ApproveState = 1;
model.AddUser = this.CurrUser.UserId; model.AddUser = this.CurrUser.UserId;
model.AddTime = DateTime.Now; model.AddTime = DateTime.Now;

View File

@ -195,22 +195,49 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
protected global::FineUIPro.Button imgBtnRectifyFile; protected global::FineUIPro.Button imgBtnRectifyFile;
/// <summary> /// <summary>
/// ddlApproveUser 控件。 /// plApprove2 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUIPro.DropDownList ddlApproveUser; protected global::FineUIPro.FormRow plApprove2;
/// <summary> /// <summary>
/// txtApproveTime 控件。 /// gvHandle 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUIPro.DatePicker txtApproveTime; protected global::FineUIPro.Grid gvHandle;
/// <summary>
/// lblApproveUser 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblApproveUser;
/// <summary>
/// hidApproveUserId 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.HiddenField hidApproveUserId;
/// <summary>
/// lblApproveTime 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblApproveTime;
/// <summary> /// <summary>
/// txtApproveOpinion 控件。 /// txtApproveOpinion 控件。

View File

@ -50,9 +50,18 @@
<form id="form1" runat="server"> <form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" /> <f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false" <f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch"> ShowHeader="false" Layout="Region" BoxConfigAlign="Stretch">
<Items> <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" <f:Grid ID="Grid1" ShowBorder="true" EnableAjax="false" ShowHeader="false" Title="质量巡检审核" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="TailTermId" AllowCellEditing="true" runat="server" BoxFlex="1" DataKeyNames="TailTermId" AllowCellEditing="true"
ClicksToEdit="2" DataIDField="TailTermId" AllowSorting="true" SortField="AddTime" ClicksToEdit="2" DataIDField="TailTermId" AllowSorting="true" SortField="AddTime"
@ -90,8 +99,7 @@
</f:RenderField> </f:RenderField>
<f:RenderField ColumnID="RectifyOpinion" DataField="RectifyOpinion" HeaderText="整改意见" HeaderTextAlign="Center"> <f:RenderField ColumnID="RectifyOpinion" DataField="RectifyOpinion" HeaderText="整改意见" HeaderTextAlign="Center">
</f:RenderField> </f:RenderField>
<f:RenderField ColumnID="RectifyTime" DataField="RectifyTime" SortField="RectifyTime" HeaderText="整改时间" HeaderTextAlign="Center"> <f:BoundField DataField="RectifyTime" DataFormatString="{0:yyyy-MM-dd}" HeaderText="整改时间" />
</f:RenderField>
<f:RenderField ColumnID="InspectUserName" DataField="InspectUserName" HeaderText="检查人" HeaderTextAlign="Center"> <f:RenderField ColumnID="InspectUserName" DataField="InspectUserName" HeaderText="检查人" HeaderTextAlign="Center">
</f:RenderField> </f:RenderField>
<f:RenderField ColumnID="ApproveStateName" DataField="ApproveStateName" HeaderText="审批状态" HeaderTextAlign="Center"> <f:RenderField ColumnID="ApproveStateName" DataField="ApproveStateName" HeaderText="审批状态" HeaderTextAlign="Center">

View File

@ -17,10 +17,115 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
if (!IsPostBack) if (!IsPostBack)
{ {
//绑定数据 //绑定数据
BindGrid(); 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 termIds = new List<string>();
var tailTerms = Funs.DB.PreRun_InspectTailTerm.Where(x => x.ApproveUser == this.CurrUser.UserId && x.ApproveState > 3).ToList();
if (tailTerms.Count > 0)
{
termIds = tailTerms.ConvertAll(x => x.TermItemId);
}
var userSubInspects = Funs.DB.PreRun_SubInspectTermItem.Where(x => termIds.Contains(x.TermItemId)).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 #region
/// <summary> /// <summary>
@ -28,10 +133,29 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
/// </summary> /// </summary>
public void BindGrid() 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.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 "; string strSql = @"select * from (select a.TailTermId,a.WorkPackId,c.SubSystemId,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 '审核退回' when 4 then '待审核' when 5 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>=3 and a.ProjectId=@projectid and a.ApproveUser=@ApproveUser union all select a.TailTermId,a.WorkPackId,c.SubSystemId,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 '审核退回' when 4 then '待审核' when 5 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>=3 and a.ProjectId=@projectid and a.ApproveUser=@ApproveUser) as t where 1=1 ";
List<SqlParameter> listStr = new List<SqlParameter>(); List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId)); listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId));
listStr.Add(new SqlParameter("@ApproveUser", this.CurrUser.UserId)); listStr.Add(new SqlParameter("@ApproveUser", 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)) if (!string.IsNullOrWhiteSpace(ddlProblemType.SelectedValue))
{ {
@ -89,6 +213,8 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
#endregion #endregion
#region
/// <summary> /// <summary>
/// 关闭弹框 /// 关闭弹框
/// </summary> /// </summary>
@ -118,7 +244,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
var model = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID); var model = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID);
if (model != null) if (model != null)
{ {
if (model.ApproveState != 2) if (model.ApproveState != 4)
{ {
Alert.ShowInTop("只可审核“待审核”的记录!", MessageBoxIcon.Warning); Alert.ShowInTop("只可审核“待审核”的记录!", MessageBoxIcon.Warning);
return; return;
@ -134,5 +260,58 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
{ {
BindGrid(); 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

@ -41,6 +41,24 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun
/// </remarks> /// </remarks>
protected global::FineUIPro.Panel Panel1; 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> /// <summary>
/// Grid1 控件。 /// Grid1 控件。
/// </summary> /// </summary>

View File

@ -0,0 +1,137 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TailTermHandle.aspx.cs" Inherits="FineUIPro.Web.TestRun.BeforeTestRun.TailTermHandle" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>质量巡检</title>
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.labcenter {
text-align: center;
}
.f-grid-row .f-grid-cell-inner {
white-space: normal;
word-break: break-all;
}
.f-grid-row.red {
background-color: #FF7575;
background-image: none;
}
.fontred {
color: #FF7575;
background-image: none;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" AutoSizePanelID="SimpleForm1" runat="server" />
<f:Form ID="SimpleForm1" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Rows>
<f:FormRow>
<Items>
<f:ContentPanel ID="ContentPanel1" Title="巡检审核" ShowBorder="true"
BodyPadding="10px" EnableCollapse="true" ShowHeader="true" AutoScroll="true"
runat="server">
<f:Form ID="Form2" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Rows>
<f:FormRow>
<Items>
<f:Label ID="lblProjectName" runat="server" Label="项目名称" LabelAlign="Right"></f:Label>
<f:Label ID="lblTailTermCode" runat="server" Label="巡检编号" LabelAlign="Right"></f:Label>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:Label ID="lblConstructionUnit" runat="server" Label="施工单位" LabelAlign="Right"></f:Label>
<f:Label ID="lblProblemType" runat="server" Label="问题类别" LabelAlign="Right"></f:Label>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<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>
<f:FormRow>
<Items>
<f:Label ID="lblQuestionDesc" ShowRedStar="true" runat="server" Label="问题描述"></f:Label>
<f:Label ID="lblRectifyOpinion" runat="server" Label="整改意见"></f:Label>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:Label ID="lblInspectUser" runat="server" Label="检查人" LabelAlign="Right"></f:Label>
<f:Label ID="lblRectifyTime" runat="server" Label="整改时间" LabelAlign="Right"></f:Label>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:Panel ID="Panel1" ShowHeader="false" ShowBorder="false" Layout="Column" runat="server">
<Items>
<f:Label runat="server" Text="问题图片:" CssStyle="padding-left:25px" Width="120px" CssClass="marginr" ShowLabel="false"></f:Label>
<f:Button ID="imgBtnQuestionFile" Text="问题图片" ToolTip="上传及查看" Icon="TableCell" runat="server"
OnClick="imgBtnQuestionFile_Click">
</f:Button>
</Items>
</f:Panel>
<f:Panel ID="Panel2" ShowHeader="false" ShowBorder="false" Layout="Column" runat="server">
<Items>
<f:Label ID="lblAttach" CssStyle="padding-left:23px" Width="120px" runat="server" CssClass="marginr" ShowLabel="false"
Text="整改图片:">
</f:Label>
<f:Button ID="imgBtnRectifyFile" Text="整改图片" ToolTip="上传及查看" Icon="TableCell" runat="server" OnClick="imgBtnRectifyFile_Click">
</f:Button>
</Items>
</f:Panel>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:Label runat="server" ID="lblApproveUser" Label="处理人"></f:Label>
<f:HiddenField runat="server" ID="hidApproveUserId"></f:HiddenField>
<f:Label runat="server" ID="lblApproveTime" Label="处理时间"></f:Label>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:TextArea ID="txtApproveOpinion" ShowRedStar="true" Required="true" runat="server" Label="处理意见" MaxLength="3000"></f:TextArea>
</Items>
</f:FormRow>
</Rows>
</f:Form>
</f:ContentPanel>
</Items>
</f:FormRow>
</Rows>
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" ToolbarAlign="Right" runat="server">
<Items>
<f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill>
<f:Button ID="btnReturn" Icon="SystemSave" runat="server" Text="处理退回" ToolTip="处理退回" ValidateForms="SimpleForm1" OnClick="btnReturn_Click">
</f:Button>
<f:Button ID="btnPass" Icon="SystemSaveNew" runat="server" Text="处理通过并提交审核" ToolTip="处理通过并提交审核" ValidateForms="SimpleForm1" OnClick="btnPass_Click">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
</f:Form>
<f:Window ID="WindowAtt" Title="弹出窗体" Hidden="true" EnableIFrame="true" EnableMaximize="true"
Target="Parent" EnableResize="false" OnClose="WindowAtt_Close" runat="server" IsModal="true" Width="700px"
Height="500px">
</f:Window>
</form>
<script>
function onGridDataLoad(event) {
this.mergeColumns(['CheckItemType']);
}
</script>
</body>
</html>

View File

@ -0,0 +1,212 @@
using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.TestRun.BeforeTestRun
{
public partial class TailTermHandle : PageBase
{
/// <summary>
/// 主键
/// </summary>
public string TailTermId
{
get { return (string)ViewState["TailTermId"]; }
set { ViewState["TailTermId"] = value; }
}
/// <summary>
/// 问题图片是否可编辑
/// </summary>
public int QuestionEditImg
{
get { return (int)ViewState["QuestionEditImg"]; }
set { ViewState["QuestionEditImg"] = value; }
}
/// <summary>
/// 整改图片是否可编辑
/// </summary>
public int RectifyEditImg
{
get { return (int)ViewState["RectifyEditImg"]; }
set { ViewState["RectifyEditImg"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.TailTermId = Request["TailTermId"];
this.QuestionEditImg = -1;
this.RectifyEditImg = -1;
//数据绑定
PageInit();
}
}
/// <summary>
/// 绑定数据
/// </summary>
public void PageInit()
{
var data = from tail in Funs.DB.PreRun_InspectTailTerm
join unit in Funs.DB.Base_Unit on tail.ConstructionUnit equals unit.UnitId
join inspuser in Funs.DB.Sys_User on tail.InspectUser equals inspuser.UserId
join handleuser in Funs.DB.Sys_User on tail.HandleUser equals handleuser.UserId
join termitem in Funs.DB.PreRun_SubInspectTermItem on tail.TermItemId equals termitem.TermItemId
where tail.TailTermId == this.TailTermId
select new
{
tail.ProjectName,
tail.TailTermCode,
unit.UnitName,
TermItemName = termitem.WorkInspectName,
tail.SubInspectId,
tail.QuestionDesc,
tail.RectifyOpinion,
tail.RectifyTime,
tail.ProblemType,
tail.InspectUser,
InspectUserName = inspuser.UserName,
tail.HandleUser,
HandleUserName = handleuser.UserName,
};
if (data.Count() > 0)
{
var model = data.FirstOrDefault();
//项目名称
lblProjectName.Text = model.ProjectName;
//巡检编号
lblTailTermCode.Text = model.TailTermCode;
//施工单位
lblConstructionUnit.Text = model.UnitName;
//问题类别
lblProblemType.Text = model.ProblemType == 1 ? "管道" : "设备";
//管道/设备
if (model.ProblemType == 1)
{
var piping = Funs.DB.PreRun_PropertySysPiping.FirstOrDefault(x => x.PropertyId == model.SubInspectId);
if (piping != null)
{
lblSubInspectId.Text = $"管道:{piping.PipingCode}";
}
}
else
{
var piping = Funs.DB.PreRun_TechnologySysPiping.FirstOrDefault(x => x.TechnologyId == model.SubInspectId);
if (piping != null)
{
lblSubInspectId.Text = $"设备:{piping.TagNumber}";
}
}
//检查项
lblTermItemId.Text = model.TermItemName;
//问题描述
lblQuestionDesc.Text = model.QuestionDesc;
//整改意见
lblRectifyOpinion.Text = model.RectifyOpinion;
//整改时间
lblRectifyTime.Text = model.RectifyTime != null ? model.RectifyTime.Value.ToString("yyyy-MM-dd hh:mm:ss") : string.Empty;
//检查人
lblInspectUser.Text = model.InspectUserName;
//处理人
lblApproveUser.Text = model.HandleUserName;
hidApproveUserId.Text = model.HandleUser;
//处理时间
lblApproveTime.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
}
}
/// <summary>
/// 问题图片
/// </summary>
protected void imgBtnQuestionFile_Click(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", QuestionEditImg, this.TailTermId + "q", Const.InspectTailTerm)));
}
/// <summary>
/// 整改图片
/// </summary>
protected void imgBtnRectifyFile_Click(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", RectifyEditImg, this.TailTermId + "h", Const.InspectTailTerm)));
}
/// <summary>
/// 处理退回
/// </summary>
protected void btnReturn_Click(object sender, EventArgs e)
{
var tailTerm = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId);
if (tailTerm != null)
{
tailTerm.ApproveState = 2;
var model = new PreRun_InspectTermApproveRecords();
model.InspectTermId = Guid.NewGuid().ToString();
model.ProjectId = this.CurrUser.LoginProjectId;
model.TermItemId = tailTerm.TermItemId;
model.TailTermId = this.TailTermId;
model.ApproveOpinion = txtApproveOpinion.Text;
model.ApproveTime = DateTime.Parse(lblApproveTime.Text);
model.ApproveUser = hidApproveUserId.Text;
//0:处理记录1:审核记录
model.ApproveType = 0;
//0:退回1:通过
model.ApproveState = 0;
model.AddUser = this.CurrUser.UserId;
model.AddTime = DateTime.Now;
Funs.DB.PreRun_InspectTermApproveRecords.InsertOnSubmit(model);
Funs.DB.SubmitChanges();
ShowNotify("退回成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
}
/// <summary>
/// 处理通过并提交审核
/// </summary>
protected void btnPass_Click(object sender, EventArgs e)
{
var tailTerm = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId);
if (tailTerm != null)
{
tailTerm.ApproveState = 4;
var model = new PreRun_InspectTermApproveRecords();
model.InspectTermId = Guid.NewGuid().ToString();
model.ProjectId = this.CurrUser.LoginProjectId;
model.TermItemId = tailTerm.TermItemId;
model.TailTermId = this.TailTermId;
model.ApproveOpinion = txtApproveOpinion.Text;
model.ApproveTime = DateTime.Parse(lblApproveTime.Text);
model.ApproveUser = hidApproveUserId.Text;
//0:处理记录1:审核记录
model.ApproveType = 0;
//0:退回1:通过
model.ApproveState = 1;
model.AddUser = this.CurrUser.UserId;
model.AddTime = DateTime.Now;
Funs.DB.PreRun_InspectTermApproveRecords.InsertOnSubmit(model);
Funs.DB.SubmitChanges();
ShowNotify("处理成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
}
/// <summary>
/// 关闭
/// </summary>
protected void WindowAtt_Close(object sender, WindowCloseEventArgs e)
{
}
}
}

View File

@ -0,0 +1,278 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.TestRun.BeforeTestRun
{
public partial class TailTermHandle
{
/// <summary>
/// form1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// PageManager1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.PageManager PageManager1;
/// <summary>
/// SimpleForm1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Form SimpleForm1;
/// <summary>
/// ContentPanel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel1;
/// <summary>
/// Form2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Form Form2;
/// <summary>
/// lblProjectName 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblProjectName;
/// <summary>
/// lblTailTermCode 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblTailTermCode;
/// <summary>
/// lblConstructionUnit 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblConstructionUnit;
/// <summary>
/// lblProblemType 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblProblemType;
/// <summary>
/// lblSubInspectId 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblSubInspectId;
/// <summary>
/// lblTermItemId 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblTermItemId;
/// <summary>
/// lblQuestionDesc 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblQuestionDesc;
/// <summary>
/// lblRectifyOpinion 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblRectifyOpinion;
/// <summary>
/// lblInspectUser 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblInspectUser;
/// <summary>
/// lblRectifyTime 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblRectifyTime;
/// <summary>
/// Panel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// imgBtnQuestionFile 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button imgBtnQuestionFile;
/// <summary>
/// Panel2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel Panel2;
/// <summary>
/// lblAttach 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblAttach;
/// <summary>
/// imgBtnRectifyFile 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button imgBtnRectifyFile;
/// <summary>
/// lblApproveUser 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblApproveUser;
/// <summary>
/// hidApproveUserId 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.HiddenField hidApproveUserId;
/// <summary>
/// lblApproveTime 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblApproveTime;
/// <summary>
/// txtApproveOpinion 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea txtApproveOpinion;
/// <summary>
/// Toolbar1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar1;
/// <summary>
/// ToolbarFill1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// btnReturn 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnReturn;
/// <summary>
/// btnPass 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnPass;
/// <summary>
/// WindowAtt 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Window WindowAtt;
}
}

View File

@ -0,0 +1,153 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TailTermHandleList.aspx.cs" Inherits="FineUIPro.Web.TestRun.BeforeTestRun.TailTermHandleList" %>
<!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" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="Region" BoxConfigAlign="Stretch">
<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"
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="ddlProblemType" 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:DropDownList ID="ddlApproveState" runat="server" Label="审核状态" LabelAlign="Right" EnableEdit="true">
<f:ListItem Text="全部" Value="" />
<f:ListItem Text="未审核" Value="2" />
<f:ListItem Text="已审核" Value="3" />
</f:DropDownList>
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:Button ID="btnQuery" ToolTip="查询" Icon="SystemSearch" runat="server" OnClick="btnQuery_Click"></f:Button>
<f:Button ID="btnReview" Text="处理" ToolTip="处理" runat="server" OnClick="btnReview_Click"></f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Columns>
<f:RowNumberField />
<f:RenderField ColumnID="TailTermCode" DataField="TailTermCode" SortField="TailTermCode" HeaderText="巡检编号" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField ColumnID="UnitName" DataField="UnitName" HeaderText="单位名称" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField ColumnID="ProblemTypeName" DataField="ProblemTypeName" HeaderText="问题类型" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField ColumnID="WorkInspectName" DataField="WorkInspectName" Width="400px" HeaderText="检查项" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField ColumnID="RectifyOpinion" DataField="RectifyOpinion" HeaderText="整改意见" HeaderTextAlign="Center">
</f:RenderField>
<f:BoundField DataField="RectifyTime" DataFormatString="{0:yyyy-MM-dd}" HeaderText="整改时间" />
<f:RenderField ColumnID="InspectUserName" DataField="InspectUserName" HeaderText="检查人" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField ColumnID="ApproveStateName" DataField="ApproveStateName" HeaderText="审批状态" HeaderTextAlign="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" OnClose="Window1_Close"
Width="1300px" Height="660px">
</f:Window>
<f:Menu ID="Menu1" runat="server">
<Items>
<f:MenuButton ID="btnMenuApprove" EnablePostBack="true" runat="server" Text="处理" Icon="Pencil"
OnClick="btnMenuApprove_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,319 @@
using BLL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.TestRun.BeforeTestRun
{
public partial class TailTermHandleList : 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 termIds = new List<string>();
var tailTerms = Funs.DB.PreRun_InspectTailTerm.Where(x => x.HandleUser == this.CurrUser.UserId).ToList();
if (tailTerms.Count > 0)
{
termIds = tailTerms.ConvertAll(x => x.TermItemId);
}
var userSubInspects = Funs.DB.PreRun_SubInspectTermItem.Where(x => termIds.Contains(x.TermItemId)).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
/// <summary>
/// 数据绑定
/// </summary>
public void BindGrid()
{
string strSql = @"select * from (select a.TailTermId,a.WorkPackId,c.SubSystemId,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 '审核退回' when 4 then '待审核' when 5 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 a.ApproveUser=@ApproveUser union all select a.TailTermId,a.WorkPackId,c.SubSystemId,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 '审核退回' when 4 then '待审核' when 5 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 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));
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))
{
strSql += " and t.ProblemType=@ProblemType";
listStr.Add(new SqlParameter("@ProblemType", ddlProblemType.SelectedValue));
}
//审核状态
if (!string.IsNullOrWhiteSpace(ddlApproveState.SelectedValue))
{
strSql += " and t.ApproveState=@ApproveState";
listStr.Add(new SqlParameter("@ApproveState", ddlApproveState.SelectedValue));
}
strSql += " order by AddTime asc";
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
/// <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)
{
btnMenuApprove_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 Window1_Close(object sender, WindowCloseEventArgs e)
{
BindGrid();
}
/// <summary>
/// 处理
/// </summary>
protected void btnReview_Click(object sender, EventArgs e)
{
btnMenuApprove_Click(null, null);
}
/// <summary>
/// 处理
/// </summary>
protected void btnMenuApprove_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
var passLs = new List<int>() { 1, 3 };
var model = Funs.DB.PreRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID);
if (model != null)
{
if (!passLs.Contains(model.ApproveState.Value))
{
Alert.ShowInTop("只可处理“待处理”和“审核退回”的记录!", MessageBoxIcon.Warning);
return;
}
}
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TailTermHandle.aspx?TailTermId={0}", Grid1.SelectedRowID, "审核 - ")));
}
/// <summary>
/// 搜索
/// </summary>
protected void btnQuery_Click(object sender, EventArgs 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,170 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.TestRun.BeforeTestRun
{
public partial class TailTermHandleList
{
/// <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>
/// ddlProblemType 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlProblemType;
/// <summary>
/// ddlApproveState 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DropDownList ddlApproveState;
/// <summary>
/// btnQuery 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnQuery;
/// <summary>
/// btnReview 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnReview;
/// <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>
/// btnMenuApprove 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuApprove;
}
}

View File

@ -261196,6 +261196,10 @@ namespace Model
private string _SubInspectId; private string _SubInspectId;
private string _HandleUser;
private System.Nullable<System.DateTime> _AdjustCompleteTime;
#region #region
partial void OnLoaded(); partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action); partial void OnValidate(System.Data.Linq.ChangeAction action);
@ -261234,6 +261238,10 @@ namespace Model
partial void OnAddTimeChanged(); partial void OnAddTimeChanged();
partial void OnSubInspectIdChanging(string value); partial void OnSubInspectIdChanging(string value);
partial void OnSubInspectIdChanged(); partial void OnSubInspectIdChanged();
partial void OnHandleUserChanging(string value);
partial void OnHandleUserChanged();
partial void OnAdjustCompleteTimeChanging(System.Nullable<System.DateTime> value);
partial void OnAdjustCompleteTimeChanged();
#endregion #endregion
public PreRun_InspectTailTerm() public PreRun_InspectTailTerm()
@ -261581,6 +261589,46 @@ namespace Model
} }
} }
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HandleUser", DbType="VarChar(50)")]
public string HandleUser
{
get
{
return this._HandleUser;
}
set
{
if ((this._HandleUser != value))
{
this.OnHandleUserChanging(value);
this.SendPropertyChanging();
this._HandleUser = value;
this.SendPropertyChanged("HandleUser");
this.OnHandleUserChanged();
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AdjustCompleteTime", DbType="DateTime")]
public System.Nullable<System.DateTime> AdjustCompleteTime
{
get
{
return this._AdjustCompleteTime;
}
set
{
if ((this._AdjustCompleteTime != value))
{
this.OnAdjustCompleteTimeChanging(value);
this.SendPropertyChanging();
this._AdjustCompleteTime = value;
this.SendPropertyChanged("AdjustCompleteTime");
this.OnAdjustCompleteTimeChanged();
}
}
}
public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler PropertyChanged;
@ -261628,6 +261676,8 @@ namespace Model
private System.Nullable<System.DateTime> _AddTime; private System.Nullable<System.DateTime> _AddTime;
private System.Nullable<int> _ApproveType;
#region #region
partial void OnLoaded(); partial void OnLoaded();
partial void OnValidate(System.Data.Linq.ChangeAction action); partial void OnValidate(System.Data.Linq.ChangeAction action);
@ -261652,6 +261702,8 @@ namespace Model
partial void OnAddUserChanged(); partial void OnAddUserChanged();
partial void OnAddTimeChanging(System.Nullable<System.DateTime> value); partial void OnAddTimeChanging(System.Nullable<System.DateTime> value);
partial void OnAddTimeChanged(); partial void OnAddTimeChanged();
partial void OnApproveTypeChanging(System.Nullable<int> value);
partial void OnApproveTypeChanged();
#endregion #endregion
public PreRun_InspectTermApproveRecords() public PreRun_InspectTermApproveRecords()
@ -261859,6 +261911,26 @@ namespace Model
} }
} }
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ApproveType", DbType="Int")]
public System.Nullable<int> ApproveType
{
get
{
return this._ApproveType;
}
set
{
if ((this._ApproveType != value))
{
this.OnApproveTypeChanging(value);
this.SendPropertyChanging();
this._ApproveType = value;
this.SendPropertyChanged("ApproveType");
this.OnApproveTypeChanged();
}
}
}
public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler PropertyChanged;