Browse Source

Merge branch 'master' into olym

olym 7 years ago
parent
commit
360571c185

+ 116 - 38
modules/bills_lib/controllers/bills_lib_controllers.js

@@ -2,165 +2,243 @@
  * Created by vian on 2017/3/22.
  */
 
-var billsLibDao = require("./../models/bills_lib_interfaces");
-//----
-var model = require("./../models/bills_lib_model");
-var counter = require("../../../public/counter/counter");
-var StdBillsLib = model.stdBillsLibMod;
-var Bills = model.billsMod;
-var JobContent = model.jobContentMod;
-var ItemCharacter = model.itemCharacterMod;
-//---
-//ͳһ�ص�����
-var callback = function(req, res, err, message, data){
+let billsLibDao = require("./../models/bills_lib_interfaces");
+let callback = function(req, res, err, message, data){
     res.json({error: err, message: message, data: data});
 }
 
 module.exports = {
     getMaxNumber: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.getMaxNumber(data, function(err, message, maxNumber){
             callback(req, res, err, message, maxNumber);
         });
     },
     getABillsLib: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.getABillsLib(data, function(err, message, data){
             callback(req, res, err, message, data);
         });
     },
     getStdBillsLib: function(req, res){
-        var data = JSON.parse(req.body.data);
-        billsLibDao.getStdBillsLib(data, function(err, message, stdBillsLib){
+        billsLibDao.getStdBillsLib(function(err, message, stdBillsLib){
             callback(req, res, err, message, stdBillsLib );
         });
     },
     createStdBillsLib: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
          billsLibDao.createStdBillsLib(data, function(err, message, info){
             callback(req, res, err, message, info);
          });
     },
     deleteStdBillsLib: function(req, res){
-        var data = JSON.parse(req.body.data);
-        billsLibDao.deleteStdBillsLib(data.billsLibId, function(err, message){
+        let data = JSON.parse(req.body.data);
+        billsLibDao.deleteStdBillsLib(data, function(err, message){
             callback(req, res, err, message, null);
         });
     },
     renameStdBillsLib: function(req, res) {
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.renameStdBillsLib(data, function (err, message) {
             callback(req, res, err ,message, null);
         });
     },
     getStdBillsLibName: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.getStdBillsLibName(data.billsLibId, function(err, message, info){
             callback(req, res, err, message, info);
         });
     },
+    getCurrentUniqId: function(req, res){
+        billsLibDao.getCurrentUniqId(function(err, message, id){
+            callback(req, res, err, message, id);
+        });
+    },
     getBills: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.getBills(data.billsLibId, function(err, message, bills){
             callback(req, res, err, message, bills);
         });
     },
     createBills: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.createBills(data, function(err, message){
             callback(req, res, err, message, null);
         });
     },
+    upMove: function(req, res){
+        let data = JSON.parse(req.body.data);
+        billsLibDao.upMove(data, function(err, message){
+            callback(req, res, err, message, null);
+        });
+    },
+    downMove: function (req, res) {
+        let data = JSON.parse(req.body.data);
+        billsLibDao.downMove(data, function (err, message) {
+            callback(req, res, err, message, null);
+        })
+    },
+    upLevel: function (req, res) {
+        let data = JSON.parse(req.body.data);
+        billsLibDao.upLevel(data, function(err, message){
+            callback(req, res, err, message, null);
+        })
+    },
+    downLevel: function (req, res) {
+        let data = JSON.parse(req.body.data);
+        billsLibDao.downLevel(data, function (err, message) {
+            callback(req, res, err, message, null)
+        })
+    },
     updatePNId: function (req, res) {
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.updatePNId(data, function(err, message){
             callback(req, res, err, message, null);
         });
     },
     updateBills: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.updateBills(data, function(err, message){
             callback(req, res, err, message, null);
         });
     },
+    removeTotal: function (req, res) {
+        let data = JSON.parse(req.body.data);
+        billsLibDao.removeTotal(data, function (err, message) {
+            callback(req, res, err, message, null);
+        })
+    },
+    updateSerialNo: function (req, res) {
+        let data = JSON.parse(req.body.data);
+        billsLibDao.updateSerialNo(data, function (err, message) {
+            callback(req, res, err, message, null);
+        });
+    },
     updateBillsArr: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.updateBillsArr(data, function(err, message){
            callback(req, res, err, message, null);
         });
     },
     pasteBills: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.pasteBills(data, function(err, message){
             callback(req, res, err, message, null);
         });
     },
     updateRecharge: function(req, res){
-      var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.updateRecharge(data, function(err, message){
             callback(req, res, err, message, null);
         });
     },
+    pasteRel: function(req, res){
+        let data = JSON.parse(req.body.data);
+        billsLibDao.pasteRel(data, function(err, message, datas){
+            callback(req, res, err, message, datas);
+        });
+    },
     deleteBills: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.deleteBills(data, function(err, message){
             callback(req, res, err, message, null);
         });
     },
     getJobContent: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.getJobContent(data, function(err, message, jobs){
             callback(req, res, err, message, jobs);
         });
     },
     createJobContent: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.createJobContent(data, function(err, message, id){
             callback(req, res, err, message, id);
         });
     },
     updateJobContent: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.updateJobContent(data, function(err, message, id){
             callback(req, res, err, message, id);
         });
     },
     updateValue: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.updateValue(data, function(err, message){
             callback(req, res, err, message, null);
         })
     },
     deleteJobContent: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.deleteJobContent(data, function(err, message){
             callback(req, res, err, message, null);
         });
     },
+    pasteJobs: function (req, res) {
+        let data = JSON.parse(req.body.data);
+        billsLibDao.pasteJobs(data, function(err, message, datas){
+            callback(req, res, err, message, datas);
+        });
+    },
+    edCreateJob: function(req, res){
+        let data = JSON.parse(req.body.data);
+        billsLibDao.edCreateJob(data, function(err, message, id){
+            callback(req, res, err, message, id);
+        })
+    },
+    edUpdateJob: function(req, res){
+        let data = JSON.parse(req.body.data);
+        billsLibDao.edUpdateJob(data, function(err, message, id){
+            callback(req, res, err, message, id);
+        })
+    },
     getItemCharacter: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.getItemCharacter(data, function(err, message, items){
             callback(req, res, err, message, items);
         });
     },
     createItemCharacter: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.createItemCharacter(data, function(err, message, id){
             callback(req, res, err, message, id);
         });
     },
     updateItemCharacter: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.updateItemCharacter(data, function(err, message){
             callback(req, res, err, message, null);
         });
     },
     deleteItemCharacter: function(req, res){
-        var data = JSON.parse(req.body.data);
+        let data = JSON.parse(req.body.data);
         billsLibDao.deleteItemCharacter(data, function(err, message){
             callback(req, res, err, message, null);
         });
+    },
+    pasteItems: function(req, res){
+        let data = JSON.parse(req.body.data);
+        billsLibDao.pasteItems(data, function(err, message, datas){
+            callback(req, res, err, message, datas);
+        });
+    },
+    pasteValues: function(req, res){
+        let data = JSON.parse(req.body.data);
+        billsLibDao.pasteValues(data, function(err, message, datas){
+            callback(req, res, err, message, datas);
+        });
+    },
+    edCreateItem: function(req, res){
+        let data = JSON.parse(req.body.data);
+        billsLibDao.edCreateItem(data, function(err, message, id){
+            callback(req, res, err, message, id);
+        })
+    },
+    edUpdateItem: function(req, res){
+        let data = JSON.parse(req.body.data);
+        billsLibDao.edUpdateItem(data, function(err, message, id){
+            callback(req, res, err, message, id);
+        })
     }
-
 }
 

+ 59 - 0
modules/bills_lib/controllers/bills_permissionController.js

@@ -0,0 +1,59 @@
+/**标准清单操作相关
+ * Created by Zhong on 2017/8/2.
+ */
+let billsController = require("./bills_lib_controllers");
+import baseController from "../../common/base/base_controller";
+
+class billsPermContr extends baseController{
+    getCurrentUniqId(req, res){
+        billsController.getCurrentUniqId(req, res);
+    }
+    getBills(req, res){
+        billsController.getBills(req, res);
+    }
+    createBills(req, res){
+        billsController.createBills(req, res);
+    }
+    updatePNId(req, res){
+        billsController.updatePNId(req, res);
+    }
+    upMove(req, res){
+        billsController.upMove(req, res);
+    }
+    downMove(req, res){
+        billsController.downMove(req, res);
+    }
+    upLevel(req, res){
+        billsController.upLevel(req, res);
+    }
+    downLevel(req, res){
+        billsController.downLevel(req, res);
+    }
+    updateBills(req, res){
+        billsController.updateBills(req, res);
+    }
+    updateBillsArr(req, res){
+        billsController.updateBillsArr(req, res);
+    }
+    removeTotal(req, res){
+        billsController.removeTotal(req, res);
+    }
+    updateSerialNo(req, res){
+        billsController.updateSerialNo(req, res);
+    }
+    pasteBills(req, res){
+        billsController.pasteBills(req, res);
+    }
+    updateRecharge(req, res){
+        billsController.updateRecharge(req, res);
+    }
+    pasteRel(req, res){
+        billsController.pasteRel(req, res);
+    }
+    deleteBills(req, res){
+        billsController.deleteBills(req, res);
+    }
+
+}
+
+export default billsPermContr;

+ 39 - 0
modules/bills_lib/controllers/items_permissionController.js

@@ -0,0 +1,39 @@
+/**
+ * Created by Zhong on 2017/8/2.
+ */
+
+let billsController = require("./bills_lib_controllers");
+import baseController from "../../common/base/base_controller";
+
+class itemsPermContr extends baseController{
+
+    getItemCharacter(req, res){
+        billsController.getItemCharacter(req, res);
+    }
+    createItemCharacter(req, res){
+        billsController.createItemCharacter(req, res);
+    }
+    updateItemCharacter(req, res){
+        billsController.updateItemCharacter(req, res);
+    }
+    updateValue(req, res){
+        billsController.updateValue(req, res);
+    }
+    deleteItemCharacter(req, res){
+        billsController.deleteItemCharacter(req, res);
+    }
+    pasteItems(req, res){
+        billsController.pasteItems(req, res);
+    }
+    pasteValues(req, res){
+        billsController.pasteValues(req, res);
+    }
+    edCreateItem(req, res){
+        billsController.edCreateItem(req, res);
+    }
+    edUpdateItem(req, res){
+        billsController.edUpdateItem(req, res);
+    }
+}
+
+export default itemsPermContr;

+ 33 - 0
modules/bills_lib/controllers/jobs_permissionController.js

@@ -0,0 +1,33 @@
+/**
+ * Created by Zhong on 2017/8/2.
+ */
+
+let billsController = require("./bills_lib_controllers");
+import baseController from "../../common/base/base_controller";
+
+class jobsPermContr extends baseController{
+
+    getJobContent(req, res){
+        billsController.getJobContent(req, res);
+    }
+    createJobContent(req, res){
+        billsController.createJobContent(req, res);
+    }
+    updateJobContent(req, res){
+        billsController.updateJobContent(req, res);
+    }
+    deleteJobContent(req, res){
+        billsController.deleteJobContent(req, res);
+    }
+    pasteJobs(req, res){
+        billsController.pasteJobs(req, res);
+    }
+    edCreateJob(req, res){
+        billsController.edCreateJob(req, res);
+    }
+    edUpdateJob(req, res){
+        billsController.edUpdateJob(req, res);
+    }
+}
+
+export default jobsPermContr;

+ 56 - 0
modules/bills_lib/controllers/stdBillsLib_permissionController.js

@@ -0,0 +1,56 @@
+/**清单编辑器清单库操作相关
+ * Created by Zhong on 2017/8/2.
+ */
+let billsController = require("./bills_lib_controllers");
+import baseController from "../../common/base/base_controller";
+import CompilationModel from "../../users/models/compilation_model";
+
+let callback = function(req, res, err, message, data){
+    res.json({error: err, message: message, data: data});
+}
+class billsLibPermContr extends baseController{
+    async getCompilationList(req, res){
+        try{
+            let compilationModel = new CompilationModel(), rst = [];
+            let compilationList = await compilationModel.getCompilationList();
+            if(compilationList.length <= 0){
+                throw '没有数据';
+            }
+            else{
+
+                compilationList.forEach(function (compilation) {
+                    rst.push({_id: compilation._id, name: compilation.name});
+                })
+                callback(req, res, false, '', rst);
+            }
+        }
+        catch(err) {
+            callback(req, res, err, '没有数据', null);
+        }
+    }
+    getMaxNumber(req, res){
+        billsController.getMaxNumber(req, res);
+    }
+    getABillsLib(req, res){
+        billsController.getABillsLib(req, res);
+    }
+    getStdBillsLib(req, res){
+        billsController.getStdBillsLib(req, res);
+    }
+    createStdBillsLib(req, res){
+        billsController.createStdBillsLib(req, res);
+    }
+    deleteStdBillsLib(req, res){
+        billsController.deleteStdBillsLib(req, res);
+    }
+    renameStdBillsLib(req, res){
+        billsController.renameStdBillsLib(req, res);
+    }
+    getStdBillsLibName(req, res){
+        billsController.getStdBillsLibName(req, res);
+    }
+
+}
+
+export default billsLibPermContr;
+

+ 27 - 0
modules/bills_lib/controllers/views_permissionController.js

@@ -0,0 +1,27 @@
+/**
+ * 清单编辑器页面权限管理和session校验
+ * Created by Zhong on 2017/8/2.
+ */
+import baseController from "../../common/base/base_controller";
+
+class viewsPermContr extends baseController{
+    redirectStdBillsMain(req, res){
+        res.render("maintain/bills_lib/html/main.html",
+            {userAccount: req.session.managerData.username,
+                userID: req.session.managerData.userID});
+    }
+    redirectStdBills(req, res){
+        res.render("maintain/bills_lib/html/qingdan.html",
+            {userAccount: req.session.managerData.username});
+    }
+    redirectStdJobs(req, res){
+        res.render('maintain/bills_lib/html/neirong.html',
+            {userAccount: req.session.managerData.username});
+    }
+    redirectStdItems(req, res){
+        res.render('maintain/bills_lib/html/tezheng.html',
+            {userAccount: req.session.managerData.username});
+    }
+}
+
+export default viewsPermContr;

File diff suppressed because it is too large
+ 2797 - 410
modules/bills_lib/models/bills_lib_interfaces.js


+ 16 - 0
modules/bills_lib/models/bills_lib_model.js

@@ -1,6 +1,7 @@
 /**
  * Created by vian on 2017/3/17.
  */
+/*
 var dbm = require("../../../config/db/db_manager");
 var schemas = require("./bills_lib_schemas.js");
 //var db = dbm.getLocalConnection("stdBillsEditor");
@@ -15,4 +16,19 @@ module.exports = {
     billsMod: billsMod,
     jobContentMod: jobContentMod,
     itemCharacterMod: itemCharacterMod,
+}*/
+let dbm = require("../../../config/db/db_manager");
+let schemas = require("./bills_lib_schemas.js");
+let db = dbm.getCfgConnection("scConstruct");
+//let db = dbm.getLocalConnection("stdBillsEditor");
+let stdBillsLibMod = db.model("std_bills_lib_list", schemas.stdBillsLibSchema);
+let billsMod = db.model("std_bills_lib_bills", schemas.billsSchema);
+let jobContentMod = db.model("std_bills_lib_jobContent", schemas.jobContentSchema);
+let itemCharacterMod = db.model("std_bills_lib_itemCharacter", schemas.itemCharacterSchema);
+
+module.exports = {
+    stdBillsLibMod: stdBillsLibMod,
+    billsMod: billsMod,
+    jobContentMod: jobContentMod,
+    itemCharacterMod: itemCharacterMod,
 }

+ 65 - 39
modules/bills_lib/models/bills_lib_schemas.js

@@ -1,51 +1,77 @@
-var mongoose = require('mongoose');
-
-var stdBillsLibSchema =mongoose.Schema({
-    userId: Number,
-    billsLibId: Number,
-    billsLibName: String,
-    createDate: Date,
-    deleted: Boolean
-},
+let mongoose = require('mongoose');
+
+let oprSchema = mongoose.Schema({
+        operateDate: String,
+        operator: String
+    },
+    {_id: false},
+    {versionKey: false});
+
+let stdBillsLibSchema =mongoose.Schema({
+        creator: String,
+        createDate: String,
+        recentOpr: [oprSchema],
+        /* lastOperator: String,
+         lastOperateDate: Date,*/
+        billsLibId: Number,
+        billsLibName: String,
+        compilationId: String,
+        compilationName: String,
+        deleted: Boolean
+    },
     {versionKey: false}
 );
 
-var billsSchema = mongoose.Schema({
-    ID: Number,
-    ParentID: Number,
-    NextSiblingID: Number,
-    code: String,
-    name: String,
-    unit: String,
-    ruleText: String,
-    Expression: String,
-    jobs: Array,
-    items: Array,
-    recharge:String,
-    billsLibId: Number,
-    deleted: Boolean
-},
+let jobsSchema = mongoose.Schema({
+        id: Number,
+        serialNo: Number
+    },
+    {_id: false},
+    {versionKey: false});
+
+let itemsSchema = mongoose.Schema({
+        id: Number,
+        serialNo: Number
+    },
+    {_id: false},
+    {versionKey: false});
+
+let billsSchema = mongoose.Schema({
+        ID: Number,
+        ParentID: Number,
+        NextSiblingID: Number,
+        code: String,
+        name: String,
+        unit: String,
+        ruleText: String,
+        Expression: String,
+        jobs: [],
+        items: [],
+        recharge:String,
+        billsLibId: Number,
+        deleted: Boolean
+    },
     {versionKey: false}
 );
 
-var jobContentSchema = mongoose.Schema({
-    id: Number,
-    code: Number,
-    content: String,
-    billsLibId: Number,
-    deleted: Boolean
-},
+let jobContentSchema = mongoose.Schema({
+        id: Number,
+        code: Number,
+        content: String,
+        billsLibId: Number,
+        deleted: Boolean
+    },
     {versionKey: false}
 );
 
-var itemCharacterSchema = mongoose.Schema({
-    id: Number,
-    code: Number,
-    content: String,
-    itemValue: Array,
-    billsLibId: Number,
-    deleted: Boolean
-},
+let itemCharacterSchema = mongoose.Schema({
+        id: Number,
+        code: Number,
+        content: String,
+        itemValue: Array,
+        billsLibId: Number,
+        deleted: Boolean
+    },
     {versionKey: false}
 );
 

+ 63 - 29
modules/bills_lib/routes/bills_lib_routes.js

@@ -2,37 +2,71 @@
  * Created by vian on 2017/3/17.
  */
 let express = require("express");
-module.exports = function (app) {
-    let billsController = require("./../controllers/bills_lib_controllers");
-    let billsRouter =express.Router();
-
-    billsRouter.post('/getMaxNumber', billsController.getMaxNumber);
-    billsRouter.post('/getABillsLib', billsController.getABillsLib);
-    billsRouter.post("/getStdBillsLib", billsController.getStdBillsLib);
-    billsRouter.post("/createStdBillsLib", billsController.createStdBillsLib);
-    billsRouter.post("/deleteStdBillsLib", billsController.deleteStdBillsLib);
-    billsRouter.post("/renameStdBillsLib", billsController.renameStdBillsLib);
-    billsRouter.post("/getStdBillsLibName", billsController.getStdBillsLibName);
-    billsRouter.post("/getBills", billsController.getBills);
-    billsRouter.post("/createBills", billsController.createBills);
-    billsRouter.post("/updatePNId", billsController.updatePNId);
-    billsRouter.post("/updateBills", billsController.updateBills);
-    billsRouter.post("/updateBillsArr", billsController.updateBillsArr);
-    billsRouter.post("/pasteBills", billsController.pasteBills);
-    billsRouter.post('/updateRecharge', billsController.updateRecharge);
-    billsRouter.post("/deleteBills", billsController.deleteBills);
-    billsRouter.post("/getJobContent", billsController.getJobContent);
-    billsRouter.post("/createJobContent", billsController.createJobContent);
-    billsRouter.post("/updateJobContent", billsController.updateJobContent);
-    billsRouter.post("/deleteJobContent", billsController.deleteJobContent);
-    billsRouter.post("/getItemCharacter", billsController.getItemCharacter);
-    billsRouter.post("/createItemCharacter", billsController.createItemCharacter);
-    billsRouter.post("/updateItemCharacter", billsController.updateItemCharacter);
-    billsRouter.post("/updateValue", billsController.updateValue);
-    billsRouter.post("/deleteItemCharacter", billsController.deleteItemCharacter);
+let billsRouter =express.Router();
+import ViewsPermContr from "../controllers/views_permissionController";
+import BillsLibPermContr from "../controllers/stdBillsLib_permissionController";
+import BillsPermContr from "../controllers/bills_permissionController";
+import JobsPermContr from "../controllers/jobs_permissionController";
+import ItemsPermContr from "../controllers/items_permissionController";
+let viewsContr = new ViewsPermContr();
+let billsLibContr = new BillsLibPermContr();
+let billsContr = new BillsPermContr();
+let jobsContr = new JobsPermContr();
+let itemsContr = new ItemsPermContr();
+
+
+module.exports =function (app) {
+    app.get("/stdBillsmain", viewsContr.init, viewsContr.redirectStdBillsMain);
+    app.get("/stdBills", viewsContr.init, viewsContr.redirectStdBills);
+    app.get('/stdJobs', viewsContr.init, viewsContr.redirectStdJobs);
+    app.get('/stdItems', viewsContr.init, viewsContr.redirectStdItems);
+
+    billsRouter.post('/getCompilationList', billsLibContr.init, billsLibContr.getCompilationList);
+    billsRouter.post('/getMaxNumber', billsLibContr.init, billsLibContr.getMaxNumber);
+    billsRouter.post('/getABillsLib', billsLibContr.init, billsLibContr.getABillsLib);
+    billsRouter.post("/getStdBillsLib", billsLibContr.init, billsLibContr.getStdBillsLib);
+    billsRouter.post("/createStdBillsLib", billsLibContr.init, billsLibContr.createStdBillsLib);
+    billsRouter.post("/deleteStdBillsLib", billsLibContr.init, billsLibContr.deleteStdBillsLib);
+    billsRouter.post("/renameStdBillsLib", billsLibContr.init, billsLibContr.renameStdBillsLib);
+    billsRouter.post("/getStdBillsLibName", billsLibContr.init, billsLibContr.getStdBillsLibName);
+
+    billsRouter.post("/upMove",  billsContr.init, billsContr.upMove);
+    billsRouter.post("/downMove",  billsContr.init, billsContr.downMove);
+    billsRouter.post("/getCurrentUniqId", billsContr.init, billsContr.getCurrentUniqId);
+    billsRouter.post("/getBills",billsContr.init, billsContr.getBills);
+    billsRouter.post("/createBills", billsContr.init, billsContr.createBills);
+    billsRouter.post("/updatePNId", billsContr.init, billsContr.updatePNId);
+    billsRouter.post("/upLevel", billsContr.init, billsContr.upLevel);
+    billsRouter.post("/downLevel", billsContr.init, billsContr.downLevel);
+    billsRouter.post("/updateBills", billsContr.init, billsContr.updateBills);
+    billsRouter.post("/updateBillsArr", billsContr.init, billsContr.updateBillsArr);
+    billsRouter.post("/removeTotal", billsContr.init, billsContr.removeTotal);
+    billsRouter.post("/updateSerialNo", billsContr.init, billsContr.updateSerialNo);
+    billsRouter.post("/pasteBills", billsContr.init, billsContr.pasteBills);
+    billsRouter.post('/updateRecharge', billsContr.init, billsContr.updateRecharge);
+    billsRouter.post('/pasteRel', billsContr.init, billsContr.pasteRel);
+    billsRouter.post("/deleteBills", billsContr.init, billsContr.deleteBills);
+
+    billsRouter.post("/getJobContent", jobsContr.init, jobsContr.getJobContent);
+    billsRouter.post("/createJobContent", jobsContr.init, jobsContr.createJobContent);
+    billsRouter.post("/updateJobContent", jobsContr.init, jobsContr.updateJobContent);
+    billsRouter.post("/deleteJobContent", jobsContr.init, jobsContr.deleteJobContent);
+    billsRouter.post("/pasteJobs", jobsContr.init, jobsContr.pasteJobs);
+    billsRouter.post("/edCreateJob", jobsContr.init, jobsContr.edCreateJob);
+    billsRouter.post("/edUpdateJob", jobsContr.init, jobsContr.edUpdateJob);
+
+    billsRouter.post("/getItemCharacter", itemsContr.init, itemsContr.getItemCharacter);
+    billsRouter.post("/createItemCharacter", itemsContr.init, itemsContr.createItemCharacter);
+    billsRouter.post("/updateItemCharacter", itemsContr.init, itemsContr.updateItemCharacter);
+    billsRouter.post("/updateValue", itemsContr.init, itemsContr.updateValue);
+    billsRouter.post("/deleteItemCharacter", itemsContr.init, itemsContr.deleteItemCharacter);
+    billsRouter.post("/pasteItems", itemsContr.init, itemsContr.pasteItems);
+    billsRouter.post("/pasteValues", itemsContr.init, itemsContr.pasteValues);
+    billsRouter.post("/edCreateItem", itemsContr.init, itemsContr.edCreateItem);
+    billsRouter.post("/edUpdateItem", itemsContr.init, itemsContr.edUpdateItem);
 
     app.use("/stdBillsEditor", billsRouter);
-};
 
+}
 
 

+ 21 - 0
modules/common/helper/mongoose_helper.js

@@ -5,6 +5,8 @@
  * @date 2017/5/22.
  */
 
+import mongoose from "mongoose";
+
 class MongooseHelper {
 
     /**
@@ -31,6 +33,7 @@ class MongooseHelper {
     findOne(conditions, fields = null) {
         let self = this;
         return new Promise(function (resolve, reject) {
+            conditions = self._convertId(conditions);
             self.model.findOne(conditions, fields, function (error, data) {
                 if (error) {
                     reject(null);
@@ -177,6 +180,7 @@ class MongooseHelper {
     update(condition, updateData) {
         let self = this;
         return new Promise(function(resolve, reject) {
+            condition = self._convertId(condition);
             self.model.update(condition, {$set: updateData}, function(error, data) {
                 if (error) {
                     reject(error);
@@ -187,6 +191,23 @@ class MongooseHelper {
         });
     }
 
+    /**
+     * id转换为objectId
+     *
+     * @param {object} condition
+     * @return {object}
+     */
+    _convertId(condition) {
+        // 对于ID的处理
+        if (condition === null || condition._id === undefined) {
+            return condition;
+        }
+        let result = mongoose.Types.ObjectId(condition._id);
+        condition._id = result;
+
+        return condition;
+    }
+
 }
 
 export default MongooseHelper;

+ 7 - 2
modules/pm/controllers/pm_controller.js

@@ -73,9 +73,14 @@ module.exports = {
     },
     getProject: function(req, res){
         let data = JSON.parse(req.body.data);
-        ProjectsData.getUserProject(req.session.sessionUser.ssoId, data.proj_id, function(err, message, data){
+        ProjectsData.getUserProject(req.session.sessionUser.ssoId, data.proj_id, async function(err, message, data){
             if (err === 0) {
-                callback(req, res, err, message, data);
+                let engineeringLibModel = new EngineeringLibModel();
+                let engineeringInfo = await engineeringLibModel.getEngineering(data.property.engineering_id);
+                let strData = JSON.stringify(data);
+                let projInfo = JSON.parse(strData);
+                projInfo.engineeringInfo = engineeringInfo;
+                callback(req, res, err, message, projInfo);
             } else {
                 callback(req, res, err, message, null);
             }

+ 8 - 1
modules/users/models/engineering_lib_model.js

@@ -90,7 +90,14 @@ class EngineeringLibModel extends BaseModel {
             }
         }
         return valuationData;
-    }
+    };
+
+    async getEngineering(engineering_id) {
+        let condition = {_id: engineering_id};
+        let engineering = await this.findDataByCondition(condition);
+
+        return engineering;
+    };
 
 }
 

+ 3 - 0
public/web/sheet/sheet_data_helper.js

@@ -41,6 +41,9 @@ var SheetDataHelper = {
         return spread;
     },
     loadSheetHeader: function (setting, sheet) {
+        if (setting.frozenCols) {
+            sheet.frozenColumnCount(setting.frozenCols);
+        }
         sheet.setColumnCount(setting.cols.length);
         sheet.setRowCount(setting.headRows, GC.Spread.Sheets.SheetArea.colHeader);
         setting.headRowHeight.forEach(function (rowHeight, index) {

+ 3 - 0
public/web/tree_sheet/tree_sheet_helper.js

@@ -27,6 +27,9 @@ var TREE_SHEET_HELPER = {
         return style;
     },
     loadSheetHeader: function (setting, sheet) {
+        if (setting.frozenCols) {
+            sheet.frozenColumnCount(setting.frozenCols);
+        }
         sheet.setColumnCount(setting.cols.length);
         sheet.setRowCount(setting.headRows, GC.Spread.Sheets.SheetArea.colHeader);
         setting.headRowHeight.forEach(function (rowHeight, index) {

+ 1 - 0
test/tmp_data/bills_grid_setting.js

@@ -4,6 +4,7 @@
 var BillsGridSetting ={
     "emptyRows":3,
     "headRows":1,
+    "frozenCols": 4,
     "treeCol": 0,
     "headRowHeight":[
         47

+ 1 - 1
web/building_saas/css/main.css

@@ -234,7 +234,7 @@ body {
     }
 }
 .bottom-content .tab-content .main-data-bottom{
-    height: 400px;
+    height: 200px;
     overflow: auto;
 }
 .bottom-content .tab-content .ovf-hidden{

+ 4 - 0
web/building_saas/main/js/views/character_content_view.js

@@ -28,6 +28,10 @@ let contentOprObj = {
         sheet.bind(EVENTS.ClipboardPasting, me.onClipboardPasting);
         sheet.bind(EVENTS.ClipboardPasted, me.onClipboardPasted);
     },
+    //将从清单库中添加的清单,把标准清单的工作内容转化成清单的工作内容
+    buildJobContent: function () {
+
+    },
     //显示在jobSpread的数据
     showContentData: function (sheet, setting, datas) {
         sheetCommonObj.showData(sheet, setting, datas);

+ 11 - 11
web/building_saas/main/js/views/std_bills_lib.js

@@ -34,17 +34,17 @@ var billsLibObj = {
         }
     },
     loadStdBillsLib: function () {
-        CommonAjax.post('/stdBillsEditor/getStdBillsLib', {userId: userID}, function (datas) {
-            var i, select = $('#stdBillsLibSelect');
-            select.empty();
-            datas.forEach(function (data) {
-                var option = $('<option>').val(data.billsLibId).text(data.billsLibName);
-                select.append(option);
-            });
-            if (select.children.length !== 0) {
-                billsLibObj.loadStdBills(select.val());
-            }
+        let i, select = $('#stdBillsLibSelect');
+        select.empty();
+
+        let bills_lib = projectInfoObj.projectInfo.engineeringInfo.bill_lib;
+        bills_lib.forEach(function (data) {
+            var option = $('<option>').val(data.id).text(data.name);
+            select.append(option);
         });
+        if (select.children.length !== 0) {
+            billsLibObj.loadStdBills(select.val());
+        }
     },
     loadStdBills: function (stdBillsLibID) {
         var that = this;
@@ -54,7 +54,7 @@ var billsLibObj = {
         var findData = function (value, field, Array) {
             var i = 0;
             for (i = 0; i < Array.length - 1; i++) {
-                if (value === Array[i][field]) {
+                if (value[field] === Array[i][field]) {
                     return Array[i];
                 }
             }

+ 9 - 11
web/building_saas/main/js/views/std_ration_lib.js

@@ -27,18 +27,16 @@ var rationLibObj = {
         }
     },
     loadStdRationLibs: function () {
-        CommonAjax.postRationLib('/rationRepository/api/getRationDisplayNames', {user_id: userID}, function (datas) {
-            var select = $('#stdRationLibSelect');
-            select.empty();
-            datas.forEach(function (data) {
-                select.append($('<option>').val(data.ID).text(data.dispName));
-            });
-            if (select[0].options.length !== 0) {
-                rationLibObj.loadStdRation(select.val());
-            }
-        }, function () {
-            $('#stdRationLibSelect').empty();
+        let select = $('#stdRationLibSelect');
+        select.empty();
+
+        let ration_lib = projectInfoObj.projectInfo.engineeringInfo.ration_lib;
+        ration_lib.forEach(function (data) {
+            select.append($('<option>').val(data.id).text(data.name));
         });
+        if (select[0].options.length !== 0) {
+            rationLibObj.loadStdRation(select.val());
+        }
     },
     loadStdRation: function (rationLibID) {
         var that = this;

+ 17 - 0
web/building_saas/pm/js/pm_main.js

@@ -673,6 +673,22 @@ function AddTender() {
     let valuationName = $("#tender-valuation").children("option:selected").text();
     let valuationType = $("input[name='tender_valuation_type']:checked").val();
     let engineering = $("#tender-engineering").val();
+
+    let engineering_id = undefined;
+    let valuationData = valuationType === 'bill' ? JSON.parse(billValuation) : JSON.parse(rationValuation);
+    let engineeringList = [];
+    for(let tmp of valuationData) {
+        if (tmp._id === valuation) {
+            engineeringList = tmp.engineering_list;
+            break;
+        }
+    }
+    for(let tmp of engineeringList) {
+        if (tmp.engineering == engineering) {
+            engineering_id = tmp.engineering_id;
+            break;
+        }
+    }
     let engineeringName = $('#tender-engineering').children("option:selected").text();
 
     let callback = function() {
@@ -687,6 +703,7 @@ function AddTender() {
         valuationType: valuationType,
         valuationName: valuationName,
         engineering: engineering,
+        engineering_id: engineering_id,
         engineeringName: engineeringName
     };
     // 如果选择的是单项工程则新增同级数据