/** * Created by zhang on 2018/1/31. */ import {installSectionModel,installFeeItemModel} from "../../complementary_ration_lib/models/schemas"; import installationFeeModel from "../models/installation_fee"; import engineeringModel from "../../users/models/schema/engineering_lib"; const uuidV1 = require('uuid/v1'); let consts = require('../../main/models/project_consts') module.exports={ copyInstallationFeeFromLib:copyInstallationFeeFromLib, getData:getData }; async function copyInstallationFeeFromLib(projectID,engineering_id) { //安装增加费用内嵌文档的方式 let engineering = await engineeringModel.findById(engineering_id); let ration_lib = engineering.ration_lib; let installationFeeList = []; for(let rl of ration_lib){ let installFeeItems = await installFeeItemModel.find({'rationRepId':rl.id}); let installSections = await installSectionModel.find({'rationRepId':rl.id}); let newInstallationFee = { libID:rl.id, libName:rl.name, projectID:projectID }; newInstallationFee.ID = uuidV1(); let create = false; if(installFeeItems && installFeeItems.length > 0) {//费用项 create = true; let tem_installFeeItem = []; for(let ifee of installFeeItems){ let tem_fee ={ feeItem:ifee.feeItem, feeType:ifee.feeType, position:ifee.position, ID:ifee.ID }; tem_installFeeItem.push(tem_fee); } newInstallationFee.installFeeItem = tem_installFeeItem; } if(installSections && installSections.length > 0){//章节项 create = true; let tem_installSections = []; let tem_feeRules = []; for(let isect of installSections){ let tem_sec={ ID:isect.ID, feeItemId:isect.feeItemId, name:isect.name }; if(isect.feeRule && isect.feeRule.length > 0){//规则项 tem_sec.feeRuleId = isect.feeRule[0].ID; //选中第一个 for(let ifeeR of isect.feeRule){ let tem_feeRule = { ID: ifeeR.ID, code: ifeeR.code, rule: ifeeR.rule, base: ifeeR.base, feeRate: ifeeR.feeRate, labour: ifeeR.labour, material: ifeeR.material, machine: ifeeR.machine }; tem_feeRule.sectionId = isect.ID; tem_feeRule.feeItemId = isect.feeItemId; tem_feeRules.push(tem_feeRule); } } tem_installSections.push(tem_sec); } newInstallationFee.installSection = tem_installSections; newInstallationFee.feeRule = tem_feeRules; } if(create==true){ installationFeeList.push(newInstallationFee); } } console.log(installationFeeList); if(installationFeeList.length > 0){ await installationFeeModel.insertMany(installationFeeList); } } function getData(projectID, callback) { installationFeeModel.find({'projectID': projectID}, (err, datas) => { if (err) { callback(1, '', null); } else { callback(0, consts.projectConst.INSTALLATION_FEE, datas); } }) }