|
|
@@ -314,12 +314,32 @@ INTERFACE_EXPORT = (() => {
|
|
|
[fixedFlag.PROVISIONAL]: '5',
|
|
|
[fixedFlag.TOTAL_COST]: '6',
|
|
|
};
|
|
|
+ // 标题映射
|
|
|
+ /* 写死:
|
|
|
+ “第100章至700章清单”输出=1、
|
|
|
+ “已包含在清单合计中的材料、工程设备、专业工程暂估价合计”输出=9、
|
|
|
+ “清单合计减去材料、工程设备、专业工程暂估价合计”输出=10、
|
|
|
+ “计日工合计”输出=11、
|
|
|
+ “暂列金额(不含计日工总额)”输出=12、
|
|
|
+ “投标报价”输出=13;
|
|
|
+ 如果有新增的同级的大项费用,则以14开始编号 */
|
|
|
+ const BillsTitleValue = {
|
|
|
+ [fixedFlag.ONE_SEVEN_BILLS]: '1',
|
|
|
+ [fixedFlag.PROVISIONAL_TOTAL]: '9',
|
|
|
+ [fixedFlag.BILLS_TOTAL_WT_PROV]: '10',
|
|
|
+ [fixedFlag.DAYWORK_LABOR]: '11',
|
|
|
+ [fixedFlag.PROVISIONAL]: '12',
|
|
|
+ [fixedFlag.TOTAL_COST]: '13',
|
|
|
+ };
|
|
|
+ let curTitleValue;
|
|
|
// 清单标题 造价书的第一层数据。
|
|
|
function QdBt(node, allNodes) {
|
|
|
const row = node.row();
|
|
|
const orgFee = getFee(node.data.fees, 'common.tenderTotalFee');
|
|
|
const fee = isBidInvitation ? '0' : orgFee;
|
|
|
- const titleType = BillsTitleType[node.getFlag()];
|
|
|
+ const flag = node.getFlag();
|
|
|
+ const bm = BillsTitleValue[flag] || curTitleValue++;
|
|
|
+ const titleType = BillsTitleType[flag];
|
|
|
const calcBase = titleType === '5'
|
|
|
? orgFee
|
|
|
: node.data.calcBase
|
|
|
@@ -327,7 +347,7 @@ INTERFACE_EXPORT = (() => {
|
|
|
: '';
|
|
|
const attrs = [
|
|
|
{ name: 'Xh', value: row, type: TYPE.INT }, // 序号
|
|
|
- { name: 'Bm', value: node.data.code }, // 编码
|
|
|
+ { name: 'Bm', value: bm }, // 编码
|
|
|
{ name: 'Name', value: node.data.name }, // 名称
|
|
|
{ name: 'Je', value: fee, type: TYPE.DECIMAL }, // 金额
|
|
|
{ name: 'Code', value: `F${row}` }, // 行引用
|
|
|
@@ -341,6 +361,13 @@ INTERFACE_EXPORT = (() => {
|
|
|
// 清单明细 (只有100-700章清单标题输出)
|
|
|
function QdMx(node, allNodes) {
|
|
|
const row = node.row();
|
|
|
+ // 编码: 清单非章级的,读取清单编码列。章级的清单,写死:“清单第100章总则”输出=100,“清单第200章”输出=200,依次类推。可以判断章级的,取清单名称中的数字。
|
|
|
+ let code = node.data.code || '';
|
|
|
+ const name = node.data.name || '';
|
|
|
+ const codeMatched = name.match(/第\s*(\d+)\s*章/);
|
|
|
+ if (codeMatched && codeMatched[1]) {
|
|
|
+ code = codeMatched[1];
|
|
|
+ }
|
|
|
const iszg = node.data.specialProvisional === '专业工程';
|
|
|
const calcBaseBeFee = iszg || node.getFlag() === fixedFlag.PROVISIONAL;
|
|
|
const orgFee = getFee(node.data.fees, 'common.tenderTotalFee');
|
|
|
@@ -351,7 +378,7 @@ INTERFACE_EXPORT = (() => {
|
|
|
: '';
|
|
|
const attrs = [
|
|
|
{ name: 'Xh', value: row, type: TYPE.INT }, // 序号
|
|
|
- { name: 'Qdbm', value: node.data.code, minLen: 1 }, // 编码
|
|
|
+ { name: 'Qdbm', value: code, minLen: 1 }, // 编码
|
|
|
{ name: 'Name', value: node.data.name }, // 名称
|
|
|
{ name: 'Dw', value: node.data.unit }, // 单位
|
|
|
{ name: 'Sl', value: node.data.quantity, type: TYPE.DECIMAL }, // 工程量
|
|
|
@@ -617,6 +644,7 @@ INTERFACE_EXPORT = (() => {
|
|
|
projectGLJIDToRcjID[glj.id] = index + 1;
|
|
|
projectGLJMap[glj.id] = glj;
|
|
|
});
|
|
|
+ curTitleValue = 14;
|
|
|
const dwgcxx = new Dwgcxx(tenderData.name, feature);
|
|
|
dwgcxx.children.push(
|
|
|
setupFeeRate(curDetail.FeeRate, info),
|