Browse Source

Merge branch 'master' into olym

caiaolin 7 years ago
parent
commit
ca94656706
45 changed files with 2465 additions and 649 deletions
  1. 2 3
      modules/bills_lib/controllers/bills_lib_controllers.js
  2. 59 0
      modules/bills_lib/controllers/bills_permissionController.js
  3. 39 0
      modules/bills_lib/controllers/items_permissionController.js
  4. 33 0
      modules/bills_lib/controllers/jobs_permissionController.js
  5. 33 0
      modules/bills_lib/controllers/stdBillsLib_permissionController.js
  6. 27 0
      modules/bills_lib/controllers/views_permissionController.js
  7. 1321 351
      modules/bills_lib/models/bills_lib_interfaces.js
  8. 10 6
      modules/bills_lib/models/bills_lib_schemas.js
  9. 54 55
      modules/bills_lib/routes/bills_lib_routes.js
  10. 26 2
      modules/ration_repository/controllers/coe_controller.js
  11. 88 1
      modules/ration_repository/controllers/ration_controller.js
  12. 66 2
      modules/ration_repository/controllers/ration_repository_controller.js
  13. 44 1
      modules/ration_repository/controllers/ration_section_tree_controller.js
  14. 90 1
      modules/ration_repository/controllers/repository_glj_controller.js
  15. 37 0
      modules/ration_repository/controllers/repository_views_controller.js
  16. 28 1
      modules/ration_repository/controllers/search_controller.js
  17. 17 1
      modules/ration_repository/models/ration_item.js
  18. 12 3
      modules/ration_repository/models/repository_map.js
  19. 64 1
      modules/ration_repository/routes/ration_rep_routes.js
  20. 3 1
      modules/reports/controllers/rpt_cfg_controller.js
  21. 8 4
      modules/reports/controllers/rpt_controller.js
  22. 18 3
      modules/reports/controllers/rpt_tpl_controller.js
  23. 1 3
      modules/reports/models/rpt_cfg.js
  24. 1 3
      modules/reports/models/rpt_mapping_field.js
  25. 1 3
      modules/reports/models/rpt_template.js
  26. 3 5
      modules/reports/models/rpt_tpl_data.js
  27. 22 20
      modules/reports/models/rpt_tpl_data_demo.js
  28. 9 10
      modules/reports/models/tpl_tree_node.js
  29. 5 1
      modules/reports/util/rpt_util.js
  30. 11 3
      operation.js
  31. 1 0
      public/web/sheet/sheet_common.js
  32. 5 7
      web/maintain/bills_lib/html/main.html
  33. 2 1
      web/maintain/bills_lib/html/neirong.html
  34. 4 3
      web/maintain/bills_lib/html/qingdan.html
  35. 3 2
      web/maintain/bills_lib/html/tezheng.html
  36. 61 63
      web/maintain/bills_lib/scripts/bills_lib_ajax.js
  37. 33 34
      web/maintain/bills_lib/scripts/db_controller.js
  38. 5 4
      web/maintain/bills_lib/scripts/set_sheets.js
  39. 20 20
      web/maintain/ration_repository/dinge.html
  40. 1 0
      web/maintain/ration_repository/gongliao.html
  41. 3 0
      web/maintain/ration_repository/js/main.js
  42. 191 19
      web/maintain/ration_repository/js/ration.js
  43. 1 9
      web/maintain/ration_repository/js/ration_glj.js
  44. 1 1
      web/maintain/ration_repository/main.html
  45. 2 2
      web/maintain/report/js/rpt_tpl_main.js

+ 2 - 3
modules/bills_lib/controllers/bills_lib_controllers.js

@@ -30,8 +30,7 @@ module.exports = {
         });
     },
     getStdBillsLib: function(req, res){
-        let 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 );
         });
     },
@@ -43,7 +42,7 @@ module.exports = {
     },
     deleteStdBillsLib: function(req, res){
         let data = JSON.parse(req.body.data);
-        billsLibDao.deleteStdBillsLib(data.billsLibId, function(err, message){
+        billsLibDao.deleteStdBillsLib(data, function(err, message){
             callback(req, res, err, message, null);
         });
     },

+ 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;

+ 33 - 0
modules/bills_lib/controllers/stdBillsLib_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 billsLibPermContr extends baseController{
+    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
+ 1321 - 351
modules/bills_lib/models/bills_lib_interfaces.js


+ 10 - 6
modules/bills_lib/models/bills_lib_schemas.js

@@ -1,12 +1,16 @@
 let mongoose = require('mongoose');
 
 let stdBillsLibSchema =mongoose.Schema({
-    userId: String,
-    billsLibId: Number,
-    billsLibName: String,
-    createDate: Date,
-    deleted: Boolean
-},
+        creator: String,
+        createDate: String,
+        recentOpr: [],
+       /* lastOperator: String,
+        lastOperateDate: Date,*/
+        billsLibId: Number,
+        billsLibName: String,
+        localeType: Number,
+        deleted: Boolean
+    },
     {versionKey: false}
 );
 

+ 54 - 55
modules/bills_lib/routes/bills_lib_routes.js

@@ -2,68 +2,67 @@
  * Created by vian on 2017/3/17.
  */
 let express = require("express");
-let billsController = require("./../controllers/bills_lib_controllers");
 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", function(req, res){
-        res.render("maintain/bills_lib/html/main.html",
-            {userAccount: req.session.managerData.username,
-                userID: req.session.managerData.userID});
-    });
-    app.get("/stdBills", function(req, res){
-        res.render("maintain/bills_lib/html/qingdan.html");
-    });
-    app.get('/stdJobs', function(req, res){
-        res.render('maintain/bills_lib/html/neirong.html');
-    });
-    app.get('/stdItems', function(req, res){
-        res.render('maintain/bills_lib/html/tezheng.html');
-    });
+module.exports =function (app) {
+    app.get("/stdBillsmain", viewsContr.auth, viewsContr.init, viewsContr.redirectStdBillsMain);
+     app.get("/stdBills", viewsContr.auth, viewsContr.init, viewsContr.redirectStdBills);
+     app.get('/stdJobs', viewsContr.auth, viewsContr.init, viewsContr.redirectStdJobs);
+     app.get('/stdItems', viewsContr.auth, viewsContr.init, viewsContr.redirectStdItems);
 
-    billsRouter.post('/getMaxNumber', billsController.getMaxNumber);
-    billsRouter.post('/getABillsLib', billsController.getABillsLib);
-    billsRouter.post("/getStdBillsLib", billsController.getStdBillsLib);
-    billsRouter.post("/createStdBillsLib", billsController.createStdBillsLib);
+     billsRouter.post('/getMaxNumber', billsLibContr.auth, billsLibContr.init, billsLibContr.getMaxNumber);
+     billsRouter.post('/getABillsLib', billsLibContr.auth, billsLibContr.init, billsLibContr.getABillsLib);
+     billsRouter.post("/getStdBillsLib", billsLibContr.auth, billsLibContr.init, billsLibContr.getStdBillsLib);
+     billsRouter.post("/createStdBillsLib", billsLibContr.auth, billsLibContr.init, billsLibContr.createStdBillsLib);
+    billsRouter.post("/deleteStdBillsLib", billsLibContr.auth, billsLibContr.init, billsLibContr.deleteStdBillsLib);
+    billsRouter.post("/renameStdBillsLib", billsLibContr.auth, billsLibContr.init, billsLibContr.renameStdBillsLib);
+    billsRouter.post("/getStdBillsLibName", billsLibContr.auth, billsLibContr.init, billsLibContr.getStdBillsLibName);
 
-    billsRouter.post("/upMove", billsController.upMove);
-    billsRouter.post("/downMove", billsController.downMove);
-    billsRouter.post("/deleteStdBillsLib", billsController.deleteStdBillsLib);
-    billsRouter.post("/renameStdBillsLib", billsController.renameStdBillsLib);
-    billsRouter.post("/getStdBillsLibName", billsController.getStdBillsLibName);
-    billsRouter.post("/getCurrentUniqId", billsController.getCurrentUniqId);
-    billsRouter.post("/getBills", billsController.getBills);
-    billsRouter.post("/createBills", billsController.createBills);
-    billsRouter.post("/updatePNId", billsController.updatePNId);
-    billsRouter.post("/upLevel", billsController.upLevel);
-    billsRouter.post("/downLevel", billsController.downLevel);
-    billsRouter.post("/updateBills", billsController.updateBills);
-    billsRouter.post("/updateBillsArr", billsController.updateBillsArr);
-    billsRouter.post("/removeTotal", billsController.removeTotal);
-    billsRouter.post("/updateSerialNo", billsController.updateSerialNo);
-    billsRouter.post("/pasteBills", billsController.pasteBills);
-    billsRouter.post('/updateRecharge', billsController.updateRecharge);
-    billsRouter.post('/pasteRel', billsController.pasteRel);
-    billsRouter.post("/deleteBills", billsController.deleteBills);
+    billsRouter.post("/upMove", billsContr.auth, billsContr.init, billsContr.upMove);
+    billsRouter.post("/downMove", billsContr.auth, billsContr.init, billsContr.downMove);
+     billsRouter.post("/getCurrentUniqId", billsContr.auth, billsContr.init, billsContr.getCurrentUniqId);
+     billsRouter.post("/getBills", billsContr.auth, billsContr.init, billsContr.getBills);
+     billsRouter.post("/createBills", billsContr.auth, billsContr.init, billsContr.createBills);
+     billsRouter.post("/updatePNId", billsContr.auth, billsContr.init, billsContr.updatePNId);
+     billsRouter.post("/upLevel", billsContr.auth, billsContr.init, billsContr.upLevel);
+     billsRouter.post("/downLevel", billsContr.auth, billsContr.init, billsContr.downLevel);
+     billsRouter.post("/updateBills", billsContr.auth, billsContr.init, billsContr.updateBills);
+     billsRouter.post("/updateBillsArr", billsContr.auth, billsContr.init, billsContr.updateBillsArr);
+     billsRouter.post("/removeTotal", billsContr.auth, billsContr.init, billsContr.removeTotal);
+     billsRouter.post("/updateSerialNo", billsContr.auth, billsContr.init, billsContr.updateSerialNo);
+     billsRouter.post("/pasteBills", billsContr.auth, billsContr.init, billsContr.pasteBills);
+     billsRouter.post('/updateRecharge', billsContr.auth, billsContr.init, billsContr.updateRecharge);
+     billsRouter.post('/pasteRel', billsContr.auth, billsContr.init, billsContr.pasteRel);
+     billsRouter.post("/deleteBills", billsContr.auth, billsContr.init, billsContr.deleteBills);
 
-    billsRouter.post("/getJobContent", billsController.getJobContent);
-    billsRouter.post("/createJobContent", billsController.createJobContent);
-    billsRouter.post("/updateJobContent", billsController.updateJobContent);
-    billsRouter.post("/deleteJobContent", billsController.deleteJobContent);
-    billsRouter.post("/pasteJobs", billsController.pasteJobs);
-    billsRouter.post("/edCreateJob", billsController.edCreateJob);
-    billsRouter.post("/edUpdateJob", billsController.edUpdateJob);
+     billsRouter.post("/getJobContent", jobsContr.auth, jobsContr.init, jobsContr.getJobContent);
+     billsRouter.post("/createJobContent", jobsContr.auth, jobsContr.init, jobsContr.createJobContent);
+     billsRouter.post("/updateJobContent", jobsContr.auth, jobsContr.init, jobsContr.updateJobContent);
+     billsRouter.post("/deleteJobContent", jobsContr.auth, jobsContr.init, jobsContr.deleteJobContent);
+     billsRouter.post("/pasteJobs", jobsContr.auth, jobsContr.init, jobsContr.pasteJobs);
+     billsRouter.post("/edCreateJob", jobsContr.auth, jobsContr.init, jobsContr.edCreateJob);
+     billsRouter.post("/edUpdateJob", jobsContr.auth, jobsContr.init, jobsContr.edUpdateJob);
 
-    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);
-    billsRouter.post("/pasteItems", billsController.pasteItems);
-    billsRouter.post("/pasteValues", billsController.pasteValues);
-    billsRouter.post("/edCreateItem", billsController.edCreateItem);
-    billsRouter.post("/edUpdateItem", billsController.edUpdateItem);
+     billsRouter.post("/getItemCharacter", itemsContr.auth, itemsContr.init, itemsContr.getItemCharacter);
+     billsRouter.post("/createItemCharacter", itemsContr.auth, itemsContr.init, itemsContr.createItemCharacter);
+     billsRouter.post("/updateItemCharacter", itemsContr.auth, itemsContr.init, itemsContr.updateItemCharacter);
+     billsRouter.post("/updateValue", itemsContr.auth, itemsContr.init, itemsContr.updateValue);
+     billsRouter.post("/deleteItemCharacter", itemsContr.auth, itemsContr.init, itemsContr.deleteItemCharacter);
+     billsRouter.post("/pasteItems", itemsContr.auth, itemsContr.init, itemsContr.pasteItems);
+     billsRouter.post("/pasteValues", itemsContr.auth, itemsContr.init, itemsContr.pasteValues);
+     billsRouter.post("/edCreateItem", itemsContr.auth, itemsContr.init, itemsContr.edCreateItem);
+     billsRouter.post("/edUpdateItem", itemsContr.auth, itemsContr.init, itemsContr.edUpdateItem);
 
     app.use("/stdBillsEditor", billsRouter);
 

+ 26 - 2
modules/ration_repository/controllers/coe_controller.js

@@ -2,11 +2,35 @@
  * Created by CSL on 2017/5/19.
  */
 var coeList = require("../models/coe");
-
+import BaseController from "../../common/base/base_controller";
 var callback = function(req,res,err,message, data){
     res.json({error: err, message: message, data: data});
 }
 
+class CoeListController extends BaseController{
+    getCoeList(req,res){
+        coeList.getCoesByLibID(req.body.libID, function(err,data){
+            callback(req, res, err, 'Get coes', data);
+        });
+    }
+
+    saveCoeList(req, res) {
+        coeList.saveToCoeList(JSON.parse(req.body.data), function(isErr, msg, data){
+            callback(req, res, isErr, msg, data);
+        });
+    }
+
+    getCoeItemsByIDs(req,res){
+        //console.log('传入: '+JSON.stringify(JSON.parse(req.body.data)));
+        coeList.getCoeItemsByIDs(JSON.parse(req.body.data), function(err,data){
+            //console.log('返回: '+JSON.stringify(data));
+            callback(req, res, err, 'Get coe', data);
+        });
+    }
+}
+
+export default CoeListController;
+/*
 module.exports ={
     getCoeList: function(req,res){
         coeList.getCoesByLibID(req.body.libID, function(err,data){
@@ -28,4 +52,4 @@ module.exports ={
         });
     }
 
-}
+}*/

+ 88 - 1
modules/ration_repository/controllers/ration_controller.js

@@ -3,10 +3,86 @@
  */
 
 var rationItem = require('../models/ration_item');
+import BaseController from "../../common/base/base_controller";
 var callback = function(req, res, err, message, data){
     res.json({error: err, message: message, data: data});
 };
 
+class RationController extends BaseController{
+    getRationItemsBySection(req, res){
+        var sectionId = req.body.sectionID;
+        rationItem.getRationItemsBySection(sectionId, function(err, message, rst){
+            if (err) {
+                callback(req, res, err, message, null);
+            } else {
+                callback(req, res, err, message, rst);
+            }
+        });
+    }
+    mixUpdateRationItems(req, res){
+        var sectionId = req.body.sectionID,
+            rationLibId = req.body.rationLibId,
+            updateItems = JSON.parse(req.body.updateItems),
+            addItems = JSON.parse(req.body.addItems),
+            removeIds = JSON.parse(req.body.removeIds);
+        rationItem.mixUpdateRationItems(rationLibId, sectionId, updateItems, addItems, removeIds, function(err, message, rst){
+            if (err) {
+                callback(req, res, err, message, null);
+            } else {
+                callback(req, res, err, message, rst);
+            }
+        });
+    }
+    removeRationItems(req, res){
+        var rIds = JSON.parse(req.body.updateItems);
+        if (rIds && rIds.length > 0) {
+            rationItem.removeRationItems(rIds, function(err, message, rst){
+                if (err) {
+                    callback(req, res, err, message, null);
+                } else {
+                    callback(req, res, err, message, rst);
+                }
+            });
+        }
+    }
+    updateRationBasePrc (req, res) {
+        let data = JSON.parse(req.body.data);
+        rationItem.updateRationBasePrc(data, function (err, message) {
+            if(err){
+                callback(req, res, err, message, null);
+            }
+            else{
+                callback(req, res, err, message, null);
+            }
+        })
+    }
+    getRationGljIds (req, res) {
+        let data = JSON.parse(req.body.data);
+        rationItem.getRationGljIds(data, function (err, message, ids) {
+            if(err){
+                callback(req, res, err, message, null);
+            }
+            else{
+                callback(req, res, err, message, ids);
+            }
+        })
+    }
+    getRationsCodes (req, res) {
+        let data = JSON.parse(req.body.data);
+        rationItem.getRationsCodes(data, function (err, message, codes) {
+            if(err){
+                callback(req, res, err, message, null);
+            }
+            else{
+                callback(req, res, err, message, codes);
+            }
+        })
+    }
+}
+
+export default RationController;
+
+/*
 module.exports = {
     getRationItemsBySection: function(req, res){
         var sectionId = req.body.sectionID;
@@ -65,5 +141,16 @@ module.exports = {
                 callback(req, res, err, message, ids);
             }
         })
+    },
+    getRationsCodes: function (req, res) {
+        let data = JSON.parse(req.body.data);
+        rationItem.getRationsCodes(data, function (err, message, codes) {
+            if(err){
+                callback(req, res, err, message, null);
+            }
+            else{
+                callback(req, res, err, message, codes);
+            }
+        })
     }
-}
+}*/

+ 66 - 2
modules/ration_repository/controllers/ration_repository_controller.js

@@ -2,11 +2,75 @@
  * Created by Tony on 2017/4/20.
  */
 var rationRepository = require("../models/repository_map");
-
+import baseController from "../../common/base/base_controller";
 var callback = function(req, res, err, message, data){
     res.json({error: err, message: message, data: data});
 };
 
+class RationRepositoryController extends baseController{
+    addRationRepository(req,res){
+        var rationObj = JSON.parse(req.body.rationRepObj);
+        rationRepository.addRationRepository(rationObj,function(err,data){
+            if (data) {
+                callback(req, res, err, "has data", data);
+            } else {
+                callback(req, res, err, "no data", null);
+            }
+        })
+    }
+    getDisPlayRationLibs(req, res){
+        rationRepository.getDisplayRationLibs(function(err, data){
+            if (data) {
+                callback(req, res, err, "has data",data);
+            } else {
+                callback(req, res, err, "no data", null);
+            }
+        });
+    }
+    getRealLibName(req,res){
+        var libName = req.body.rationName;
+        rationRepository.getRealLibName(libName,function(err,data){
+            if (data) {
+                callback(req, res, err, "has data", data);
+            } else {
+                callback(req, res, err, "no data", null);
+            }
+        })
+    }
+    getLibIDByName(req,res){
+        rationRepository.getLibIDByName(req.body.libName, function(err,data){
+            if (data) {
+                callback(req, res, err, "has ID", data);
+            } else {
+                callback(req, res, err, "no ID", null);
+            }
+        })
+    }
+    deleteRationLib(req,res){
+        var rationName = req.body.rationName, needSet = {deleted: true, lastOperator: req.body.lastOperator, lastOperateDate: Date.now()}
+        rationRepository.deleteRationLib(rationName, needSet, function(err,data){
+            if (data) {
+                callback(req, res, err, "has data", data);
+            } else {
+                callback(req, res, err, "no data", null);
+            }
+        })
+    }
+    updateRationRepositoryName(req, res) {
+        var orgName = req.body.rationName;
+        var newName = req.body.newName;
+        rationRepository.updateName(orgName, newName, function(err, data){
+            if (data) {
+                callback(req, res, err, "has data", data);
+            } else {
+                callback(req, res, err, "no data", null);
+            }
+        });
+    }
+}
+
+export default RationRepositoryController;
+/*
 module.exports = {
     addRationRepository:function(req,res){
         var rationObj = JSON.parse(req.body.rationRepObj);
@@ -67,4 +131,4 @@ module.exports = {
             }
         });
     }
-}
+}*/

+ 44 - 1
modules/ration_repository/controllers/ration_section_tree_controller.js

@@ -3,9 +3,52 @@
  */
 
 var rationChapterTreeData = require('../models/ration_section_tree');
+import BaseController from "../../common/base/base_controller";
 var callback = function(req,res,err,message, data){
     res.json({error: err, message: message, data: data});
 }
+
+class RationChapterTreeController extends BaseController{
+    getRationChapterTree(req,res){
+        var rationLibId = req.body.rationLibId;
+        var repId = req.body.rationRepositoryId;
+        if (rationLibId) {
+            rationChapterTreeData.getRationChapterTree(rationLibId,function(err,data){
+                callback(req,res,err, "", data);
+            })
+        } else if (repId) {
+            rationChapterTreeData.getRationChapterTreeByRepId(repId,function(err,data){
+                callback(req,res,err,"", data)
+            })
+        }
+    }
+    createNewNode(req, res){
+        var libId = req.body.rationLibId;
+        var lastNodeId = req.body.lastNodeId;
+        var nodeData = JSON.parse(req.body.rawNodeData);
+        rationChapterTreeData.createNewNode(libId, lastNodeId, nodeData, function(err,data){
+            callback(req,res,err,"", data)
+        });
+    }
+    updateNodes(req, res) {
+        var nodes = JSON.parse(req.body.nodes);
+        rationChapterTreeData.updateNodes(nodes, function(err,results){
+            callback(req,res, err, "", results)
+        });
+    }
+    deleteNodes(req, res) {
+        var nodes = JSON.parse(req.body.nodes);
+        var preNodeId = req.body.preNodeId;
+        var preNodeNextId = req.body.preNodeNextId;
+        rationChapterTreeData.removeNodes(nodes, preNodeId, preNodeNextId, function(err,results){
+            callback(req,res, err, "", results)
+        });
+    }
+}
+
+export default RationChapterTreeController;
+
+/*
 module.exports ={
     getRationChapterTree: function(req,res){
         var rationLibId = req.body.rationLibId;
@@ -42,4 +85,4 @@ module.exports ={
             callback(req,res, err, "", results)
         });
     }
-}
+}*/

+ 90 - 1
modules/ration_repository/controllers/repository_glj_controller.js

@@ -3,10 +3,99 @@
  */
 var gljRepository = require("../models/glj_repository");
 let stdgljutil = require("../../../public/cache/std_glj_type_util");
+import BaseController from "../../common/base/base_controller";
 
 var callback = function(req,res,err,message, data){
     res.json({error: err, message: message, data: data});
 }
+
+class RepositoryGljController extends BaseController{
+    getGljDistType (req, res) {
+        let gljDistTypeCache = stdgljutil.getStdGljTypeCacheObj().toArray();
+        if(gljDistTypeCache.length >0 ){
+            callback(req, res, null, '', gljDistTypeCache);
+        }
+        else {
+            callback(req, res, 1, 'Error', null);
+        }
+    }
+    getGljTree(req,res){
+        var rationLibId = req.body.rationLibId;
+        gljRepository.getGljTypes(rationLibId,function(err,data){
+            callback(req,res,err, 'Get Tree', data)
+        });
+    }
+    createNewGljTypeNode(req, res) {
+        var repId = req.body.repositoryId;
+        var lastNodeId = req.body.lastNodeId;
+        var nodeData = JSON.parse(req.body.rawNodeData);
+        gljRepository.createNewNode(repId, lastNodeId, nodeData, function(err, msg, data){
+            callback(req,res,err,msg, data)
+        });
+    }
+    updateGljNodes(req, res) {
+        var nodes = JSON.parse(req.body.nodes);
+        gljRepository.updateNodes(nodes, function(err,results){
+            callback(req,res, err, results)
+        });
+    }
+    deleteGljNodes(req, res) {
+        var nodes = JSON.parse(req.body.nodes);
+        var preNodeId = req.body.preNodeId;
+        var preNodeNextId = req.body.preNodeNextId;
+        gljRepository.removeNodes(nodes, preNodeId, preNodeNextId, function(err,results){
+            callback(req,res, err, results)
+        });
+    }
+    getGljItems(req, res) {
+        var repId = req.body.repositoryId,
+            gljType = req.body.type,
+            gljCode = req.body.code;
+        if (gljCode) {
+            gljRepository.getGljItem(repId, gljCode, function(err, data){
+                callback(req,res,err,'Get Items', data)
+            });
+        } else if (gljType) {
+            gljRepository.getGljItemByType(repId, gljType, function(err, data){
+                callback(req,res,err,'Get Types', data)
+            });
+        } else {
+            gljRepository.getGljItemsByRep(repId, function(err, data){
+                callback(req,res,err,'Get Items',data)
+            });
+        }
+    }
+    getGljItemsByIds(req, res) {
+        var gljIds = JSON.parse(req.body.gljIds);
+        gljRepository.getGljItems(gljIds, function(err, data){
+            callback(req,res,err,'Get Items',data)
+        });
+    }
+    getGljItemsByCodes(req, res) {
+        var gljCodes = JSON.parse(req.body.gljCodes),
+            repId = req.body.repId;
+        gljRepository.getGljItemsByCode(repId, gljCodes, function(err, data){
+            callback(req,res,err,'Get Items',data)
+        });
+    }
+    mixUpdateGljItems(req, res){
+        var repId = req.body.repositoryId,
+            updateItems = JSON.parse(req.body.updateItems),
+            addItems = JSON.parse(req.body.addItems),
+            removeIds = JSON.parse(req.body.removeIds);
+        gljRepository.mixUpdateGljItems(repId, updateItems, addItems, removeIds, function(err, message, rst){
+            if (err) {
+                callback(req, res, err, message, null);
+            } else {
+                callback(req, res, err, message, rst);
+            }
+        });
+    }
+}
+
+export default RepositoryGljController;
+
+/*
 module.exports ={
     getGljDistType: function (req, res) {
         let gljDistTypeCache = stdgljutil.getStdGljTypeCacheObj().toArray();
@@ -89,4 +178,4 @@ module.exports ={
             }
         });
     }
-}
+}*/

+ 37 - 0
modules/ration_repository/controllers/repository_views_controller.js

@@ -0,0 +1,37 @@
+/**
+ * Created by Zhong on 2017/8/3.
+ */
+import BaseController from "../../common/base/base_controller";
+
+class ViewsController extends BaseController{
+    redirectMain(req, res){
+        res.render('maintain/ration_repository/main.html',
+            {
+                userAccount: req.session.managerData.username,
+                userID: req.session.managerData.userID
+            });
+    }
+    redirectRation(req, res){
+        res.render('maintain/ration_repository/dinge.html',
+            {
+                userAccount: req.session.managerData.username,
+                userID: req.session.managerData.userID
+            });
+    }
+    redirectGlj(req, res){
+        res.render('maintain/ration_repository/gongliao.html',
+            {
+                userAccount: req.session.managerData.username,
+                userID: req.session.managerData.userID
+            });
+    }
+    redirectCoeList(req, res){
+        res.render('maintain/ration_repository/fuzhu.html',
+            {
+                userAccount: req.session.managerData.username,
+                userID: req.session.managerData.userID
+            });
+    }
+}
+
+export default ViewsController;

+ 28 - 1
modules/ration_repository/controllers/search_controller.js

@@ -2,10 +2,37 @@
  * Created by Mai on 2017/6/5.
  */
 var rationItem = require('../models/ration_item');
+import BaseController from "../../common/base/base_controller";
 var callback = function(req, res, err, message, data){
     res.json({error: err, message: message, data: data});
 };
 
+class SearchController extends BaseController{
+    getRationItem (req, res) {
+        var rId = req.body.rationLibId, code = req.body.code;
+        var rationData = {}
+        rationItem.getRationItem(rId, code).then(function (result) {
+            rationData = result._doc;
+            callback(req, res, null, '', rationData);
+        }).catch(function (err, message) {
+            callback(req, res, err, message, null);
+        })
+    }
+    findRation (req, res) {
+        var rId = req.body.rationLibId, keyword = req.body.keyword;
+        rationItem.findRation(rId, keyword, function (err, message, rst) {
+            if (err) {
+                callback(req, res, err, message, null);
+            } else {
+                callback(req, res, 0, '', rst);
+            }
+        });
+    }
+}
+
+export default SearchController;
+
+/*
 module.exports = {
     getRationItem: function (req, res) {
         var rId = req.body.rationLibId, code = req.body.code;
@@ -27,4 +54,4 @@ module.exports = {
             }
         });
     }
-};
+};*/

+ 17 - 1
modules/ration_repository/models/ration_item.js

@@ -334,7 +334,23 @@ rationItemDAO.prototype.getRationGljIds = function (data, callback) {
             callback(null, '', newRst);
         }
     });
-}
+};
+
+rationItemDAO.prototype.getRationsCodes = function (data, callback) {
+    let repId = data.repId;
+    rationItemModel.find({rationRepId: repId}, function (err, result) {
+        if(err){
+            callback(err, 'Error', null);
+        }
+        else{
+            let rstCodes = [];
+            result.forEach(function (rationItem) {
+                rstCodes.push(rationItem.code);
+            });
+            callback(null, 'get all rationCodes success', rstCodes);
+        }
+    })
+};
 
 module.exports = new rationItemDAO()
 

+ 12 - 3
modules/ration_repository/models/repository_map.js

@@ -4,6 +4,7 @@
  */
 var mongoose = require('mongoose');
 var dbm = require("../../../config/db/db_manager");
+let async = require("async");
 //var stringUtil = require('../../../public/stringUtil');
 var rationLibdb = dbm.getCfgConnection("scConstruct");
 var Schema = mongoose.Schema;
@@ -11,8 +12,12 @@ var RepositoryMapSchema = new Schema({
     "ID": Number,
     "dispName" : String,
     "appType" : String, //如:"建筑" / "公路"
-    "localeType": String, //如 各个省份 / 部颁
+    "localeType": Number, //如 各个省份 / 部颁
     "descr" : String,
+    "creator": String,
+    "createDate": Date,
+    "lastOperator": String,
+    "lastOperateDate": Date,
     "deleted": Boolean
 });
 var counter = require('../../../public/counter/counter');
@@ -25,6 +30,10 @@ function createNewLibModel(rationLibObj){
     rst.appType = rationLibObj.appType?rationLibObj.appType:'construct';
     rst.localeType = rationLibObj.localeType?rationLibObj.localeType:'';
     rst.descr = rationLibObj.descr;
+    rst.creator = rationLibObj.creator;
+    rst.lastOperator = rationLibObj.lastOperator;
+    rst.createDate = Date.now();
+    rst.lastOperateDate = Date.now();
     rst.deleted = false;
     return rst;
 }
@@ -105,10 +114,10 @@ rationRepositoryDao.prototype.updateName = function(orgName,newName,callback){
     });
 }
 
-rationRepositoryDao.prototype.deleteRationLib = function(rationName,callback){
+rationRepositoryDao.prototype.deleteRationLib = function(rationName, needSet,  callback){
     rationRepository.find({"dispName":rationName, "deleted": false}, function(err, data){
         if (data.length == 1) {
-            rationRepository.update({dispName:rationName},{$set:{deleted: true}},function(err){
+            rationRepository.update({dispName:rationName, deleted: false},{$set: needSet},function(err){
                 if(err) callback("err",false);
                 else callback(false,"ok")
             })

+ 64 - 1
modules/ration_repository/routes/ration_rep_routes.js

@@ -4,17 +4,79 @@
 var express = require("express");
 var apiRouter =express.Router();
 //var _rootDir = __dirname;
+import ViewsController from "../controllers/repository_views_controller";
+import RationRepositoryController from "../controllers/ration_repository_controller";
+import RationChapterTreeController from "../controllers/ration_section_tree_controller";
+import RationController from "../controllers/ration_controller";
+import RepositoryGljController from "../controllers/repository_glj_controller";
+import CoeListController from "../controllers/coe_controller";
+import SearchController from "../controllers/search_controller";
+let viewsController = new ViewsController();
+let rationRepositoryController = new RationRepositoryController();
+let rationChapterTreeController = new RationChapterTreeController();
+let rationController = new RationController();
+let coeListController = new CoeListController();
+let searchController = new SearchController();
+let repositoryGljController = new RepositoryGljController();
 
+/*
 var rationRepositoryController = require("../controllers/ration_repository_controller");
 var rationChapterTreeController = require("../controllers/ration_section_tree_controller");
 var rationController = require("../controllers/ration_controller");
 var repositoryGljController = require("../controllers/repository_glj_controller");
 var coeListController = require("../controllers/coe_controller");
 var searchController = require('../controllers/search_controller');
+*/
 
 
 module.exports =  function (app) {
 
+    app.get('/rationRepository/main', viewsController.auth, viewsController.init, viewsController.redirectMain);
+    app.get('/rationRepository/ration',viewsController.auth, viewsController.init, viewsController.redirectRation);
+    app.get('/rationRepository/lmm', viewsController.auth, viewsController.init, viewsController.redirectGlj);
+
+    app.get('/rationRepository/coeList', viewsController.auth, viewsController.init, viewsController.redirectCoeList);
+
+    apiRouter.post("/getRationDisplayNames",rationRepositoryController.auth, rationRepositoryController.init, rationRepositoryController.getDisPlayRationLibs);
+    apiRouter.post("/editRationLibs",rationRepositoryController.auth, rationRepositoryController.init, rationRepositoryController.updateRationRepositoryName);
+    apiRouter.post("/addRationRepository",rationRepositoryController.auth, rationRepositoryController.init, rationRepositoryController.addRationRepository);
+    apiRouter.post("/deleteRationLibs",rationRepositoryController.auth, rationRepositoryController.init, rationRepositoryController.deleteRationLib);
+    apiRouter.post("/getRealLibName",rationRepositoryController.auth, rationRepositoryController.init, rationRepositoryController.getRealLibName);
+    apiRouter.post("/getLibIDByName",rationRepositoryController.auth, rationRepositoryController.init, rationRepositoryController.getLibIDByName);
+
+    apiRouter.post("/getRationTree",rationChapterTreeController.auth, rationChapterTreeController.init, rationChapterTreeController.getRationChapterTree);
+    apiRouter.post("/createNewNode",rationChapterTreeController.auth, rationChapterTreeController.init, rationChapterTreeController.createNewNode);
+    apiRouter.post("/updateNodes",rationChapterTreeController.auth, rationChapterTreeController.init, rationChapterTreeController.updateNodes);
+    apiRouter.post("/deleteNodes",rationChapterTreeController.auth, rationChapterTreeController.init, rationChapterTreeController.deleteNodes);
+
+    apiRouter.post("/getRationItems",rationController.auth, rationController.init, rationController.getRationItemsBySection);
+    apiRouter.post("/mixUpdateRationItems",rationController.auth, rationController.init, rationController.mixUpdateRationItems);
+    apiRouter.post("/updateRationBasePrc",rationController.auth, rationController.init, rationController.updateRationBasePrc);
+    apiRouter.post("/getRationGljIds",rationController.auth, rationController.init, rationController.getRationGljIds);
+    apiRouter.post("/getRationsCodes",rationController.auth, rationController.init, rationController.getRationsCodes);
+
+    apiRouter.post("/createNewGljTypeNode",repositoryGljController.auth, repositoryGljController.init, repositoryGljController.createNewGljTypeNode);
+    apiRouter.post("/updateGljNodes",repositoryGljController.auth, repositoryGljController.init, repositoryGljController.updateGljNodes);
+    apiRouter.post("/deleteGljNodes",repositoryGljController.auth, repositoryGljController.init, repositoryGljController.deleteGljNodes);
+    apiRouter.post("/getGljDistType",repositoryGljController.auth, repositoryGljController.init, repositoryGljController.getGljDistType);
+    apiRouter.post("/getGljTree",repositoryGljController.auth, repositoryGljController.init, repositoryGljController.getGljTree);
+    apiRouter.post("/getGljItems",repositoryGljController.auth, repositoryGljController.init, repositoryGljController.getGljItems);
+    apiRouter.post("/mixUpdateGljItems",repositoryGljController.auth, repositoryGljController.init, repositoryGljController.mixUpdateGljItems);
+    apiRouter.post("/getGljItemsByIds",repositoryGljController.auth, repositoryGljController.init, repositoryGljController.getGljItemsByIds);
+    apiRouter.post("/getGljItemsByCodes",repositoryGljController.auth, repositoryGljController.init, repositoryGljController.getGljItemsByCodes);
+
+    apiRouter.post("/getCoeList",coeListController.auth, coeListController.init, coeListController.getCoeList);
+    apiRouter.post("/saveCoeList",coeListController.auth, coeListController.init, coeListController.saveCoeList);
+    apiRouter.post("/getCoeItemsByIDs",coeListController.auth, coeListController.init, coeListController.getCoeItemsByIDs);
+
+    apiRouter.post('/getRationItem',searchController.auth, searchController.init, searchController.getRationItem);
+    apiRouter.post('/findRation', searchController.auth, searchController.init, searchController.findRation);
+
+    app.use("/rationRepository/api",apiRouter);
+}
+
+/*module.exports =  function (app) {
+
     app.get('/rationRepository/main', function(req, res) {
         res.render('maintain/ration_repository/main.html',
             {
@@ -61,6 +123,7 @@ module.exports =  function (app) {
     apiRouter.post("/mixUpdateRationItems",rationController.mixUpdateRationItems);
     apiRouter.post("/updateRationBasePrc",rationController.updateRationBasePrc);
     apiRouter.post("/getRationGljIds",rationController.getRationGljIds);
+    apiRouter.post("/getRationsCodes",rationController.getRationsCodes);
 
     apiRouter.post("/createNewGljTypeNode",repositoryGljController.createNewGljTypeNode);
     apiRouter.post("/updateGljNodes",repositoryGljController.updateGljNodes);
@@ -80,4 +143,4 @@ module.exports =  function (app) {
     apiRouter.post('/findRation', searchController.findRation);
 
     app.use("/rationRepository/api",apiRouter);
-}
+}*/

+ 3 - 1
modules/reports/controllers/rpt_cfg_controller.js

@@ -2,8 +2,10 @@
  * Created by Tony on 2017/7/5.
  */
 
+let mongoose = require('mongoose');
 let rpt_util = require('../util/rpt_util');
-let Rpt_Map_Fld_Mdl = require('../models/rpt_mapping_field');
+let Rpt_Map_Fld_Mdl = mongoose.model('rpt_mapping_field');
+
 
 //统一回调函数
 let callback = function(req, res, err, message, data){

+ 8 - 4
modules/reports/controllers/rpt_controller.js

@@ -2,11 +2,14 @@
  * Created by Tony on 2017/3/13.
  */
 
+let mongoose = require('mongoose');
+
 let JV = require('../rpt_component/jpc_value_define');
-let Template = require('../models/rpt_template');
-let TemplateData = require('../models/rpt_tpl_data_demo');
+
+let Template = mongoose.model('rpt_templates');
+let demoTemplateData = mongoose.model('rpt_temp_tpl_data');
+
 let JpcEx = require('../rpt_component/jpc_ex');
-//let cache = require('../../../public/cache/cacheUtil');
 let rptUtil = require("../util/rpt_util");
 let rpt_xl_util = require('../util/rpt_excel_util');
 let fs = require('fs');
@@ -29,7 +32,8 @@ function getAllPagesCommon(req, res, rpt_id, pageSize, cb) {
         rptTpl = rst;
         if (rptTpl) {
             if (rptTpl.ID_KEY) {
-                return TemplateData.getPromise(rptTpl.ID_KEY);
+                //return demoTemplateData.getPromise(rptTpl.ID_KEY);
+                return demoTemplateData.findOne({"Data_Key": rptTpl.ID_KEY}).exec();
             } else {
                 callback(req, res, 'No report template data were found!', null);
             }

+ 18 - 3
modules/reports/controllers/rpt_tpl_controller.js

@@ -2,11 +2,14 @@
  * Created by Tony on 2017/6/1.
  */
 
+let mongoose = require('mongoose');
+
 let async = require("async");
 let counter = require('../../../public/counter/counter');
 
-let RptTplModel = require('../models/rpt_template');
-let TreeNodeModel = require('../models/tpl_tree_node');
+let RptTplModel = mongoose.model('rpt_templates');
+let TreeNodeModel = mongoose.model('rpt_tpl_tree');
+
 let rptTplDef = require("../../../public/rpt_tpl_def").getUtil();
 let stringUtil = require("../../../public/stringUtil");
 let JV = require('../rpt_component/jpc_value_define');
@@ -19,6 +22,16 @@ let callback = function(req, res, err, message, data){
 }
 
 module.exports = {
+    getDftTemplates(req, res) {
+        let filter = {"userId": -100, "$or": [{"isDeleted": null}, {"isDeleted": false} ]};
+        TreeNodeModel.find(filter, '-_id', function(err, data){
+            if (err) {
+                callback(req,res, true,"", null);
+            } else {
+                callback(req,res,false,"", data);
+            }
+        });
+    },
     getRptTplTree: function(req, res) {
         let params = JSON.parse(req.body.params),
             grpType = params.grpType,
@@ -34,7 +47,9 @@ module.exports = {
         TreeNodeModel.find(filter, '-_id', function(err, data){
             if (err) {
                 callback(req,res, true,"", null);
-            } else callback(req,res,false,"", data);
+            } else {
+                callback(req,res,false,"", data);
+            }
         });
         // let obj = test_glj_type_util.getStdGljTypeCacheObj();
         // console.log(obj.toArray());

+ 1 - 3
modules/reports/models/rpt_cfg.js

@@ -2,8 +2,6 @@
  * Created by Tony on 2017/6/14.
  */
 let mongoose = require('mongoose');
-let dbm = require("../../../config/db/db_manager");
-let smartcostdb = dbm.getCfgConnection("scConstruct");
 let Schema = mongoose.Schema;
 let FormatSchema = new Schema({
     "ID" : String,
@@ -44,6 +42,6 @@ let RptCfgSchema = new Schema({
     "formats" : [FormatSchema]
 });
 
-let Rpt_Cfg_Mdl = smartcostdb.model("rpt_cfg", RptCfgSchema, "rpt_cfg");
+let Rpt_Cfg_Mdl = mongoose.model("rpt_cfg", RptCfgSchema, "rpt_cfg");
 
 module.exports = Rpt_Cfg_Mdl;

+ 1 - 3
modules/reports/models/rpt_mapping_field.js

@@ -2,8 +2,6 @@
  * Created by Tony on 2017/7/11.
  */
 let mongoose = require('mongoose');
-let dbm = require("../../../config/db/db_manager");
-let smartcostdb = dbm.getCfgConnection("scConstruct");
 let MapFieldSchema = new mongoose.Schema({
     "fieldMapGrpName" : String,
     "dispName": String,
@@ -17,6 +15,6 @@ let MapFieldSchema = new mongoose.Schema({
     }]
 });
 
-let Rpt_Map_Field_Mdl = smartcostdb.model("rpt_mapping_field", MapFieldSchema, "rpt_mapping_field");
+let Rpt_Map_Field_Mdl = mongoose.model("rpt_mapping_field", MapFieldSchema, "rpt_mapping_field");
 
 module.exports = Rpt_Map_Field_Mdl;

+ 1 - 3
modules/reports/models/rpt_template.js

@@ -2,8 +2,6 @@
  * Created by Tony on 2016/12/23.
  */
 let mongoose = require('mongoose');
-let dbm = require("../../../config/db/db_manager");
-let smartcostdb = dbm.getCfgConnection("scConstruct");
 let Schema = mongoose.Schema;
 let RptTemplateSchema = new Schema({
     "ID" : Number,
@@ -20,6 +18,6 @@ let RptTemplateSchema = new Schema({
     "计算式_集合": Array
 });
 
-let Template = smartcostdb.model("rpt_templates", RptTemplateSchema, "rpt_templates");
+let Template = mongoose.model("rpt_templates", RptTemplateSchema, "rpt_templates");
 
 module.exports = Template;

+ 3 - 5
modules/reports/models/rpt_tpl_data.js

@@ -3,8 +3,6 @@
  */
 
 let mongoose = require('mongoose');
-let dbm = require("../../../config/db/db_manager");
-let smartcostdb = dbm.getCfgConnection("scConstruct");
 let Schema = mongoose.Schema;
 
 let rptTplPrjSchema = new Schema({
@@ -26,9 +24,9 @@ let rptTplRationSchema = new Schema({
 
 });
 
-let tplPrjData = smartcostdb.model("temp_tpl_data", rptTplPrjSchema, "projects");
-let tplBillsData = smartcostdb.model("temp_tpl_data", rptTplBillsSchema, "bills");
-let tplRationData = smartcostdb.model("temp_tpl_data", rptTplRationSchema, "ration");
+let tplPrjData = mongoose.model("projects", rptTplPrjSchema, "projects");
+let tplBillsData = mongoose.model("bills", rptTplBillsSchema, "bills");
+let tplRationData = mongoose.model("ration", rptTplRationSchema, "ration");
 
 module.exports = {
     prjMdl: tplPrjData,

+ 22 - 20
modules/reports/models/rpt_tpl_data_demo.js

@@ -2,8 +2,8 @@
  * Created by Tony on 2016/12/28.
  */
 let mongoose = require('mongoose');
-let dbm = require("../../../config/db/db_manager");
-let smartcostdb = dbm.getCfgConnection("scConstruct");
+// let dbm = require("../../../config/db/db_manager");
+// let smartcostdb = dbm.getCfgConnection("scConstruct");
 let Schema = mongoose.Schema;
 let RptTemplateDataSchema = new Schema({
     "Data_Key": String,
@@ -12,23 +12,25 @@ let RptTemplateDataSchema = new Schema({
     "detail_data": Array
 });
 
-let TemplateData = smartcostdb.model("temp_tpl_data", RptTemplateDataSchema, "rpt_temp_tpl_data");
+let TemplateData = mongoose.model("rpt_temp_tpl_data", RptTemplateDataSchema, "rpt_temp_tpl_data");
 
-class RplTplDataDAO{
-    //根据id获取临时数据
-    get(tpl_id, callback){
-        TemplateData.find({"Data_Key": tpl_id}, function(err, templates){
-            if(templates.length){
-                callback(false, templates[0]);
-            }
-            else{
-                callback('查找不到模板临时数据!');
-            }
-        })
-    };
-    getPromise(tpl_id, callback){
-        return TemplateData.findOne({"Data_Key": tpl_id}).exec();
-    }
-};
+// class RplTplDataDAO{
+//     //根据id获取临时数据
+//     get(tpl_id, callback){
+//         TemplateData.find({"Data_Key": tpl_id}, function(err, templates){
+//             if(templates.length){
+//                 callback(false, templates[0]);
+//             }
+//             else{
+//                 callback('查找不到模板临时数据!');
+//             }
+//         })
+//     };
+//     getPromise(tpl_id, callback){
+//         return TemplateData.findOne({"Data_Key": tpl_id}).exec();
+//     }
+// };
+//
+// module.exports = new RplTplDataDAO();
 
-module.exports = new RplTplDataDAO();
+module.exports = TemplateData;

+ 9 - 10
modules/reports/models/tpl_tree_node.js

@@ -1,23 +1,22 @@
 /**
  * Created by Tony on 2017/5/31.
  */
-var mongoose = require('mongoose');
-var dbm = require("../../../config/db/db_manager");
-var db = dbm.getCfgConnection("scConstruct");
-var Schema = mongoose.Schema;
-var TreeNodeSchema = new Schema({
+let mongoose = require('mongoose');
+let Schema = mongoose.Schema;
+let TreeNodeSchema = new Schema({
     ID:Number,
     ParentID:Number,
     NextSiblingID:Number,
-    grpType: Number, //建筑(const : 1)/公路(const 2)/其他 etc...
-    nodeType: Number,//节点类型:树节点(枝) 或 模板节点(叶)
-    tplType: Number, //概算、预算、招投标 etc...
+    grpType: Number,  //建筑(const : 1)/公路(const 2)/其他 etc...
+    nodeType: Number, //节点类型:树节点(枝) 或 模板节点(叶)
+    tplType: Number,  //概算、预算、招投标 etc...
     userId: String,   //用户自定义模板用
-    refId: Number,   //
+    refId: Number,    //引用报表模板id (引用 collection: rpt_templates)
+    released: Boolean,//是否已发布, refId > -1 时才有意义
     name: String,
     isDeleted: Boolean
 });
 
-var TreeNodeModel = db.model("rpt_tpl_tree", TreeNodeSchema, "rpt_tpl_tree");
+let TreeNodeModel = mongoose.model("rpt_tpl_tree", TreeNodeSchema, "rpt_tpl_tree");
 
 module.exports = TreeNodeModel;

+ 5 - 1
modules/reports/util/rpt_util.js

@@ -1,8 +1,12 @@
 /**
  * Created by Tony on 2017/3/24.
  */
+let mongoose = require('mongoose');
+//let rpt_cfg_mdl = mongoose.model('rpt_cfg');
+
 let cache = require('../../../public/cache/cacheUtil');
-let Rpt_Cfg_Mdl = require('../models/rpt_cfg');
+//let Rpt_Cfg_Mdl = require('../models/rpt_cfg');
+let Rpt_Cfg_Mdl = mongoose.model('rpt_cfg');
 
 const RPT_CFG_GRP = 'rpt_cfg';
 

+ 11 - 3
operation.js

@@ -2,9 +2,6 @@ let express = require('express');
 
 let config = require("./config/config.js");
 config.setToQaDb();
-//config.setupCache();
-let cfgCacheUtil = require("./config/cacheCfg");
-cfgCacheUtil.setupDftCache();
 let dbm = require("./config/db/db_manager");
 
 let path = require('path');
@@ -21,6 +18,17 @@ let _rootDir = __dirname;
 
 dbm.connect();
 
+//引入报表模块
+fileUtils.getGlobbedFiles('./modules/reports/models/*.js').forEach(function(modelPath) {
+    require(path.resolve(modelPath));
+})
+
+
+//config.setupCache();
+let cfgCacheUtil = require("./config/cacheCfg");
+cfgCacheUtil.setupDftCache();
+
+
 app.use(express.static(_rootDir));
 
 app.set('views', path.join(__dirname, 'web'));

+ 1 - 0
public/web/sheet/sheet_common.js

@@ -33,6 +33,7 @@ var sheetCommonObj = {
         var spreadBook = new GC.Spread.Sheets.Workbook(container, { sheetCount: 1 });
         spreadBook.options.tabStripVisible = false;
         spreadBook.options.showHorizontalScrollbar = false;
+        spreadBook.options.scrollbarMaxAlign = true;
         var spreadNS = GC.Spread.Sheets;
         var sheet = spreadBook.getSheet(0);
         sheet.suspendPaint();

+ 5 - 7
web/maintain/bills_lib/html/main.html

@@ -129,16 +129,14 @@
     autoFlashHeight();
 </script>
 <script>
-    let userId = '<%= userID %>';
-    console.log(`userID: ${userId}`);
-    //let userAccount = '<%= userAccount %>';
-    mainAjax.getStdBillsLib(userId);
+    let userAccount = '<%= userAccount %>';
+    mainAjax.getStdBillsLib();
     $(document).ready(function(){
         //main 增删改
         $("#createA").click(function(){
             let billsLibName = $("#createText").val();
             if(billsLibName){
-                mainAjax.createStdBillsLib(userId, billsLibName);
+                mainAjax.createStdBillsLib(userAccount, billsLibName);
                 $("#createText").val("");
             }
             else{
@@ -152,7 +150,7 @@
        });
         $("#deleteA").click(function(){
             let deleteId = $(this).attr("deleteId");
-            mainAjax.deleteStdBillsLib(deleteId);
+            mainAjax.deleteStdBillsLib(userAccount, deleteId);
         });
 
        $("#showArea").on("click", "[data-target = '#edit']", function(){
@@ -165,7 +163,7 @@
             let newName = $("#renameText").val();
             let renameId = $(this).attr("renameId");
             if(newName){
-                mainAjax.renameStdBillsLib(renameId, newName);
+                mainAjax.renameStdBillsLib(userAccount, renameId, newName);
                 $("#renameText").val("");
             }
             else {

+ 2 - 1
web/maintain/bills_lib/html/neirong.html

@@ -201,6 +201,7 @@
     <SCRIPT type="text/javascript">
         let billsLibId = getQueryString("billsLibId");
         tools.redirect(billsLibId, 'stdBillsmain');
+        let userAccount = '<%= userAccount%>'
         let spreadAllJobs = new GC.Spread.Sheets.Workbook($('#spreadAllJobs')[0], {sheetCount: 1});
         let orgJobData;
         let maxJobNumer;
@@ -310,7 +311,7 @@
                 }
                 let encapDatas = tools.encapTotalJobsDatas(sheet, totalJobs, uncrossedDatas, crossedDatas);
                 if(encapDatas.updateDatas.length > 0 || encapDatas.createDatas.length >0){
-                    jobsAjax.pasteJobs(encapDatas, function(datas){
+                    jobsAjax.pasteJobs(userAccount, billsLibId, encapDatas, function(datas){
                         pasteController.pasteJobsFront(sheet, totalJobs,datas);
                     });
                 }

+ 4 - 3
web/maintain/bills_lib/html/qingdan.html

@@ -243,6 +243,7 @@
 </body>
 <script type="text/javascript">
     autoFlashHeight();
+    let userAccount = '<%= userAccount %>';
     let maxJobsNumber;
     let maxItemsNumber;
     let orgJobData;
@@ -669,7 +670,7 @@
                     sheet.clear(i, 0, 1, sheet.getColumnCount(), GC.Spread.Sheets.SheetArea.viewport,GC.Spread.Sheets.StorageType.data);
                 }
             }
-            billsAjax.pasteBills(billsLibId, validDatas);
+            billsAjax.pasteBills(userAccount, billsLibId, validDatas);
             setSheet.setMaxRowCount(sheet, sheetBillsDatas);
         });
     }
@@ -716,7 +717,7 @@
                 }
                 let pasteDatas = tools.encapData(uncrossedDatas, crossedDatas, controller, totalJobs);
                 if(pasteDatas.updateDatas.length > 0 || pasteDatas.createDatas.length > 0){
-                    billsAjax.pasteRel(pasteDatas.updateDatas, pasteDatas.createDatas, 'jobs', function(datas){
+                    billsAjax.pasteRel(userAccount, billsLibId, pasteDatas.updateDatas, pasteDatas.createDatas, 'jobs', function(datas){
                         pasteController.frontOperator(sheet, setting, controller, totalJobs, datas);
                     });
                 }
@@ -774,7 +775,7 @@
                 }
                 let pasteDatas = tools.encapItemsData(uncrossedDatas, crossedDatas, controller, totalItems);
                 if(pasteDatas.updateDatas.length > 0 || pasteDatas.createDatas.length > 0){
-                    billsAjax.pasteRel(pasteDatas.updateDatas, pasteDatas.createDatas, 'items', function(datas){
+                    billsAjax.pasteRel(userAccount, billsLibId, pasteDatas.updateDatas, pasteDatas.createDatas, 'items', function(datas){
                         pasteController.frontItemsRelOperator(sheet, setting, controller, totalItems, datas);
                     });
                 }

+ 3 - 2
web/maintain/bills_lib/html/tezheng.html

@@ -205,6 +205,7 @@
         let spreadVal = new GC.Spread.Sheets.Workbook($('#spreadEigenvalue')[0], {sheetCount: 1});
         let billsLibId = getQueryString('billsLibId');
         tools.redirect(billsLibId, 'stdBillsmain');
+        let userAccount = '<%= userAccount%>'
         let selectedId;
         let orgValue;
         let orgItemData;
@@ -359,7 +360,7 @@
                 }
                 let encapDatas = tools.encapTotalItemsDatas(sheet, totalItems, uncrossedDatas, crossedDatas);
                 if(encapDatas.updateDatas.length > 0 || encapDatas.createDatas.length > 0){
-                    itemsAjax.pasteItems(encapDatas, function(datas){
+                    itemsAjax.pasteItems(userAccount, billsLibId, encapDatas, function(datas){
                         pasteController.pasteItemsFront(sheet, totalItems, datas);
                     });
                 }
@@ -419,7 +420,7 @@
                 }
                 let encapDatas = tools.encapValues(sheet, totalItems, uncrossedDatas, crossedDatas);
                 if(encapDatas.updateDatas.length > 0 || encapDatas.createDatas.length > 0){
-                    itemsAjax.pasteValues(encapDatas, function(datas){
+                    itemsAjax.pasteValues(userAccount, billsLibId, encapDatas, function(datas){
                         pasteController.pasteValueFront(sheet, totalItems, datas);
                     });
                 }

+ 61 - 63
web/maintain/bills_lib/scripts/bills_lib_ajax.js

@@ -32,11 +32,10 @@ var mainAjax = {
             }
         });
     },
-    getStdBillsLib: function(userId){
+    getStdBillsLib: function(){
         $.ajax({
             type: "post",
             url: "/stdBillsEditor/getStdBillsLib",
-            data: {data: JSON.stringify({userId: userId})},
             dataType: "json",
             success: function(result){
                 if(result.data){
@@ -61,11 +60,11 @@ var mainAjax = {
             }
         });
     },
-    createStdBillsLib: function(userId, billsLibName){
+    createStdBillsLib: function(userAccount, billsLibName){
         $.ajax({
             type: "POST",
             url: "/stdBillsEditor/createStdBillsLib",
-            data: {data: JSON.stringify({userId: userId, name: billsLibName}) },
+            data: {data: JSON.stringify({userAccount: userAccount, name: billsLibName}) },
             dataType: "json",
             success: function(result){
                 if(!result.error){
@@ -84,11 +83,11 @@ var mainAjax = {
             }
         });
     },
-    deleteStdBillsLib: function(billsLibId){
+    deleteStdBillsLib: function(lastOperator, billsLibId){
         $.ajax({
             type: "POST",
             url: "/stdBillsEditor/deleteStdBillsLib",
-            data: {data: JSON.stringify({billsLibId: billsLibId})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId})},
             dataType: "json",
             success: function(result){
                 if(!result.error){
@@ -98,11 +97,11 @@ var mainAjax = {
             }
         });
     },
-    renameStdBillsLib: function(billsLibId, newName){
+    renameStdBillsLib: function(lastOperator, billsLibId, newName){
         $.ajax({
             type: "post",
             url: "/stdBillsEditor/renameStdbillsLib",
-            data: {data: JSON.stringify({id: billsLibId, value: newName})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, id: billsLibId, value: newName})},
             dataType: "json",
             success: function(result){
                 if(!result.error){
@@ -156,11 +155,11 @@ var billsAjax = {
             }
         });
     },
-    createBills: function(billsLibId, newId, pid, nid, updatePreData, callback){
+    createBills: function(lastOperator, billsLibId, newId, pid, nid, updatePreData, callback){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/createBills',
-            data: {data: JSON.stringify({billsLibId: billsLibId, newId: newId, ParentID: pid, NextSiblingID: nid, updatePreData: updatePreData})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, newId: newId, ParentID: pid, NextSiblingID: nid, updatePreData: updatePreData})},
             dataType: 'json',
             success: function(result){
                 if(!result.error){
@@ -171,11 +170,11 @@ var billsAjax = {
             }
         });
     },
-    upMove: function(billsLibId, updateDatas, callback){
+    upMove: function(lastOperator, billsLibId, updateDatas, callback){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/upMove',
-            data: {data: JSON.stringify({billsLibId: billsLibId, updateDatas: updateDatas})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, updateDatas: updateDatas})},
             dataType: 'json',
             success: function(result){
                 if(!result.error && callback){
@@ -184,11 +183,11 @@ var billsAjax = {
             }
         });
     },
-    downMove: function (billsLibId, updateDatas, callback) {
+    downMove: function (lastOperator, billsLibId, updateDatas, callback) {
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/downMove',
-            data: {data: JSON.stringify({billsLibId: billsLibId, updateDatas: updateDatas})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, updateDatas: updateDatas})},
             dataType: 'json',
             success: function(result){
                 if(!result.error && callback){
@@ -218,25 +217,24 @@ var billsAjax = {
             }
         });
     },
-    upLevel: function(billsLibId, updateDatas, callback){
+    upLevel: function(lastOperator, billsLibId, updateDatas, callback){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/upLevel',
-            data: {data: JSON.stringify({billsLibId: billsLibId, updateDatas: updateDatas})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, updateDatas: updateDatas})},
             dataType: 'json',
             success: function (result) {
-                console.log(`ssc`);
                 if(!result.error && callback){
                     callback();
                 }
             }
         })
     },
-    downLevel: function (billsLibId, updateDatas, callback) {
+    downLevel: function (lastOperator, billsLibId, updateDatas, callback) {
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/downLevel',
-            data: {data: JSON.stringify({billsLibId: billsLibId, updateDatas: updateDatas})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, updateDatas: updateDatas})},
             dataType: 'json',
             success: function (result) {
                 if(!result.error && callback){
@@ -245,11 +243,11 @@ var billsAjax = {
             }
         })
     },
-    deleteBills: function(billsLibId, deleteIds, updateNode, callback){
+    deleteBills: function(lastOperator, billsLibId, deleteIds, updateNode, callback){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/deleteBills',
-            data: {data: JSON.stringify({billsLibId: billsLibId, deleteIds: deleteIds, updateNode: updateNode})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, deleteIds: deleteIds, updateNode: updateNode})},
             dataType: 'json',
             success: function(result){
                 if(!result.error){
@@ -262,33 +260,33 @@ var billsAjax = {
 
         });
     },
-    updateBills: function(billsLibId, updateId, field, data){
+    updateBills: function(lastOperator, billsLibId, updateId, field, data){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/updateBills',
-            data: {data: JSON.stringify({billsLibId: billsLibId, updateId: updateId, field: field, data: data})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, updateId: updateId, field: field, data: data})},
             dataType: 'json',
             success: function(result){
 
             }
         });
     },
-    removeTotal: function (billsLibId, billsIds, delIds, field) {
+    removeTotal: function (lastOperator, billsLibId, billsIds, delIds, field) {
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/removeTotal',
-            data: {data: JSON.stringify({billsLibId: billsLibId, billsIds: billsIds, delIds: delIds, field: field})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, billsIds: billsIds, delIds: delIds, field: field})},
             dataType: 'json',
             success: function(result){
 
             }
         })
     },
-    updateSerialNo: function (billsLibId, billsId, updateArr, field, callback) {
+    updateSerialNo: function (lastOperator, billsLibId, billsId, updateArr, field, callback) {
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/updateSerialNo',
-            data: {data: JSON.stringify({billsLibId: billsLibId, billsId: billsId, updateArr: updateArr, field: field})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, billsId: billsId, updateArr: updateArr, field: field})},
             dataType: 'json',
             success: function (result) {
                 if(!result.error && callback){
@@ -297,11 +295,11 @@ var billsAjax = {
             }
         });
     },
-    updateBillsArr: function(billsLibId, updateId, orgId, newId, type, classify, callback){
+    updateBillsArr: function(lastOperator, billsLibId, updateId, orgId, newId, type, classify, callback){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/updateBillsArr',
-            data: {data: JSON.stringify({billsLibId: billsLibId, updateId: updateId, orgId: orgId, newId: newId, type: type, classify: classify})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, updateId: updateId, orgId: orgId, newId: newId, type: type, classify: classify})},
             dataType: 'json',
             success: function(result){
                 if(!result.error && callback){
@@ -310,33 +308,33 @@ var billsAjax = {
             }
         });
     },
-    pasteBills: function(billsLibId, datas){
+    pasteBills: function(lastOperator, billsLibId, datas){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/pasteBills',
-            data: {data: JSON.stringify({billsLibId: billsLibId, datas: datas})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, datas: datas})},
             dataType: 'json',
             success: function(result){
 
             }
         });
     },
-    updateRecharge: function(billsLibId, updateId, data){
+    updateRecharge: function(lastOperator, billsLibId, updateId, data){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/updateRecharge',
-            data: {data: JSON.stringify({billsLibId: billsLibId, updateId: updateId, data: data})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, updateId: updateId, data: data})},
             dataType: 'json',
             success: function(result){
 
             }
         });
     },
-    pasteRel: function (updateDatas, createDatas, field, callback) {
+    pasteRel: function (lastOperator, billsLibId, updateDatas, createDatas, field, callback) {
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/pasteRel',
-            data: {data:JSON.stringify({updateDatas: updateDatas, createDatas: createDatas, field: field})},
+            data: {data:JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, updateDatas: updateDatas, createDatas: createDatas, field: field})},
             dataType: 'json',
             success: function(result){
                 if(!result.error && callback){
@@ -374,11 +372,11 @@ var jobsAjax = {
             }
         });
     },
-    createJobContent: function(billsLibId, data, serialNo, callback){
+    createJobContent: function(lastOperator, billsLibId, data, serialNo, callback){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/createJobContent',
-            data: {data: JSON.stringify({billsLibId: billsLibId, data: data, serialNo: serialNo})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, data: data, serialNo: serialNo})},
             dataType: 'json',
             success: function(result){
                 if(!result.error && callback){
@@ -387,33 +385,33 @@ var jobsAjax = {
             }
         });
     },
-    updateJobContent: function(billsLibId, id, field, data){
+    updateJobContent: function(lastOperator, billsLibId, id, field, data){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/updateJobContent',
-            data: {data: JSON.stringify({billsLibId: billsLibId, updateId: id, field: field, data: data })},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, updateId: id, field: field, data: data })},
             dataType: 'json',
             success: function(result){
 
             }
         });
     },
-    deleteJobContent: function(billsLibId, ids){
+    deleteJobContent: function(lastOperator, billsLibId, ids){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/deleteJobContent',
-            data: {data: JSON.stringify({billsLibId: billsLibId, ids: ids})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, ids: ids})},
             dataType: 'json',
             success: function(result){
 
             }
         });
     },
-    pasteJobs: function(pasteDatas, callback){
+    pasteJobs: function(lastOperator, billsLibId, pasteDatas, callback){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/pasteJobs',
-            data: {data: JSON.stringify({pasteDatas: pasteDatas})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, pasteDatas: pasteDatas})},
             dataType: 'json',
             success: function(result){
                 if(!result.error && callback){
@@ -423,11 +421,11 @@ var jobsAjax = {
 
         });
     },
-    edCreateJob: function(billsLibId, billsId, data, code, serialNo, callback){
+    edCreateJob: function(lastOperator, billsLibId, billsId, data, code, serialNo, callback){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/edCreateJob',
-            data: {data: JSON.stringify({billsLibId: billsLibId, billsId:billsId, data: data, code: code, serialNo: serialNo})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, billsId:billsId, data: data, code: code, serialNo: serialNo})},
             dataType: 'json',
             success: function(result){
                 if(!result.error && callback){
@@ -436,11 +434,11 @@ var jobsAjax = {
             }
         });
     },
-    edUpdateJob: function(billsLibId, billsId, content, code, orgJobId, callback){
+    edUpdateJob: function(lastOperator, billsLibId, billsId, content, code, orgJobId, callback){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/edUpdateJob',
-            data: {data: JSON.stringify({billsLibId: billsLibId, billsId:billsId, content: content, code: code, orgJobId: orgJobId})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, billsId:billsId, content: content, code: code, orgJobId: orgJobId})},
             dataType: 'json',
             success: function(result){
                 if(!result.error && callback){
@@ -467,11 +465,11 @@ var itemsAjax = {
             }
         });
     },
-    createItemCharacter: function(billsLibId,  data, code, callback){
+    createItemCharacter: function(lastOperator, billsLibId,  data, code, callback){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/createItemCharacter',
-            data: {data: JSON.stringify({billsLibId: billsLibId, data: data, code: code})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, data: data, code: code})},
             dataType: 'json',
             success: function(result){
                 if(!result.error && callback){
@@ -480,44 +478,44 @@ var itemsAjax = {
             }
         });
     },
-    updateItemCharacter: function(billsLibId, id, field, data){
+    updateItemCharacter: function(lastOperator, billsLibId, id, field, data){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/updateItemCharacter',
-            data: {data: JSON.stringify({billsLibId: billsLibId, updateId: id, field: field, data: data })},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, updateId: id, field: field, data: data })},
             dataType: 'json',
             success: function(result){
 
             }
         });
     },
-    updateValue: function(billsLibId, id, data, deleteCodes, type){
+    updateValue: function(lastOperator, billsLibId, id, data, deleteCodes, type){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/updateValue',
-            data: {data: JSON.stringify({billsLibId: billsLibId, updateId: id, data: data, type: type, deleteCodes: deleteCodes})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, updateId: id, data: data, type: type, deleteCodes: deleteCodes})},
             dataType: 'json',
             success: function(reslut){
 
             }
         });
     },
-    deleteItemCharacter: function(billsLibId, ids){
+    deleteItemCharacter: function(lastOperator, billsLibId, ids){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/deleteItemCharacter',
-            data: {data: JSON.stringify({billsLibId: billsLibId, ids: ids})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, ids: ids})},
             dataType: 'json',
             success: function(result){
 
             }
         });
     },
-    pasteItems: function(pasteDatas, callback){
+    pasteItems: function(lastOperator, billsLibId, pasteDatas, callback){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/pasteItems',
-            data: {data: JSON.stringify({pasteDatas: pasteDatas})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, pasteDatas: pasteDatas})},
             dataType: 'json',
             success: function(result){
                 if(!result.error && callback){
@@ -527,11 +525,11 @@ var itemsAjax = {
 
         });
     },
-    pasteValues: function(pasteDatas, callback){
+    pasteValues: function(lastOperator, billsLibId, pasteDatas, callback){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/pasteValues',
-            data: {data: JSON.stringify({pasteDatas: pasteDatas})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, pasteDatas: pasteDatas})},
             dataType: 'json',
             success: function(result){
                 if(!result.error && callback){
@@ -540,11 +538,11 @@ var itemsAjax = {
             }
         });
     },
-    edCreateItem: function(billsLibId, billsId, data, code, serialNo, callback){
+    edCreateItem: function(lastOperator, billsLibId, billsId, data, code, serialNo, callback){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/edCreateItem',
-            data: {data: JSON.stringify({billsLibId: billsLibId, billsId:billsId, data: data, code: code, serialNo: serialNo})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, billsId:billsId, data: data, code: code, serialNo: serialNo})},
             dataType: 'json',
             success: function(result){
                 if(!result.error && callback){
@@ -553,11 +551,11 @@ var itemsAjax = {
             }
         });
     },
-    edUpdateItem: function(billsLibId, billsId, content, code, orgItemId, callback){
+    edUpdateItem: function(lastOperator, billsLibId, billsId, content, code, orgItemId, callback){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/edUpdateItem',
-            data: {data: JSON.stringify({billsLibId: billsLibId, billsId:billsId, content: content, code: code, orgItemId: orgItemId})},
+            data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, billsId:billsId, content: content, code: code, orgItemId: orgItemId})},
             dataType: 'json',
             success: function(result){
                 if(!result.error && callback){

+ 33 - 34
web/maintain/bills_lib/scripts/db_controller.js

@@ -8,11 +8,12 @@ var dbController = {
         if(controller.tree.items.length === 0){
             controller.tree.maxNodeID(0);
             let newNodeId = controller.tree.newNodeID();
-            billsAjax.createBills(billsLibId, newNodeId, -1 , -1, null, function(){
+            billsAjax.createBills(userAccount, billsLibId, newNodeId, -1 , -1, null, function(){
                 controller.insert();
                 controller.tree.selected.jobs = new Array();
                 controller.tree.selected.items = new Array();
                 controller.sheet.setTag(controller.tree.selected.serialNo(), 0, newNodeId);
+                sheetBillsDatas = tools.getsheetDatas(controller.sheet, 'bills', controller);
                 tools.btnAction(btn);
                 btn.attr('doing', 'false');
             });
@@ -23,7 +24,7 @@ var dbController = {
                 var updateId = node.getID(), createpid = node.getParentID(), createnid = node.getNextSiblingID();
                 let newNodeId = controller.tree.newNodeID();
                 let updatePreData = {ID: updateId, NextSiblingID: newNodeId};
-                billsAjax.createBills(billsLibId, newNodeId, createpid, createnid, updatePreData, function(){
+                billsAjax.createBills(userAccount, billsLibId, newNodeId, createpid, createnid, updatePreData, function(){
                     controller.insert();
                     controller.tree.selected.jobs = new Array();
                     controller.tree.selected.items = new Array();
@@ -38,7 +39,7 @@ var dbController = {
                 let updateId = updateNode.getID();
                 let newNodeId = controller.tree.newNodeID();
                 let updatePreData = {ID: updateId, NextSiblingID: newNodeId};
-                billsAjax.createBills(billsLibId, newNodeId, -1, -1, updatePreData, function(){
+                billsAjax.createBills(userAccount, billsLibId, newNodeId, -1, -1, updatePreData, function(){
                     controller.insert();
                     controller.tree.selected.jobs = new Array();
                     controller.tree.selected.items = new Array();
@@ -97,8 +98,7 @@ var dbController = {
                     }
                     updateData.push(updateD);
                 }
-                billsAjax.upLevel(billsLibId, updateData, function(){
-                    console.log(`enter upL`);
+                billsAjax.upLevel(userAccount, billsLibId, updateData, function(){
                     tools.btnAction(btn);
                     btn.attr('doing', 'false');
                     controller.upLevel();
@@ -137,7 +137,7 @@ var dbController = {
                     }
                     updateData.push(updateC);
                 }
-                billsAjax.downLevel(billsLibId, updateData, function(){
+                billsAjax.downLevel(userAccount, billsLibId, updateData, function(){
                     tools.btnAction(btn);
                     btn.attr('doing', 'false');
                     controller.downLevel();
@@ -168,7 +168,7 @@ var dbController = {
             };
             getDeleteIds(node);
             let updateNode = node.preSibling ? {ID: node.preSibling.getID(), NextSiblingID: node.getNextSiblingID()} : null;
-            billsAjax.deleteBills(billsLibId, deleteIds, updateNode, function(){
+            billsAjax.deleteBills(userAccount, billsLibId, deleteIds, updateNode, function(){
                 tools.btnAction(btn);
                 btn.attr('doing', 'false');
                 controller.delete();
@@ -228,7 +228,7 @@ var dbController = {
                     }
                     updateData.push(updateC);
                 }
-                billsAjax.upMove(billsLibId, updateData, function(){
+                billsAjax.upMove(userAccount, billsLibId, updateData, function(){
                     tools.btnAction(btn);
                     btn.attr('doing', 'false');
                     controller.upMove();
@@ -265,7 +265,7 @@ var dbController = {
                     };
                     updateData.push(updateC);
                 }
-                billsAjax.downMove(billsLibId, updateData);
+                billsAjax.downMove(userAccount, billsLibId, updateData);
                 tools.btnAction(btn);
                 btn.attr('doing', 'false');
                 controller.downMove();
@@ -286,7 +286,7 @@ var dbController = {
                         sheetBillsDatas.datasIdx['rowIdx'+ args.row][field] = args.editingText;
                     }
                 });
-                billsAjax.updateBills(billsLibId, updateId, field, args.editingText);
+                billsAjax.updateBills(userAccount, billsLibId, updateId, field, args.editingText);
                 //sheetBillsDatas = tools.getsheetDatas(controller.sheet, 'bills', controller);
             }
             else {
@@ -633,7 +633,7 @@ var tools = {
                     delJobsIds.push(obj.job.data.id)
                 }
             });
-            jobsAjax.deleteJobContent(delJobsIds);
+            jobsAjax.deleteJobContent(userAccount, billsLibId, delJobsIds);
             tools.clearData(jobsSheet);
             tools.orderReshowData(jobsSheet, controller.tree.selected.jobs, jobsSetting, 'job', true);
         }
@@ -645,7 +645,7 @@ var tools = {
                     delItemsIds.push(obj.item.data.id)
                 }
             });
-            itemsAjax.deleteItemCharacter(delItemsIds);
+            itemsAjax.deleteItemCharacter(userAccount, billsLibId, delItemsIds);
             tools.clearData(itemsSheet);
             tools.orderReshowData(itemsSheet, controller.tree.selected.items, itemsSetting, 'item', true);
         }
@@ -1676,7 +1676,7 @@ var jobsController = {
             //update--
             let serialNo = tools.getSerialNo(controller.tree.selected.jobs);
             //--
-            jobsAjax.edCreateJob(billsLibId, controller.tree.selected.getID(), newData, maxJobsNumber, serialNo, function(newJobId){
+            jobsAjax.edCreateJob(userAccount, billsLibId, controller.tree.selected.getID(), newData, maxJobsNumber, serialNo, function(newJobId){
                 var newJobData, newJob;
                 newJobData = {id: newJobId, content: newData, code: maxJobsNumber};
                 newJob = createObj.newJob(newJobData);
@@ -1723,7 +1723,7 @@ var jobsController = {
                     job.count++;
                     controller.tree.selected.jobs.splice(index, 1);
                     controller.tree.selected.jobs.splice(index, 0, {job: job, serialNo: serialNo});//update--
-                    billsAjax.updateBillsArr(billsLibId, controller.tree.selected.getID(), id, job.data.id, 'update', 'jobs');
+                    billsAjax.updateBillsArr(userAccount, billsLibId, controller.tree.selected.getID(), id, job.data.id, 'update', 'jobs');
                     tools.orderReshowData(sheet, controller.tree.selected.jobs, setting, 'job', true);
                 }
                 if(field === 'content' && job.data[field] === newData){
@@ -1732,7 +1732,7 @@ var jobsController = {
                     job.count++;
                     controller.tree.selected.jobs.splice(index, 1);
                     controller.tree.selected.jobs.splice(index, 0, {job: job, serialNo: serialNo});//update--
-                    billsAjax.updateBillsArr(billsLibId, controller.tree.selected.getID(), id, job.data.id, 'update', 'jobs');
+                    billsAjax.updateBillsArr(userAccount, billsLibId, controller.tree.selected.getID(), id, job.data.id, 'update', 'jobs');
                    // tools.reshowData(sheet, controller.tree.selected.jobs, setting, true);//update--
                     tools.orderReshowData(sheet,controller.tree.selected.jobs, setting, 'job', true);
                 }
@@ -1743,8 +1743,7 @@ var jobsController = {
                 maxJobsNumber++;
                 //let serialNo = tools.getSerialNo(controller.tree.selected.jobs);//update--
                 let serialNo = tools.getObj(controller.tree.selected.jobs, id, 'job').serialNo;
-                console.log(`upNe: serialNo: ${serialNo}`);
-                jobsAjax.edUpdateJob(billsLibId, controller.tree.selected.getID(), newData, maxJobsNumber, id, function(newJobId){//update--
+                jobsAjax.edUpdateJob(userAccount, billsLibId, controller.tree.selected.getID(), newData, maxJobsNumber, id, function(newJobId){//update--
                     var newJobData, newJob;
                     newJobData = {id: newJobId, content: newData, code: maxJobsNumber};
                     newJob = createObj.newJob(newJobData);
@@ -1888,7 +1887,7 @@ var itemsController = {
             maxItemsNumber++;
             let serialNo = tools.getSerialNo(controller.tree.selected.items);
             console.log(`billsLibId: ${billsLibId} billsId: ${controller.tree.selected.getID()} content: ${newData} code: ${maxItemsNumber}`);
-            itemsAjax.edCreateItem(billsLibId, controller.tree.selected.getID(), newData, maxItemsNumber, serialNo, function(newItemId){
+            itemsAjax.edCreateItem(userAccount, billsLibId, controller.tree.selected.getID(), newData, maxItemsNumber, serialNo, function(newItemId){
                 let newItemData, newItem;
                 newItemData = {id: newItemId, content: newData, code: maxItemsNumber};
                 newItem = createObj.newItem(newItemData);
@@ -1933,7 +1932,7 @@ var itemsController = {
                     item.count++;
                     controller.tree.selected.items.splice(index, 1);
                     controller.tree.selected.items.splice(index, 0, {item: item, serialNo: serialNo});
-                    billsAjax.updateBillsArr(billsLibId, controller.tree.selected.getID(), id, item.data.id, 'update', 'items');
+                    billsAjax.updateBillsArr(userAccount, billsLibId, controller.tree.selected.getID(), id, item.data.id, 'update', 'items');
                     tools.orderReshowData(sheet, controller.tree.selected.items, setting, 'item', true);
                 }
                 if(field === 'content' && item.data[field] === newData){
@@ -1942,7 +1941,7 @@ var itemsController = {
                     item.count++;
                     controller.tree.selected.items.splice(index, 1);
                     controller.tree.selected.items.splice(index, 0, {item: item, serialNo: serialNo});
-                    billsAjax.updateBillsArr(billsLibId, controller.tree.selected.getID(), id, item.data.id, 'update', 'items');
+                    billsAjax.updateBillsArr(userAccount, billsLibId, controller.tree.selected.getID(), id, item.data.id, 'update', 'items');
                     tools.orderReshowData(sheet, controller.tree.selected.items, setting, 'item', true);
                 }
             });
@@ -1951,7 +1950,7 @@ var itemsController = {
             if(field === 'content'){
                 maxItemsNumber++;
                 let serialNo = tools.getObj(controller.tree.selected.items, id, 'item').serialNo;
-                itemsAjax.edUpdateItem(billsLibId, controller.tree.selected.getID(), newData, maxItemsNumber, id, function(newItemId){
+                itemsAjax.edUpdateItem(userAccount, billsLibId, controller.tree.selected.getID(), newData, maxItemsNumber, id, function(newItemId){
                     var newItemData, newItem;
                     newItemData = {id: newItemId, content: newData, code: maxItemsNumber};
                     newItem = createObj.newItem(newItemData);
@@ -2017,7 +2016,7 @@ var itemsController = {
         controller.tree.selected.items[controller.tree.selected.args.row + 1].serialNo = tempSerialNo;
         updateSelArr.push({id: controller.tree.selected.items[controller.tree.selected.args.row].item.data.id, serialNo: controller.tree.selected.items[controller.tree.selected.args.row].serialNo});
         updateSelArr.push({id: controller.tree.selected.items[controller.tree.selected.args.row + 1].item.data.id, serialNo: controller.tree.selected.items[controller.tree.selected.args.row +1].serialNo});
-        billsAjax.updateSerialNo(billsLibId, controller.tree.selected.getID(), updateSelArr, 'items', function () {
+        billsAjax.updateSerialNo(userAccount, billsLibId, controller.tree.selected.getID(), updateSelArr, 'items', function () {
             tools.orderReshowData(sheet, controller.tree.selected.items, itemsSetting, 'item', true);
             sheet.setActiveCell(controller.tree.selected.args.row +1, controller.tree.selected.args.col);
             controller.tree.selected.args.row = controller.tree.selected.args.row +1;
@@ -2060,7 +2059,7 @@ var valueController = {
                         valueController.createValue(sheet, totalItems, selectedId, field, newValue);
                 }
                 else if(tagId && !isRepeat && newValue !== orgValue){//update
-                        valueController.updateValue(totalItems, tagId, newValue, field);
+                        valueController.updateValue(userAccount, totalItems, tagId, newValue, field);
                 }
                 if(isRepeat){
                     if(tagId && newValue){
@@ -2093,7 +2092,7 @@ var valueController = {
         console.log(`finItem`);
         console.log(totalItems.findItem(id).data);
         totalItems.findItem(id).data.itemValue.push(newData);
-        itemsAjax.updateValue(billsLibId, id, newData, null, 'create');
+        itemsAjax.updateValue(userAccount, billsLibId, id, newData, null, 'create');
     },
 
     updateValue: function(totalItems, tagId, newData, field){
@@ -2111,7 +2110,7 @@ var valueController = {
                 });
                 itemVals.splice(index, 0, updateEle);
             }
-            itemsAjax.updateValue(billsLibId, selectedId, updateData, null, 'update');
+            itemsAjax.updateValue(userAccount, billsLibId, selectedId, updateData, null, 'update');
         }
         else {
             if(typeof newData === 'number'){
@@ -2127,7 +2126,7 @@ var valueController = {
                     });
                     itemVals.splice(index, 0, updateEle);
                 }
-                itemsAjax.updateValue(billsLibId, selectedId, updateData, null, 'update');
+                itemsAjax.updateValue(userAccount, billsLibId, selectedId, updateData, null, 'update');
             }
             else {
                 //编号只能为数字!
@@ -2196,7 +2195,7 @@ var totalJobsController = {
         if(field === 'content'){
             maxJobsNumber++;
             let code = maxJobsNumber;
-            jobsAjax.createJobContent(billsLibId, newData, code, function(newJobId){
+            jobsAjax.createJobContent(userAccount, billsLibId, newData, code, function(newJobId){
                 let newJobData, newJob;
                 newJobData = {id: newJobId, content: newData, code: code};
                 newJob = createObj.newJob(newJobData);
@@ -2211,7 +2210,7 @@ var totalJobsController = {
             //if(typeof newData === 'number'){
             if(!isNaN(parseNum)){
                 maxJobsNumber = maxJobsNumber >= newData ? maxJobsNumber : newData;
-                jobsAjax.createJobContent(billsLibId, '', newData, function(newJobId){
+                jobsAjax.createJobContent(userAccount, billsLibId, '', newData, function(newJobId){
                     let newJobData, newJob;
                     newJobData = {id: newJobId, content: '', code: newData};
                     newJob = createObj.newJob(newJobData);
@@ -2241,7 +2240,7 @@ var totalJobsController = {
                 }
             });
             tools.reshowData(args.sheet, totalJobs.jobsArr, totalJobsSetting, true);
-            jobsAjax.updateJobContent(billsLibId, id, field, newData);
+            jobsAjax.updateJobContent(userAccount, billsLibId, id, field, newData);
         }
     }
 };
@@ -2275,7 +2274,7 @@ var totalItemsController = {
         if(field === 'content'){
             maxItemsNumber++;
             let code = maxItemsNumber;
-            itemsAjax.createItemCharacter(billsLibId, newData, code, function(newItemId){
+            itemsAjax.createItemCharacter(userAccount, billsLibId, newData, code, function(newItemId){
                 var newItemData, newItem;
                 newItemData = {id: newItemId, content: newData, code: code, itemValue: []};
                 newItem = createObj.newItem(newItemData);
@@ -2289,7 +2288,7 @@ var totalItemsController = {
         else {
             if(!isNaN(parseInt(newData))){
                 maxItemsNumber = maxItemsNumber >= newData ? maxItemsNumber : newData;
-                itemsAjax.createItemCharacter(billsLibId, '', newData, function(newItemId){
+                itemsAjax.createItemCharacter(userAccount, billsLibId, '', newData, function(newItemId){
                     var newItemData, newItem;
                     newItemData = {id: newItemId, content: '', code: newData, itemValue: []};
                     newItem = createObj.newItem(newItemData);
@@ -2317,7 +2316,7 @@ var totalItemsController = {
                 }
             });
             tools.reshowData(args.sheet, totalItems.itemsArr, totalItemsSetting, true);
-            itemsAjax.updateItemCharacter(billsLibId, id, field, newData);
+            itemsAjax.updateItemCharacter(userAccount, billsLibId, id, field, newData);
         }
     }
 };
@@ -2337,7 +2336,7 @@ var rechargeController = {
                 }
             }
             getupdateIds(tools.getRoot(selectedNode));*/
-            billsAjax.updateRecharge(billsLibId, updateId, newData);
+            billsAjax.updateRecharge(userAccount, billsLibId, updateId, newData);
         }
         else {
             $('exampleTextarea').val('');
@@ -2349,7 +2348,7 @@ var rechargeController = {
             tempId.push(node.getID());
             var rootNode = tools.getRoot(node);
             if(rootNode.data.recharge && rootNode !== node){
-                billsAjax.updateRecharge(billsLibId, tempId, rootNode.data.recharge);
+                billsAjax.updateRecharge(userAccount, billsLibId, tempId, rootNode.data.recharge);
                 node.data.recharge = rootNode.data.recharge;
                 $('#exampleTextarea').val(node.data.recharge);
             }

+ 5 - 4
web/maintain/bills_lib/scripts/set_sheets.js

@@ -11,6 +11,7 @@ var setSheet = {
         spread.options.scrollbarMaxAlign = true;
         spread.options.allowCopyPasteExcelStyle = false;
         spread.options.allowExtendPasteRange = isExtendPaste? true : false;
+        spread.getActiveSheet().options.allowCellOverflow = false;
         sheet.showRowOutline(false);
        // sheet.defaults.rowHeight = 30;
         setting.cols.forEach(function(col, colIdx){
@@ -119,7 +120,7 @@ var myKey = {
                     //deleteFrontData
                     //tools.reshowData(sheet, controller.tree.selected[classify], setting, true);
                     //deleteDB
-                    billsAjax.updateBillsArr(billsLibId, controller.tree.selected.getID(), ids, null, 'delete', classify, function(){
+                    billsAjax.updateBillsArr(userAccount, billsLibId, controller.tree.selected.getID(), ids, null, 'delete', classify, function(){
                         tools.orderReshowData(sheet, controller.tree.selected[classify], setting, classifyStr, true);
                     });
                     /*if(result.length > 0){
@@ -177,7 +178,7 @@ var myKey = {
                     totalJobs.jobsArr.sort(myCompareCode);
                     maxJobsNumber = totalJobs.jobsArr.length > 0 ? totalJobs.jobsArr[0].data.code : 0;
                     tools.reshowData(sheet, totalJobs.jobsArr, setting, true);
-                    billsAjax.removeTotal(billsLibId, billsIds, ids, 'jobs');
+                    billsAjax.removeTotal(userAccount, billsLibId, billsIds, ids, 'jobs');
                 }
                 spread.resumeEvent();
             });
@@ -203,7 +204,7 @@ var myKey = {
                     totalItems.itemsArr.sort(myCompareCode);
                     maxItemsNumber = totalItems.itemsArr.length > 0 ? totalItems.itemsArr[0].code : 0;
                     tools.reshowData(sheet, totalItems.itemsArr, setting, true);
-                    billsAjax.removeTotal(billsLibId, billsIds, ids, 'items');
+                    billsAjax.removeTotal(userAccount, billsLibId, billsIds, ids, 'items');
                     //reshowVal
                     if(totalItems.itemsArr.length > 0){
                         selectedId = totalItems.itemsArr[0].data.id;
@@ -235,7 +236,7 @@ var myKey = {
                 });
                 tools.reshowValue(sheet, valsArr, setting, true);
                 //deleteDb
-                itemsAjax.updateValue(billsLibId, selectedId, null, ids, 'delete');
+                itemsAjax.updateValue(userAccount, billsLibId, selectedId, null, ids, 'delete');
                 spread.resumeEvent();
             });
             spread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.del, false, false, false, false);

+ 20 - 20
web/maintain/ration_repository/dinge.html

@@ -440,48 +440,47 @@
             </div>
         </div>
         <!--弹出警告窗-->
-        <button id="alertModalBtn" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#alertModal" style="display: none"></button>
-        <div class="modal fade" id="alertModal" data-backdrop="static" style="display: none;" aria-hidden="true">
-            <input type="hidden" id="codedid" value="123">
+        <button id="rationAlertBtn" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#rationAlert" style="display: none"></button>
+        <div class="modal fade" id="rationAlert" data-backdrop="static" style="display: none;" aria-hidden="true">
+            <input type="hidden" id="gdid" value="123">
             <div class="modal-dialog" role="document">
                 <div class="modal-content">
                     <div class="modal-header">
-                        <h5 class="modal-title">警告</h5>
-                        <button type="button" id="alertModalCls" class="close" data-dismiss="modal" aria-label="Close">
+                        <h5 class="modal-title">取消确认</h5>
+                        <button type="button" id="rationAlertCls" class="close" data-dismiss="modal" aria-label="Close">
                             <span aria-hidden="true">×</span>
                         </button>
                     </div>
                     <div class="modal-body">
-                        <h5 class="text-danger" id="alertText">输入的编号已存在,请重新输入!</h5>
+                        <h5 class="text-danger" id="alertRationTxt">编号不可为空!是否取消操作?</h5>
                     </div>
                     <div class="modal-footer">
-                        <button type="button" class="btn btn-danger" id="alertModalCof" data-dismiss="modal">确认</button>
+                        <button type="button" class="btn btn-secondary" id="rationAlertCac" data-dismiss="modal">取消</button>
+                        <a href="javascript: void(0);" id="rationAlertCof" class="btn btn-danger" data-dismiss="modal">确认</a>
                     </div>
                 </div>
             </div>
         </div>
-        <button id="ctxmenuBtn" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#ctxmenu" style="display: none"></button>
-        <div class="modal" id="ctxmenu" data-backdrop="static" style="display: none;" aria-hidden="true">
-            <input type="hidden"  value="123">
+        <button id="alertModalBtn" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#alertModal" style="display: none"></button>
+        <div class="modal fade" id="alertModal" data-backdrop="static" style="display: none;" aria-hidden="true">
+            <input type="hidden" id="codedid" value="123">
             <div class="modal-dialog" role="document">
                 <div class="modal-content">
+                    <div class="modal-header">
+                        <h5 class="modal-title">警告</h5>
+                        <button type="button" id="alertModalCls" class="close" data-dismiss="modal" aria-label="Close">
+                            <span aria-hidden="true">×</span>
+                        </button>
+                    </div>
                     <div class="modal-body">
-                        <button type="button" class="btn btn-danger" id="ctxAdd" data-dismiss="modal">添加</button>
-                        <button type="button" class="btn btn-danger" id="ctxDel" data-dismiss="modal">删除</button>
+                        <h5 class="text-danger" id="alertText">输入的编号已存在,请重新输入!</h5>
                     </div>
                     <div class="modal-footer">
-                        <!--<button type="button" class="btn btn-danger" id="alertModalCof" data-dismiss="modal">确认</button>-->
+                        <button type="button" class="btn btn-danger" id="alertModalCof" data-dismiss="modal">确认</button>
                     </div>
                 </div>
             </div>
         </div>
-        <!--contextMenu-->
-        <div class="contextMenu" id="myMenu">
-            <ul>
-                <li id="insert">添加</li>
-                <li id="delete">删除</li>
-            </ul>
-        </div>
         <!-- JS. -->
         <script src = "/lib/spreadjs/sheets/gc.spread.sheets.all.10.0.1.min.js"></script>
         <script>GC.Spread.Sheets.LicenseKey = "559432293813965#A0y3iTOzEDOzkjMyMDN9UTNiojIklkI1pjIEJCLi4TPB9mM5AFNTd4cvZ7SaJUVy3CWKtWYXx4VVhjMpp7dYNGdx2ia9sEVlZGOTh7NRlTUwkWR9wEV4gmbjBDZ4ElR8N7cGdHVvEWVBtCOwIGW0ZmeYVWVr3mI0IyUiwCMzETN8kzNzYTM0IicfJye&Qf35VfiEzRwEkI0IyQiwiIwEjL6ByUKBCZhVmcwNlI0IiTis7W0ICZyBlIsIyNyMzM5ADI5ADNwcTMwIjI0ICdyNkIsIibj9SbvNmL4N7bjRnch56ciojIz5GRiwiI8+Y9sWY9QmZ0Jyp96uL9v6L0wap9biY9qiq95q197Wr9g+89iojIh94Wiqi";</script>
@@ -507,6 +506,7 @@
         <script type="text/javascript" src="/public/web/QueryParam.js"></script>
         <script type="text/javascript" src="/public/web/storageUtil.js"></script>
         <script type="text/javascript">
+            let userAccount = '<%=userAccount %>';
             var setting = {
                 view: {
                     addHoverDom: zTreeOprObj.addHoverDom,

+ 1 - 0
web/maintain/ration_repository/gongliao.html

@@ -226,6 +226,7 @@
     <script type="text/javascript" src="/public/web/sheet/sheet_common.js"></script>
     <script type="text/javascript" src="/public/web/storageUtil.js"></script>
     <script type="text/javascript">
+        let userAccount = '<%=userAccount %>';
         var gljSetting = {
             view: {
                 addHoverDom: gljTypeTreeOprObj.addHoverDom,

+ 3 - 0
web/maintain/ration_repository/js/main.js

@@ -44,6 +44,7 @@ function addEvent_EditLib(){
 
 $("#deleteLib").click(function(){
     var rationLibName = $("#did").val();
+    //let lastOperator = userAccount;
     $.ajax({
         type:"POST",
         url:"api/deleteRationLibs",
@@ -134,6 +135,8 @@ $("#rationAdd").click(function(){
     newRationRepObj.dispName = str;
     newRationRepObj.appType = "建筑";
     newRationRepObj.descr = "";
+    newRationRepObj.creator = userAccount;
+    newRationRepObj.lastOperator = userAccount;
     addRationRepository(newRationRepObj, $tdId);
 });
 

+ 191 - 19
web/maintain/ration_repository/js/ration.js

@@ -15,6 +15,7 @@ var rationOprObj = {
     currentRations: {},
     currentEditingRation: null,
     currentSectionId: -1,
+    rationsCodes: [],
     setting: {
         header:[
             {headerName:"编码",headerWidth:120,dataCode:"code", dataType: "String", formatter: "@"},
@@ -40,21 +41,26 @@ var rationOprObj = {
         }
     },
     buildSheet: function(container) {
+        let rationRepId = getQueryString("repository");
         var me = rationOprObj;
         me.workBook = sheetCommonObj.buildSheet(container, me.setting, 30);
+        me.workBook.options.showHorizontalScrollbar = true;
+        me.getRationsCodes(rationRepId);
+        me.rationDelOpr();
         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.ClipboardPasting, me.onClipboardPasting);
         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.ClipboardPasted, me.onClipboardPasted);
+        me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.EnterCell, me.onEnterCell);
         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.EditStarting, me.onCellEditStart);
         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.EditEnded, me.onCellEditEnd);
-        me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.RangeChanged, me.onRangeChanged);
+        //me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.RangeChanged, me.onRangeChanged);
         me.workBook.getSheet(0).bind(GC.Spread.Sheets.Events.CellClick, me.onCellClick);
     },
+
     onCellClick: function(sender, args) {
         var me = rationOprObj,
             sheetGLJ = rationGLJOprObj.sheet, settingGLJ = rationGLJOprObj.setting,
             sheetCoe = rationCoeOprObj.sheet, settingCoe = rationCoeOprObj.setting,
             sheetAss = rationAssistOprObj.sheet, settingAss = rationAssistOprObj.setting;
-
         sheetCommonObj.cleanSheet(sheetGLJ, settingGLJ, -1);
         sheetCommonObj.shieldAllCells(sheetGLJ);
         sheetCommonObj.cleanSheet(sheetCoe, settingCoe, -1);
@@ -119,7 +125,66 @@ var rationOprObj = {
         }
         return cacheSection;
     },
+    rationDelOpr: function () {
+        console.log(`rebuildDelete`);
+        let me = rationOprObj;
+        me.workBook.commandManager().register('rationDelete', function () {
+            let rationSheet = me.workBook.getActiveSheet();
+            let sels = rationSheet.getSelections(), updateArr = [], removeArr = [], lockCols = me.setting.view.lockColumns;
+            let cacheSection = me.getCache();
+            if(sels.length > 0){
+                for(let sel = 0; sel < sels.length; sel++){
+                    if(sels[sel].colCount === me.setting.header.length){
+                        if(cacheSection){
+                            for(let i = 0; i < sels[sel].rowCount; i++){
+                                if(sels[sel].row + i < cacheSection.length){
+                                    removeArr.push(cacheSection[sels[sel].row + i].ID);
+                                    me.rationsCodes.splice(me.rationsCodes.indexOf(cacheSection[sels[sel].row + i].code), 1);
+                                    console.log(`me.rationsCodes`);
+                                    console.log(me.rationsCodes);
+                                }
+                            }
+                        }
+                    }
+                    else{
+                        if(sels[sel].col === 0){
+                            $('#alertText').text("编号不能为空,修改失败!");
+                            $('#alertModalBtn').click();
+                            rationSheet.options.isProtected = true;
+                            $('#alertModalCls').click(function () {
+                                rationSheet.options.isProtected = false;
+                            });
+                            $('#alertModalCof').click(function () {
+                                rationSheet.options.isProtected = false;
+                            })
+                        }
+                        else if(sels[sel].col !== 0 && !(sels[sel].col === 3 && sels.col + sels[sel].colCount -1 === 6)){
+                            if(cacheSection){
+                                for(let i =0; i < sels[sel].rowCount; i++){
+                                    if(sels[sel].row + i < cacheSection.length){
+                                        for(let col = sels[sel].col; col <= sels[sel].col + sels[sel].colCount - 1; col++){
+                                            if(lockCols.indexOf(col) === -1){
+                                                cacheSection[sels[sel].row + i][me.setting.header[col].dataCode] = '';
+                                            }
+                                        }
+                                    }
+                                    updateArr.push(cacheSection[sels[sel].row + i]);
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+            if(updateArr.length > 0 || removeArr.length > 0){
+                me.mixUpdateRequest(updateArr, [], removeArr);
+            }
+
+        });
+        me.workBook.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.del, false, false, false, false);
+        me.workBook.commandManager().setShortcutKey('rationDelete', GC.Spread.Commands.Key.del, false, false, false, false);
+    },
     onRangeChanged: function(sender, args) {
+        console.log(`sdad`);
         if (args.action == GC.Spread.Sheets.RangeChangedAction.clear) {
             var me = rationOprObj, updateArr = [], removeArr = [];
             var cacheSection = me.getCache();
@@ -135,6 +200,16 @@ var rationOprObj = {
                             break;
                         }
                     }
+                    if(isEmpty){
+                        if(args.row + i < cacheSection.length){
+                            rObj.ID = cacheSection[args.row + i].ID;
+                            removeArr.push(rObj.ID);
+                        }
+                    }
+                    else{
+
+                    }
+
                     if (hasUpdate) {
                         if (isEmpty) {
                             removeArr.push(rObj);
@@ -146,18 +221,56 @@ var rationOprObj = {
                         }
                     }
                 }
-                me.mixUpdateRequest(updateArr, [], removeArr);
+              //  me.mixUpdateRequest(updateArr, [], removeArr);
                 //removeRationItems
             }
         }
     },
+    onEnterCell: function (sender, args) {
+        let me = rationOprObj;
+        me.cellRowIdx = args.row;
+        let isHasData = false;
+        if(me.addRationItem){
+            for(let i=0; i<me.setting.header.length; i++){
+                if(me.addRationItem[me.setting.header[i].dataCode]){
+                    isHasData = true;
+                    break;
+                }
+            }
+        }
+        if(isHasData){
+            if(me.editingRowIdx !== me.cellRowIdx) {
+                let focusToCol = !me.addRationItem.code ? 0 : -1;
+             //   else {
+                if(focusToCol !== -1){
+                    $('#rationAlertBtn').click();
+                    me.workBook.getSheet(0).options.isProtected = true;
+                    $('#rationAlertCac').click(function () {
+                        me.workBook.getSheet(0).options.isProtected = false;
+                        me.workBook.getSheet(0).setActiveCell(me.editingRowIdx, focusToCol);
+                    });
+                    $('#rationAlertCls').click(function () {
+                        me.workBook.getSheet(0).options.isProtected = false;
+                        me.workBook.getSheet(0).setActiveCell(me.editingRowIdx, focusToCol);
+                    });
+                    $('#rationAlertCof').click(function () {
+                        me.workBook.getSheet(0).options.isProtected = false;
+                        me.addRationItem = null;
+                        for(let col=0; col<me.setting.header.length; col++){
+                            me.workBook.getSheet(0).getCell(me.editingRowIdx, col).value(me.currentEditingRation[me.setting.header[col].dataCode]);
+                        }
+                        me.workBook.getSheet(0).setActiveCell(me.editingRowIdx, 0);
+                    });
+                }
+               // }
+            }
+        }
+    },
     onCellEditStart: function(sender, args) {
         var me = rationOprObj;
         //var rObj = sheetCommonObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row);
         var rObj = sheetCommonObj.combineRationRowData(me.workBook.getSheet(0), me.setting, args.row);
         me.currentEditingRation = rObj;
-        console.log(`currentEditingRation`);
-        console.log(me.currentEditingRation);
         var cacheSection = me.getCache();
         if (cacheSection) {
             for (var j = 0; j < cacheSection.length; j++) {
@@ -172,18 +285,51 @@ var rationOprObj = {
         //var me = rationOprObj, rObj = sheetCommonObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row),
         var me = rationOprObj, rObj = sheetCommonObj.combineRationRowData(me.workBook.getSheet(0), me.setting, args.row),
             updateArr = [], addArr = [];
-        console.log(`editEnd`);
-        console.log(rObj);
+        let dataCode = me.setting.header[args.col].dataCode;
+        me.editingRowIdx = args.row;
         if (me.currentEditingRation["ID"]) {
             rObj["ID"] = me.currentEditingRation["ID"];
-            updateArr.push(rObj);
-        } else {
+            //updateArr.push(rObj);
+            for(let col =0; col< me.setting.header.length; col++){
+                if(me.currentEditingRation[me.setting.header[col].dataCode] !== rObj[me.setting.header[col].dataCode]){
+                    me.addRationItem = rObj;
+                    if(rObj[me.setting.header[0].dataCode]){
+                        updateArr.push(rObj);
+                        break;
+                    }
+                }
+            }
+        } else if(!me.currentEditingRation["ID"]) {
             if (!sheetCommonObj.chkIfEmpty(rObj, me.setting)) {
-                addArr.push(rObj);
+                //addArr.push(rObj);
+                me.addRationItem = rObj;
+                if(rObj.code){
+                    if(me.rationsCodes.indexOf(rObj.code) === -1){
+                        addArr.push(rObj);
+                        me.rationsCodes.push(rObj.code);
+                        me.addRationItem = null;
+                    }
+                    else{
+                        $('#alertModalBtn').click();
+                        me.workBook.getSheet(0).options.isProtected = true;
+                        $('#alertModalCls').click(function () {
+                            me.workBook.getSheet(0).options.isProtected = false;
+                            me.addRationItem.code = '';
+                            me.workBook.getSheet(0).setValue(args.row, args.col, '');
+                            me.workBook.getSheet(0).setActiveCell(args.row, args.col);
+                        });
+                        $('#alertModalCof').click(function () {
+                            me.workBook.getSheet(0).options.isProtected = false;
+                            me.addRationItem.code = '';
+                            me.workBook.getSheet(0).setValue(args.row, args.col, '');
+                            me.workBook.getSheet(0).setActiveCell(args.row, args.col);
+                        });
+                    }
+                }
             }
         }
-        me.currentEditingRation = null;
         if (updateArr.length > 0 || addArr.length > 0) {
+            me.currentEditingRation = null;
             me.mixUpdateRequest(updateArr, addArr, []);
         }
     },
@@ -200,6 +346,8 @@ var rationOprObj = {
         console.log(info);
         var me = rationOprObj;
         var cacheSection = me.getCache();
+        console.log(`cache`);
+        console.log(cacheSection);
         var updateArr = [], addArr = [];
         var items = sheetCommonObj.analyzePasteData(me.setting, info);
         console.log(`items`);
@@ -214,19 +362,39 @@ var rationOprObj = {
                         break;
                     }
                 }
-                if (!hasCacheItem) {
+                if (!hasCacheItem && info.cellRange.col === 0) {
                     addArr.push(items[i]);
-                } else {
+                } else if(hasCacheItem){
                     updateArr.push(items[i]);
                 }
             } else {
-                addArr.push(items[i])
+                //add
+                if(info.cellRange.col === 0){
+                    addArr.push(items[i])
+                }
             }
         };
+        console.log(`updateArr`);
+        console.log(updateArr);
+        console.log(addArr);
         if (updateArr.length > 0 || addArr.length > 0) {
             //me.mixUpdateRequest(updateArr, addArr, []);
         }
     },
+    getRationsCodes: function (repId) {
+        let me = rationOprObj;
+        $.ajax({
+            type: 'post',
+            url: 'api/getRationsCodes',
+            data: {data: JSON.stringify({repId: repId})},
+            dataType: 'json',
+            success: function (result) {
+                if(!result.error){
+                    me.rationsCodes = result.data;
+                }
+            }
+        })
+    },
     mixUpdateRequest: function(updateArr, addArr, removeIds) {
         var me = rationOprObj;
         $.ajax({
@@ -260,8 +428,6 @@ var rationOprObj = {
             var me = rationOprObj;
             me.currentSectionId = sectionID;
             if (me.currentRations["_SEC_ID_" + sectionID]) {
-                console.log(`currentRations`);
-                console.log(me.currentRations);
                 me.showRationItems(sectionID);
                 ///sheetCommonObj.unShieldAllCells(me.workBook.getSheet(0));
                 sheetCommonObj.lockCells(rationGLJOprObj.sheet, rationGLJOprObj.setting);
@@ -279,6 +445,7 @@ var rationOprObj = {
                     success:function(result){
                         if (result) {
                             me.currentRations["_SEC_ID_" + sectionID] = result.data;
+                            me.sortByCode(me.currentRations["_SEC_ID_" + sectionID]);
                             me.showRationItems(sectionID);
                             //sheetCommonObj.unShieldAllCells(me.workBook.getSheet(0));
                             sheetCommonObj.lockCells(me.workBook.getSheet(0), rationOprObj.setting);
@@ -315,9 +482,14 @@ var rationOprObj = {
     sortByCode: function(arr){
         function compare(){
             return function (a, b) {
-                let valA = a.code,
-                    valB = b.code;
-                return valA - valB;
+                let rst = 0;
+                if (a.code > b.code) {
+                    rst = 1;
+                }
+                else if (a.code < b.code) {
+                    rst = -1;
+                }
+                return rst;
             }
         }
         arr.sort(compare());

+ 1 - 9
web/maintain/ration_repository/js/ration_glj.js

@@ -149,6 +149,7 @@ var rationGLJOprObj = {
                         })
                     }
                     else{
+                        args.sheet.setValue(args.row, args.col, parseNum);
                         editGlj["consumeAmt"] = parseNum;
                         me.updateRationItem();
                     }
@@ -182,19 +183,10 @@ var rationGLJOprObj = {
             selector: '#rdSpread',
             callback: function(key, options) {
                 var m = "clicked: " + key;
-                console.log(`maincbkey`);
-                console.log(key);
-                console.log(`maincbOp`);
-                console.log(options);
                 window.console && console.log(m) || alert(m);
             },
             items: {
                 "insert": {name: "插入", callback: function (key, opt) {
-                    console.log(`key`);
-                    console.log(key);
-                    console.log(`opt`);
-                    console.log(opt);
-                    console.log(opt.position());
                 }},
                 "delete": {name: "删除"}
             }

+ 1 - 1
web/maintain/ration_repository/main.html

@@ -130,7 +130,7 @@
     <script type="text/javascript" src="/public/web/storageUtil.js"></script>
 </body>
 <script type="text/javascript">
-
+let userAccount = '<%=userAccount %>';
 </script>
 
 </html>

+ 2 - 2
web/maintain/report/js/rpt_tpl_main.js

@@ -15,7 +15,7 @@ let zTreeOprObj = {
     getReportTemplateTree: function(grpType) {
         let me = zTreeOprObj, params = {};
         params.grpType = grpType;
-        params.userId = userID;
+        params.userId = (userAccount ===  'admin')?('-100'):userID;
         params.tplType = RT.TplType.ALL;
         CommonAjax.postEx("report_tpl_api/getRptTplTree", params, 20000, true, function(result){
                 zTreeHelper.createTree(result, setting, "rptTplTree", me);
@@ -159,7 +159,7 @@ let zTreeOprObj = {
             grpType: RT.GrpType.CONSTRUCT,
             nodeType: RT.NodeType.NODE,
             tplType: RT.TplType.ALL,
-            userId: userID,
+            userId: (userAccount ===  'admin')?('-100'):userID,
             refId: -1,
             name: '新增节点'
         };