12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- let mongoose = require("mongoose")
- let logger = require("../../../logs/log_helper").logger;
- let config = require("../../../config/config.js");
- let unitPriceFileModel = mongoose.model('unit_price_file');
- let projectModel = mongoose.model('projects');
- const ProjectDao = require('../../pm/models/project_model').project;
- let unitPriceModel = mongoose.model('unit_price');
- let mixRatioModel = mongoose.model('mix_ratio');
- let glj_type_util = require('../../../public/cache/std_glj_type_util');
- let ration_facade = require('../../main/facade/ration_facade');
- let unit_price_facade = require('../facade/unit_price_facade');
- let _ = require("lodash");
- module.exports={
- index:async function(req,res){
- let unitPriceFileID = req.params.unitPriceFileID;
- let unitPriceFile = await unitPriceFileModel.findOne({id:unitPriceFileID}).lean();
- let project = await projectModel.findOne({ID:unitPriceFile.root_project_id}).lean();
- let tenderData = await ProjectDao.getTenderByUnitPriceFileId(unitPriceFileID);
- let unitpriceList = await unitPriceModel.find({unit_price_file_id:unitPriceFileID},{supplyLocation:0}).lean();
- let mixRatioList = await mixRatioModel.find({unit_price_file_id:unitPriceFileID}).lean();
- let mixRatioMap = _.groupBy(mixRatioList,"connect_key");
- let projectID = null;
- let gljTypeMap = glj_type_util.getStdGljTypeCacheObj().innerGljTypeObj;
- let usedTenderList = [];
- if (tenderData !== null && tenderData.length > 0) {
- for (let tmp of tenderData) {
- usedTenderList.push(tmp.name);
- }
- projectID = tenderData[0].ID;
- }
- let usedTenderString = "人材机单价的变化,将自动影响以下单位工程造价:<br>"+usedTenderList.join("<br>");
- res.render('building_saas/unit_price_file/index.html',
- {
- userAccount: req.session.userAccount,
- userID: req.session.sessionUser.id,
- unitPriceFileID:unitPriceFileID,
- projectID:projectID,
- versionName: req.session.compilationVersion,
- unitFileName:unitPriceFile.name,
- rootProjectName:project.name,
- taxType:project.property.taxType,
- region:project.property.region,
- overWriteUrl:req.session.sessionCompilation.overWriteUrl,
- usedTenderList:JSON.stringify(usedTenderList),
- usedTenderString:usedTenderString,
- unitpriceList:JSON.stringify(unitpriceList),
- gljTypeMap:JSON.stringify(gljTypeMap),
- mixRatioMap:JSON.stringify(mixRatioMap),
- LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
- });
- },
- addMixRatio:async function(req,res){
- let result={
- error:0
- };
- try {
- let data = req.body.data;
- data = JSON.parse(data);
- let gljList = data.gljList, parentInfo = data.parentInfo,mixRatios = [],gljCodes=[];
- if(gljList.length > 0){
- for(let newProjectGLJ of gljList){
- let mixRatio = {
- glj_id:newProjectGLJ.glj_id,
- consumption:0,
- unit_price_file_id:parentInfo.unit_price_file_id,
- connect_key:parentInfo.connect_key,
- type: newProjectGLJ.type,
- code: newProjectGLJ.code,
- specs:newProjectGLJ.specs,
- name:newProjectGLJ.name,
- unit:newProjectGLJ.unit,
- model:newProjectGLJ.model
- };
- mixRatios.push(mixRatio);
- gljCodes.push(newProjectGLJ.code);
- }
- let [unitPriceMap,newUnitPriceList] = await unit_price_facade.getUnitPriceData(gljList,gljCodes,parentInfo.unit_price_file_id);
- await unit_price_facade.setIDfromCounter("mix_ratio",mixRatios);
- await mixRatioModel.insertMany(mixRatios);
- result.data = {mixRatios:mixRatios,newUnitPriceList:newUnitPriceList};
- }
-
- }catch (err){
- logger.err(err);
- result.error=1;
- result.message = err.message;
- }
- res.json(result);
- }
- }
- // engineerID = req.params.engineerID;
|