|
|
@@ -246,8 +246,7 @@ type
|
|
|
FZJHZB: TXmlNode; // 造价汇总表
|
|
|
FRCJHZ: TXmlNode; // 人材机汇总
|
|
|
|
|
|
- FGLGCHZ: TXmlNode; // 公路工程汇总(浙江多一层:公路工程汇总标题)
|
|
|
- FGLGCHZMX: TXmlNode; // 公路工程汇总明细 1..n
|
|
|
+ FGLGCHZ: TXmlNode; // 公路工程汇总(浙江多一层,该对象是指 公路工程汇总标题)
|
|
|
|
|
|
procedure AddNodes; Override;
|
|
|
procedure AddNodesForEveryProject(n: Integer); Override;
|
|
|
@@ -266,6 +265,7 @@ type
|
|
|
procedure AddZJHZMX;
|
|
|
procedure AddProjGLJs;
|
|
|
procedure GetZCLB(ABillName: string; var ACapter, AType: string);
|
|
|
+ function GetDataCheckCode: string; // 计算数据校验码
|
|
|
public
|
|
|
|
|
|
end;
|
|
|
@@ -3446,6 +3446,9 @@ begin
|
|
|
// 修改投标总价
|
|
|
if (FFileType = xftTB) then
|
|
|
FZTBXX.Elements[0].AttributeValueByNameUTF8['投标总价'] := FloatToStr(FAllProjectsTotalPriceSum);
|
|
|
+
|
|
|
+ // 修改数据校验码
|
|
|
+ FGCXX.AttributeAddUTF8('数据校验码', GetDataCheckCode);
|
|
|
end;
|
|
|
|
|
|
procedure TZTBXMLPort.AddNodesForEveryProject(n: Integer);
|
|
|
@@ -3509,7 +3512,9 @@ begin
|
|
|
|
|
|
if (self.Area = areaZheJiang) then
|
|
|
begin
|
|
|
+ // 数据校验码:通过【投标信息】和【公路工程汇总】下的所有字段内容计算哈希值。这里超前取值,先占坑,后续覆盖。
|
|
|
FGCXX.AttributeAddUTF8('数据校验码', 'AAAAA');
|
|
|
+ // 软件校验码:后续通过工具获取,这里先占坑,后续覆盖。
|
|
|
FGCXX.AttributeAddUTF8('软件校验码', 'AAAAA');
|
|
|
end;
|
|
|
|
|
|
@@ -3628,6 +3633,7 @@ end;
|
|
|
procedure TZTBXMLPort.AddGLGCHZMX;
|
|
|
var n: Integer;
|
|
|
vSL: TStringList;
|
|
|
+ vGLGCHZMX: TXmlNode;
|
|
|
begin
|
|
|
vSL := TStringList.Create;
|
|
|
try
|
|
|
@@ -3636,16 +3642,16 @@ begin
|
|
|
vSL.Delimiter := ';';
|
|
|
vSL.DelimitedText := FProjectInfoCacheList[n];
|
|
|
|
|
|
- FGLGCHZMX := FGLGCHZ.NodeNewUTF8('公路工程汇总明细');
|
|
|
- FGLGCHZMX.AttributeAddUTF8('序号', vSL.Values['No']);
|
|
|
- FGLGCHZMX.AttributeAddUTF8('标段名称', vSL.Values['Name']);
|
|
|
+ vGLGCHZMX := FGLGCHZ.NodeNewUTF8('公路工程汇总明细');
|
|
|
+ vGLGCHZMX.AttributeAddUTF8('序号', vSL.Values['No']);
|
|
|
+ vGLGCHZMX.AttributeAddUTF8('标段名称', vSL.Values['Name']);
|
|
|
if (FFileType = xftZB) then
|
|
|
- FGLGCHZMX.AttributeAddUTF8('金额', '0')
|
|
|
+ vGLGCHZMX.AttributeAddUTF8('金额', '0')
|
|
|
else
|
|
|
- FGLGCHZMX.AttributeAddUTF8('金额', vSL.Values['TotalPrice']);
|
|
|
+ vGLGCHZMX.AttributeAddUTF8('金额', vSL.Values['TotalPrice']);
|
|
|
|
|
|
- FGLGCHZMX.AttributeAddUTF8('唯一标识-Guid', vSL.Values['GUID']);
|
|
|
- FGLGCHZMX.AttributeAddUTF8('备注', '');
|
|
|
+ vGLGCHZMX.AttributeAddUTF8('唯一标识-Guid', vSL.Values['GUID']);
|
|
|
+ vGLGCHZMX.AttributeAddUTF8('备注', '');
|
|
|
end;
|
|
|
finally
|
|
|
vSL.Free;
|
|
|
@@ -4207,6 +4213,35 @@ begin
|
|
|
end;
|
|
|
end;
|
|
|
|
|
|
+
|
|
|
+// 通过【投标信息】和【公路工程汇总】下的所有字段内容计算哈希值。
|
|
|
+function TZTBXMLPort.GetDataCheckCode: string;
|
|
|
+var s: string;
|
|
|
+ vNode: TXmlNode;
|
|
|
+ i, n: Integer;
|
|
|
+begin
|
|
|
+ s := '';
|
|
|
+
|
|
|
+ vNode := FZTBXX.Elements[0]; // <投标信息>
|
|
|
+ for i := 0 to vNode.AttributeCount - 1 do
|
|
|
+ begin
|
|
|
+ s := s + Utf8ToAnsi(vNode.AttributeValue[i]);
|
|
|
+ end;
|
|
|
+
|
|
|
+ for n := 0 to FGLGCHZ.ElementCount - 1 do
|
|
|
+ begin
|
|
|
+ vNode := FGLGCHZ.Elements[n]; // <公路工程汇总明细>
|
|
|
+ for i := 0 to vNode.AttributeCount - 1 do
|
|
|
+ begin
|
|
|
+ s := s + Utf8ToAnsi(vNode.AttributeValue[i]);
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+
|
|
|
+ s := EncryptStringByMD5(s);
|
|
|
+
|
|
|
+ Result := s;
|
|
|
+end;
|
|
|
+
|
|
|
{TkmXMLPort}
|
|
|
|
|
|
procedure TkmXMLPort.AddBQTable;
|