123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /**
- * 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);
- }
- })
- }
|