xk(NGy#38M2b-cz`+)rT>C!6s3df@ls24HC6(t
z1zix^l&ZYKRqz<5fkgRJf?wL%j!Airz_IE+10yTJbMb};T8F4yQO-$oLuK1p^z==_
z2Z|b+Eye43ku`#iQWRqECNj@Rp#H`3pkk{r6V7RyO*uy@_}Gy+WK?U&d@tq%ZXC@p
z0xwsAzZu7gef5K?k(3#yd;xqOdmoA{jx@qFxwD{T-yLLDOu{wJseeJBq^FS
zOrHuJ5&id1^cqA-{W(*8DqL|4f_VXNlT?JU*@Ce@50_;RZ!6CV(~BgEB;|iTQo>o+
zpw_EC+}%u~)~h+(rLazzD_ez7Nxu&H7Pe%{DKCkITw_e1Ycz<0OA{f7gDZv)za0Q+
zQVhSX3e#VCkSprUrO!2p_fG$vOnKoEEV}rF%L-XjS~;NvvgovH;I?(MeH@$Z>!7DF
zkHQ}EI(#lYXcp~PUU!Cq*K-i@KSH5(Y=f{VA;j=3VdrytpHUO!tiQ*|kF*zqt7rJ?
z6R0hZ9y>6%3Tq_%G#j@=JlzJTWaUm@3bW2yV;A6y%FEI-TiWXy?XsbV=uX8hE@Dn@
z8EU;YcNKGXGR>E3CQifC`Gb?)b)2$&b~Ce0ABawy4=ANW{R5wHcw;1omz~-+Vvh%R
zzHtyNl7kkNJ!zQkcm*{lEuIkXTbDT(P_x~ejT&f#u5c(vLG@p5@eMO8ocf?&d^2s|
zJ%~ZI43NyX_iL7a#Y>}W;sRIuJnJn)cAi!ZoC%D0?2#F{X6LVbXQXE6|5_9q179S*=qY
z*3O>DMCq|qw_2o))DiPI*j_$)T>QM*)l|Zak}^gv3}q1#7JfMEOQ>le^@-~_!df-m
z;C^`=={pET===&`=P=v@zqCHzgr=`$+6z6~1aMeojGEqWUvEyY72y{qk#qF;J|A;z
z|JZ%zNK+`>$zi`ipLE^El8}=yH)n$N$C9v-FfU|+?ZT265jWpuf~BJin+qM4pZj$*
za1?6gW~M{pm&pXp`$Q2u5dj#L$jp8^I9W`<60?B>>{<%7bo|YXKK$ppA1dcKUj>JSzoFckK6zBm}z>-Z^Ss+Bo@0;4e-?Z)3
z**R*Ru?wA>RNjx#{`CnTc4h|f{XaK#kyr}Nn^cBICx$grhIfAdB7^2P9lN^UbIcm7
z(^GS}N>71y9Ir65DfbmXPJc}_Fl-wA
z9Btl|rl3Zx#|)D_E!tX3P3;h6YeA@Br@ATIbeG3wpiF`?BmkV+wPR^661S`GeI_Is
zIepxAS3G?fRm8+HiO2$yn@RDcu8gE6t%U24RCjOCRFzR5%E|s@z)U#QD0bOI7&p4Q
zso8!1$#r)-$+_}l#2tt+DOi)oot{Cp7x~AT2sbv>qp*%U9FC65LWnOApjS1*EUl0qHi;rS$x$SW-m!&@Twxpr2JBKC|@@
zn^0Wl09G~kqAZ)x{y3$f1Do(QUu#`jvbBrT!j;+FQ~yvL22+QE;=6^5FAx}A*6)-c
zD&g04nx4NV0-8V!=b4i4J~ZX3=~h}6WNhGBZSK`#-cn7!y+gcAjBU|NDbict=@z(v
zRO8ZLZtN}#ZqzN^YK;vZ(p?gF5c;q=j2Sji&)2WwvYUXsz(8Y4IYzPGowfiq;3mCR
zA7kg98W1J>^-SkUAp%7x3VnfS&Ca=ByokoSsZtk+#v+1T=gEpQ^5U(y7qC
zYb`Q0MxQ_gwc-d6{$dh9twe22-mlK8z43fYm93`Q$cWk@dA{%a&wNzu{W;0RYaUwo
zS`I^cJsUck*@9S@e~)#aN9-ZlkR^T15(QJF`*J^MRT+n(39nOUg_>hX$DsGDB~;S|
zE~%2c9&GRKZx0_q-4rv0&eXDD2cC)3E94QZL439wG)Z&Lk8_~MiA|IKMxJ|8Nv$<%
z&JgDnvRHPO+IN9*z#>szGB=fcGNd-)(20tmMxy`l88PO^nJnJcpyjVvsoTWF
zr-TUm)cC38B8;dxXAsOk7Y@T<29@wy2SkN>J^n6VeQ(j0J+mH?&(vvIN-D7xmq&AHTgM1V
znNto1F{mSvos(D#ThRxVSy4v`=wxd}Bd+w-WgoCWpuPJmwH7f`tHQh-W$1<;y8&L@
zqhBq3#iWw}<+4IHstzJv+r{z%-G$0IK6o5eGwXbkAGljc?jTPUVdaR_yFk>%Jp@M8
z2t~)Auo8Zh7}KX3cDL{pGST#FiPj=(8v;-*MnzMzwPI
z1d80q^WsZzEL@z7E5E-0n}_rip@lt=~Fw;-A2O9ata
zNVQAUVg|0KCkd&C!)R!j4=B5B>S}q6)a42KpY~Ho*IV3qwcF^c;}ZPKe*f~_-$ls(
zSn=O}%;pftiWYqLj5va%#w$}=BF3iOY-)D}#|SdQs$^O#PLj}XxV
z*m0y4no#$rYHyroGE9%jEJ1U`-Q~2aWXvGbr#L3X2EUj0H+IW}kLSDWxm&{B8v_Fz
z+7ii|`6i)dZ}mbKsZ+Apm4;M_2&uNJ=nDK4zJ)nJO+~rPGlZVFRnY!X{G%i>foyc_a{Z`j
zrs`owW4wrpr;-YQ$~?1pibE4{aWFuD>0uc+ai$0+Df=~eXdRL-Jx?N;IpAtgAIXu|
zVLtgC|BWrQ|8=;+Y5cLEN9crGtKa5_M(el?{LwSJ@dA*qu)dZnrhl$(2=}kM#FHm5
z-F8pYY+X^SJ_lu;pauZQE^;B|f0kAHVk6vk7aVq~lkNlYPb-`wO;_l@TEPVx0QlYc
zf31*%ERCJbOx0YRt?VuSdgM<^Z2R3KA8^m282%hiZ6>13br8o)EE0^vraM$nN01%p
zBPyvu)!W3Nffb_jqGO
zp%#-j!9cexe91RyK0JB1suTgaj3>SM2yEguQvf>l*PRZG#qq=^!7N?yJ-f|?z+
zA~aSOQ6)SS1Ey=o&Jyr3;A0dK+I)35)o#nV#>V|xwj;=C1~1b@XMs7IMl?(jKWaca
zqF16*kdY4ejrwIo6WlN|-?FpmQ|Iw;@4;RR!Nz5w)qC&lskJJ6+F6Aq`3Bl|;~7kf
z;RB^C2LXxom+Jrbri)jb{PpsCHPU}|g8sb)<4@^7_dEPc769;r==pEy|LlJFQ~b|1
z|KH+BuOaMzH2wbs__K5MH-P7B8|HuXvHk@3vt#o&KsWsVzkl;5%AXaizfpd^^5}0L
z|G#?HpQ3*z8-I(2y@v4rNi+?
-
+
using System;
using System.Collections;
using System.Collections.Generic;
@@ -99,7 +99,7 @@ namespace FastReport
}
-
+
diff --git a/SGGL/FineUIPro.Web/File/Fastreport/管道焊口返修委托单NoPic.frx b/SGGL/FineUIPro.Web/File/Fastreport/管道焊口返修委托单NoPic.frx
index 539d7f15..ba33c882 100644
--- a/SGGL/FineUIPro.Web/File/Fastreport/管道焊口返修委托单NoPic.frx
+++ b/SGGL/FineUIPro.Web/File/Fastreport/管道焊口返修委托单NoPic.frx
@@ -1,5 +1,5 @@
-
+
using System;
using System.Collections;
using System.Collections.Generic;
@@ -89,7 +89,7 @@ namespace FastReport
}
-
+
diff --git a/SGGL/FineUIPro.Web/File/Fastreport/管道焊接任务单.frx b/SGGL/FineUIPro.Web/File/Fastreport/管道焊接任务单.frx
index ac0ae869..d901b971 100644
--- a/SGGL/FineUIPro.Web/File/Fastreport/管道焊接任务单.frx
+++ b/SGGL/FineUIPro.Web/File/Fastreport/管道焊接任务单.frx
@@ -1,5 +1,5 @@
-
+
using System;
using System.Collections;
using System.Collections.Generic;
@@ -59,7 +59,7 @@ namespace FastReport
}
-
+
diff --git a/SGGL/FineUIPro.Web/File/Fastreport/防腐委托单.frx b/SGGL/FineUIPro.Web/File/Fastreport/防腐委托单.frx
new file mode 100644
index 00000000..ff65d144
--- /dev/null
+++ b/SGGL/FineUIPro.Web/File/Fastreport/防腐委托单.frx
@@ -0,0 +1,130 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
index 29e8444e..3aa70c7b 100644
--- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
+++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj
@@ -365,6 +365,10 @@
+
+
+
+
@@ -8310,6 +8314,20 @@
OutputMasterEdit.aspx
+
+ AntiCorrosionTrust.aspx
+ ASPXCodeBehind
+
+
+ AntiCorrosionTrust.aspx
+
+
+ AntiCorrosionTrustEdit.aspx
+ ASPXCodeBehind
+
+
+ AntiCorrosionTrustEdit.aspx
+
main2.aspx
ASPXCodeBehind
diff --git a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldTask.aspx.cs b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldTask.aspx.cs
index 2e70d43c..bca9532f 100644
--- a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldTask.aspx.cs
+++ b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldTask.aspx.cs
@@ -1525,7 +1525,8 @@ namespace FineUIPro.Web.HJGL.WeldingManage
keyValuePairs.Add("Code", weldTask?.TaskCode ?? weldTask_CreateName?.TaskCode ?? string.Empty);
keyValuePairs.Add("TaskDate", string.Format("{0:yyyy-MM-dd}", taskTime.Value));
keyValuePairs.Add("UnitName", UnitService.GetUnitNameByUnitId(tvControlItem.SelectedNodeID.Split('|')[1]));
- keyValuePairs.Add("UnitWorkName", UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNodeID.Split('|')[0]).UnitWorkName);
+ var unitWorkModel = UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNodeID.Split('|')[0]);
+ keyValuePairs.Add("UnitWorkName", unitWorkModel?.UnitWorkName ?? string.Empty);
// 创建一个新的DataTable
DataTable dataTable = new DataTable();
dataTable.TableName = "Data";
@@ -1541,13 +1542,21 @@ namespace FineUIPro.Web.HJGL.WeldingManage
{
DataRow dr = dataTable.NewRow();
var pipelineModel = PipelineService.GetPipelineByPipelineId(pipeline);
- List list = new List { pipeline };
+ if (pipelineModel == null)
+ {
+ continue;
+ }
dr["PipelineCode"] = pipelineModel.PipelineCode;
dr["FlowingSection"] = pipelineModel.FlowingSection;
- dr["MaterialCode"] = Base_MaterialService.GetMaterialByMaterialId(pipelineModel.MaterialId).MaterialCode;
+ // 管线基础资料可能未维护材质,打印时保留空值,避免整张任务单打印失败。
+ var materialModel = string.IsNullOrEmpty(pipelineModel.MaterialId) ? null : Base_MaterialService.GetMaterialByMaterialId(pipelineModel.MaterialId);
+ dr["MaterialCode"] = materialModel?.MaterialCode ?? string.Empty;
dr["MaterialSpec"] = string.Join(",", weldTaskList.Select(x => x.Specification).Distinct().ToList());
- dr["MatchRate"] = Math.Round((decimal)TwArrivalStatisticsService.GetPipeMatch(pipeline) * 100, 2).ToString() + "%";
+ // 匹配率计算依赖管线仓库,未维护仓库时按0显示,避免基础资料缺项阻断打印。
+ var warehouseModel = string.IsNullOrEmpty(pipelineModel.WarehouseId) ? null : Base_WarehouseService.GetWarehouseByWarehouseId(pipelineModel.WarehouseId);
+ var matchRate = warehouseModel == null ? 0 : TwArrivalStatisticsService.GetPipeMatch(pipeline) ?? 0;
+ dr["MatchRate"] = Math.Round(matchRate * 100, 2).ToString() + "%";
dr["Dia"] = weldTaskList.Where(x => x.PipelineId == pipeline).Sum(x => x.Size ?? 0)
.ToString();
dataTable.Rows.Add(dr);
diff --git a/SGGL/FineUIPro.Web/common/3.xml b/SGGL/FineUIPro.Web/common/3.xml
new file mode 100644
index 00000000..91d9fd84
--- /dev/null
+++ b/SGGL/FineUIPro.Web/common/3.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/common/Menu_DigData.xml b/SGGL/FineUIPro.Web/common/Menu_DigData.xml
index b532a9bb..bb7a7a34 100644
--- a/SGGL/FineUIPro.Web/common/Menu_DigData.xml
+++ b/SGGL/FineUIPro.Web/common/Menu_DigData.xml
@@ -1,9 +1,51 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -16,12 +58,15 @@
+
+
+
-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/common/Menu_HJGL.xml b/SGGL/FineUIPro.Web/common/Menu_HJGL.xml
index a01be0df..7b7f8d23 100644
--- a/SGGL/FineUIPro.Web/common/Menu_HJGL.xml
+++ b/SGGL/FineUIPro.Web/common/Menu_HJGL.xml
@@ -27,13 +27,15 @@
+
+
-
+
-
+
diff --git a/SGGL/FineUIPro.Web/common/Menu_HTGL.xml b/SGGL/FineUIPro.Web/common/Menu_HTGL.xml
index 95eeab91..129ab5fd 100644
--- a/SGGL/FineUIPro.Web/common/Menu_HTGL.xml
+++ b/SGGL/FineUIPro.Web/common/Menu_HTGL.xml
@@ -1,8 +1,8 @@
-
-
-
+
+
+
diff --git a/SGGL/FineUIPro.Web/common/Menu_JDGL.xml b/SGGL/FineUIPro.Web/common/Menu_JDGL.xml
index 8d4aa005..fd6a0762 100644
--- a/SGGL/FineUIPro.Web/common/Menu_JDGL.xml
+++ b/SGGL/FineUIPro.Web/common/Menu_JDGL.xml
@@ -1,7 +1,11 @@
-
+
+
+
+
+
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/common/Menu_PHTGL.xml b/SGGL/FineUIPro.Web/common/Menu_PHTGL.xml
index 56efca63..53b0bd32 100644
--- a/SGGL/FineUIPro.Web/common/Menu_PHTGL.xml
+++ b/SGGL/FineUIPro.Web/common/Menu_PHTGL.xml
@@ -4,10 +4,10 @@
-
+
diff --git a/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml b/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml
index 33fbfbf6..bd506a52 100644
--- a/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml
+++ b/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml
@@ -58,51 +58,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/SGGL/FineUIPro.Web/indexProject.aspx b/SGGL/FineUIPro.Web/indexProject.aspx
index 9d020e4b..6ec61307 100644
--- a/SGGL/FineUIPro.Web/indexProject.aspx
+++ b/SGGL/FineUIPro.Web/indexProject.aspx
@@ -232,42 +232,42 @@