|  | @@ -22,7 +22,7 @@ var gljOprObj = {
 | 
	
		
			
				|  |  |          header: [
 | 
	
		
			
				|  |  |              {headerName: "编码", headerWidth: 100, dataCode: "code", dataType: "String", formatter: "@"},
 | 
	
		
			
				|  |  |              {headerName: "名称", headerWidth: 160, dataCode: "name", dataType: "String"},
 | 
	
		
			
				|  |  | -            {headerName: "规格型号", headerWidth: 120, dataCode: "specs", dataType: "String", hAlign: "left"},
 | 
	
		
			
				|  |  | +            {headerName: "规格型号", headerWidth: 90, dataCode: "specs", dataType: "String", hAlign: "left"},
 | 
	
		
			
				|  |  |              {headerName: "单位", headerWidth: 45, dataCode: "unit", dataType: "String", hAlign: "center"},
 | 
	
		
			
				|  |  |              {headerName: "类型", headerWidth: 45, dataCode: "shortName", dataType: "String", hAlign: "center"},
 | 
	
		
			
				|  |  |              {headerName: "定额消耗", headerWidth: 80, dataCode: "rationItemQuantity", dataType: "Number", hAlign: "right",decimalField:"glj.quantity"},    // dataType: "Number", formatter: "0.00"
 | 
	
	
		
			
				|  | @@ -792,6 +792,7 @@ var gljOprObj = {
 | 
	
		
			
				|  |  |              isValidate = me.checkingActualValue(recode,newval)
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if(isValidate){
 | 
	
		
			
				|  |  | +            newval = scMathUtil.roundTo(newval,-2);
 | 
	
		
			
				|  |  |              projectObj.project.ration_ass.updateActualValue(me.assSheetData,args.row,newval)
 | 
	
		
			
				|  |  |          }else {
 | 
	
		
			
				|  |  |              newval = recode.actualValue;
 | 
	
	
		
			
				|  | @@ -856,7 +857,7 @@ var gljOprObj = {
 | 
	
		
			
				|  |  |          }else {
 | 
	
		
			
				|  |  |              me.gljLibSheetData=me[val];
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if($('#actionType').val()!='add'){
 | 
	
		
			
				|  |  | +        if($('#actionType').val()=='replace'||$('#actionType').val()=='m_replace'){
 | 
	
		
			
				|  |  |              me.filterLibGLJByType();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if(me.gljCurTypeId==undefined){
 | 
	
	
		
			
				|  | @@ -878,29 +879,37 @@ var gljOprObj = {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      addGLJsSelection:function (args,newVal) {
 | 
	
		
			
				|  |  | +         var con_key = this.getIndex(this.gljLibSheetData[args.row],['code','name','specs','unit','gljType'])
 | 
	
		
			
				|  |  |          if(newVal==1){
 | 
	
		
			
				|  |  | -            this.GLJSelection.push(this.gljLibSheetData[args.row].code);
 | 
	
		
			
				|  |  | +            this.GLJSelection.push(con_key);
 | 
	
		
			
				|  |  |              this.gljLibSheetData[args.row].select=1;
 | 
	
		
			
				|  |  |          }else if(newVal==0){
 | 
	
		
			
				|  |  | -            _.pull(this.GLJSelection,this.gljLibSheetData[args.row].code);
 | 
	
		
			
				|  |  | +            _.pull(this.GLJSelection,con_key);
 | 
	
		
			
				|  |  |              this.gljLibSheetData[args.row].select=0;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      replaceGLJSelection:function (args,newVal) {
 | 
	
		
			
				|  |  | +        var me =this;
 | 
	
		
			
				|  |  |          var oldSelection=this.GLJSelection[0];
 | 
	
		
			
				|  |  |          if(newVal==0){
 | 
	
		
			
				|  |  |              args.sheet.getCell(args.row, args.col).value(1);
 | 
	
		
			
				|  |  |              return;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        this.GLJSelection=[this.gljLibSheetData[args.row].code];
 | 
	
		
			
				|  |  | +        this.GLJSelection=[me.getIndex(this.gljLibSheetData[args.row],['code','name','specs','unit','gljType'])];
 | 
	
		
			
				|  |  |          this.gljLibSheetData[args.row].select=1;
 | 
	
		
			
				|  |  | -        var oindex = _.findIndex(this.gljLibSheetData,{'code':oldSelection});
 | 
	
		
			
				|  |  | +        var oindex = _.findIndex(this.gljLibSheetData,function (item) {
 | 
	
		
			
				|  |  | +            var i_key = me.getIndex(item,['code','name','specs','unit','gljType']);
 | 
	
		
			
				|  |  | +            return oldSelection==i_key;
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  |          if(oindex!=-1){
 | 
	
		
			
				|  |  |              args.sheet.getCell(oindex, args.col).value(0);
 | 
	
		
			
				|  |  |              this.gljLibSheetData[oindex].select=0;
 | 
	
		
			
				|  |  |          }else {
 | 
	
		
			
				|  |  | -            var oldData = _.find(gljOprObj.AllRecode,{'code':oldSelection})
 | 
	
		
			
				|  |  | -            oldData.select=0;
 | 
	
		
			
				|  |  | +            var oldData = _.find(gljOprObj.AllRecode,function (item) {
 | 
	
		
			
				|  |  | +                var i_key = me.getIndex(item,['code','name','specs','unit','gljType']);
 | 
	
		
			
				|  |  | +                return oldSelection==i_key;
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            oldData?oldData.select=0:"";
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      filterLibGLJByType:function () {
 | 
	
	
		
			
				|  | @@ -941,11 +950,20 @@ var gljOprObj = {
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |          return distTypeTree;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | +    doInsertGLJ:function () {
 | 
	
		
			
				|  |  | +        var selected = projectObj.project.mainTree.selected;
 | 
	
		
			
				|  |  | +        var project= projectObj.project;
 | 
	
		
			
				|  |  | +        console.log(gljOprObj.GLJSelection);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      doAddGLJ:function () {
 | 
	
		
			
				|  |  |          var selected = projectObj.project.mainTree.selected;
 | 
	
		
			
				|  |  |          var project= projectObj.project;
 | 
	
		
			
				|  |  |          gljOprObj.GLJSelection= _.filter(gljOprObj.GLJSelection,function (n) {
 | 
	
		
			
				|  |  | -            return _.find(gljOprObj.sheetData,{'code':n})?false:true;
 | 
	
		
			
				|  |  | +            var rg = _.find(gljOprObj.sheetData,function (item) {
 | 
	
		
			
				|  |  | +                var i_key = gljOprObj.getIndex(item,['code','name','specs','unit','type']);
 | 
	
		
			
				|  |  | +                 return n==i_key
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            return rg?false:true;
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  |          if(gljOprObj.GLJSelection.length>0&&selected&&selected.sourceType==ModuleNames.ration){
 | 
	
		
			
				|  |  |              $("#glj_tree_div").modal('hide');
 | 
	
	
		
			
				|  | @@ -979,11 +997,22 @@ var gljOprObj = {
 | 
	
		
			
				|  |  |                  //result.adjustState;
 | 
	
		
			
				|  |  |                  var data =result.data;
 | 
	
		
			
				|  |  |                  var index = _.findIndex(gljOprObj.sheetData,{'ID':data.ID});
 | 
	
		
			
				|  |  | +                var nodes = [selected];
 | 
	
		
			
				|  |  |                  gljOprObj.sheetData[index]=data;
 | 
	
		
			
				|  |  |                  gljOprObj.showRationGLJSheetData();
 | 
	
		
			
				|  |  | +                if(project.ration_glj.needShowToTree(data)){//当替换的是主材或设备时,刷新对应的树节点
 | 
	
		
			
				|  |  | +                    var  node =  project.ration_glj.findTreeNodeByID(data.ID);
 | 
	
		
			
				|  |  | +                    if(node){
 | 
	
		
			
				|  |  | +                        project.ration_glj.transferToNodeData(data);
 | 
	
		
			
				|  |  | +                        node.source = data;
 | 
	
		
			
				|  |  | +                        node.data = data;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    node?nodes.push(node):"";
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                //project.ration_glj.addToMainTree(data);
 | 
	
		
			
				|  |  |                  project.projectGLJ.loadData();
 | 
	
		
			
				|  |  |                  selected.data.adjustState=result.adjustState;
 | 
	
		
			
				|  |  | -                projectObj.mainController.refreshTreeNode([selected]);
 | 
	
		
			
				|  |  | +                projectObj.mainController.refreshTreeNode(nodes);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              $.bootstrapLoading.end();
 | 
	
		
			
				|  |  |          })
 | 
	
	
		
			
				|  | @@ -998,15 +1027,21 @@ var gljOprObj = {
 | 
	
		
			
				|  |  |              var data=result.data;
 | 
	
		
			
				|  |  |              var stateList= result.stateList;
 | 
	
		
			
				|  |  |              var n_index = me.getIndex(data.query,['code','name','specs','unit','type']);
 | 
	
		
			
				|  |  | +            var nodes=[];
 | 
	
		
			
				|  |  |              _.forEach(project.ration_glj.datas,function (t) {
 | 
	
		
			
				|  |  |                  var t_index =me.getIndex(t,['code','name','specs','unit','type']);
 | 
	
		
			
				|  |  |                  if(n_index==t_index){
 | 
	
		
			
				|  |  |                      me.updateProperty(t,data.doc);
 | 
	
		
			
				|  |  | +                    if(project.ration_glj.needShowToTree(t)){//如果是造价书中的树节点,则也须刷新
 | 
	
		
			
				|  |  | +                        project.ration_glj.transferToNodeData(t);
 | 
	
		
			
				|  |  | +                        var node = project.ration_glj.findTreeNodeByID(t.ID);
 | 
	
		
			
				|  |  | +                        nodes.push(node);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              })
 | 
	
		
			
				|  |  |              me.showRationGLJSheetData();
 | 
	
		
			
				|  |  |              project.projectGLJ.loadData();
 | 
	
		
			
				|  |  | -            me.refreshStateAfterMreplace(stateList);
 | 
	
		
			
				|  |  | +            me.refreshStateAfterMreplace(stateList,nodes);
 | 
	
		
			
				|  |  |              $.bootstrapLoading.end();
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  |      },
 | 
	
	
		
			
				|  | @@ -1015,7 +1050,7 @@ var gljOprObj = {
 | 
	
		
			
				|  |  |              obj[key] = n;
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    refreshStateAfterMreplace:function (stateList) {
 | 
	
		
			
				|  |  | +    refreshStateAfterMreplace:function (stateList,gljNodes) {
 | 
	
		
			
				|  |  |          var nodes=[];
 | 
	
		
			
				|  |  |          _.forEach(stateList,function (s) {
 | 
	
		
			
				|  |  |            var node = _.find(projectObj.project.mainTree.items,function (n) {
 | 
	
	
		
			
				|  | @@ -1026,6 +1061,7 @@ var gljOprObj = {
 | 
	
		
			
				|  |  |                nodes.push(node);
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  | +        gljNodes.length>0?nodes = nodes.concat(gljNodes):"";
 | 
	
		
			
				|  |  |          projectObj.mainController.refreshTreeNode(nodes);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      refreshView:function () {
 | 
	
	
		
			
				|  | @@ -1180,16 +1216,21 @@ $(function(){
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          gljOprObj.gljLibSheetData =gljOprObj.AllRecode;
 | 
	
		
			
				|  |  |          var selected=null;
 | 
	
		
			
				|  |  | -        if($('#actionType').val()=='add',$('#actionType').val()=='insert'){
 | 
	
		
			
				|  |  | +        if($('#actionType').val()=='add'||$('#actionType').val()=='insert'){
 | 
	
		
			
				|  |  |              gljOprObj.GLJSelection=[];
 | 
	
		
			
				|  |  |          }else {
 | 
	
		
			
				|  |  |               selected=gljOprObj.sheetData[gljContextMenu.selectedRow];
 | 
	
		
			
				|  |  | -            gljOprObj.GLJSelection=[selected.code];
 | 
	
		
			
				|  |  | +             var connect_key = gljOprObj.getIndex(selected,['code','name','specs','unit','type'])
 | 
	
		
			
				|  |  | +            gljOprObj.GLJSelection=[connect_key];
 | 
	
		
			
				|  |  |              gljOprObj.filterLibGLJByType();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if(selected!=null){
 | 
	
		
			
				|  |  | -            var r = _.find(gljOprObj.gljLibSheetData,{'code':selected.code});
 | 
	
		
			
				|  |  | +            var s_key = gljOprObj.getIndex(selected,['code','name','specs','unit','gljType']);
 | 
	
		
			
				|  |  | +            var r = _.find(gljOprObj.gljLibSheetData,function (item) {
 | 
	
		
			
				|  |  | +                var item_key = gljOprObj.getIndex(item,['code','name','specs','unit','type']);
 | 
	
		
			
				|  |  | +                return s_key == item_key;
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  |              r?r.select=1:"";
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          gljOprObj.showLibGLJSheetData();
 | 
	
	
		
			
				|  | @@ -1211,11 +1252,13 @@ $(function(){
 | 
	
		
			
				|  |  |          if(gljOprObj.GLJSelection.length<1){
 | 
	
		
			
				|  |  |              return;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if($('#actionType').val()=='add'){
 | 
	
		
			
				|  |  | +        if($('#actionType').val()=='insert'){  //造价书页面中插入定额类型的工料机
 | 
	
		
			
				|  |  | +            gljOprObj.doInsertGLJ();
 | 
	
		
			
				|  |  | +        }else if($('#actionType').val()=='add'){ //添加工料机
 | 
	
		
			
				|  |  |              gljOprObj.doAddGLJ();
 | 
	
		
			
				|  |  | -        }else if($('#actionType').val()=='replace'){
 | 
	
		
			
				|  |  | +        }else if($('#actionType').val()=='replace'){//替换工料机
 | 
	
		
			
				|  |  |              gljOprObj.doReplaceGLJ();
 | 
	
		
			
				|  |  | -        }else if($('#actionType').val()=='m_replace'){
 | 
	
		
			
				|  |  | +        }else if($('#actionType').val()=='m_replace'){//批量替换工料机
 | 
	
		
			
				|  |  |              gljOprObj.doMReplaceGLJ();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      })
 |