Explorar el Código

定额库recentOpr

zhongzewei hace 8 años
padre
commit
0b6a678032

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

@@ -22,10 +22,11 @@ class RationController extends BaseController{
     mixUpdateRationItems(req, res){
         var sectionId = req.body.sectionID,
             rationLibId = req.body.rationLibId,
+            lastOpr = req.body.lastOpr,
             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){
+        rationItem.mixUpdateRationItems(rationLibId, lastOpr, sectionId, updateItems, addItems, removeIds, function(err, message, rst){
             if (err) {
                 callback(req, res, err, message, null);
             } else {

+ 4 - 3
modules/ration_repository/controllers/ration_repository_controller.js

@@ -47,8 +47,8 @@ class RationRepositoryController extends baseController{
         })
     }
     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){
+        var rationName = req.body.rationName, lastOperator = req.body.lastOperator;
+        rationRepository.deleteRationLib(rationName, lastOperator, function(err,data){
             if (data) {
                 callback(req, res, err, "has data", data);
             } else {
@@ -59,7 +59,8 @@ class RationRepositoryController extends baseController{
     updateRationRepositoryName(req, res) {
         var orgName = req.body.rationName;
         var newName = req.body.newName;
-        rationRepository.updateName(orgName, newName, function(err, data){
+        var lastOperator = req.body.lastOperator;
+        rationRepository.updateName(orgName, newName, lastOperator, function(err, data){
             if (data) {
                 callback(req, res, err, "has data", data);
             } else {

+ 8 - 3
modules/ration_repository/controllers/ration_section_tree_controller.js

@@ -25,14 +25,17 @@ class RationChapterTreeController extends BaseController{
     createNewNode(req, res){
         var libId = req.body.rationLibId;
         var lastNodeId = req.body.lastNodeId;
+        let lastOpr = req.body.lastOpr;
         var nodeData = JSON.parse(req.body.rawNodeData);
-        rationChapterTreeData.createNewNode(libId, lastNodeId, nodeData, function(err,data){
+        rationChapterTreeData.createNewNode(lastOpr, 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){
+        let lastOpr = req.body.lastOpr;
+        let repId = req.body.repId;
+        rationChapterTreeData.updateNodes(repId, lastOpr, nodes, function(err,results){
             callback(req,res, err, "", results)
         });
     }
@@ -40,7 +43,9 @@ class RationChapterTreeController extends BaseController{
         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){
+        let repId = req.body.repId;
+        let lastOpr = req.body.lastOpr;
+        rationChapterTreeData.removeNodes(repId, lastOpr, nodes, preNodeId, preNodeNextId, function(err,results){
             callback(req,res, err, "", results)
         });
     }

+ 10 - 5
modules/ration_repository/controllers/repository_glj_controller.js

@@ -28,14 +28,17 @@ class RepositoryGljController extends BaseController{
     createNewGljTypeNode(req, res) {
         var repId = req.body.repositoryId;
         var lastNodeId = req.body.lastNodeId;
+        let lastOpr = req.body.lastOpr;
         var nodeData = JSON.parse(req.body.rawNodeData);
-        gljRepository.createNewNode(repId, lastNodeId, nodeData, function(err, msg, data){
+        gljRepository.createNewNode(repId, lastOpr, 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){
+        let repId = req.body.repId,
+            lastOpr = req.body.lastOpr;
+        gljRepository.updateNodes(repId, lastOpr, nodes, function(err,results){
             callback(req,res, err, results)
         });
     }
@@ -43,7 +46,8 @@ class RepositoryGljController extends BaseController{
         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){
+        let repId = req.body.repId, lastOpr = req.body.lastOpr;
+        gljRepository.removeNodes(repId, lastOpr, nodes, preNodeId, preNodeNextId, function(err,results){
             callback(req,res, err, results)
         });
     }
@@ -82,8 +86,9 @@ class RepositoryGljController extends BaseController{
         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){
+            removeIds = JSON.parse(req.body.removeIds),
+            lastOpr = req.body.lastOpr;
+        gljRepository.mixUpdateGljItems(repId, lastOpr, updateItems, addItems, removeIds, function(err, message, rst){
             if (err) {
                 callback(req, res, err, message, null);
             } else {

+ 99 - 28
modules/ration_repository/models/glj_repository.js

@@ -35,7 +35,7 @@ var gljTypeModel = db.model("std_ration_lib_glj_type",gljClassSchema, "std_ratio
 var gljItemModel = db.model("std_ration_lib_glj_list",gljSchema, "std_ration_lib_glj_list");
 var repositoryMap = require('./repository_map');
 var counter = require('../../../public/counter/counter');
-let rationItemDao = require('./ration_item');
+let moment = require('moment');
 
 var gljItemDAO = function(){};
 gljItemDAO.prototype.getGljTypes = function(rationLibId, callback){
@@ -81,18 +81,18 @@ gljItemDAO.prototype.getGljItemsByCode = function(repositoryId, codes, callback)
     })
 };
 
-gljItemDAO.prototype.mixUpdateGljItems = function(repId, updateItems, addItems, rIds, callback) {
+gljItemDAO.prototype.mixUpdateGljItems = function(repId, lastOpr, updateItems, addItems, rIds, callback) {
     var me = this;
     if (updateItems.length == 0 && rIds.length == 0) {
-        me.addGljItems(repId, addItems, callback);
+        me.addGljItems(repId, lastOpr, addItems, callback);
     } else {
-        me.removeGljItems(rIds, function(err, message, docs) {
-            me.updateGljItems(repId, updateItems, function(err, results){
+        me.removeGljItems(repId, lastOpr, rIds, function(err, message, docs) {
+            me.updateGljItems(repId, lastOpr, updateItems, function(err, results){
                 if (err) {
                     callback(true, "Fail to update", false);
                 } else {
                     if (addItems && addItems.length > 0) {
-                        me.addGljItems(repId, addItems, callback);
+                        me.addGljItems(repId, lastOpr, addItems, callback);
                     } else {
                         callback(false, "Save successfully", results);
                     }
@@ -102,13 +102,20 @@ gljItemDAO.prototype.mixUpdateGljItems = function(repId, updateItems, addItems,
     }
 };
 
-gljItemDAO.prototype.removeGljItems = function(rIds, callback) {
+gljItemDAO.prototype.removeGljItems = function(repId, lastOpr, rIds, callback) {
     if (rIds && rIds.length > 0) {
         gljItemModel.collection.remove({ID: {$in: rIds}}, null, function(err, docs){
             if (err) {
                 callback(true, "Fail to remove", false);
             } else {
-                callback(false, "Remove successfully", docs);
+                repositoryMap.updateOprArr({ID: repId}, lastOpr, moment(Date.now()).format('YYYY-MM-DD HH:mm:ss'), function (err) {
+                    if(err){
+                        callback(true, "Fail to update operator", false);
+                    }
+                    else{
+                        callback(false, "Remove successfully", docs);
+                    }
+                });
             }
         })
     } else {
@@ -116,7 +123,7 @@ gljItemDAO.prototype.removeGljItems = function(rIds, callback) {
     }
 };
 
-gljItemDAO.prototype.addGljItems = function(repId, items, callback) {
+gljItemDAO.prototype.addGljItems = function(repId, lastOpr, items, callback) {
     if (items && items.length > 0) {
         counter.counterDAO.getIDAfterCount(counter.moduleName.GLJ, items.length, function(err, result){
             var maxId = result.value.sequence_value;
@@ -131,7 +138,14 @@ gljItemDAO.prototype.addGljItems = function(repId, items, callback) {
                 if (err) {
                     callback(true, "Fail to add", false);
                 } else {
-                    callback(false, "Add successfully", docs);
+                    repositoryMap.updateOprArr({ID: repId}, lastOpr, moment(Date.now()).format('YYYY-MM-DD HH:mm:ss'), function (err) {
+                        if(err){
+                            callback(true, "Fail to update Operator", false);
+                        }
+                        else{
+                            callback(false, "Add successfully", docs);
+                        }
+                    });
                 }
             })
         });
@@ -140,7 +154,7 @@ gljItemDAO.prototype.addGljItems = function(repId, items, callback) {
     }
 };
 
-gljItemDAO.prototype.updateGljItems = function(repId, items, callback) {
+gljItemDAO.prototype.updateGljItems = function(repId, lastOpr, items, callback) {
     var functions = [];
     for (var i=0; i < items.length; i++) {
         functions.push((function(doc) {
@@ -156,12 +170,24 @@ gljItemDAO.prototype.updateGljItems = function(repId, items, callback) {
             };
         })(items[i]));
     }
+    functions.push((function () {
+        return function (cb) {
+            repositoryMap.updateOprArr({ID: repId}, lastOpr, moment(Date.now()).format('YYYY-MM-DD HH:mm:ss'), function (err) {
+                if(err){
+                    cb(err);
+                }
+                else{
+                    cb(null);
+                }
+            })
+        }
+    })());
     async.parallel(functions, function(err, results) {
         callback(err, results);
     });
 };
 
-gljItemDAO.prototype.updateNodes = function(nodes, callback) {
+gljItemDAO.prototype.updateNodes = function(repId, lastOpr, nodes, callback) {
     var functions = [];
     for (var i=0; i < nodes.length; i++) {
         functions.push((function(doc) {
@@ -170,11 +196,23 @@ gljItemDAO.prototype.updateNodes = function(nodes, callback) {
             };
         })(nodes[i]));
     }
+    functions.push((function () {
+        return function (cb) {
+            repositoryMap.updateOprArr({ID: repId}, lastOpr, moment(Date.now()).format('YYYY-MM-DD HH:mm:ss'), function (err) {
+                if(err){
+                    cb(err);
+                }
+                else{
+                    cb(null);
+                }
+            })
+        }
+    })());
     async.parallel(functions, function(err, results) {
         callback(err, results);
     });
 };
-gljItemDAO.prototype.removeNodes =  function(nodeIds, preNodeId, preNodeNextId, callback){
+gljItemDAO.prototype.removeNodes =  function(repId, lastOpr, nodeIds, preNodeId, preNodeNextId, callback){
     var functions = [];
     if (preNodeId != -1) {
         functions.push((function(nodeId, nextId) {
@@ -190,31 +228,64 @@ gljItemDAO.prototype.removeNodes =  function(nodeIds, preNodeId, preNodeNextId,
             };
         })(nodeIds[i]));
     }
+    functions.push((function () {
+        return function (cb) {
+            repositoryMap.updateOprArr({ID: repId}, lastOpr, moment(Date.now()).format('YYYY-MM-DD HH:mm:ss'), function (err) {
+                if(err){
+                    cb(err);
+                }
+                else{
+                    cb(null);
+                }
+            })
+        }
+    })());
     async.parallel(functions, function(err, results) {
         callback(err, results);
     });
 };
 
-gljItemDAO.prototype.createNewNode = function(repId, lastNodeId, nodeData, callback) {
+gljItemDAO.prototype.createNewNode = function(repId, lastOpr, lastNodeId, nodeData, callback) {
     return counter.counterDAO.getIDAfterCount(counter.moduleName.GLJ, 1, function(err, result){
         nodeData.repositoryId = repId;
         nodeData.ID = result.value.sequence_value;
         var node = new gljTypeModel(nodeData);
-        node.save(function (err, result) {
-            if (err) {
-                callback(true, "章节树ID错误!", false);
-            } else {
-                if (lastNodeId > 0) {
-                    gljTypeModel.update({ID: lastNodeId}, {"NextSiblingID": nodeData.ID}, function(err, rst){
-                        if (err) {
-                            callback(true, "章节树ID错误!", false);
-                        } else {
-                            callback(false, '', result);
-                        }
-                    });
-                } else callback(false, '', result);
+        async.parallel([
+            function (cb) {
+                node.save(function (err, result) {
+                    if (err) {
+                        cb("章节树ID错误!", false);
+                    } else {
+                        if (lastNodeId > 0) {
+                            gljTypeModel.update({ID: lastNodeId}, {"NextSiblingID": nodeData.ID}, function(err, rst){
+                                if (err) {
+                                    cb("章节树ID错误!", false);
+                                } else {
+                                    cb(false, result);
+                                }
+                            });
+                        } else cb(false, result);
+                    }
+                });
+            },
+            function (cb) {
+                repositoryMap.updateOprArr({ID: repId}, lastOpr, moment(Date.now()).format('YYYY-MM-DD HH:mm:ss'), function (err) {
+                    if(err){
+                        cb(err);
+                    }
+                    else{
+                        cb(null);
+                    }
+                })
             }
-        });
+        ], function (err, result) {
+            if(err){
+                callback(true, "章节树错误!", false);
+            }
+            else{
+                callback(false, '', result[0]);
+            }
+        })
     });
 };
 

+ 47 - 11
modules/ration_repository/models/ration_item.js

@@ -45,6 +45,8 @@ var rationItemSchema = mongoose.Schema({
 var rationItemModel = db.model("std_ration_lib_ration_items",rationItemSchema, "std_ration_lib_ration_items")
 var counter = require('../../../public/counter/counter');
 let gljDao = require('./glj_repository');
+let moment = require('moment');
+let rationRepositoryDao = require('./repository_map');
 var rationItemDAO = function(){};
 
 rationItemDAO.prototype.getRationItemsBySection = function(sectionId,callback){
@@ -53,21 +55,21 @@ rationItemDAO.prototype.getRationItemsBySection = function(sectionId,callback){
         else callback(false,"Get items successfully", data);
     })
 };
-rationItemDAO.prototype.mixUpdateRationItems = function(rationLibId, sectionId, updateItems, addItems, rIds, callback){
+rationItemDAO.prototype.mixUpdateRationItems = function(rationLibId, lastOpr, sectionId, updateItems, addItems, rIds, callback){
     var me = this;
     if (updateItems.length == 0 && rIds.length == 0) {
-        me.addRationItems(rationLibId, sectionId, addItems, callback);
+        me.addRationItems(rationLibId, lastOpr, sectionId, addItems, callback);
     } else {
-        me.removeRationItems(rIds, function(err, message, docs) {
+        me.removeRationItems(rationLibId, lastOpr, rIds, function(err, message, docs) {
             if (err) {
                 callback(true, "Fail to remove", false);
             } else {
-                me.updateRationItems(rationLibId, sectionId, updateItems, function(err, results){
+                me.updateRationItems(rationLibId, lastOpr, sectionId, updateItems, function(err, results){
                     if (err) {
                         callback(true, "Fail to save", false);
                     } else {
                         if (addItems && addItems.length > 0) {
-                            me.addRationItems(rationLibId, sectionId, addItems, callback);
+                            me.addRationItems(rationLibId, lastOpr, sectionId, addItems, callback);
                         } else {
                             callback(false, "Save successfully", results);
                         }
@@ -78,13 +80,17 @@ rationItemDAO.prototype.mixUpdateRationItems = function(rationLibId, sectionId,
     }
 };
 
-rationItemDAO.prototype.removeRationItems = function(rIds,callback){
+rationItemDAO.prototype.removeRationItems = function(rationLibId, lastOpr, rIds,callback){
     if (rIds.length > 0) {
         rationItemModel.collection.remove({ID: {$in: rIds}}, null, function(err, docs){
             if (err) {
                 callback(true, "Fail to remove", false);
             } else {
-                callback(false, "Remove successfully", docs);
+                rationRepositoryDao.updateOprArr({ID: rationLibId}, lastOpr, moment(Date.now()).format('YYYY-MM-DD HH:mm:ss'), function (err) {
+                    if(!err){
+                        callback(false, "Remove successfully", docs);
+                    }
+                })
             }
         })
     } else {
@@ -133,7 +139,7 @@ rationItemDAO.prototype.getRationItem = function (repId, code, callback) {
     }
 };
 
-rationItemDAO.prototype.addRationItems = function(rationLibId, sectionId, items,callback){
+rationItemDAO.prototype.addRationItems = function(rationLibId, lastOpr, sectionId, items,callback){
     if (items && items.length > 0) {
         counter.counterDAO.getIDAfterCount(counter.moduleName.rations, items.length, function(err, result){
             var maxId = result.value.sequence_value;
@@ -149,7 +155,14 @@ rationItemDAO.prototype.addRationItems = function(rationLibId, sectionId, items,
                 if (err) {
                     callback(true, "Fail to save", false);
                 } else {
-                    callback(false, "Save successfully", docs);
+                    rationRepositoryDao.updateOprArr({ID: rationLibId}, lastOpr, moment(Date.now()).format('YYYY-MM-DD HH:mm:ss'), function (err) {
+                        if(err){
+                            callback(true, "Fail to sava operator", false);
+                        }
+                        else{
+                            callback(false, "Save successfully", docs);
+                        }
+                    })
                 }
             })
         });
@@ -158,7 +171,7 @@ rationItemDAO.prototype.addRationItems = function(rationLibId, sectionId, items,
     }
 };
 
-rationItemDAO.prototype.updateRationItems = function(rationLibId, sectionId, items,callback){
+rationItemDAO.prototype.updateRationItems = function(rationLibId, lastOpr, sectionId, items,callback){
     var functions = [];
     for (var i=0; i < items.length; i++) {
         functions.push((function(doc) {
@@ -175,6 +188,18 @@ rationItemDAO.prototype.updateRationItems = function(rationLibId, sectionId, ite
             };
         })(items[i]));
     }
+    functions.push((function () {
+        return function (cb) {
+            rationRepositoryDao.updateOprArr({ID: rationLibId}, lastOpr, moment(Date.now()).format('YYYY-MM-DD HH:mm:ss'), function (err) {
+                if(err){
+                    cb(err);
+                }
+                else{
+                    cb(null);
+                }
+            });
+        }
+    })());
     async.parallel(functions, function(err, results) {
         callback(err, results);
     });
@@ -188,7 +213,8 @@ function round(v,e){
 }
 
 rationItemDAO.prototype.updateRationBasePrc = function (data, callback) {
-    let adjGljId = data.gljId, adjBasePrice = data.basePrice, adjGljType = data.gljType;
+    let adjGljId = data.gljId, adjBasePrice = data.basePrice, adjGljType = data.gljType,
+        repId = data.repId, lastOpr = data.lastOpr;
     async.waterfall([
         function (cb) {
             rationItemModel.find({'rationGljList.gljId': adjGljId}, function (err, result) {
@@ -300,6 +326,16 @@ rationItemDAO.prototype.updateRationBasePrc = function (data, callback) {
                     cb(null);
                 }
             });
+        },
+        function (cb) {
+            rationRepositoryDao.updateOprArr({ID: repId}, lastOpr, moment(Date.now()).format('YYYY-MM-DD HH:mm:ss'), function (err) {
+                if(err){
+                    cb(err);
+                }
+                else{
+                    cb(null);
+                }
+            })
         }
     ], function (err) {
         if(err){

+ 62 - 15
modules/ration_repository/models/ration_section_tree.js

@@ -7,6 +7,8 @@ var dbm = require("../../../config/db/db_manager");
 var chapterTreeDb = dbm.getCfgConnection("scConstruct");
 var async = require("async");
 var Schema = mongoose.Schema;
+let rationRepositoryDao = require('./repository_map');
+let moment = require('moment');
 
 var rationChapterTreeSchema = new Schema({//章节树  //生成唯一id改为sectionID  改成string
     rationRepId: Number,
@@ -37,30 +39,51 @@ rationChapterTreeDAO.prototype.getRationChapterTreeByRepId = function(repId,call
     })
 }
 
-rationChapterTreeDAO.prototype.createNewNode = function(libId, lastNodeId, nodeData,callback){
+rationChapterTreeDAO.prototype.createNewNode = function(lastOpr, libId, lastNodeId, nodeData,callback){
     counter.counterDAO.getIDAfterCount(counter.moduleName.rationTree, 1, function(err, result){
         nodeData.rationRepId = libId;
         nodeData.ID = result.value.sequence_value;
         var node = new rationChapterTreeModel(nodeData);
-        node.save(function (err, result) {
-            if (err) {
+        async.parallel([
+            function (cb) {
+                node.save(function (err, result) {
+                    if (err) {
+                        cb("章节树ID错误!", false);
+                    } else {
+                        if (lastNodeId > 0) {
+                            rationChapterTreeModel.update({ID: lastNodeId}, {"NextSiblingID": nodeData.ID}, function(err, rst){
+                                if (err) {
+                                    cb("章节树ID错误!", false);
+                                } else {
+                                    cb(false, result);
+                                }
+                            });
+                        } else cb(false, result);
+                    }
+                });
+            },
+            function (cb) {
+                rationRepositoryDao.updateOprArr({ID: libId}, lastOpr, moment(Date.now()).format('YYYY-MM-DD HH:mm:ss'), function (err) {
+                    if(err){
+                        cb(err);
+                    }
+                    else{
+                        cb(null);
+                    }
+                });
+            }
+        ], function (err, result) {
+            if(err){
                 callback("章节树ID错误!", false);
-            } else {
-                if (lastNodeId > 0) {
-                    rationChapterTreeModel.update({ID: lastNodeId}, {"NextSiblingID": nodeData.ID}, function(err, rst){
-                        if (err) {
-                            callback("章节树ID错误!", false);
-                        } else {
-                            callback(false, result);
-                        }
-                    });
-                } else callback(false, result);
+            }
+            else{
+                callback(false, result[0]);
             }
         });
     });
 },
 
-rationChapterTreeDAO.prototype.removeNodes = function(nodeIds, preNodeId, preNodeNextId, callback){
+rationChapterTreeDAO.prototype.removeNodes = function(repId, lastOpr, nodeIds, preNodeId, preNodeNextId, callback){
     var functions = [];
     if (preNodeId != -1) {
         functions.push((function(nodeId, nextId) {
@@ -76,12 +99,24 @@ rationChapterTreeDAO.prototype.removeNodes = function(nodeIds, preNodeId, preNod
             };
         })(nodeIds[i]));
     }
+    functions.push((function () {
+        return function (cb) {
+            rationRepositoryDao.updateOprArr({ID: repId}, lastOpr, moment(Date.now()).format('YYYY-MM-DD HH:mm:ss'), function (err) {
+                if(err){
+                    cb(err);
+                }
+                else{
+                    cb(null);
+                }
+            })
+        }
+    })());
     async.parallel(functions, function(err, results) {
         callback(err, results);
     });
 }
 
-rationChapterTreeDAO.prototype.updateNodes = function(nodes,callback){
+rationChapterTreeDAO.prototype.updateNodes = function(repId, lastOpr, nodes,callback){
     var functions = [];
     for (var i=0; i < nodes.length; i++) {
         //var md = new rationChapterTreeModel(nodes[i]);
@@ -92,6 +127,18 @@ rationChapterTreeDAO.prototype.updateNodes = function(nodes,callback){
             };
         })(nodes[i]));
     }
+    functions.push((function () {
+        return function (cb) {
+            rationRepositoryDao.updateOprArr({ID: repId}, lastOpr, moment(Date.now()).format('YYYY-MM-DD HH:mm:ss'), function (err) {
+                if(err){
+                    cb(err);
+                }
+                else{
+                    cb(null);
+                }
+            })
+        }
+    })());
     async.parallel(functions, function(err, results) {
         callback(err, results);
     });

+ 105 - 16
modules/ration_repository/models/repository_map.js

@@ -5,6 +5,7 @@
 var mongoose = require('mongoose');
 var dbm = require("../../../config/db/db_manager");
 let async = require("async");
+let moment = require('moment');
 //var stringUtil = require('../../../public/stringUtil');
 var rationLibdb = dbm.getCfgConnection("scConstruct");
 var Schema = mongoose.Schema;
@@ -15,9 +16,8 @@ var RepositoryMapSchema = new Schema({
     "localeType": Number, //如 各个省份 / 部颁
     "descr" : String,
     "creator": String,
-    "createDate": Date,
-    "lastOperator": String,
-    "lastOperateDate": Date,
+    "createDate": String,
+    "recentOpr" :[],
     "deleted": Boolean
 });
 var counter = require('../../../public/counter/counter');
@@ -31,15 +31,62 @@ function createNewLibModel(rationLibObj){
     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.createDate = moment(Date.now()).format('YYYY-MM-DD HH:mm:ss');
+    rst.recentOpr = [{operator: rationLibObj.lastOperator, operateDate: rst.createDate}],
     rst.deleted = false;
     return rst;
 }
 
 var rationRepositoryDao = function(){};
 
+rationRepositoryDao.prototype.updateOprArr= function(findSet, oprtor, oprDate, cb){
+    rationRepository.find(findSet, function (err, result) {
+        if(err){
+            cb(err);
+        }
+        else{
+            if(result.length === 1){
+                let recentOprArr = result[0].recentOpr;
+                let isExist = false;
+                for(let i =0 ; i<recentOprArr.length; i++){
+                    if(recentOprArr[i].operator === oprtor){
+                        recentOprArr[i].operateDate = oprDate;
+                        isExist = true;
+                    }
+                }
+                if(!isExist){
+                    if(recentOprArr.length < 5){
+                        recentOprArr.push({operator: oprtor, operateDate: oprDate});
+                    }
+                    else if(recentOprArr.length === 5){
+                        recentOprArr.sort(function (a, b) {
+                            if(a.operateDate > b.operateDate){
+                                return -1;
+                            }else {
+                                return 1;
+                            }
+                            return 0;
+                        });
+                        recentOprArr.splice(recentOprArr.length -1, 1);
+                        recentOprArr.splice(0, 1, {operator: oprtor, operateDate: oprDate});
+                    }
+                }
+                rationRepository.update(findSet, {$set: {recentOpr: recentOprArr}}, function (err) {
+                    if(err){
+                        cb(err);
+                    }
+                    else{
+                        cb(null);
+                    }
+                });
+            }
+            else{
+                cb(err);
+            }
+        }
+    })
+};
+
 rationRepositoryDao.prototype.getRealLibName = function(dispName,callback){
     if (callback) {
         rationRepository.find({"dispName": dispName}, function(err,data){
@@ -102,25 +149,67 @@ rationRepositoryDao.prototype.getDisplayRationLibs = function(callback) {
     });
 };
 
-rationRepositoryDao.prototype.updateName = function(orgName,newName,callback){
+rationRepositoryDao.prototype.updateName = function(orgName,newName, lastOpr, callback){
     rationRepository.find({"dispName":newName, "deleted": false}, function(err, data){
         if (data.length == 0) {
-            rationRepository.update({dispName:orgName},{$set:{dispName:newName}},function(err){
-                if(err) callback("err",false);
-                else callback(false,"ok")
-            })
+            async.waterfall([
+                function (cb) {
+                    rationRepository.update({dispName:orgName},{$set:{dispName:newName}},function(err){
+                        if(err) cb(err);
+                        else cb(null)
+                    });
+                },
+                function (cb) {
+                    new rationRepositoryDao().updateOprArr({dispName: newName}, lastOpr, moment(Date.now()).format('YYYY-MM-DD HH:mm:ss'), function (err) {
+                        if(err){
+                            cb(err)
+                        }
+                        else{
+                            cb(null);
+                        }
+                    });
+                }
+            ], function (err) {
+                if(err){
+                    callback('err', false);
+                }
+                else{
+                    callback(false, 'ok');
+                }
+            });
         } else
             callback("不可重名!",false);
     });
 }
 
-rationRepositoryDao.prototype.deleteRationLib = function(rationName, needSet,  callback){
+rationRepositoryDao.prototype.deleteRationLib = function(rationName, lastOpr,  callback){
     rationRepository.find({"dispName":rationName, "deleted": false}, function(err, data){
         if (data.length == 1) {
-            rationRepository.update({dispName:rationName, deleted: false},{$set: needSet},function(err){
-                if(err) callback("err",false);
-                else callback(false,"ok")
-            })
+            async.parallel([
+                function (cb) {
+                    rationRepository.update({dispName:rationName, deleted: false},{$set: {deleted: true}},function(err){
+                        if(err) cb(err);
+                        else cb(null);
+                    })
+                },
+                function (cb) {
+                    new rationRepositoryDao().updateOprArr({dispName: rationName}, lastOpr, moment(Date.now()).format('YYYY-MM-DD HH:mm:ss'), function (err) {
+                        if(err){
+                            cb(err);
+                        }
+                        else{
+                            cb(null);
+                        }
+                    });
+                }
+            ], function (err) {
+                if(err){
+                    callback("err", false)
+                }
+                else{
+                    callback(false, "ok");
+                }
+            });
         } else
             callback("删除失败!",false);
     });

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

@@ -44,12 +44,12 @@ function addEvent_EditLib(){
 
 $("#deleteLib").click(function(){
     var rationLibName = $("#did").val();
-    //let lastOperator = userAccount;
+    let lastOperator = userAccount;
     $.ajax({
         type:"POST",
         url:"api/deleteRationLibs",
         dataType:"json",
-        data:{"rationName": rationLibName},
+        data:{"rationName": rationLibName, "lastOperator": lastOperator},
         cache:false,
         timeout:50000,
         success:function(result){
@@ -143,11 +143,12 @@ $("#rationAdd").click(function(){
 $("#edtOK").click(function(){
     var str = $("#did").val();
     var newStr = $("#inputRation").val();
+    let lastOperator = userAccount;
     $.ajax({
         type:"POST",
         url:"api/editRationLibs",
         dataType:"json",
-        data:{"rationName": str,"newName":newStr},
+        data:{"rationName": str,"newName":newStr, "lastOperator": lastOperator},
         cache:false,
         timeout:50000,
         success:function(result){

+ 1 - 1
web/maintain/ration_repository/js/ration.js

@@ -400,7 +400,7 @@ var rationOprObj = {
         $.ajax({
             type:"POST",
             url:"api/mixUpdateRationItems",
-            data:{"rationLibId": getQueryString("repository"), "sectionID": me.currentSectionId, "updateItems": JSON.stringify(updateArr), "addItems": JSON.stringify(addArr), "removeIds": JSON.stringify(removeIds)},
+            data:{"rationLibId": getQueryString("repository"), "lastOpr": userAccount, "sectionID": me.currentSectionId, "updateItems": JSON.stringify(updateArr), "addItems": JSON.stringify(addArr), "removeIds": JSON.stringify(removeIds)},
             dataType:"json",
             cache:false,
             timeout:5000,

+ 7 - 5
web/maintain/ration_repository/js/repository_glj.js

@@ -12,9 +12,11 @@ $("#fuzhu").click(function(){
 
 var pageOprObj = {
     rationLibName : null,
+    rationLibId: null,
     initPage : function(container) {
         var me = this, rationLibId = getQueryString("repository"),//获取定额库参数
             rationLibName = storageUtil.getSessionCache("RationGrp","repositoryID_" + rationLibId);
+        me.rationLibId = rationLibId;
         if (rationLibName) {
             var html = $("#rationname")[0].outerHTML;
             html = html.replace("XXX定额库", rationLibName);
@@ -479,7 +481,7 @@ var pageOprObj = {
         $.ajax({
             type: 'post',
             url: 'api/updateRationBasePrc',
-            data:{data: JSON.stringify({gljId: gljObj.gljId, basePrice: gljObj.basePrice, gljType: gljObj.gljType})},
+            data:{data: JSON.stringify({repId: pageOprObj.rationLibId, lastOpr: userAccount, gljId: gljObj.gljId, basePrice: gljObj.basePrice, gljType: gljObj.gljType})},
             dataType: 'json',
             success: function (result) {
                 if(result.error){
@@ -507,7 +509,7 @@ var pageOprObj = {
         $.ajax({
             type:"POST",
             url:"api/mixUpdateGljItems",
-            data:{"repositoryId": me.currentRepositoryId, "updateItems": JSON.stringify(updateArr), "addItems": JSON.stringify(addArr), "removeIds": JSON.stringify(removeIds)},
+            data:{"repositoryId": me.currentRepositoryId, "lastOpr": userAccount, "updateItems": JSON.stringify(updateArr), "addItems": JSON.stringify(addArr), "removeIds": JSON.stringify(removeIds)},
             dataType:"json",
             cache:false,
             timeout:5000,
@@ -637,7 +639,7 @@ var gljTypeTreeOprObj = {
         $.ajax({
             type:"POST",
             url:"api/deleteGljNodes",
-            data:{"nodes": JSON.stringify(nodeIds), "preNodeId": preNodeId, "preNodeNextId": treeNode.NextSiblingID},
+            data:{"repId": pageOprObj.rationLibId, "lastOpr": userAccount, "nodes": JSON.stringify(nodeIds), "preNodeId": preNodeId, "preNodeNextId": treeNode.NextSiblingID},
             dataType:"json",
             cache:false,
             timeout:5000,
@@ -676,7 +678,7 @@ var gljTypeTreeOprObj = {
             $.ajax({
                 type:"POST",
                 url:"api/updateGljNodes",
-                data:{"nodes": JSON.stringify(reqData)},
+                data:{"repId": pageOprObj.rationLibId, "lastOpr": userAccount, "nodes": JSON.stringify(reqData)},
                 dataType:"json",
                 cache:false,
                 timeout:5000,
@@ -707,7 +709,7 @@ var gljTypeTreeOprObj = {
         $.ajax({
             type:"POST",
             url:"api/createNewGljTypeNode",
-            data:{"repositoryId": repositoryGljObj.currentRepositoryId,"lastNodeId": lastNodeId, "rawNodeData": JSON.stringify(rawNode)},
+            data:{"lastOpr": userAccount, "repositoryId": repositoryGljObj.currentRepositoryId,"lastNodeId": lastNodeId, "rawNodeData": JSON.stringify(rawNode)},
             dataType:"json",
             cache:false,
             timeout:1000,

+ 3 - 3
web/maintain/ration_repository/js/section_tree.js

@@ -66,7 +66,7 @@ var zTreeOprObj = {
         $.ajax({
             type:"POST",
             url:"api/createNewNode",
-            data:{"rationLibId":pageOprObj.rationLibId,"lastNodeId": lastNodeId, "rawNodeData": JSON.stringify(rawNode)},
+            data:{"rationLibId":pageOprObj.rationLibId,"lastNodeId": lastNodeId, "lastOpr": userAccount, "rawNodeData": JSON.stringify(rawNode)},
             dataType:"json",
             cache:false,
             timeout:1000,
@@ -109,7 +109,7 @@ var zTreeOprObj = {
         $.ajax({
             type:"POST",
             url:"api/deleteNodes",
-            data:{"nodes": JSON.stringify(nodeIds), "preNodeId": preNodeId, "preNodeNextId": treeNode.NextSiblingID},
+            data:{"repId": pageOprObj.rationLibId, "lastOpr": userAccount, "nodes": JSON.stringify(nodeIds), "preNodeId": preNodeId, "preNodeNextId": treeNode.NextSiblingID},
             dataType:"json",
             cache:false,
             timeout:5000,
@@ -149,7 +149,7 @@ var zTreeOprObj = {
             $.ajax({
                 type:"POST",
                 url:"api/updateNodes",
-                data:{"nodes": JSON.stringify(reqData)},
+                data:{"repId": pageOprObj.rationLibId,"lastOpr": userAccount, "nodes": JSON.stringify(reqData)},
                 dataType:"json",
                 cache:false,
                 timeout:5000,