feat(hjgl):增加焊接日报待审核表格编辑

This commit is contained in:
2026-08-20 11:32:01 +08:00
parent 42787c1520
commit d038c516ea
9 changed files with 266 additions and 2 deletions
@@ -382,6 +382,53 @@ namespace BLL
}, out totalCount).FirstOrDefault();
}
/// <summary>
/// 更新待审核明细的实际施工工艺参数。
/// </summary>
/// <param name="input">待审核明细及四项工艺参数</param>
/// <returns>错误信息,空字符串表示成功</returns>
public static string UpdateWeldingDailyTempDetailParameters(Model.WeldingDailyTempDetailEditInput input)
{
if (input == null || string.IsNullOrWhiteSpace(input.TempDetailId)
|| string.IsNullOrWhiteSpace(input.ProjectId))
{
return "待审核明细或项目不能为空";
}
string weldingMethodId = NormalizeOptionalId(input.WeldingMethodId);
string weldTypeId = NormalizeOptionalId(input.WeldTypeId);
string weldingWire = NormalizeOptionalId(input.WeldingWire);
string weldingRod = NormalizeOptionalId(input.WeldingRod);
string parameterError = ValidatePendingWeldingParameters(
weldingMethodId, weldTypeId, weldingWire, weldingRod);
if (!string.IsNullOrEmpty(parameterError))
{
return parameterError;
}
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var detail = db.HJGL_WeldingDailyTempDetail.FirstOrDefault(x =>
x.TempDetailId == input.TempDetailId && x.ProjectId == input.ProjectId);
if (detail == null)
{
return "待审核明细不存在";
}
if (detail.AuditState >= AuditStateApproved)
{
return "该明细已完成审核,不能修改";
}
// 编辑页只维护临时工艺快照;正式焊口仍在专工审核通过时统一回写。
detail.WeldingMethodId = weldingMethodId;
detail.WeldTypeId = weldTypeId;
detail.WeldingWire = weldingWire;
detail.WeldingRod = weldingRod;
db.SubmitChanges();
}
return string.Empty;
}
/// <summary>
/// 构造待审核查询。PC端列表和接口列表、明细均从这里读取,确保字段映射和待审核状态一致。
/// </summary>
@@ -1109,6 +1156,11 @@ namespace BLL
}
}
private static string NormalizeOptionalId(string value)
{
return string.IsNullOrWhiteSpace(value) ? null : value.Trim();
}
private static string FirstNotEmpty(params string[] values)
{
return values == null ? null : values.FirstOrDefault(x => !string.IsNullOrWhiteSpace(x));
+9 -1
View File
@@ -1719,6 +1719,7 @@
<Content Include="HJGL\WeldingManage\WeldMatMatch.aspx" />
<Content Include="HJGL\WeldingManage\WeldMatMatchGet.aspx" />
<Content Include="HJGL\WeldingManage\WeldReport.aspx" />
<Content Include="HJGL\WeldingManage\WeldingDailyTempDetailEdit.aspx" />
<Content Include="HJGL\WeldingManage\WeldAppearanceCheck.aspx" />
<Content Include="HJGL\WeldingManage\WeldAppearanceCheckEdit.aspx" />
<Content Include="HJGL\WeldingManage\WeldReportEdit.aspx" />
@@ -11584,6 +11585,13 @@
<DependentUpon>WeldReport.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="HJGL\WeldingManage\WeldingDailyTempDetailEdit.aspx.cs">
<DependentUpon>WeldingDailyTempDetailEdit.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="HJGL\WeldingManage\WeldingDailyTempDetailEdit.aspx.designer.cs">
<DependentUpon>WeldingDailyTempDetailEdit.aspx</DependentUpon>
</Compile>
<Compile Include="HJGL\WeldingManage\WeldAppearanceCheck.aspx.cs">
<DependentUpon>WeldAppearanceCheck.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@@ -17342,4 +17350,4 @@
<Target Name="AfterBuild">
</Target>
-->
</Project>
</Project>
@@ -266,6 +266,11 @@
</Toolbars>
<Columns>
<f:RowNumberField EnablePagingNumber="true" HeaderText="序号" Width="50px" HeaderTextAlign="Center" TextAlign="Center" />
<f:WindowField ColumnID="PendingEdit" HeaderText="操作" Text="编辑" Width="60px"
HeaderTextAlign="Center" TextAlign="Center" WindowID="WindowPendingEdit" Locked="true"
DataIFrameUrlFields="TempDetailId"
DataIFrameUrlFormatString="WeldingDailyTempDetailEdit.aspx?TempDetailId={0}">
</f:WindowField>
<f:RenderField HeaderText="管线号" ColumnID="PipelineCode" DataField="PipelineCode" FieldType="String"
HeaderTextAlign="Center" TextAlign="Left" Width="180px">
</f:RenderField>
@@ -364,6 +369,10 @@
</f:Panel>
</Items>
</f:Panel>
<f:Window ID="WindowPendingEdit" Title="编辑待审核焊接工艺" Hidden="true" EnableIFrame="true"
Target="Top" EnableResize="false" runat="server" OnClose="WindowPendingEdit_Close"
IsModal="true" Width="680px" Height="320px">
</f:Window>
<f:Window ID="Window1" Title="弹出窗体" Hidden="true" EnableIFrame="true"
EnableMaximize="true" Target="Top" EnableResize="false" runat="server" OnClose="Window1_Close"
IsModal="true" Width="1400px" Height="650px">
@@ -634,6 +634,14 @@ namespace FineUIPro.Web.HJGL.WeldingManage
this.BindGrid();
}
/// <summary>
/// 关闭待审核工艺编辑窗口后刷新当前页。
/// </summary>
protected void WindowPendingEdit_Close(object sender, WindowCloseEventArgs e)
{
BindPendingGrid();
}
/// <summary>
/// 查询
/// </summary>
@@ -410,6 +410,11 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks>
protected global::FineUIPro.DropDownList ddlPendingPageSize;
/// <summary>
/// WindowPendingEdit 控件。
/// </summary>
protected global::FineUIPro.Window WindowPendingEdit;
/// <summary>
/// Window1 控件。
/// </summary>
@@ -0,0 +1,50 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WeldingDailyTempDetailEdit.aspx.cs" Inherits="FineUIPro.Web.HJGL.WeldingManage.WeldingDailyTempDetailEdit" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>编辑待审核焊接工艺</title>
<base target="_self" />
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
</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="12px" runat="server">
<Rows>
<f:FormRow>
<Items>
<f:TextBox ID="txtPipelineCode" runat="server" Label="管线号" Readonly="true" LabelWidth="90px" />
<f:TextBox ID="txtWeldJointCode" runat="server" Label="焊口号" Readonly="true" LabelWidth="90px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="drpWeldingMethod" runat="server" Label="焊接方法"
EnableEdit="true" LabelWidth="90px" />
<f:DropDownList ID="drpWeldType" runat="server" Label="焊缝类型"
EnableEdit="true" LabelWidth="90px" />
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:DropDownList ID="drpWeldingWire" runat="server" Label="焊丝"
EnableEdit="true" LabelWidth="90px" />
<f:DropDownList ID="drpWeldingRod" runat="server" Label="焊条"
EnableEdit="true" LabelWidth="90px" />
</Items>
</f:FormRow>
</Rows>
<Toolbars>
<f:Toolbar runat="server" Position="Bottom" ToolbarAlign="Right">
<Items>
<f:Button ID="btnSave" runat="server" Text="保存" Icon="SystemSave" OnClick="btnSave_Click" />
<f:Button ID="btnClose" runat="server" Text="关闭" Icon="SystemClose" EnablePostBack="false" />
</Items>
</f:Toolbar>
</Toolbars>
</f:Form>
</form>
</body>
</html>
@@ -0,0 +1,96 @@
using BLL;
using System;
namespace FineUIPro.Web.HJGL.WeldingManage
{
public partial class WeldingDailyTempDetailEdit : PageBase
{
private string TempDetailId
{
get { return (string)ViewState["TempDetailId"]; }
set { ViewState["TempDetailId"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
return;
}
btnClose.OnClientClick = ActiveWindow.GetHideReference();
TempDetailId = Request.Params["TempDetailId"];
BindProcessDropDownLists();
BindDetail();
}
private void BindProcessDropDownLists()
{
Base_WeldingMethodService.InitWeldingMethodDropDownList(drpWeldingMethod, true, "请选择");
Base_WeldTypeService.InitWeldTypeDropDownList(drpWeldType, "请选择", true);
Base_ConsumablesService.InitConsumablesDropDownList(drpWeldingWire, true, "1", "请选择");
Base_ConsumablesService.InitConsumablesDropDownList(drpWeldingRod, true, "2", "请选择");
}
private void BindDetail()
{
var detail = WeldingDailyService.GetWeldingDailyTempDetailById(TempDetailId);
if (detail == null || detail.ProjectId != CurrUser.LoginProjectId)
{
btnSave.Enabled = false;
Alert.ShowInTop("待审核明细不存在!", MessageBoxIcon.Warning);
return;
}
txtPipelineCode.Text = detail.PipelineCode;
txtWeldJointCode.Text = detail.WeldJointCode;
SetSelectedValue(drpWeldingMethod, detail.WeldingMethodId);
SetSelectedValue(drpWeldType, detail.WeldTypeId);
SetSelectedValue(drpWeldingWire, detail.WeldingWire);
SetSelectedValue(drpWeldingRod, detail.WeldingRod);
}
protected void btnSave_Click(object sender, EventArgs e)
{
if (!CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, CurrUser.PersonId,
Const.HJGL_WeldReportMenuId, Const.BtnModify))
{
Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
return;
}
string error = WeldingDailyService.UpdateWeldingDailyTempDetailParameters(
new Model.WeldingDailyTempDetailEditInput
{
TempDetailId = TempDetailId,
ProjectId = CurrUser.LoginProjectId,
WeldingMethodId = NormalizeSelectedValue(drpWeldingMethod.SelectedValue),
WeldTypeId = NormalizeSelectedValue(drpWeldType.SelectedValue),
WeldingWire = NormalizeSelectedValue(drpWeldingWire.SelectedValue),
WeldingRod = NormalizeSelectedValue(drpWeldingRod.SelectedValue)
});
if (!string.IsNullOrEmpty(error))
{
ShowNotify(error, MessageBoxIcon.Warning);
return;
}
LogService.AddLog(CurrUser.PersonId, "编辑焊接日报待审核工艺参数");
ShowNotify("保存成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
private static void SetSelectedValue(FineUIPro.DropDownList dropDownList, string value)
{
if (!string.IsNullOrEmpty(value))
{
dropDownList.SelectedValue = value;
}
}
private static string NormalizeSelectedValue(string value)
{
return string.IsNullOrEmpty(value) || value == Const._Null ? null : value;
}
}
}
@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <自动生成>
// 此代码由工具生成。
// </自动生成>
//------------------------------------------------------------------------------
namespace FineUIPro.Web.HJGL.WeldingManage
{
public partial class WeldingDailyTempDetailEdit
{
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
protected global::FineUIPro.PageManager PageManager1;
protected global::FineUIPro.Form SimpleForm1;
protected global::FineUIPro.TextBox txtPipelineCode;
protected global::FineUIPro.TextBox txtWeldJointCode;
protected global::FineUIPro.DropDownList drpWeldingMethod;
protected global::FineUIPro.DropDownList drpWeldType;
protected global::FineUIPro.DropDownList drpWeldingWire;
protected global::FineUIPro.DropDownList drpWeldingRod;
protected global::FineUIPro.Button btnSave;
protected global::FineUIPro.Button btnClose;
}
}
@@ -1,4 +1,4 @@
using System;
using System;
namespace Model
{
@@ -54,6 +54,19 @@ namespace Model
}
/// <summary>
/// 焊接日报待审核明细工艺参数编辑对象。
/// </summary>
public class WeldingDailyTempDetailEditInput
{
public string TempDetailId { get; set; }
public string ProjectId { get; set; }
public string WeldingMethodId { get; set; }
public string WeldTypeId { get; set; }
public string WeldingWire { get; set; }
public string WeldingRod { get; set; }
}
/// <summary>
/// 焊接日报待审核明细。
/// </summary>