Explorar o código

人工系数。

Chenshilong %!s(int64=7) %!d(string=hai) anos
pai
achega
26ad84cd88

+ 19 - 18
modules/main/controllers/labour_coe_controller.js

@@ -2,39 +2,40 @@
  * Created by CSL on 2017-10-10.
  */
 
-const uuidV1 = require('uuid/v1');
 let mongoose = require('mongoose');
-let logger = require("../../../logs/log_helper").logger;
-let stdLabourCoesModel = mongoose.model('stdLabourCoes');
-let projectLabourCoesModel = mongoose.model('projectLabourCoes');
+let labourCoeFacade = require('../facade/labour_coe_facade');
 
 module.exports = {
-    createNewProjectLabourCoe: createNewProjectLabourCoe,
     getProjectLabourCoe: getProjectLabourCoe,
     getStdLabourCoe: getStdLabourCoe
 };
 
-async function createNewProjectLabourCoe(req, res) {
-    let result={
-        error:0
-    };
+async function getProjectLabourCoe(req, res) {
+    let result={error: 0};
+
     try {
-        let data = req.body.data;
-        data = JSON.parse(data);
-        let feeRateStandards= await feeRateFacde.getFeeRateStandardsByProjectID(data.projectID);
-        result.data= feeRateStandards;
+        let projLC = await labourCoeFacade.getProjectLabourCoe(req.body.data.labourCoeID);
+        result.data= projLC;
     }catch (err){
         console.log(err);
-        result.error=1;
+        result.error = 1;
         result.message = err.message;
     }
-    res.json(result);
-};
-
-async function getProjectLabourCoe(req, res) {
 
+    res.json(result);
 };
 
 async function getStdLabourCoe(req, res) {
+    let result={error: 0};
 
+    try {
+        let stdLC = await labourCoeFacade.getStdLabourCoe(req.body.data.libID);
+        result.data= stdLC;
+    }catch (err){
+        console.log(err);
+        result.error = 1;
+        result.message = err.message;
+    }
+
+    res.json(result);
 };

+ 41 - 0
modules/main/facade/labour_coe_facade.js

@@ -0,0 +1,41 @@
+/**
+ * Created by CSL on 2017-10-10.
+ */
+
+const uuidV1 = require('uuid/v1');
+let logger = require("../../../logs/log_helper").logger;
+let mongoose = require('mongoose');
+let stdLabourCoesModel = mongoose.model('std_labour_coes');
+let projectLabourCoesModel = mongoose.model('labour_coes');
+
+module.exports = {
+    newProjectLabourCoe: newProjectLabourCoe,
+    getProjectLabourCoe: getProjectLabourCoe,
+    getStdLabourCoe: getStdLabourCoe
+};
+
+async function newProjectLabourCoe(data) {
+    let stdLC = await getStdLabourCoe(data.libID);
+    let doc={
+        ID: uuidV1(),
+        projectID: data.projectID,
+        name: data.name,
+        libID: stdLC.ID,
+        libName: stdLC.libName,
+        coes: stdLC.coes
+    };
+    console.log(doc);
+    await projectLabourCoesModel.create(doc);
+    let newLC = {ID: doc.ID, name: doc.name};
+    return newLC;
+};
+
+async function getProjectLabourCoe(ID) {
+    let projLC = await projectLabourCoesModel.findOne({ID:ID});
+    return projLC;
+};
+
+async function getStdLabourCoe(libID) {
+    let stdLC = await stdLabourCoesModel.findOne({ID:libID});
+    return stdLC;
+};

+ 10 - 7
modules/main/models/labour_coe.js

@@ -8,24 +8,27 @@ let coeSchema = new Schema({
     ID: Number,
     ParentID: Number,
     name: String,
-    coe: Number
-},{versionKey:false,_id: false});
+    coe: Number,
+    _id: false
+},{versionKey:false});
 
 let stdLabourCoes = new Schema({
     ID: Number,
     region: String,
     libName: String,
-    coes: [coeSchema]
-},{versionKey:false,_id: false});
+    coes: [coeSchema],
+    _id: false
+},{versionKey:false});
 
 let projectLabourCoes = new Schema({
-    ID: Number,
+    ID: String,
     projectID: Number,
     name: String,
     libID: Number,
     libName: String,
-    coes: [coeSchema],
-},{versionKey:false,_id: false});
+    coes: [coeSchema]//,
+   // _id: false
+},{versionKey:false});
 
 mongoose.model('std_labour_coes', stdLabourCoes, 'std_labour_coes');
 mongoose.model('labour_coes', projectLabourCoes, 'labour_coes');

+ 1 - 7
modules/main/routes/labour_coe_route.js

@@ -10,15 +10,9 @@ module.exports = function (app) {
     var lcRouter = express.Router();
 
     lcRouter.post('/getProjectLabourCoe', lcController.getProjectLabourCoe);
-    lcRouter.post('/createNewProjectLabourCoe', lcController.createNewProjectLabourCoe);
+    lcRouter.post('/newProjectLabourCoe', lcController.newProjectLabourCoe);
     lcRouter.post('/getStdLabourCoe', lcController.getStdLabourCoe);
 
-    // lcRouter.post('/changeFeeRateStandard', frController.changeFeeRateStandard);
-    // lcRouter.post('/checkFeeRateName', frController.checkFeeRateName);
-    // lcRouter.post('/getChangeInfo', frController.getChangeInfo);
-    // lcRouter.post('/changeFeeRateFileFromCurrent', frController.changeFeeRateFileFromCurrent);
-    // lcRouter.post('/changeFeeRateFileFromOthers', frController.changeFeeRateFileFromOthers);
-
     app.use('/labourCoe',lcRouter);
 }
 

+ 5 - 0
modules/pm/models/project_model.js

@@ -7,6 +7,7 @@ let counter = require("../../../public/counter/counter.js");
 let newProjController = require('../controllers/new_proj_controller');
 let copyProjController = require('../controllers/copy_proj_controller');
 let feeRateFacade = require('../../fee_rates/facade/fee_rates_facade');
+let labourCoeFacade = require('../../main/facade/labour_coe_facade');
 let logger = require("../../../logs/log_helper").logger;
 
 let Projects = require("./project_schema");
@@ -92,6 +93,10 @@ ProjectsDAO.prototype.updateUserProjects = async function(userId, datas, callbac
                 if(data.updateData.projType==='Tender'){
                     let  feeRateFileID = await feeRateFacade.newFeeRateFile(data.updateData);
                     newProject.property.feeFile = feeRateFileID?feeRateFileID:-1;
+
+                    // 新建人工系数文件 CSL, 2017.10.13
+                    let lcFileID = await labourCoeFacade.newProjectLabourCoe({libID: 1, name: data.updateData.name, projectID: data.updateData.ID});
+                    newProject.property.labourCoeFile = lcFileID ? lcFileID : -1;
                 }
                 newProject.save(async function (err, result) {
                     if (!err && result._doc.projType === projectType.tender) {

+ 3 - 0
server.js

@@ -28,6 +28,9 @@ fileUtils.getGlobbedFiles('./modules/reports/models/*.js').forEach(function(mode
     require(path.resolve(modelPath));
 })
 
+// 引入人工系数模块
+require('./modules/main/models/labour_coe');
+
 //config.setupCache();
 let cfgCacheUtil = require("./config/cacheCfg");
 cfgCacheUtil.setupDftCache();