|
@@ -45,6 +45,7 @@ module.exports={
|
|
|
copyExample: copyExample,
|
|
|
getSummaryInfo: getSummaryInfo,
|
|
|
getSummaryInfoByTender: getSummaryInfoByTender,
|
|
|
+ getTendersFeeInfo: getTendersFeeInfo,
|
|
|
getConstructionProject: getConstructionProject,
|
|
|
getFullPath: getFullPath,
|
|
|
getProjectFeature:getProjectFeature,
|
|
@@ -630,7 +631,7 @@ async function getSummaryInfoByTender(tenderID, summaryType) {
|
|
|
if(summaryInfo[t.ID]){
|
|
|
summaryInfo[t.ID]['name'] = t.name ? t.name : '';
|
|
|
summaryList.push(summaryInfo[t.ID]);
|
|
|
- }
|
|
|
+ }k
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
@@ -646,6 +647,48 @@ async function getSummaryInfoByTender(tenderID, summaryType) {
|
|
|
return {parent: {name: parentName}, subList: summaryList};
|
|
|
}
|
|
|
|
|
|
+//获取单位工程的各标段费用信息(不进行汇总)
|
|
|
+async function getTendersFeeInfo(tenders) {
|
|
|
+ let IDMapping = {};
|
|
|
+ //固定清单类别与汇总金额字段映射
|
|
|
+ let flagFieldMapping = {};
|
|
|
+ flagFieldMapping[billsFlags.ENGINEERINGCOST] = 'engineeringCost';
|
|
|
+ flagFieldMapping[billsFlags.SUB_ENGINERRING] = 'subEngineering';
|
|
|
+ flagFieldMapping[billsFlags.MEASURE] = 'measure';
|
|
|
+ flagFieldMapping[billsFlags.SAFETY_CONSTRUCTION] = 'safetyConstruction';
|
|
|
+ flagFieldMapping[billsFlags.OTHER] = 'other';
|
|
|
+ flagFieldMapping[billsFlags.CHARGE] = 'charge';
|
|
|
+ flagFieldMapping[billsFlags.TAX] = 'tax';
|
|
|
+ let tenderIDs = [];
|
|
|
+ if(tenders.length > 0){
|
|
|
+ for(let tender of tenders){
|
|
|
+ tenderIDs.push(tender.ID);
|
|
|
+ IDMapping[tender.ID] = {engineeringCost: 0, subEngineering: 0, measure: 0, safetyConstruction: 0, other: 0, charge: 0, tax: 0, rate: 0, buildingArea: '', perCost: ''};
|
|
|
+ IDMapping[tender.ID]['buildingArea'] = '';
|
|
|
+ }
|
|
|
+ //需要获取的清单固定类别综合合价:工程造价、分部分项、措施项目、安全文明施工专项、规费、其他项目、税金
|
|
|
+ let needFlags = [billsFlags.ENGINEERINGCOST, billsFlags.SUB_ENGINERRING, billsFlags.MEASURE,
|
|
|
+ billsFlags.SAFETY_CONSTRUCTION, billsFlags.CHARGE, billsFlags.OTHER, billsFlags.TAX];
|
|
|
+ //获取单位工程汇总金额需要用到的所有清单
|
|
|
+ let allBills = await billsModel.find({projectID: {$in: tenderIDs}, 'flags.flag': {$in: needFlags}, $or: notDeleted},
|
|
|
+ '-_id projectID fees flags');
|
|
|
+ //进行单位工程级别的汇总
|
|
|
+ for(let bills of allBills){
|
|
|
+ let billsFlag = bills.flags[0]['flag'];
|
|
|
+ let costField = flagFieldMapping[billsFlag];
|
|
|
+ IDMapping[bills.projectID][costField] = getCommonTotalFee(bills);
|
|
|
+ }
|
|
|
+ //占造价比例、单方造价
|
|
|
+ for(let tender of tenders){
|
|
|
+ let tenderInfo = IDMapping[tender.ID];
|
|
|
+ tenderInfo.rate = '';
|
|
|
+ //单方造价
|
|
|
+ tenderInfo.perCost = '';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return IDMapping;
|
|
|
+}
|
|
|
+
|
|
|
async function getSummaryInfo(projectIDs){
|
|
|
//ID与汇总信息映射
|
|
|
let IDMapping = {};
|