feat(hjgl): 完善图纸识别与材料管段信息管理

扩展图纸识别结果模型和保存流程,按管线及页码替换识别明细,
避免重复导入造成数据累积;同时自动补充材料编码库数据,
新增材料总览、管段长度总览及 PDF 焊口标记功能,提升识别数据
的查询、复核和后续使用效率。
This commit is contained in:
2026-07-17 14:36:32 +08:00
parent 040de31eb1
commit 7fb6b255d2
36 changed files with 2313 additions and 354 deletions
@@ -4,85 +4,115 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</title>
<script type="module" src="./ocrz-app.js"></script>
<link rel="stylesheet" href="./ocrz-app.css">
<script type="module" src="./ocrz-app.js"></script>
<link rel="stylesheet" href="./ocrz-app.css">
</head>
<body>
<form id="form1" runat="server">
<f:HiddenField ID="hdIds" runat="server"></f:HiddenField>
<input id="hdpdfurl2" type="hidden" value="<%=URL %>" />
<input id="resultdata" type="hidden" runat="server" />
<input id="hdpdfurl2" type="hidden" value="<%=URL %>" />
<input id="resultdata" type="hidden" runat="server" />
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" ShowBorder="false" ShowHeader="false" Layout="Region" >
<f:PageManager ID="PageManager1" AutoSizePanelID="Panel1" runat="server" />
<f:Panel ID="Panel1" runat="server" ShowBorder="false" ShowHeader="false" Layout="VBox">
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Bottom" runat="server" ToolbarAlign="Left">
<Items>
<f:ToolbarFill ID="ToolbarFill1" runat="server"> </f:ToolbarFill>
<f:Button ID="btnAudit" runat="server" Text="审核材料表"
OnClick="btnAudit_Click" >
</f:Button>
<f:Button ID="btnSave" runat="server" Text="保存材料表" Hidden="true"
OnClick="btnSave_Click" >
<Items>
<f:ToolbarFill ID="ToolbarFill1" runat="server"></f:ToolbarFill>
<f:DropDownList ID="drpUnitWork" runat="server" Label="单位工程" LabelAlign="Right" EnableEdit="true">
</f:DropDownList>
<f:Button ID="btnAudit" runat="server" Text="审核识别结果"
OnClick="btnAudit_Click">
</f:Button>
<f:Button ID="btnSave" runat="server" Text="保存识别结果" Hidden="true"
OnClick="btnSave_Click">
</f:Button>
</Items>
</f:Toolbar>
</Toolbars>
<Items>
<f:ContentPanel ID="contentPanel1" runat="server" ShowHeader="false" >
<div id="app"></div>
</f:ContentPanel>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="" EnableCollapse="true" Hidden="true"
runat="server" BoxFlex="1" DataKeyNames="id" EnableColumnLines="true" DataIDField="id" OnRowDoubleClick="Grid1_RowDoubleClick"
EnableTextSelection="True" EnableRowDoubleClickEvent="true" AllowColumnLocking="true">
<Items>
<f:ContentPanel ID="contentPanel1" runat="server" ShowHeader="false" BoxFlex="1">
<div id="app"></div>
</f:ContentPanel>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="true" Title="管道材料表" EnableCollapse="true" Hidden="true"
runat="server" BoxFlex="65" DataKeyNames="Id" EnableColumnLines="true" DataIDField="Id" OnRowDoubleClick="Grid1_RowDoubleClick"
EnableTextSelection="True" EnableRowDoubleClickEvent="true" AllowColumnLocking="true">
<Columns>
<%--<f:RowNumberField EnablePagingNumber="true" HeaderText="序号" Width="60px" HeaderTextAlign="Center" TextAlign="Center"/>--%>
<f:RenderField Width="70px" HeaderText="序号" ColumnID="seq_no" DataField="seq_no"
<f:RenderField Width="70px" HeaderText="序号" ColumnID="Seq_no" DataField="Seq_no"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="70px" HeaderText="页码" ColumnID="page_no" DataField="page_no"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center" >
</f:RenderField>
<f:RenderField Width="70px" HeaderText="管线号" ColumnID="pipe_no" DataField="pipe_no"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center" >
</f:RenderField>
<f:RenderField Width="70px" HeaderText="材料编码" ColumnID="code" DataField="code"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center" >
</f:RenderField>
<f:RenderField Width="70px" HeaderText="图号" ColumnID="drawing_number" DataField="drawing_number"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center" >
</f:RenderField>
<f:RenderField Width="70px" HeaderText="类型" ColumnID="category" DataField="category"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center" >
</f:RenderField>
<f:RenderField Width="70px" HeaderText="规格" ColumnID="spec" DataField="spec"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center" >
</f:RenderField>
<f:RenderField Width="70px" HeaderText="数量" ColumnID="qty" DataField="qty"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center" >
</f:RenderField>
<f:RenderField Width="70px" HeaderText="描述" ColumnID="description" DataField="description" ExpandUnusedSpace="true"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center" >
</f:RenderField>
</Columns>
<f:RenderField Width="90px" HeaderText="管线页码" ColumnID="Pipe_page_no" DataField="Pipe_page_no"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="300px" HeaderText="管线号" ColumnID="Pipe_no" DataField="Pipe_no"
FieldType="String" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="120px" HeaderText="材料编码" ColumnID="Code" DataField="Code"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="160px" HeaderText="图号" ColumnID="Drawing_number" DataField="Drawing_number"
FieldType="String" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" HeaderText="类型" ColumnID="Category" DataField="Category"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="100px" HeaderText="规格" ColumnID="Spec" DataField="Spec"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="80px" HeaderText="数量" ColumnID="Qty" DataField="Qty"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="80px" HeaderText="单位" ColumnID="Unit" DataField="Unit"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="150px" HeaderText="材质" ColumnID="Material" DataField="Material"
FieldType="String" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="300px" HeaderText="描述" ColumnID="Description" DataField="Description" ExpandUnusedSpace="true"
FieldType="String" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="160px" HeaderText="备注" ColumnID="Remark" DataField="Remark"
FieldType="String" HeaderTextAlign="Center">
</f:RenderField>
</Columns>
</f:Grid>
</Items>
<f:Grid ID="Grid2" ShowBorder="true" ShowHeader="true" Title="管道长度表" EnableCollapse="true" Hidden="true"
runat="server" BoxFlex="35" DataKeyNames="Id" EnableColumnLines="true" DataIDField="Id"
EnableTextSelection="true" AllowColumnLocking="true">
<Columns>
<f:RenderField Width="90px" HeaderText="管线页码" ColumnID="Pipe_page_no" DataField="Pipe_page_no"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="300px" HeaderText="管线号" ColumnID="Pipe_no" DataField="Pipe_no"
FieldType="String" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField Width="90px" HeaderText="分组序号" ColumnID="Group_index" DataField="Group_index"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="120px" HeaderText="位置编号" ColumnID="Pos_no" DataField="Pos_no"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="140px" HeaderText="长度(mm)" ColumnID="Length_mm" DataField="Length_mm"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
<f:RenderField Width="120px" HeaderText="公称直径(DN)" ColumnID="Dn" DataField="Dn" ExpandUnusedSpace="true"
FieldType="String" HeaderTextAlign="Center" TextAlign="Center">
</f:RenderField>
</Columns>
</f:Grid>
</Items>
</f:Panel>
<f:Window ID="Window1" Title="数据信息" Hidden="true" EnableIFrame="true"
EnableMaximize="true" Target="Top" EnableResize="true" runat="server" OnClose="Window1_Close"
IsModal="true" Width="1200px" Height="500px">
</f:Window>
<f:Window ID="Window1" Title="数据信息" Hidden="true" EnableIFrame="true"
EnableMaximize="true" Target="Top" EnableResize="true" runat="server" OnClose="Window1_Close"
IsModal="true" Width="1200px" Height="500px">
</f:Window>
</form>
</body>