Browse Source

已被引用的工料机库不可删除

zhongzewei 8 years ago
parent
commit
a5558d04bc

+ 1 - 1
modules/ration_repository/controllers/ration_repository_controller.js

@@ -4,7 +4,7 @@
 var rationRepository = require("../models/repository_map");
 import baseController from "../../common/base/base_controller";
 import CompilationModel from "../../users/models/compilation_model";
-import {gljMapModel} from "../../std_glj_lib/models/schemas";
+import gljMapModel from "../../std_glj_lib/models/schemas";
 import async from "async";
 var callback = function(req, res, err, message, data){
     res.json({error: err, message: message, data: data});

+ 1 - 1
modules/ration_repository/models/repository_map.js

@@ -6,7 +6,7 @@ var mongoose = require('mongoose');
 var dbm = require("../../../config/db/db_manager");
 let async = require("async");
 let moment = require('moment');
-import {gljMapModel} from "../../std_glj_lib/models/schemas";
+import gljMapModel from "../../std_glj_lib/models/schemas";
 //var stringUtil = require('../../../public/stringUtil');
 var rationLibdb = dbm.getCfgConnection("scConstruct");
 var Schema = mongoose.Schema;

+ 16 - 12
modules/std_glj_lib/models/gljMapModel.js

@@ -1,7 +1,7 @@
 /**
  * Created by Zhong on 2017/8/11.
  */
-import {gljMapModel} from "./schemas";
+import gljMapModel from "./schemas";
 import moment from "moment";
 import counter from "../../../public/counter/counter";
 import async from "async";
@@ -135,20 +135,24 @@ class GljMapDao extends OprDao{
                 callback(err, '失败!')
             }
             else{
-                gljMapModel.update({ID: libId, deleted: false}, {$set: {deleted: true}}, function (err) {
+                gljMapModel.find({ID: libId, deleted: false}, function (err, result) {
                     if(err){
-                        callback(err, '移除工料机库失败!');
+                        callback(err, '数据不存在!');
                     }
                     else{
-                        //删除定额库引用标段gljLib
-                        rationRepositoryDao.updateGljLib(libId, function (err) {
-                            if(err){
-                                callback(null, "移除工料机成功,删除定额库引用字段失败!");
-                            }
-                            else{
-                                callback(null, '成功!');
-                            }
-                        })
+                        if(result[0].rationLibs.length > 0){//已被引用
+                            callback(null, '此工料机库已被引用!');
+                        }
+                        else{
+                            gljMapModel.update({ID: libId, deleted: false}, {$set: {deleted: true}}, function (err) {
+                                if(err){
+                                    callback(err, '移除工料机库失败!');
+                                }
+                                else{
+                                   callback(null, '删除成功');
+                                }
+                            });
+                        }
                     }
                 });
             }

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

@@ -116,7 +116,7 @@
                   <form>
                     <div class="form-group">
                       <label>定额库名称</label>
-                      <input class="form-control" id="renameText" placeholder="输入工料机库名称" type="text" value="">
+                      <input class="form-control" id="renameText" placeholder="输入定额库名称" type="text" value="">
                     </div>
                   </form>
                 </div>

+ 47 - 47
web/maintain/std_glj_lib/js/glj.js

@@ -1,11 +1,11 @@
 /**
  * Created by Zhong on 2017/8/14.
  */
-var pageOprObj = {
+let pageOprObj = {
     gljLibName : null,
     gljLibId: null,
     initPage : function(container, containerComponent) {
-        var me = this, gljLibId = getQueryString("gljLibId");//获取定额库参数
+        let me = this, gljLibId = getQueryString("gljLibId");//获取定额库参数
         me.gljLibId = gljLibId;
         repositoryGljObj.getGljLib(gljLibId, function () {
             repositoryGljObj.buildSheet(container);
@@ -22,7 +22,7 @@ var pageOprObj = {
         });
     }
 }
-repositoryGljObj = {
+let repositoryGljObj = {
     treeObj : null,
     workBook: null,
     gljCurTypeId: -1,
@@ -127,7 +127,7 @@ repositoryGljObj = {
         })
     },
     getGljTree: function(gljLibId, callback) {
-        var me = this;
+        let me = this;
         $.ajax({
             type:"POST",
             url:"api/getGljTree",
@@ -153,7 +153,7 @@ repositoryGljObj = {
         })
     },
     getGljItems: function(repId) {
-        var me = this;
+        let me = this;
         $.ajax({
             type:"POST",
             url:"api/getGljItems",
@@ -179,11 +179,11 @@ repositoryGljObj = {
         })
     },
     showGljItems: function(data, type) {
-        var me = repositoryGljObj;
+        let me = repositoryGljObj;
         if (me.workBook) {
-            var cacheSection = [];
-            var pArr = me.parentNodeIds["_pNodeId_" + type];
-            for (var i = 0; i < data.length; i++) {
+            let cacheSection = [];
+            let pArr = me.parentNodeIds["_pNodeId_" + type];
+            for (let i = 0; i < data.length; i++) {
                 if (pArr && pArr.indexOf(data[i].gljClass) >= 0) {
                     cacheSection.push(data[i]);
                 } else if (type == data[i].gljClass) {
@@ -197,7 +197,7 @@ repositoryGljObj = {
         }
     },
     buildSheet: function(container) {
-        var me = repositoryGljObj;
+        let me = repositoryGljObj;
         me.workBook = sheetCommonObj.buildSheet(container, me.setting, 30, me);
         me.repositoryGljDelOpr();
         me.workBook.bind(GC.Spread.Sheets.Events.ClipboardPasting, me.onClipboardPasting);
@@ -350,13 +350,13 @@ repositoryGljObj = {
         }
     },
     onCellEditStart: function(sender, args) {
-        var me = repositoryGljObj;
-        var rObj = sheetCommonObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row);
+        let me = repositoryGljObj;
+        let rObj = sheetCommonObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row);
         me.currentEditingGlj = rObj;
         me.orgCode = me.workBook.getSheet(0).getValue(args.row, 0);
-        var cacheSection = me.gljList;
+        let cacheSection = me.gljList;
         if (cacheSection) {
-            for (var j = 0; j < cacheSection.length; j++) {
+            for (let j = 0; j < cacheSection.length; j++) {
                 if (cacheSection[j][me.setting.header[0].dataCode] && cacheSection[j][me.setting.header[0].dataCode] == rObj[me.setting.header[0].dataCode]) {
                     rObj["ID"] = cacheSection[j]["ID"];
                     rObj.gljClass = cacheSection[j].gljClass;
@@ -366,7 +366,7 @@ repositoryGljObj = {
         }
     },
     onCellEditEnd: function(sender, args) {
-        var me = repositoryGljObj, rObj = sheetCommonObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row, me),
+        let me = repositoryGljObj, rObj = sheetCommonObj.combineRowData(me.workBook.getSheet(0), me.setting, args.row, me),
             updateArr = [], addArr = [], updateBasePrcArr = [];
         me.editingRowIdx = args.row;
         rObj.basePrice = rObj.basePrice ? rObj.basePrice : 0;
@@ -670,7 +670,7 @@ repositoryGljObj = {
         return true;
     },
     onClipboardPasting: function(sender, args) {
-        var me = repositoryGljObj;
+        let me = repositoryGljObj;
         /*if (args.cellRange.colCount != me.setting.header.length || me.gljCurTypeId < 0 || me.parentNodeIds["_pNodeId_" + me.gljCurTypeId]) {
          args.cancel = true;
          }*/
@@ -820,7 +820,7 @@ repositoryGljObj = {
         });
     },*/
     mixUpdateRequest: function(updateArr, addArr, removeIds) {
-        var me = repositoryGljObj;
+        let me = repositoryGljObj;
         $.ajax({
             type:"POST",
             url:"api/mixUpdateGljItems",
@@ -868,8 +868,8 @@ repositoryGljObj = {
         return rst;
     },
     getCache: function() {
-        var me = this, rst = [];
-        for (var i = 0; i < me.gljList.length; i++) {
+        let me = this, rst = [];
+        for (let i = 0; i < me.gljList.length; i++) {
             if (me.gljList[i].gljClass == me.gljCurTypeId) {
                 rst.push(me.gljList[i]);
             }
@@ -877,29 +877,29 @@ repositoryGljObj = {
         return rst;
     },
     updateCache: function(addArr, updateArr, removeIds, result) {
-        var me = this, cacheSection = me.gljList;
+        let me = this, cacheSection = me.gljList;
         if (addArr.length > 0) {
             me.gljList = me.gljList.concat(addArr);
             cacheSection = me.gljList;
         }
-        for (var i = removeIds.length - 1; i >= 0; i--) {
-            for (var j = cacheSection.length - 1; j >= 0 ; j--) {
+        for (let i = removeIds.length - 1; i >= 0; i--) {
+            for (let j = cacheSection.length - 1; j >= 0 ; j--) {
                 if (cacheSection[j]["ID"] == removeIds[i]) {
                     cacheSection.splice(j,1);
                 }
             }
         }
         if (result && result.data && result.data.ops && result.data.ops.length > 0) {
-            for (var i = 0; i < result.data.ops.length; i++) {
-                for (var j = 0; j < cacheSection.length; j++) {
+            for (let i = 0; i < result.data.ops.length; i++) {
+                for (let j = 0; j < cacheSection.length; j++) {
                     if (cacheSection[j][me.setting.header[0].dataCode] == result.data.ops[i][me.setting.header[0].dataCode]) {
                         cacheSection[j]["ID"] = result.data.ops[i]["ID"];
                     }
                 }
             }
         }
-        for (var i = 0; i < updateArr.length; i++) {
-            for (var j = 0; j < cacheSection.length; j++) {
+        for (let i = 0; i < updateArr.length; i++) {
+            for (let j = 0; j < cacheSection.length; j++) {
                 if (updateArr[i]["ID"] && cacheSection[j]["ID"]) {
                     if (cacheSection[j]["ID"] == updateArr[i]["ID"]) {
                         cacheSection[j] = updateArr[i];
@@ -913,9 +913,9 @@ repositoryGljObj = {
         }
     },
     sortGlj: function() {
-        var me = this;
+        let me = this;
         me.gljList.sort(function(a, b){
-            var rst = 0;
+            let rst = 0;
             if (a.code > b.code) rst = 1
             else if (a.code < b.code) rst = -1;
             return rst;
@@ -923,9 +923,9 @@ repositoryGljObj = {
     }
 }
 
-var gljTypeTreeOprObj = {
+let gljTypeTreeOprObj = {
     onClick: function(event,treeId,treeNode) {
-        var me = repositoryGljObj,
+        let me = repositoryGljObj,
             that = gljComponentOprObj,
             gljTypeId = treeNode.ID;
         me.gljCurTypeId = treeNode.ID;
@@ -958,7 +958,7 @@ var gljTypeTreeOprObj = {
         return true;
     },
     onRename : function(e, treeId, treeNode, isCancel) {
-        var nodes = [];
+        let nodes = [];
         nodes.push(treeNode);
         gljTypeTreeOprObj.updateNodes(nodes);
     },
@@ -971,20 +971,20 @@ var gljTypeTreeOprObj = {
         if (!confirm("您确定要删除此节点及所有子节点的数据?删除后不可恢复!")) {
             return false;
         }
-        var nodeIds = [], preNode = treeNode.getPreNode(), preNodeId = -1;
+        let nodeIds = [], preNode = treeNode.getPreNode(), preNodeId = -1;
         if (preNode) {
             preNodeId = preNode.ID;
         }
         private_fetchAllSubItems = function(pItem){
             nodeIds.push(pItem.ID);
             if (pItem.items && pItem.items.length > 0) {
-                for (var i = 0; i < pItem.items.length; i++) {
+                for (let i = 0; i < pItem.items.length; i++) {
                     private_fetchAllSubItems(pItem.items[i]);
                 }
             }
         };
         nodeIds.push(treeNode.ID);
-        for (var i = 0; i < treeNode.items.length; i++) {
+        for (let i = 0; i < treeNode.items.length; i++) {
             private_fetchAllSubItems(treeNode.items[i]);
         }
         $.ajax({
@@ -995,7 +995,7 @@ var gljTypeTreeOprObj = {
             cache:false,
             timeout:5000,
             success:function(result,textStatus,status){
-                var pNode = treeNode.getParentNode();
+                let pNode = treeNode.getParentNode();
                 if (pNode && pNode.items && pNode.items.length == 1) {
                     pNode.isParent = false;
                 }
@@ -1006,7 +1006,7 @@ var gljTypeTreeOprObj = {
         return true;
     },
     onRemove: function(e, treeId, treeNode){
-        var me = repositoryGljObj, pNode = me.treeObj.getNodeByTId(treeNode.parentTId);
+        let me = repositoryGljObj, pNode = me.treeObj.getNodeByTId(treeNode.parentTId);
         if (pNode && pNode.items && pNode.items.length == 0) {
             pNode.isParent = false;
             me.treeObj.refresh();
@@ -1014,9 +1014,9 @@ var gljTypeTreeOprObj = {
     },
     updateNodes: function(nodes){
         if (nodes && nodes.length > 0) {
-            var reqData = []
-            for (var i = 0; i < nodes.length; i++) {
-                var node = {};
+            let reqData = []
+            for (let i = 0; i < nodes.length; i++) {
+                let node = {};
                 node.repositoryId = nodes[i].repositoryId;
                 node.ID = nodes[i].ID;
                 node.ParentID = nodes[i].ParentID;
@@ -1040,13 +1040,13 @@ var gljTypeTreeOprObj = {
         }
     },
     addRootNode: function() {
-        var me = repositoryGljObj, rawNode = {ParentID: -1, NextSiblingID: -1, Name: "所有"}, lastNodeId = -1;
+        let me = repositoryGljObj, rawNode = {ParentID: -1, NextSiblingID: -1, Name: "所有"}, lastNodeId = -1;
         if (me.treeObj) {
-            var rootNodes = me.treeObj.getNodes();
+            let rootNodes = me.treeObj.getNodes();
             if (rootNodes.length == 0) {
                 gljTypeTreeOprObj.addNewNode(rawNode, lastNodeId, function(err, rst){
                     if (!(err)) {
-                        var newNodes = [], isSilent = false;
+                        let newNodes = [], isSilent = false;
                         newNodes.push({ repositoryId: rst.data.repositoryId, ID: rst.data.ID, ParentID: rst.data.ParentID, NextSiblingID:-1, Name:"所有",isParent:false, items:[]});
                         me.treeObj.addNodes(null, -1, newNodes, isSilent);
                     }
@@ -1076,20 +1076,20 @@ var gljTypeTreeOprObj = {
         }
         hoverOpr();
         function hoverOpr(){
-            var me = repositoryGljObj, sObj = $("#" + treeNode.tId + "_span");
+            let me = repositoryGljObj, sObj = $("#" + treeNode.tId + "_span");
             if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return;
-            var addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增子节点' onfocus='this.blur();'></span>";
+            let addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增子节点' onfocus='this.blur();'></span>";
             sObj.after(addStr);
-            var btn = $("#addBtn_"+treeNode.tId);
+            let btn = $("#addBtn_"+treeNode.tId);
             if (btn) btn.bind("click", function(){
                 treeNode.doing = true;
-                var rawNode = {ParentID: treeNode.ID, NextSiblingID: -1, Name: "新增子节点"}, lastNodeId = -1;
+                let rawNode = {ParentID: treeNode.ID, NextSiblingID: -1, Name: "新增子节点"}, lastNodeId = -1;
                 if (treeNode.items.length > 0) {
                     lastNodeId = treeNode.items[treeNode.items.length - 1].ID;
                 }
                 gljTypeTreeOprObj.addNewNode(rawNode, lastNodeId, function(err, rst){
                     if (!(err)) {
-                        var newNodes = [], isSilent = false;
+                        let newNodes = [], isSilent = false;
                         if(treeNode.items.length > 0){
                             treeNode.items[treeNode.items.length - 1].NextSiblingID = rst.data.ID;
                         }

+ 2 - 2
web/maintain/std_glj_lib/js/gljComponent.js

@@ -18,7 +18,7 @@ let gljComponentOprObj = {
         }
     },
     buildSheet: function(container) {
-        var me = gljComponentOprObj;
+        let me = gljComponentOprObj;
         me.workBook = sheetCommonObj.buildSheet(container, me.setting, 30, me);
         me.workBook.getSheet(0).setColumnWidth(0, 20, GC.Spread.Sheets.SheetArea.rowHeader);
         me.workBook.getSheet(0).setFormatter(-1, 0, "@", GC.Spread.Sheets.SheetArea.viewport);
@@ -387,7 +387,7 @@ let gljComponentOprObj = {
         })
     },
     round: function (v, e) {
-        var t=1;
+        let t=1;
         for(;e>0;t*=10,e--);
         for(;e<0;t/=10,e++);
         return Math.round(v*t)/t;

+ 11 - 5
web/maintain/std_glj_lib/js/main.js

@@ -185,11 +185,17 @@ function removeGljLib(delObj, dispNames){
         dataType: 'json',
         success: function (result) {
             if(!result.error){
-                var jqSel = "#"+ delObj.libId;
-                $(jqSel).remove();
-                let index = dispNames.indexOf(delObj.libName);
-                dispNames.splice(index, 1);
-                $('#delCancelBtn').click();
+                if(result.message === '此工料机库已被引用!'){
+                    $('#delCancelBtn').click();
+                    alert("此工料机库已被引用,不可删除!");
+                }
+                else if(result.message === '删除成功'){
+                    var jqSel = "#"+ delObj.libId;
+                    $(jqSel).remove();
+                    let index = dispNames.indexOf(delObj.libName);
+                    dispNames.splice(index, 1);
+                    $('#delCancelBtn').click();
+                }
             }
         }
     })