Compare commits

..

2 Commits

Author SHA1 Message Date
lpf 6dd2c91289 fix:材料匹配取消隐藏已出库过的管线 2026-08-21 15:30:13 +08:00
lpf d038c516ea feat(hjgl):增加焊接日报待审核表格编辑 2026-08-20 11:32:01 +08:00
12 changed files with 275 additions and 33 deletions
@@ -382,6 +382,53 @@ namespace BLL
}, out totalCount).FirstOrDefault(); }, 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> /// <summary>
/// 构造待审核查询。PC端列表和接口列表、明细均从这里读取,确保字段映射和待审核状态一致。 /// 构造待审核查询。PC端列表和接口列表、明细均从这里读取,确保字段映射和待审核状态一致。
/// </summary> /// </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) private static string FirstNotEmpty(params string[] values)
{ {
return values == null ? null : values.FirstOrDefault(x => !string.IsNullOrWhiteSpace(x)); 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\WeldMatMatch.aspx" />
<Content Include="HJGL\WeldingManage\WeldMatMatchGet.aspx" /> <Content Include="HJGL\WeldingManage\WeldMatMatchGet.aspx" />
<Content Include="HJGL\WeldingManage\WeldReport.aspx" /> <Content Include="HJGL\WeldingManage\WeldReport.aspx" />
<Content Include="HJGL\WeldingManage\WeldingDailyTempDetailEdit.aspx" />
<Content Include="HJGL\WeldingManage\WeldAppearanceCheck.aspx" /> <Content Include="HJGL\WeldingManage\WeldAppearanceCheck.aspx" />
<Content Include="HJGL\WeldingManage\WeldAppearanceCheckEdit.aspx" /> <Content Include="HJGL\WeldingManage\WeldAppearanceCheckEdit.aspx" />
<Content Include="HJGL\WeldingManage\WeldReportEdit.aspx" /> <Content Include="HJGL\WeldingManage\WeldReportEdit.aspx" />
@@ -8275,7 +8276,7 @@
</Compile> </Compile>
<Compile Include="CLGL\InPlanMaster.aspx.cs"> <Compile Include="CLGL\InPlanMaster.aspx.cs">
<DependentUpon>InPlanMaster.aspx</DependentUpon> <DependentUpon>InPlanMaster.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType> <SubType>Component</SubType>
</Compile> </Compile>
<Compile Include="CLGL\InPlanMaster.aspx.designer.cs"> <Compile Include="CLGL\InPlanMaster.aspx.designer.cs">
<DependentUpon>InPlanMaster.aspx</DependentUpon> <DependentUpon>InPlanMaster.aspx</DependentUpon>
@@ -11584,6 +11585,13 @@
<DependentUpon>WeldReport.aspx</DependentUpon> <DependentUpon>WeldReport.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
</Compile> </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"> <Compile Include="HJGL\WeldingManage\WeldAppearanceCheck.aspx.cs">
<DependentUpon>WeldAppearanceCheck.aspx</DependentUpon> <DependentUpon>WeldAppearanceCheck.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
@@ -1,6 +1,5 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WeldMatMatch.aspx.cs" Inherits="FineUIPro.Web.HJGL.WeldingManage.WeldMatMatch" %> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WeldMatMatch.aspx.cs" Inherits="FineUIPro.Web.HJGL.WeldingManage.WeldMatMatch" %>
<%@ Register Src="~/Controls/_3DLook.ascx" TagName="_3DLook" TagPrefix="uc1" %>
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"> <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"> <head runat="server">
@@ -135,11 +134,7 @@
</f:Panel> </f:Panel>
<f:Panel ID="Panel2" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false" <f:Panel ID="Panel2" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="Region" BoxConfigAlign="Stretch"> ShowHeader="false" Layout="Region" BoxConfigAlign="Stretch">
<Items> <Items>
<f:Panel runat="server" ID="panelTopRegion" RegionPosition="Top" ShowBorder="true" RegionPercent="30%" IsFluid="true" Hidden="true"
Layout="VBox" ShowHeader="false" BodyPadding="5px" IconFont="PlusCircle" Title="三维模型"
TitleToolTip="三维模型显示" AutoScroll="true" IFrameUrl="../../CLGL/ArrivalStatistics.aspx" EnableIFrame="true">
</f:Panel>
<f:Panel runat="server" ID="panelCenterRegion" RegionPosition="Center" ShowBorder="true" RegionPercent="30%" <f:Panel runat="server" ID="panelCenterRegion" RegionPosition="Center" ShowBorder="true" RegionPercent="30%"
Layout="VBox" ShowHeader="false" BodyPadding="5px" IconFont="PlusCircle" Title="三维模型" Layout="VBox" ShowHeader="false" BodyPadding="5px" IconFont="PlusCircle" Title="三维模型"
TitleToolTip="三维模型显示" AutoScroll="true"> TitleToolTip="三维模型显示" AutoScroll="true">
@@ -262,12 +257,7 @@
IsModal="false" AutoScroll="true" BodyPadding="10px"> IsModal="false" AutoScroll="true" BodyPadding="10px">
</f:Window> </f:Window>
</form> </form>
<script type="text/javascript"> <script type="text/javascript">
var panelTopRegionCD = '<%= panelTopRegion.ClientID %>';
function getiframWidth() {
return F(panelTopRegionCD).getWidth();
}
function reloadGrid() { function reloadGrid() {
__doPostBack(null, 'reloadGrid'); __doPostBack(null, 'reloadGrid');
} }
@@ -328,17 +328,14 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// <returns>符合材料匹配入口条件的管线列表。</returns> /// <returns>符合材料匹配入口条件的管线列表。</returns>
private List<Model.HJGL_Pipeline> GetTestPackagePipelineList(string ptpId) private List<Model.HJGL_Pipeline> GetTestPackagePipelineList(string ptpId)
{ {
var completeInOutPlanDetailRelationList = from x in Funs.DB.Tw_InOutPlanDetail_Relation //var completeInOutPlanDetailRelationList = from x in Funs.DB.Tw_InOutPlanDetail_Relation
join y in Funs.DB.Tw_InOutPlanMaster on x.InOutPlanMasterId equals y.Id // join y in Funs.DB.Tw_InOutPlanMaster on x.InOutPlanMasterId equals y.Id
where y.State == (int)TwConst.State.已完成 && y.WarehouseId == drpWarehouse.SelectedValue // where y.State == (int)TwConst.State.已完成 && y.WarehouseId == drpWarehouse.SelectedValue
select x; // select x;
var pipeline = (from x in Funs.DB.HJGL_Pipeline var pipeline = (from x in Funs.DB.HJGL_Pipeline
join p in Funs.DB.PTP_PipelineList on x.PipelineId equals p.PipelineId join p in Funs.DB.PTP_PipelineList on x.PipelineId equals p.PipelineId
join y in completeInOutPlanDetailRelationList on x.PipelineId equals y.PipelineId into temp where p.PTP_ID == ptpId
from y in temp.DefaultIfEmpty()
where y == null
&& p.PTP_ID == ptpId
&& x.ProjectId == this.CurrUser.LoginProjectId && x.ProjectId == this.CurrUser.LoginProjectId
&& x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim()) && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim())
&& x.WarehouseId == WarehouseId && x.WarehouseId == WarehouseId
@@ -212,15 +212,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks> /// </remarks>
protected global::FineUIPro.Panel Panel2; protected global::FineUIPro.Panel Panel2;
/// <summary>
/// panelTopRegion 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel panelTopRegion;
/// <summary> /// <summary>
/// panelCenterRegion 控件。 /// panelCenterRegion 控件。
/// </summary> /// </summary>
@@ -266,6 +266,11 @@
</Toolbars> </Toolbars>
<Columns> <Columns>
<f:RowNumberField EnablePagingNumber="true" HeaderText="序号" Width="50px" HeaderTextAlign="Center" TextAlign="Center" /> <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" <f:RenderField HeaderText="管线号" ColumnID="PipelineCode" DataField="PipelineCode" FieldType="String"
HeaderTextAlign="Center" TextAlign="Left" Width="180px"> HeaderTextAlign="Center" TextAlign="Left" Width="180px">
</f:RenderField> </f:RenderField>
@@ -364,6 +369,10 @@
</f:Panel> </f:Panel>
</Items> </Items>
</f:Panel> </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" <f:Window ID="Window1" Title="弹出窗体" Hidden="true" EnableIFrame="true"
EnableMaximize="true" Target="Top" EnableResize="false" runat="server" OnClose="Window1_Close" EnableMaximize="true" Target="Top" EnableResize="false" runat="server" OnClose="Window1_Close"
IsModal="true" Width="1400px" Height="650px"> IsModal="true" Width="1400px" Height="650px">
@@ -634,6 +634,14 @@ namespace FineUIPro.Web.HJGL.WeldingManage
this.BindGrid(); this.BindGrid();
} }
/// <summary>
/// 关闭待审核工艺编辑窗口后刷新当前页。
/// </summary>
protected void WindowPendingEdit_Close(object sender, WindowCloseEventArgs e)
{
BindPendingGrid();
}
/// <summary> /// <summary>
/// 查询 /// 查询
/// </summary> /// </summary>
@@ -410,6 +410,11 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks> /// </remarks>
protected global::FineUIPro.DropDownList ddlPendingPageSize; protected global::FineUIPro.DropDownList ddlPendingPageSize;
/// <summary>
/// WindowPendingEdit 控件。
/// </summary>
protected global::FineUIPro.Window WindowPendingEdit;
/// <summary> /// <summary>
/// Window1 控件。 /// Window1 控件。
/// </summary> /// </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 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>
/// 焊接日报待审核明细。 /// 焊接日报待审核明细。
/// </summary> /// </summary>