|
@@ -6,6 +6,7 @@
|
|
|
* @version
|
|
|
*/
|
|
|
|
|
|
+
|
|
|
/*
|
|
|
* 广东建设工程政府投资项目造价数据标准3.0
|
|
|
* */
|
|
@@ -171,7 +172,7 @@ const XMLStandard = (function () {
|
|
|
};
|
|
|
// 计算程序名称-费用代号映射
|
|
|
const CalculationCodeMap = {
|
|
|
- '直接费': 'DEZJF',
|
|
|
+ '直接费': 'ZJF',
|
|
|
'人工费': 'RGF',
|
|
|
'材料费': 'CLF',
|
|
|
'施工机具费': 'JXF',
|
|
@@ -638,7 +639,7 @@ const XMLStandard = (function () {
|
|
|
: _util.getValueByKey(basicInformation, 'tenderCompileDate')
|
|
|
},
|
|
|
// 编制单位法定代表人或其授权人
|
|
|
- { name: 'Authorizer', mustHasValue: true, value: _util.getValueByKey(basicInformation, 'authorizer') },
|
|
|
+ { name: 'Authorizer', mustHasValue: true, value: _util.getValueByKey(basicInformation, 'constructingUnitsPerson') },
|
|
|
// 工程总价(元)
|
|
|
{
|
|
|
name: 'Total', dName: '工程总价', type: _type.DECIMAL, required: true,
|
|
@@ -1384,7 +1385,7 @@ const XMLStandard = (function () {
|
|
|
// 暂估价
|
|
|
{
|
|
|
name: 'Appraisal', type: _type.DECIMAL,
|
|
|
- value: _util.getFeeByFlag(items, fixedFlag.ESTIMATE, 'common.totalFee')
|
|
|
+ value: _util.getFee(bills.fees, 'estimate.totalFee')
|
|
|
},
|
|
|
// 机械费
|
|
|
{
|
|
@@ -1419,7 +1420,7 @@ const XMLStandard = (function () {
|
|
|
// 其他项目费
|
|
|
{
|
|
|
name: 'SundryCosts', type: _type.DECIMAL,
|
|
|
- value: _util.getFeeByFlag(items, fixedFlag.OTHER_MEASURE_FEE, 'common.totalFee')
|
|
|
+ value: _util.getFeeByFlag(items, fixedFlag.OTEHER, 'common.totalFee')
|
|
|
},
|
|
|
// 暂列金额
|
|
|
{
|
|
@@ -1535,7 +1536,7 @@ const XMLStandard = (function () {
|
|
|
function ExpressElement(quantityDetail) {
|
|
|
const attrs = [
|
|
|
// 序号
|
|
|
- { name: 'OrderNumber', dName: '序号', required: true, value: quantityDetail.seq },
|
|
|
+ { name: 'OrderNumber', dName: '序号', required: true, value: quantityDetail.seq + 1 }, // 软件中是从0开始,导出需要从1开始
|
|
|
// 工程量计算式
|
|
|
{ name: 'Express', dName: '工程量计算式', required: true, value: quantityDetail.regex },
|
|
|
// 工程量
|
|
@@ -1678,6 +1679,8 @@ const XMLStandard = (function () {
|
|
|
// 其他项目费标题
|
|
|
function SundryCostsGroup(node) {
|
|
|
const bills = node.data;
|
|
|
+ // 材料暂估价取不汇总,其他为汇总
|
|
|
+ const kind = node.getFlag() === fixedFlag.MATERIAL_PROVISIONAL ? SummrayKind.NO : SummrayKind.YES;
|
|
|
const attrs = [
|
|
|
// 名称
|
|
|
{ name: 'Name', dName: '名称', required: true, value: bills.name },
|
|
@@ -1686,7 +1689,7 @@ const XMLStandard = (function () {
|
|
|
// 费用代号
|
|
|
{ name: 'Code', dName: '费用代号', required: true, value: getFeeCode(bills) },
|
|
|
// 汇总类型
|
|
|
- { name: 'Kind', dName: '汇总类型', type: _type.INT, required: true, value: SummrayKind.YES },
|
|
|
+ { name: 'Kind', dName: '汇总类型', type: _type.INT, required: true, value: kind },
|
|
|
// 备注
|
|
|
{ name: 'Remark', value: bills.remark }
|
|
|
];
|
|
@@ -1695,6 +1698,8 @@ const XMLStandard = (function () {
|
|
|
// 其他项目费明细
|
|
|
function SundryCostsItem(node) {
|
|
|
const bills = node.data;
|
|
|
+ // 材料暂估价取不汇总,其他为汇总
|
|
|
+ const kind = node.getFlag() === fixedFlag.MATERIAL_PROVISIONAL ? SummrayKind.NO : SummrayKind.YES;
|
|
|
const attrs = [
|
|
|
// 名称
|
|
|
{ name: 'Name', dName: '名称', required: true, value: bills.name },
|
|
@@ -1713,7 +1718,7 @@ const XMLStandard = (function () {
|
|
|
// 费用代号
|
|
|
{ name: 'Code', dName: '费用代号', required: true, value: getFeeCode(bills) },
|
|
|
// 汇总类型
|
|
|
- { name: 'Kind', dName: '汇总类型', type: _type.INT, required: true, value: SummrayKind.NO },
|
|
|
+ { name: 'Kind', dName: '汇总类型', type: _type.INT, required: true, value: kind },
|
|
|
// 备注
|
|
|
{ name: 'Remark', value: bills.remark }
|
|
|
];
|
|
@@ -1753,7 +1758,7 @@ const XMLStandard = (function () {
|
|
|
// 金额
|
|
|
{ name: 'Total', type: _type.DECIMAL, value: _util.getFee(bills.fees, 'common.totalFee') },
|
|
|
// 汇总类型
|
|
|
- { name: 'Kind', dName: '汇总类型', type: _type.INT, required: true, value: SummrayKind.NO },
|
|
|
+ { name: 'Kind', dName: '汇总类型', type: _type.INT, required: true, value: SummrayKind.YES },
|
|
|
// 备注
|
|
|
{ name: 'Remark', value: bills.remark }
|
|
|
];
|
|
@@ -1820,7 +1825,7 @@ const XMLStandard = (function () {
|
|
|
// 金额
|
|
|
{ name: 'Total', type: _type.DECIMAL, value: _util.getFee(bills.fees, 'common.totalFee') },
|
|
|
// 汇总类型
|
|
|
- { name: 'Kind', dName: '汇总类型', type: _type.INT, required: true, value: SummrayKind.NO },
|
|
|
+ { name: 'Kind', dName: '汇总类型', type: _type.INT, required: true, value: SummrayKind.YES },
|
|
|
// 备注
|
|
|
{ name: 'Remark', value: bills.remark }
|
|
|
];
|
|
@@ -1885,8 +1890,8 @@ const XMLStandard = (function () {
|
|
|
const attrs = [
|
|
|
// 名称
|
|
|
{ name: 'Name', dName: '名称', required: true, value: bills.name },
|
|
|
- // 项目价值
|
|
|
- { name: 'Quantity', type: _type.DECIMAL, value: bills.quantity },
|
|
|
+ // 项目价值,计算基数对应的金额
|
|
|
+ { name: 'Quantity', type: _type.DECIMAL, value: bills.tenderCalcBaseValue },
|
|
|
// 服务内容
|
|
|
{ name: 'Content', value: bills.serviceContent },
|
|
|
// 计算基数
|
|
@@ -1896,7 +1901,7 @@ const XMLStandard = (function () {
|
|
|
// 金额
|
|
|
{ name: 'Total', type: _type.DECIMAL, value: _util.getFee(bills.fees, 'common.totalFee') },
|
|
|
// 汇总类型
|
|
|
- { name: 'Kind', dName: '汇总类型', type: _type.INT, required: true, value: SummrayKind.NO },
|
|
|
+ { name: 'Kind', dName: '汇总类型', type: _type.INT, required: true, value: SummrayKind.YES },
|
|
|
// 备注
|
|
|
{ name: 'Remark', value: bills.remark }
|
|
|
];
|
|
@@ -1936,9 +1941,9 @@ const XMLStandard = (function () {
|
|
|
// 金额
|
|
|
{ name: 'Total', type: _type.DECIMAL, value: _util.getFee(bills.fees, 'common.totalFee') },
|
|
|
// 依据
|
|
|
- { name: 'Reason', value: '' },
|
|
|
+ { name: 'Reason', value: bills.claimVisa },
|
|
|
// 汇总类型
|
|
|
- { name: 'Kind', dName: '汇总类型', type: _type.INT, required: true, value: SummrayKind.NO },
|
|
|
+ { name: 'Kind', dName: '汇总类型', type: _type.INT, required: true, value: SummrayKind.YES },
|
|
|
// 备注
|
|
|
{ name: 'Remark', value: bills.remark }
|
|
|
];
|
|
@@ -2490,12 +2495,12 @@ const XMLStandard = (function () {
|
|
|
let rationGLJs = tenderDetail.ration_glj.datas.filter(rGLJ => rGLJ.rationID === node.data.ID);
|
|
|
rationGLJs = gljUtil.sortRationGLJ(rationGLJs); // 定额人材机排序
|
|
|
const rationGLJElements = rationGLJs
|
|
|
- /* .filter(rGLJ => {
|
|
|
+ .filter(rGLJ => {
|
|
|
// 总消耗量为0的,不输出
|
|
|
const totalQuantity = gljUtil.getTotalQuantity(rGLJ, node.data, Decimal.QUANTITY, Decimal.GLJ);
|
|
|
const parsedTotalQuantity = parseFloat(totalQuantity);
|
|
|
return parsedTotalQuantity;
|
|
|
- }) */
|
|
|
+ })
|
|
|
.map(rGLJ => {
|
|
|
const totalQuantity = gljUtil.getTotalQuantity(rGLJ, node.data, Decimal.QUANTITY, Decimal.GLJ);
|
|
|
const noCost = !+totalQuantity; // 总消耗量为0即为不计价材料
|
|
@@ -2633,7 +2638,9 @@ const XMLStandard = (function () {
|
|
|
const engineeringCostNode = tenderDetail.Bills.tree.roots.find(node => node.getFlag() === fixedFlag.ENGINEERINGCOST);
|
|
|
const ecTotalFee = _util.getFee(engineeringCostNode.data.fees, 'common.totalFee');
|
|
|
const coeDatas = materialAdjustObj.getPriceCoeDatas(gljList, contractorList, ecTotalFee, decimalObj);
|
|
|
- return gljList.map(glj => {
|
|
|
+ return gljList
|
|
|
+ .filter(glj => !!+glj.quantity) // 总消耗量为0不导出
|
|
|
+ .map(glj => {
|
|
|
// 人材机
|
|
|
const price = gljUtil.getGLJPrice(glj, tenderDetail.projectGLJ.datas, // 价格信息
|
|
|
tenderDetail.projectInfo.property.calcOptions, tenderDetail.labourCoe.datas, tenderDetail.projectInfo.property.decimal, false, _, scMathUtil);
|