上传文件

This commit is contained in:
chentianrui
2025-08-25 10:25:35 +08:00
commit fe32557ce1
559 changed files with 123340 additions and 0 deletions
@@ -0,0 +1,265 @@
///////////////////////////////////////////////////////////////
//
// 变电
//
///////////////////////////////////////////////////////////////
BEGIN:本期主变压器_型号_最高设备价格
${
iif(getparam("本期主变压器_型号_最高设备价格_已计算") != 1,
?{
setparam("变量值",0);
setparam("中间值",0);
for(filter(@项目划分.安装, "工程量",?工程量.type == "清单"),"清单",
?{
for(filter(items,"消耗量",?(消耗量.type == "设备")),"设备",
?{
setparam("中间值",设备.单价含税);
iif(getparam("中间值") > getparam("变量值"),?setparam("变量值",getparam("中间值")),0);
},?0);
},?0);
setparam("本期主变压器_型号_最高设备价格_已计算", 1);
},?0);
getparam("变量值");
}
BEGIN:主变压器型号
${
iif(getparam("主变压器型号_已计算") != 1,
?{
setparam("变量值_主变压器型号","");
setparam("变量值_主变压器_名称","");
for(filter(@项目划分.安装, "工程量",?工程量.type == "清单" ),"清单",
?{
for(filter(items,"消耗量",?(消耗量.type == "设备")),"设备",
?{
iif(getparam("变量值_主变压器型号") == "" && 本期主变压器_型号_最高设备价格() == 设备.单价含税,
?{
setparam("变量值_主变压器型号",设备.名称);
setparam("变量值_主变压器_名称",设备.规格型号);
},"");
},?0);
},?0);
setparam("主变压器型号_已计算", 1);
},?0);
setparam("变量值_主变压器型号",getparam("变量值_主变压器型号")+getparam("变量值_主变压器_名称"));
getparam("变量值_主变压器型号");
}
BEGIN:中压侧配电装置_最大电压等级
${
iif(getparam("中压侧配电装置_最大电压等级_已计算") != 1,
?{
setparam("变量值_高", 0);
for(@项目划分.安装, "工程量",
?{
iif(工程量.type == "项目划分" && 工程量.叶子节点=="1" && 工程量.存在非拆除清单==1,
?{
iif(strFind(工程量.名称,"配电装置") >= 0,
?{
setparam("遍历清单", 1);
setparam("最大电压等级", 工程量.项目划分电压等级);
},?setparam("遍历清单", 0));
},?0);
iif(工程量.type == "清单" && getparam("遍历清单")== 1,
?{
for(filter(items, "消耗量", ?(消耗量.type == "定额" || 消耗量.type == "主材" || 消耗量.type == "设备" || 消耗量.type == "一笔性费用" || 消耗量.type == "注解")),"定额",
?{
iif(getparam("最大电压等级")>getparam("变量值_高"),?setparam("变量值_高",getparam("最大电压等级")),0);
},?0);
},?0);
}, ?0);
setparam("中压侧配电装置_最大电压等级_已计算", 1);
},?0);
getparam("变量值_高");
}
BEGIN:中压侧配电装置电压等级
${
iif(getparam("中压侧配电装置电压等级_已计算") != 1,
?{
setparam("变量值_中", 0);
for(@项目划分.安装, "工程量",
?{
iif(工程量.type == "项目划分" && 工程量.叶子节点=="1" && 工程量.存在非拆除清单==1,
?{
iif(strFind(工程量.名称,"配电装置") >= 0,
?{
setparam("遍历清单", 1);
setparam("第二大电压等级", 工程量.项目划分电压等级);
},?setparam("遍历清单", 0));
},?0);
iif(工程量.type == "清单" && getparam("遍历清单")== 1,
?{
for(filter(items, "消耗量", ?(消耗量.type == "定额" || 消耗量.type == "主材" || 消耗量.type == "设备" || 消耗量.type == "一笔性费用" || 消耗量.type == "注解")),"定额",
?{
iif(中压侧配电装置_最大电压等级()!=getparam("第二大电压等级") && getparam("第二大电压等级")>getparam("变量值_中"),?setparam("变量值_中",getparam("第二大电压等级")),0);
},?0);
},?0);
}, ?0);
setparam("中压侧配电装置电压等级_已计算", 1);
},?0);
getparam("变量值_中");
}
BEGIN:低压侧配电装置电压等级
${
iif(getparam("中压侧配电装置电压等级_已计算") != 1,
?{
setparam("变量值_低", 0);
for(@项目划分.安装, "工程量",
?{
iif(工程量.type == "项目划分" && 工程量.叶子节点=="1" && 工程量.存在非拆除清单==1,
?{
iif(strFind(工程量.名称,"配电装置") >= 0,
?{
setparam("遍历清单", 1);
setparam("第三大电压等级", 工程量.项目划分电压等级);
},?setparam("遍历清单", 0));
},?0);
iif(工程量.type == "清单" && getparam("遍历清单")== 1,
?{
for(filter(items, "消耗量", ?(消耗量.type == "定额" || 消耗量.type == "主材" || 消耗量.type == "设备" || 消耗量.type == "一笔性费用" || 消耗量.type == "注解")),"定额",
?{
iif(中压侧配电装置_最大电压等级()!=getparam("第三大电压等级") && 中压侧配电装置电压等级()!=getparam("第三大电压等级") && getparam("第三大电压等级")>getparam("变量值_低"),?setparam("变量值_低",getparam("第三大电压等级")),0);
},?0);
},?0);
}, ?0);
setparam("中压侧配电装置电压等级_已计算", 1);
},?0);
getparam("变量值_低");
}
///////////////////////////////////////////////////////////////
//
// 架线
//
///////////////////////////////////////////////////////////////
BEGIN:导线型号
${
setparam("变量值", "");
setparam("导线型号", "");
setparam("个数", 1);
for(filter(@组件, "组件目录", ?(组件目录.名称 == "导线架设")),"组件列表",
?{
for(items,"组件",
?{
setparam("变量值", 组件.导线型号);
iif(getparam("个数") == 1, ?setparam("导线型号", getparam("变量值")), setparam("导线型号", getparam("导线型号") + "," + getparam("变量值")));
iif(getparam("导线型号") != "", ?setparam("个数", getparam("个数") + 1), setparam("个数", 1));
}, ?0);
}, ?0);
getparam("导线型号");
}
BEGIN:地线型号
${
setparam("变量值", "");
setparam("地线型号", "");
setparam("个数", 1);
for(filter(@组件, "组件目录", ?(组件目录.名称 == "避雷线架设")),"组件列表",
?{
for(items,"组件",
?{
setparam("变量值", 组件.避雷线型号);
iif(getparam("个数") == 1, ?setparam("地线型号", getparam("变量值")), setparam("地线型号", getparam("地线型号") + "," + getparam("变量值")));
iif(getparam("地线型号") != "", ?setparam("个数", getparam("个数") + 1), setparam("个数", 1));
}, ?0);
}, ?0);
getparam("地线型号");
}
BEGIN:杆塔总数
${
?round(杆塔_混凝土杆基数() + 杆塔_钢管杆基数() + 钢管塔基数() + 角钢塔基数(),0);
}
BEGIN:杆塔_钢管杆基数
${
setparam("变量值", 0);
for(filter(@组件, "组件目录", ?组件目录.名称 == "钢管杆"),"组件列表",
?{
for(filter(items, "组件", ?组件.杆重 != 0),"组件",
?{
setparam("变量值", getparam("变量值") + 组件.基数);
}, ?0);
}, ?0);
getparam("变量值");
}
BEGIN:杆塔_混凝土杆基数
${
setparam("变量值", 0);
for(filter(@组件, "组件目录", ?组件目录.名称 == "混凝土杆"),"组件列表",
?{
for(filter(items, "组件", ?组件.杆重 != 0),"组件",
?{
setparam("变量值", getparam("变量值") + 组件.基数);
}, ?0);
}, ?0);
getparam("变量值");
}
BEGIN:角钢塔基数
${
setparam("变量值", 0);
for(filter(@组件, "组件目录", ?组件目录.名称 == "角钢塔"),"组件列表",
?{
for(filter(items, "组件", ?组件.塔重 != 0),"组件",
?{
setparam("变量值", getparam("变量值") + 组件.基数);
}, ?0);
}, ?0);
setparam("变量值", ?round(getparam("变量值"),0));
getparam("变量值");
}
BEGIN:钢管塔基数
${
setparam("变量值", 0);
for(filter(@组件, "组件目录", ?组件目录.名称 == "钢管塔"),"组件列表",
?{
for(filter(items, "组件", ?组件.塔重 != 0),"组件",
?{
setparam("变量值", getparam("变量值") + 组件.基数);
}, ?0);
}, ?0);
setparam("变量值", ?round(getparam("变量值"),0));
getparam("变量值");
}
BEGIN:耐张塔基数
${
setparam("变量值", 0);
for(filter(@组件, "组件目录", ?(组件目录.名称 == "角钢塔" || 组件目录.名称 == "钢管塔")),"组件列表",
?{
for(filter(items, "组件", ?(组件.所属塔型 == "耐张(转角)" && 组件.塔重 != 0)),"组件",
?{
setparam("变量值", getparam("变量值") + 组件.基数);
}, ?0);
}, ?0);
setparam("变量值", ?round(getparam("变量值"),0));
getparam("变量值");
}
BEGIN:直线塔基数
${
setparam("变量值", 0);
for(filter(@组件, "组件目录", ?(组件目录.名称 == "角钢塔" || 组件目录.名称 == "钢管塔")),"组件列表",
?{
for(filter(items, "组件", ?(组件.所属塔型 == "直线" && 组件.塔重 != 0)),"组件",
?{
setparam("变量值", getparam("变量值") + 组件.基数);
}, ?0);
}, ?0);
setparam("变量值", ?round(getparam("变量值"),0));
getparam("变量值");
}
@@ -0,0 +1,344 @@
//费用组合单价变量(用于计算清单的单价费用(综合单价、取费费用单价等))
BEGIN:费用组合单价变量
${
sum(source,"工程量代理",?工程量代理.结算费用)
}
//费用组合变量(根据结算条款组合中标费用和结算费用)
BEGIN:费用组合变量
${
sum(source,"工程量代理",?#{
->清单结算状态() == 1
:工程量代理.结算费用 * 工程量代理.数量;
->清单结算状态() == 2 || 清单结算状态() == 3 || 清单结算状态() == 4 || 清单结算状态() == 7 || 清单结算状态() == 8
:工程量代理.中标费用 * 工程量代理.数量;
->清单结算状态() == 5
:工程量代理.中标费用*工程量代理.中标数量*(1+清单工程量调整幅度()/100)
+(工程量代理.数量-工程量代理.中标数量*(1+清单工程量调整幅度()/100))*工程量代理.结算费用;
->清单结算状态() == 6 || 清单结算状态() == 9 || 清单结算状态() == 16 || 清单结算状态() == 17
:工程量代理.结算费用 * 工程量代理.数量;
}
)
}
BEGIN:单条清单结算状态
${
sum(source,"工程量代理",?清单结算状态())
}
BEGIN:清单结算状态
${
#{
->(@工程信息.阶段类型 != "结算" && @工程信息.阶段类型 != "审核") || 工程量代理.设备类费用 == 1
:1;
->
:#{
->工程量代理.阶段类型 == @工程信息.阶段类型
|| (工程量代理.阶段类型 == "结算" && @工程信息.阶段类型 == "审核")
|| 一笔性费用清单结算条款() == 1
:1;
->清单项目特征值结算条款() == 1
:1;
->清单量差比例是否超过设置值结算条款() == 0
:#{
->费用超过合计的比例是否超过设置值结算条款() == 0
:2;
->费用超过合计的比例是否超过设置值结算条款() == 1
:#{
->工程量代理.数量 - 工程量代理.中标数量 > 0
:16;
->工程量代理.数量 - 工程量代理.中标数量 < 0
:17;
};
};
->清单量差比例是否超过设置值结算条款() == 1
:#{
->清单金额增减是否超过设置值结算条款() == 0
:#{
->工程量代理.数量 - 工程量代理.中标数量 > 0
:3;
->工程量代理.数量 - 工程量代理.中标数量 < 0
:4;
};
->清单金额增减是否超过设置值结算条款() == 1
:#{
->工程量代理.数量 - 工程量代理.中标数量 > 0
:5;
->工程量代理.数量 - 工程量代理.中标数量 < 0
:6;
};
};
};
}
}
BEGIN:一笔性费用清单结算条款
${
#{
->工程量代理.一笔性费用 == 0 || 工程量代理.阶段类型 == "" || 工程量代理.阶段类型 == @工程信息.阶段类型
|| (工程量代理.阶段类型 == "结算" && @工程信息.阶段类型 == "审核")
:0;
->
:#{
->@结算条款.一笔性费用清单结算原则.值 == "按实际发生的量和价结算"
:1;
->@结算条款.一笔性费用清单结算原则.值 == "包干费用不可调整"
:3;
->
:2;
};
}
}
BEGIN:清单项目特征值结算条款
${
#{
->一笔性费用清单结算条款() == 3
:0;
->
:#{
->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 0
:#{
->@结算条款.项目特征发生变化.应用 == 0 || @结算条款.项目特征发生变化.值 != "是"
:0;
->清单项目特征值是否变化() == 0
:0;
->
:1;
};
->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 1
:#{
->@结算条款.拆除项目特征发生变化.应用 == 0 || @结算条款.拆除项目特征发生变化.值 != "是"
:0;
->清单项目特征值是否变化() == 0
:0;
->
:1;
};
->
:#{
->@结算条款.措施二项目特征发生变化.应用 == 0 || @结算条款.措施二项目特征发生变化.值 != "是"
:0;
->清单项目特征值是否变化() == 0
:0;
->
:1;
};
};
}
}
BEGIN:清单项目特征值是否变化
${
sum(items, "项目特征", ?iif(项目特征.中标项目特征值!=项目特征.项目特征值, 1, 0))
}
BEGIN:清单量差比例是否超过设置值结算条款
${
#{
->一笔性费用清单结算条款() == 3
:0;
->一笔性费用清单结算条款() == 1
:1;
->
:#{
->工程量代理.中标数量 < 0
:0;
->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 0
:#{
->@结算条款.清单工程量调整幅度.应用 == 0
:0;
->工程量代理.数量 - 工程量代理.中标数量 > 0
:iif((工程量代理.数量 - 工程量代理.中标数量)-@结算条款.清单工程量调整幅度.值/100*工程量代理.中标数量 > 0.0001,1,0);
->
:iif((工程量代理.中标数量 - 工程量代理.数量)-@结算条款.清单工程量调整幅度.值/100*工程量代理.中标数量 > 0.0001,1,0);
};
->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 1
:#{
->@结算条款.拆除清单工程量调整幅度.应用 == 0
:0;
->工程量代理.数量 - 工程量代理.中标数量 > 0
:iif((工程量代理.数量 - 工程量代理.中标数量)-@结算条款.拆除清单工程量调整幅度.值/100*工程量代理.中标数量 > 0.0001,1,0);
->
:iif((工程量代理.中标数量 - 工程量代理.数量)-@结算条款.拆除清单工程量调整幅度.值/100*工程量代理.中标数量 > 0.0001,1,0);
};
->
:#{
->@结算条款.措施二清单工程量调整幅度.应用 == 0
:0;
->工程量代理.数量 - 工程量代理.中标数量 > 0
:iif((工程量代理.数量 - 工程量代理.中标数量)-@结算条款.措施二清单工程量调整幅度.值/100*工程量代理.中标数量 > 0.0001,1,0);
->
:iif((工程量代理.中标数量 - 工程量代理.数量)-@结算条款.措施二清单工程量调整幅度.值/100*工程量代理.中标数量 > 0.0001,1,0);
};
};
}
}
BEGIN:清单金额增减是否超过设置值结算条款
${
#{
->一笔性费用清单结算条款() == 3
:0;
->一笔性费用清单结算条款() == 1
:1;
->
:#{
->工程量代理.中标数量 < 0
:0;
->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 0
:#{
->@结算条款.清单金额增减超过.应用 == 0
:1;
->工程量代理.数量 - 工程量代理.中标数量 > 0
:iif(abs(工程量代理.拟定综合单价*(工程量代理.数量-工程量代理.中标数量*(1+@结算条款.清单工程量调整幅度.值/100))+工程量代理.中标合价*(1+@结算条款.清单工程量调整幅度.值/100)-工程量代理.中标单价*工程量代理.数量) > @结算条款.清单金额增减超过.值*10000,1,0);
->
:iif(abs(工程量代理.中标单价*工程量代理.数量-工程量代理.拟定综合单价*工程量代理.数量) > @结算条款.清单金额增减超过.值*10000,1,0);
};
->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 1
:#{
->@结算条款.拆除清单金额增减超过.应用 == 0
:1;
->工程量代理.数量 - 工程量代理.中标数量 > 0
:iif(abs(工程量代理.拟定综合单价*(工程量代理.数量-工程量代理.中标数量*(1+@结算条款.拆除清单工程量调整幅度.值/100))+工程量代理.中标合价*(1+@结算条款.拆除清单工程量调整幅度.值/100)-工程量代理.中标单价*工程量代理.数量) > @结算条款.拆除清单金额增减超过.值*10000,1,0);
->
:iif(abs(工程量代理.中标单价*工程量代理.数量-工程量代理.拟定综合单价*工程量代理.数量) > @结算条款.拆除清单金额增减超过.值*10000,1,0);
};
->
:#{
->@结算条款.措施二清单金额增减超过.应用 == 0
:1;
->工程量代理.数量 - 工程量代理.中标数量 > 0
:iif(abs(工程量代理.拟定综合单价*(工程量代理.数量-工程量代理.中标数量*(1+@结算条款.措施二清单工程量调整幅度.值/100))+工程量代理.中标合价*(1+@结算条款.措施二清单工程量调整幅度.值/100)-工程量代理.中标单价*工程量代理.数量) > @结算条款.措施二清单金额增减超过.值*10000,1,0);
->
:iif(abs(工程量代理.中标单价*工程量代理.数量-工程量代理.拟定综合单价*工程量代理.数量) > @结算条款.措施二清单金额增减超过.值*10000,1,0);
};
};
}
}
BEGIN:费用超过合计的比例是否超过设置值结算条款
${
#{
->一笔性费用清单结算条款() == 3
:0;
->一笔性费用清单结算条款() == 1
:1;
->
:#{
->工程量代理.中标数量 < 0
:0;
->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 0
:#{
->@结算条款.差值占分部分项费比例.应用 == 0
:0;
->工程量代理.中标数量 == 0
:#{
->工程量代理.数量 != 0
:1;
->工程量代理.数量 == 0
:0;
};
->
:iif(abs((工程量代理.数量 - 工程量代理.中标数量)*工程量代理.中标单价/工程量代理.分部分项中标合价) > @结算条款.差值占分部分项费比例.值*0.01,1,0);
};
->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 1
:#{
->@结算条款.拆除差值占分部分项费比例.应用 == 0
:0;
->工程量代理.中标数量 == 0
:#{
->工程量代理.数量 != 0
:1;
->工程量代理.数量 == 0
:0;
};
->
:iif(abs((工程量代理.数量 - 工程量代理.中标数量)*工程量代理.中标单价/工程量代理.分部分项中标合价) > @结算条款.拆除差值占分部分项费比例.值*0.01,1,0);
};
->
:#{
->@结算条款.措施二差值占分部分项费比例.应用 == 0
:0;
->工程量代理.中标数量 == 0
:#{
->工程量代理.数量 != 0
:1;
->工程量代理.数量 == 0
:0;
};
->
:iif(abs((工程量代理.数量 - 工程量代理.中标数量)*工程量代理.中标单价/工程量代理.分部分项中标合价) > @结算条款.措施二差值占分部分项费比例.值*0.01,1,0);
};
};
}
}
BEGIN:清单工程量调整幅度
${
#{
->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 0
:@结算条款.清单工程量调整幅度.值;
->strFind(工程量代理.项目划分类型, "措施项目二") < 0 && 工程量代理.拆除 == 1
:@结算条款.拆除清单工程量调整幅度.值;
->
:@结算条款.措施二清单工程量调整幅度.值;
}
}
BEGIN:费用表节点是否计算
${
setparam("是否计算", 1);
iif(@工程信息.阶段类型 == "结算" || @工程信息.阶段类型 == "审核",
?{
for(source,"费用表节点",
?{
setparam("类型", 费用表节点.type);
setparam("不可竞争费用", 费用表节点.不可竞争费用);
},?0);
iif(getparam("类型") == "措施建筑" || getparam("类型") == "措施安装" || getparam("类型") == "措施线路",
?{
iif((@结算条款.措施一不可竞争项目随工程量调整而变化.值 == "否" && getparam("不可竞争费用") == 1) || (@结算条款.措施一可竞争项目随工程量调整而变化.值 == "否" && getparam("不可竞争费用") == 0),
?{
setparam("是否计算", 0);
}, ?0);
}, ?0);
iif(getparam("类型") == "规费建筑" || getparam("类型") == "规费安装" || getparam("类型") == "规费线路",
?{
iif((@结算条款.规费不可竞争项目随工程量调整而变化.值 == "否" && getparam("不可竞争费用") == 1) || (@结算条款.规费可竞争项目随工程量调整而变化.值 == "否" && getparam("不可竞争费用") == 0),
?{
setparam("是否计算", 0);
}, ?0);
}, ?0);
}, ?0);
getparam("是否计算");
}
BEGIN:费用表节点是否按分部分项比例计算
${
setparam("是否计算", 0);
iif(@工程信息.阶段类型 == "结算" || @工程信息.阶段类型 == "审核",
?{
for(source,"费用表节点",
?{
setparam("类型", 费用表节点.type);
},?0);
iif(getparam("类型") == "措施建筑" || getparam("类型") == "措施安装" || getparam("类型") == "措施线路",
?{
iif(@结算条款.措施一结算办法.值 == "新疆合同结算规则",
?{
setparam("是否计算", 1);
}, ?0);
}, ?0);
iif(getparam("类型") == "规费建筑" || getparam("类型") == "规费安装" || getparam("类型") == "规费线路",
?{
iif(@结算条款.规费结算办法.值 == "新疆合同结算规则",
?{
setparam("是否计算", 1);
}, ?0);
}, ?0);
}, ?0);
getparam("是否计算");
}