|
@@ -1335,6 +1335,9 @@ const ImportXML = (() => {
|
|
|
bills.feeRate = '';
|
|
bills.feeRate = '';
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
|
|
+ if (typeof bills.calcBase !== 'string') {
|
|
|
|
|
+ bills.calcBase = String(bills.calcBase);
|
|
|
|
|
+ }
|
|
|
//提取基数
|
|
//提取基数
|
|
|
bills.calcBase = bills.calcBase.replace(/\s/g, '');
|
|
bills.calcBase = bills.calcBase.replace(/\s/g, '');
|
|
|
let bases = bills.calcBase.split(/[\+\-\*\/]/g);
|
|
let bases = bills.calcBase.split(/[\+\-\*\/]/g);
|
|
@@ -1417,6 +1420,18 @@ const ImportXML = (() => {
|
|
|
shareInfo: [],
|
|
shareInfo: [],
|
|
|
engs: []
|
|
engs: []
|
|
|
};
|
|
};
|
|
|
|
|
+ // 所有的清单模板库ID
|
|
|
|
|
+ let allTemplateLibIDs = [];
|
|
|
|
|
+ xmlObj.engs.forEach(eng => {
|
|
|
|
|
+ eng.tenders.forEach(tender => {
|
|
|
|
|
+ let templateLibID = tender.property.templateLibID;
|
|
|
|
|
+ if (!allTemplateLibIDs.includes(templateLibID)) {
|
|
|
|
|
+ allTemplateLibIDs.push(templateLibID);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ });
|
|
|
|
|
+ // 模板映射:{[templateLibID]: data}
|
|
|
|
|
+ let templateMapping = await ajaxPost('/template/bills/api/getNeedfulTemplate', {allTemplateLibIDs});
|
|
|
for (let i = 0; i < xmlObj.engs.length; i++) {
|
|
for (let i = 0; i < xmlObj.engs.length; i++) {
|
|
|
let curEng = xmlObj.engs[i],
|
|
let curEng = xmlObj.engs[i],
|
|
|
preEng = postConstructData.engs[i - 1];
|
|
preEng = postConstructData.engs[i - 1];
|
|
@@ -1448,7 +1463,8 @@ const ImportXML = (() => {
|
|
|
preTender.tender.NextSiblingID = curTender.ID;
|
|
preTender.tender.NextSiblingID = curTender.ID;
|
|
|
}
|
|
}
|
|
|
//提取详细数据
|
|
//提取详细数据
|
|
|
- let postTenderData = await transformTender(curTender, IDPlaceholder);
|
|
|
|
|
|
|
+ let needfulTemplate = _.cloneDeep(templateMapping[curTender.property.templateLibID]);
|
|
|
|
|
+ let postTenderData = await transformTender(curTender, IDPlaceholder, needfulTemplate);
|
|
|
postTenderData.tender.property.rootProjectID = postConstructData.ID;
|
|
postTenderData.tender.property.rootProjectID = postConstructData.ID;
|
|
|
postEngData.tenders.push(postTenderData);
|
|
postEngData.tenders.push(postTenderData);
|
|
|
}
|
|
}
|
|
@@ -1458,8 +1474,8 @@ const ImportXML = (() => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
//转换单位工程的数据(直接可插入数据库的数据),返回{tender: {}, bills: [], ration: [], rationGLJ: [], projectGLJ: [], unitPrice: [], mixRatio: []}
|
|
//转换单位工程的数据(直接可插入数据库的数据),返回{tender: {}, bills: [], ration: [], rationGLJ: [], projectGLJ: [], unitPrice: [], mixRatio: []}
|
|
|
- async function transformTender(tenderData, IDPlaceholder) {
|
|
|
|
|
- let detailData = await transformBills(tenderData, IDPlaceholder);
|
|
|
|
|
|
|
+ async function transformTender(tenderData, IDPlaceholder, needfulTemplate) {
|
|
|
|
|
+ let detailData = await transformBills(tenderData, IDPlaceholder, needfulTemplate);
|
|
|
//提取需要插入的单位工程数据
|
|
//提取需要插入的单位工程数据
|
|
|
let tender = {
|
|
let tender = {
|
|
|
ID: tenderData.ID,
|
|
ID: tenderData.ID,
|
|
@@ -1481,10 +1497,7 @@ const ImportXML = (() => {
|
|
|
return detailData;
|
|
return detailData;
|
|
|
}
|
|
}
|
|
|
//转换清单数据
|
|
//转换清单数据
|
|
|
- async function transformBills(tenderData, IDPlaceholder) {
|
|
|
|
|
- //获取清单模板数据
|
|
|
|
|
- let needfulTemplate = await ajaxPost('/template/bills/api/getNeedfulTemplate',
|
|
|
|
|
- {templateLibID: tenderData.property.templateLibID});
|
|
|
|
|
|
|
+ async function transformBills(tenderData, IDPlaceholder, needfulTemplate) {
|
|
|
//处理单位工程费用汇总的清单,这一部分没有靠谱的规则,特殊处理。
|
|
//处理单位工程费用汇总的清单,这一部分没有靠谱的规则,特殊处理。
|
|
|
setupFeeSummary(tenderData.feeSummary, needfulTemplate);
|
|
setupFeeSummary(tenderData.feeSummary, needfulTemplate);
|
|
|
//处理添加清单数据
|
|
//处理添加清单数据
|