easyui treegrid 操作

 项目需求变更,留着以备他用

前端界面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>签核关卡设定</title>
<!--jquery-->
<script type="text/javascript"
	src="inc/plugins/jquery/1.9.1/jquery-1.9.1.js"></script>
<!--easyUI-->
<link rel="stylesheet" type="text/css"
	href="inc/plugins/jquery.easyui/1.5/themes/gray/easyui.css">
<link rel="stylesheet" type="text/css"
	href="inc/plugins/jquery.easyui/1.5/themes/icon.css">
<script type="text/javascript"
	src="inc/plugins/jquery.easyui/1.5/jquery.easyui.min.js"></script>
</head>
<script type="text/javascript">
$(document).ready(function(){
	$('#mingcheng').treegrid({
	    url:'gate/allGATEBASIC',
	    method:'get',
	    idField:'ID',
	    treeField:'GATENAME',
	    animate: true,
  		collapsible: true,
  		fitColumns: true,
  		singleSelect: true,
		 columns:[[
			{field:'GATENAME',title:'签核关卡',width:100,editor:'text'},
			//{field:'guanqia',title:'关卡',width:100},
			{field:'DEPT',title:'部门',width:100,editor:{
                type: 'combobox',
                options: {
                    url: "dept/alldept",
                    method: "get",
                    valueField: "DNAME",
                    textField: "DNAME",
                    editable: false
                }
        	}},
			{field:'WAY',title:'评核方式',width:100,editor:'text'},
			{field:'WEIGHT',title:'权重',width:100,editor:'text'},
			{field:'STARTDATE',title:'适用起始日期',width:100,editor:'datebox'},
			{field:'BELONGS',title:'分组标志'}
				
	    ]]
	});
	$("#mingcheng").treegrid('hideColumn','BELONGS');
	$('#quanzhong').treegrid({
		singleSelect:true,
	    url:'treegrid_data4.json',
	    method:'get',
	    idField:'ID',
	    treeField:'qianhe',
	    animate: true,
  		collapsible: true,
  		fitColumns: true,
  		//fit: true,
	    columns:[[
			{field:'qianhe',title:'签核关卡',width:100,editor:'text'},
			{field:'fangshi',title:'评核方式',width:100,editor:'text'},
			{field:'dept',title:'单位',width:100,editor:'text'},
			{field:'kebie',title:'课别',width:100,editor:'text'},
			//{field:'guanqia',title:'关卡',width:100},
			{field:'quanzhong',title:'权重',width:100,editor:'text'},
			{field:'startyear',title:'适用起始年份',width:100,editor:'text'},
			{field:'startmonth',title:'适用起始月份',width:100,editor:'text'}
	    ]]
	});
	/* $('#mingcheng').datagrid({
		singleSelect:true,
	    url:'datagrid_data1.json',
	    columns:[[
			{field:'niandu',title:'年度',width:100},
			{field:'yuefen',title:'月份',width:100},
			{field:'xiangmumingcheng',title:'绩效项目名称',width:100},
			{field:'dept',title:'部门别',width:100},
			{field:'quanzhong',title:'权重',width:100},
			{field:'efectdate',title:'生效日期',width:100},
			{field:'stop',title:'是否停用',width:100},
			{field:'beizhu',title:'备注',width:100}
	    ]]
	}); */
});

var mingcheng_editingId;
var mingcheng_operation;
var mingcheng_editingrows=[];
function mingcheng_append(){
	var appendleaveflag = false;
	//var amount;
	if(mingcheng_editingrows.length==0)
		$.messager.prompt('提示', '请输入关卡数量', function(amount){
			if (amount){
				if(!isNum(amount)){
					$.messager.alert('提示','请输入数字');
					//appendleaveflag = true;
				}else if(amount=="0"){
					$.messager.alert('提示','关卡数量不能为0');
				}else{
					mingcheng_operation = "add";
					 if (mingcheng_editingId != undefined){
						$('#mingcheng').treegrid('select', mingcheng_editingId);
						return;
					}
				   //var node = $('#mingcheng').treegrid('getSelected');
				   $.ajax({
					   url: "gate/getnextBELONGS",
					   success: function(data){
						   mingcheng_editingId = data.extend.nextbelongs;
						   mingcheng_editingrows.push(data.extend.nextbelongs);
						   $('#mingcheng').treegrid('append', {
							    data: [{
							    	ID: data.extend.nextbelongs,
							        GATENAME: "try",//treegrid id 
							        BELONGS: data.extend.nextbelongs
							    }]
							});
						   $('#mingcheng').treegrid("beginEdit",data.extend.nextbelongs);
						   for(var i=0;i<amount;i++){
							   var bottomid = i+1;
							   if(bottomid<10)
								   bottomid="0"+bottomid;
							   var obj_id = data.extend.nextbelongs+bottomid;
							   mingcheng_editingrows.push(obj_id);
							   $('#mingcheng').treegrid('append', {
								    parent: data.extend.nextbelongs,//treegrid 父id 必须指定
								    data: [{
								        ID: obj_id,//treegrid id 
								        GATENAME: "TRY",
								        _parentId: data.extend.nextbelongs,
								        BELONGS: data.extend.nextbelongs
								    }]
								});
						  		$('#mingcheng').treegrid("beginEdit",obj_id);
						   }
					   }
				   });
				}
			}
		});
}
function mingcheng_edit(){
	mingcheng_operation = "edit";
	if (mingcheng_editingId != undefined){
		$('#mingcheng').treegrid('select', mingcheng_editingId);
		return;
	}
	var row = $('#mingcheng').treegrid('getSelected');
	mingcheng_editingrows.push(row.ID);
	if (row){
		if(row._parentId!=null){
			$.messager.alert('提示','请选择根节点');
			return;
		}
		if(row.state=="closed"){
			$("#mingcheng").treegrid('expand',row.ID);
		}
		var allrows = $("#mingcheng").treegrid('getChildren',row.ID);
		$.each(allrows,function(i,item){
				mingcheng_editingrows.push(item.ID);
		});
		$.each(mingcheng_editingrows,function(i,item){
			$("#mingcheng").treegrid('beginEdit',item);
		});
	}
}
function mingcheng_save(){
	if(mingcheng_operation=="add"){
		var addleaveflag=false;
		var children;
		if(mingcheng_editingrows.length!=0){
			var json={};
			$.each(mingcheng_editingrows,function(i,item){
				$("#mingcheng").treegrid('endEdit',item);
			});
			//选出子节点children
			$.each(mingcheng_editingrows,function(i,item){
				$("#mingcheng").treegrid('selectRow',item);
				var row = $("#mingcheng").treegrid('getSelected');
				if(row._parentId==undefined){
					children = $("#mingcheng").treegrid('getChildren',row.ID);
				}
				$("#mingcheng").treegrid('unselect',item);
			});
			//格式检验
			for(var i=0;i<children.length;i++){
				for(var j=i+1;j<children.length;j++){
					if(children[i].GATENAME==children[j].GATENAME){
						$.messager.alert('提示','同一项目下不能有相同的名称');
						$.each(mingcheng_editingrows,function(i,item){
							$("#mingcheng").treegrid('beginEdit',item);
						});
						addleaveflag=true;
						break;
					}else if(children[i].WAY==children[j].WAY){
						$.messager.alert('提示','同一项目下不能有相同的评核方式');
						$.each(mingcheng_editingrows,function(i,item){
							$("#mingcheng").treegrid('beginEdit',item);
						});
						addleaveflag=true;
						break;
					}
				}
				if(addleaveflag==true)
					break;
			}
			if(addleaveflag==true)
				return;
			addleaveflag=false;
			var addweightsum=0;
			$.each(children,function(i,item){
				addweightsum+=parseInt(item.WEIGHT);
				if(item.GATENAME==""||item.WAY==""||item.WEIGHT==""){
					$.messager.alert('提示','关卡的名称、评核方式和权重不能为空');
					$.each(mingcheng_editingrows,function(i,item){
						$("#mingcheng").treegrid('beginEdit',item);
					});
					addleaveflag=true;
					return;
				}
			});
			if(addleaveflag==true)
				return;
			addleaveflag=false;
			if(addweightsum!=100){
				$.messager.alert('提示','各关卡权重之和应为100');
				$.each(mingcheng_editingrows,function(i,item){
					$("#mingcheng").treegrid('beginEdit',item);
				});
				return;
			}
			$.each(mingcheng_editingrows,function(i,item){
				$("#mingcheng").treegrid('selectRow',item);
				var row = $("#mingcheng").treegrid('getSelected');
				if(row._parentId==undefined){
					if(row.GATENAME==""||row.STARTDATE==""){
						$.messager.alert('提示','根节点的名称和适用起始日期不能为空');
						$.each(mingcheng_editingrows,function(i,item){
							$("#mingcheng").treegrid('beginEdit',item);
						});
						addleaveflag=true;
						return;
					}
					json = JSON.stringify(row);
				}
				$("#mingcheng").treegrid('unselect',item);
			});
			if(addleaveflag==true)
				return;
			addleaveflag=false;
			$.ajax({
				async: false,
				url: "gate/saveGATEBASIC",
				type: 'post',
				data: json,
				dataType: "json",
				contentType:"application/json;charsetset=UTF-8",
				success: function(data){
					if(data.extend.msg=="savesuccess")
						$.messager.alert('提示','保存成功');
					else if(data.extend.msg=="existedGATENAME"){
						$.messager.alert('提示','已存在此名称');
						$.each(mingcheng_editingrows,function(i,item){
							$("#mingcheng").treegrid('beginEdit',item);
						});
					}
					else if(data.extend.msg=="savefailed")
						$.messager.alert('提示','保存失败');
				}
			});
		}
	}
	else if(mingcheng_operation=="edit"){
		var editleaveflag;
		var children;
		if(mingcheng_editingrows.length!=0){
			var json={};
			$.each(mingcheng_editingrows,function(i,item){
				$("#mingcheng").treegrid('endEdit',item);
			});
			//选出子节点children
			$.each(mingcheng_editingrows,function(i,item){
				$("#mingcheng").treegrid('selectRow',item);
				var row = $("#mingcheng").treegrid('getSelected');
				if(row._parentId==undefined){
					children = $("#mingcheng").treegrid('getChildren',row.ID);
				}
				$("#mingcheng").treegrid('unselect',item);
			});
			//格式检验
			for(var i=0;i<children.length;i++){
				for(var j=i+1;j<children.length;j++){
					if(children[i].GATENAME==children[j].GATENAME){
						$.messager.alert('提示','同一项目下不能有相同的名称');
						$.each(mingcheng_editingrows,function(i,item){
							$("#mingcheng").treegrid('beginEdit',item);
						});
						editleaveflag=true;
						break;
					}else if(children[i].WAY==children[j].WAY){
						$.messager.alert('提示','同一项目下不能有相同的评核方式');
						$.each(mingcheng_editingrows,function(i,item){
							$("#mingcheng").treegrid('beginEdit',item);
						});
						editleaveflag=true;
						break;
					}
				}
				if(editleaveflag==true)
					break;
			}
			if(editleaveflag==true)
				return;
			editleaveflag=false;
			var addweightsum=0;
			$.each(children,function(i,item){
				addweightsum+=parseInt(item.WEIGHT);
				if(item.GATENAME==""||item.WAY==""||item.WEIGHT==""){
					$.messager.alert('提示','关卡的名称、评核方式和权重不能为空');
					$.each(mingcheng_editingrows,function(i,item){
						$("#mingcheng").treegrid('beginEdit',item);
					});
					editleaveflag=true;
					return;
				}
			});
			if(editleaveflag==true)
				return;
			editleaveflag=false;
			if(addweightsum!=100){
				$.messager.alert('提示','各关卡权重之和应为100');
				$.each(mingcheng_editingrows,function(i,item){
					$("#mingcheng").treegrid('beginEdit',item);
				});
				return;
			}
			$.each(mingcheng_editingrows,function(i,item){
				$("#mingcheng").treegrid('selectRow',item);
				var row = $("#mingcheng").treegrid('getSelected');
				if(row._parentId==undefined){
					if(row.GATENAME==""||row.STARTDATE==""){
						$.messager.alert('提示','根节点的名称和适用起始日期不能为空');
						$.each(mingcheng_editingrows,function(i,item){
							$("#mingcheng").treegrid('beginEdit',item);
						});
						editleaveflag=true;
						return;
					}
					json = JSON.stringify(row);
				}
				$("#mingcheng").treegrid('unselect',item);
			});
			if(editleaveflag==true)
				return;
			editleaveflag=false;
			$.ajax({
				async: false,
				url: "gate/updateGATEBASIC",
				type: 'post',
				data: json,
				dataType: "json",
				contentType:"application/json;charsetset=UTF-8",
				success: function(data){
					if(data.extend.msg=="updatesuccess")
						$.messager.alert('提示','修改成功');
					else if(data.extend.msg=="existedGATENAME"){
						$.messager.alert('提示','已存在此名称');
						$.each(mingcheng_editingrows,function(i,item){
							$("#mingcheng").treegrid('beginEdit',item);
						});
					}
					else if(data.extend.msg=="updatefailed")
						$.messager.alert('提示','保存失败');
				}
			});
		}
	}
}

function mingcheng_delete(){
		var row = $('#mingcheng').treegrid('getSelected');
		mingcheng_editingrows.push(row.ID);
		if (row){
			if(row._parentId!=null){
				$.messager.alert('提示','请选择根节点');
				return;
			}else{
				$.messager.confirm('提示','此操作将会删除该项目下的子项目,确定吗',function(r){
					if(r){
						$.ajax({
							url: "gate/deleteGATEBASIC",
							data:{"BELONGS":row.ID},
							success: function(data){
								$("#mingcheng").treegrid('reload');
								$.messager.alert('提示','删除成功');
							},
							error: function(data){
								$.messager.alert('提示','删除失败');
							}
						});
					}
				});
				
			}
		}
}

function mingcheng_cancel(){
	/* if (mingcheng_editingId != undefined){
		$('#mingcheng').treegrid('cancelEdit', mingcheng_editingId);
		mingcheng_editingId = undefined;
	} */
	if(mingcheng_operation=="edit"){
		$.each(mingcheng_editingrows,function(i,item){
			$('#mingcheng').treegrid('cancelEdit', item);
			$('#mingcheng').treegrid('unselect', item);
		});
		mingcheng_editingId = undefined;
		mingcheng_editingrows = [];
	}
	else if(mingcheng_operation=="add"){
		$.messager.confirm('提示', '此操作将会删除所有未保存的数据,确定吗', function(r){
			if (r){
				$("#mingcheng").treegrid('reload');
				mingcheng_editingrows = [];
				mingcheng_editingId = undefined;
			}
		});
	}
}

var quanzhong_editingId;
function quanzhong_append(){
	$('#win').window({
		title:"请选择签核关卡",
	    width:300,
	    height:150,
	    modal:true
	});
}
function quanzhong_edit(){
	if (quanzhong_editingId != undefined){
		$('#quanzhong').treegrid('select', quanzhong_editingId);
		return;
	}
	var row = $('#quanzhong').treegrid('getSelected');
	if (row){
		quanzhong_editingId = row.ID;
		$('#quanzhong').treegrid('beginEdit', quanzhong_editingId);
	}
}
function quanzhong_save(){
	if (quanzhong_editingId != undefined){
		var t = $('#quanzhong');
		t.treegrid('endEdit', quanzhong_editingId);
		quanzhong_editingId = undefined;
		/* var persons = 0;
		var rows = t.treegrid('getChildren');
		for(var i=0; i<rows.length; i++){
			var p = parseInt(rows[i].persons);
			if (!isNaN(p)){
				persons += p;
			}
		}
		var frow = t.treegrid('getFooterRows')[0];
		frow.persons = persons;
		t.treegrid('reloadFooter'); */
	}
}
function quanzhong_cancel(){
	if (quanzhong_editingId != undefined){
		$('#quanzhong').treegrid('cancelEdit', quanzhong_editingId);
		quanzhong_editingId = undefined;
	}
}

function isNum(val){
    // isNaN()函数 把空串 空格 以及NUll 按照0来处理 所以先去除
    if(val === "" || val ==null){
        return false;
    }
    if(!isNaN(val)){
        return true;
    }else{
        return false;
    }
}

function win_confirm(){
	$.ajax({
		url: "gate/getGATEBASICByBELONGS",
		data: {"BELONGS":$("#GATE").combobox('getValue')},
		success: function(data){
			$("#win").window('close');
			console.log(data);
			$.messager.alert('提示','success');
		},
		error: function(data){
			$.messager.alert('提示','取出关卡数据出错');
		}
	});
}
function win_cancel(){
	$("#win").window('close');
}
//扩展datagrid:动态添加删除editor
$.extend($.fn.datagrid.methods, {
    addEditor : function(jq, param) {
        if (param instanceof Array) {
            $.each(param, function(index, item) {
                var e = $(jq).datagrid('getColumnOption', item.field); 
                e.editor = item.editor; }); 
            } else {
                var e = $(jq).datagrid('getColumnOption', param.field);    
                e.editor = param.editor;    
            }   
        },  
    removeEditor : function(jq, param) {    
        if (param instanceof Array) {   
            $.each(param, function(index, item) {  
                var e = $(jq).datagrid('getColumnOption', item);   
                e.editor = {};  
                });
        } else {
            var e = $(jq).datagrid('getColumnOption', param);
            e.editor = {}; 
        }
    }
});
</script>
<body>
<div class="easyui-tabs" style="width:100%;height:auto;">
	<div title="签核关卡设定" style="padding:10px;">
		<div style="margin:20px 0;">
			<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true" onclick="mingcheng_append()">添加</a>
			<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-edit',plain:true" onclick="mingcheng_edit()">编辑</a>
			<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-save',plain:true" onclick="mingcheng_save()">保存</a>
			<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true" onclick="mingcheng_delete()">删除</a>
			<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-cancel',plain:true" onclick="mingcheng_cancel()">取消</a>
		</div>
		<table id="mingcheng"></table>
	</div>
	<div title="特殊关卡设定" style="padding:10px;">
		<div style="margin:20px 0;">
			<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true" onclick="quanzhong_append()">添加</a>
			<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-edit',plain:true" onclick="quanzhong_edit()">编辑</a>
			<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-save',plain:true" onclick="quanzhong_save()">保存</a>
			<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-cancel',plain:true" onclick="quanzhong_cancel()">取消</a>
		</div>
		<table id="quanzhong"></table>
	</div>
	<!-- <div title="部門別設定" style="padding:10px;">
		<table id="dept"></table>
	</div> -->
</div>
<div id="win" style="display:none">
	<div style="width:80%">
		<div style="padding-top:10px">
			<input class="easyui-combobox" 
				id="GATE"
				data-options="
						url:'gate/IDandGATENAME',
						method:'get',
						valueField:'ID',
						textField:'GATENAME',
						width:'100%',
						panelHeight:'auto'
				">
		</div>
		<div style="padding-top:10px;text-align:right">
			<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true" onclick="win_confirm()">确定</a>
			<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true" onclick="win_cancel()">取消</a>
		</div>
	</div>
</div>
</body>
</html>

controller

package com.chenyuantech.kpi.controller;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.chenyuantech.kpi.bean.GATEBASIC;
import com.chenyuantech.kpi.bean.Msg;
import com.chenyuantech.kpi.service.DEPTService;
import com.chenyuantech.kpi.service.GATEBASICService;

@Controller
@RequestMapping(value="gate")
public class GATEController {
	
	@Autowired
	private GATEBASICService GBService;
	@Autowired
	private DEPTService DService;

	SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
	
	@RequestMapping(value="/IDandGATENAME")
	@ResponseBody
	public List<HashMap<String, Object>> getIDAndGATENAME(){
		
		return GBService.getIDAndGATENAME();
	}
	
	@RequestMapping(value="/getGATEBASICByBELONGS")
	@ResponseBody
	public List<HashMap<String, Object>> getGATEBASICByBELONGS(String BELONGS){
		
		return GBService.getGATEBASICByBELONGS(BELONGS);
	}
	
	@RequestMapping(value="/allGATEBASIC")
	@ResponseBody
	public JSONObject getAllGATEBASIC(){
		List<HashMap<String, Object>> records = GBService.getAllGATEBASIC();
		for(int i=0;i<records.size();i++){
			if(records.get(i).get("ROOTID")==null)
				records.get(i).put("state", "closed");
			else {
				records.get(i).put("state", "open");
			}
			records.get(i).put("_parentId", records.get(i).get("ROOTID"));
		}
		JSONObject json = new JSONObject();
		json.put("total", records.size());
		json.put("rows", records);
		return json;
	}
	
	@RequestMapping(value="/getnextBELONGS")
	@ResponseBody
	public Msg getnextBELONGS(){
		String temp = "";
		String nextbelongs = GBService.getnexBELONGS();
		if(nextbelongs==null){
			nextbelongs = "001";
			return Msg.success().add("nextbelongs", nextbelongs);
		}
		else{
			int IntNUM = Integer.parseInt(nextbelongs);
			IntNUM+=1;
			if(IntNUM>0 && IntNUM<10)
				temp="00"+String.valueOf(IntNUM);
			else if(IntNUM>=10 && IntNUM<100)
				temp="0"+String.valueOf(IntNUM);
			else if(IntNUM>=100)
				temp=String.valueOf(IntNUM);
			return Msg.success().add("nextbelongs", temp);
		}
	}
	
	@RequestMapping(value="/saveGATEBASIC",method=RequestMethod.POST)
	@ResponseBody
	public Msg saveGATEBASIC(@RequestBody JSONObject records,HttpSession session){
		List<String> GATENAMEs = GBService.getAllGATENAME();
		if(GATENAMEs.contains(records.getString("GATENAME"))){
			return Msg.success().add("msg", "existedGATENAME");
		}
		JSONArray children = records.getJSONArray("children");
		GATEBASIC gate = new GATEBASIC();
		try {
			gate.setID(records.getString("ID"));
			gate.setGATENAME(records.getString("GATENAME"));
			gate.setDEPT(DService.getDEPTIDByDNAME(records.getString("DEPT")));
			gate.setSTARTDATE(records.getString("STARTDATE"));
			gate.setBELONGS(records.getString("BELONGS"));
			gate.setCREATEMAN((String)session.getAttribute("userid"));
			gate.setCREATEDATE(sdf.format(new Date()));
			gate.setAMOUNT(new BigDecimal(children.size()));
			GBService.saveGATEBASIC(gate);
			for (int i = 0; i <children.size(); i++) {
				GATEBASIC child = new GATEBASIC();
				JSONObject json = (JSONObject) children.get(i);
				child.setID(json.getString("ID"));
				child.setGATENAME(json.getString("GATENAME"));
				child.setWAY(json.getString("WAY"));
				child.setWEIGHT(json.getShort("WEIGHT"));
				child.setROOTID(json.getString("_parentId"));
				child.setBELONGS(json.getString("BELONGS"));
				GBService.saveGATEBASIC(child);
			}
		} catch (Exception e) {
			e.printStackTrace();
			return Msg.success().add("msg", "savefailed");
		}
		
		return Msg.success().add("msg", "savesuccess");
		//return GBService.saveGATEBASIC(record);
	}
	
	@RequestMapping(value="/updateGATEBASIC",method=RequestMethod.POST)
	@ResponseBody
	public Msg updateGATEBASIC(@RequestBody JSONObject records,HttpSession session){
		JSONArray children = records.getJSONArray("children");
		GATEBASIC gate = new GATEBASIC();
		try {
			gate.setID(records.getString("ID"));
			gate.setGATENAME(records.getString("GATENAME"));
			gate.setDEPT(DService.getDEPTIDByDNAME(records.getString("DEPT")));
			gate.setSTARTDATE(records.getString("STARTDATE"));
			gate.setBELONGS(records.getString("BELONGS"));
			gate.setALTERMAN((String)session.getAttribute("userid"));
			gate.setALTERDATE(sdf.format(new Date()));
			GBService.updateGATEBASIC(gate);
			for (int i = 0; i <children.size(); i++) {
				GATEBASIC child = new GATEBASIC();
				JSONObject json = (JSONObject) children.get(i);
				child.setID(json.getString("ID"));
				child.setGATENAME(json.getString("GATENAME"));
				child.setWAY(json.getString("WAY"));
				child.setWEIGHT(json.getShort("WEIGHT"));
				child.setROOTID(json.getString("_parentId"));
				child.setBELONGS(json.getString("BELONGS"));
				GBService.updateGATEBASIC(child);
			}
		} catch (Exception e) {
			e.printStackTrace();
			return Msg.success().add("msg", "updatefailed");
		}
		
		return Msg.success().add("msg", "updatesuccess");
		//return GBService.saveGATEBASIC(record);
	}
	
	@RequestMapping(value="/deleteGATEBASIC")
	@ResponseBody
	public Integer deleteGATEBASIC(String BELONGS){
		
		return GBService.deleteGATEBASIC(BELONGS);
	}
	
}

service

package com.chenyuantech.kpi.service;

import java.util.HashMap;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.chenyuantech.kpi.bean.GATEBASIC;
import com.chenyuantech.kpi.dao.GATEBASICExtMapper;
import com.chenyuantech.kpi.dao.GATEBASICMapper;

@Service
public class GATEBASICService {
	
	@Autowired
	private GATEBASICExtMapper GBEMapper;
	@Autowired
	private GATEBASICMapper GBMapper;
	
	public String getnexBELONGS(){
		return GBEMapper.selectnextBELONGS();
	}
	
	public int saveGATEBASIC(GATEBASIC record){
		return GBMapper.insertSelective(record);
	}
	
	public int updateGATEBASIC(GATEBASIC record){
		return GBMapper.updateByPrimaryKey(record);
	}
	
	public List<HashMap<String, Object>> getAllGATEBASIC(){
		return GBEMapper.selectAllGATEBASIC();
	}
	
	public List<String> getAllGATENAME(){
		return GBEMapper.selectAllGATENAME();
	}
	
	public Integer deleteGATEBASIC(String BELONGS){
		return GBEMapper.deleteGATEBASICByBELONGS(BELONGS);
	}
	
	public List<HashMap<String, Object>> getIDAndGATENAME(){
		return GBEMapper.selectIDAndGATENAME();
	}
	
	public List<HashMap<String, Object>> getGATEBASICByBELONGS(String BELONGS){
		List<HashMap<String, Object>> records = GBEMapper.selectGATEBASICByBELONGS(BELONGS);
		for(int i=0;i<records.size();i++){
			records.get(i).put("_parentId", records.get(i).get("ROOTID"));
		}
		return records;
	}
}

mapper

package com.chenyuantech.kpi.dao;

import java.util.HashMap;
import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

public interface GATEBASICExtMapper {

	@Select("SELECT BELONGS FROM (SELECT DISTINCT BELONGS FROM KPI_GATEBASIC ORDER BY BELONGS DESC)"
			+ "WHERE ROWNUM=1")
	String selectnextBELONGS();
	
	@Select("SELECT G.ID,G.GATENAME,G.WAY,G.WEIGHT,G.STARTDATE,G.ROOTID,D.DNAME DEPT "
			+ " FROM KPI_GATEBASIC G LEFT JOIN KPI_DEPT D ON G.DEPT=D.DEPTID ORDER BY ID")
	List<HashMap<String, Object>> selectAllGATEBASIC();
	
	@Select("SELECT GATENAME FROM KPI_GATEBASIC WHERE ROOTID IS NULL")
	List<String> selectAllGATENAME();
	
	@Select("DELETE FROM KPI_GATEBASIC WHERE BELONGS=#{BELONGS}")
	Integer deleteGATEBASICByBELONGS(@Param("BELONGS")String BELONGS);
	
	@Select("SELECT ID,GATENAME FROM KPI_GATEBASIC WHERE ROOTID IS NULL")
	List<HashMap<String, Object>> selectIDAndGATENAME();
	
	@Select("SELECT G.ID,G.GATENAME,D.DNAME DEPT,G.WAY,G.WEIGHT,G.STARTDATE,G.ROOTID "
			+ " FROM KPI_GATEBASIC G LEFT JOIN KPI_DEPT D "
			+ " ON G.DEPT=D.DEPTID WHERE G.BELONGS=#{BELONGS}")
	List<HashMap<String, Object>> selectGATEBASICByBELONGS(String BELONGS);
	
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值