部门/车间/班组三级联动

jsp

<EF:EFSelect ename="inqu_status-0-dep1" cname="部门/中心" filter="contains"
         optionLabel="请选择">
</EF:EFSelect>
<EF:EFSelect ename="inqu_status-0-dep2" cname="车间/区域" filter="contains"
         optionLabel="请选择">
</EF:EFSelect>
<EF:EFSelect ename="inqu_status-0-dep3" cname="班组/车站" filter="contains"
         optionLabel="请选择">
</EF:EFSelect>
</div>

js

	$(window).load(function () {
        setTimeout(function () {
        	getDep1();
        	getDep2();
        	getDep3();
        }, 100);
    });
	$("#inqu_status-0-dep1").on("change", function (e) {
	 	getDep2();
	 	getDep3();
    });
	$("#inqu_status-0-dep2").on("change", function (e) {
	 	getDep3();
    });



/**
 * 下拉选项公共方法
 * @param obj1 调用后台方法名
 * @param obj2 0单选1多选
 * @param obj3 下拉选项
 * @param obj4 页面编号
 */
function selectOption(obj1, obj2, obj3, obj4) {
    var eiInfo = new EiInfo();
    eiInfo.set("dep1", $("#inqu_status-0-dep1").val());//查询条件一级部门信息
    eiInfo.set("dep2", $("#inqu_status-0-dep2").val());//查询条件二级部门信息
    eiInfo.set("formEname",obj4);
    EiCommunicator.send("AQTS0201", obj1, eiInfo,
        {
            onSuccess: function (ei) {
                //执行的功能
                var place = ei.getBlock("result").getRows();
                var dataJson = {};
                var data = [];
                var stringdata = null;
                var tojson = null;
                for (var a = 0; a < place.length; a++) {
                    stringdata = '{"textField":"' + place[a][1] + '", "valueField":"' + place[a][0] + '"}';
                    tojson = $.parseJSON(stringdata);
                    data.push(tojson);
                    stringdata = null;
                    tojson = null;
                }
                dataJson['data'] = data;
                var dataSource = new kendo.data.DataSource(dataJson);
                if (obj2 == 0) {
                    IPLAT.EFSelect.setDataSource($("#inqu_status-0-" + obj3), dataSource);
                } else {
                    var multiselect = $("#inqu_status-0-" + obj3).data("kendoMultiSelect");
                    multiselect.setDataSource(dataSource);
                }


            },
            onFail: function (ei) {
                IPLAT.NotificationUtil("获取数据失败", "error");
            }
        })
}

servlet

 public EiInfo queryDep1(EiInfo inInfo){
    	String loginName = UserSession.getLoginName();
       	Map<String, String> userOrg123 = UserBelong.queryOrg123(loginName);
       	String orgName = userOrg123.get("orgName");
       	String orgCode = userOrg123.get("orgCode");
       	String dep1Ename = userOrg123.get("dep1Ename");
       	String dep1Cname = userOrg123.get("dep1Cname");
		String dep2Ename = userOrg123.get("dep2Ename");
		String dep2Cname = userOrg123.get("dep2Cname");
		String dep3Ename = userOrg123.get("dep3Ename");
		String dep3Cname = userOrg123.get("dep3Cname");
		Map map = new HashMap();
		Map<String,String> depInfo = new HashMap<String,String>();
		List list = new ArrayList();
    	if(!UserBelong.isAdmin(inInfo)){
       		Integer queryPower = UserBelong.getRoleQuery(loginName, inInfo.getString("formEname"));
       		if(queryPower == null){
       			//若获取不到查看权限,则无法查看
       			return inInfo;
       		}else{
       			if(OtherConstants.ringAndBelow.equals(queryPower)){
       				//可以查看本集团及以下
       				//部门下拉选项包含整个运营部门
       				list = dao.query("AQTS0201.queryDep1", map, 0, -999999);
       			}
       			if(OtherConstants.cnmpanyAndBelow.equals(queryPower)){
       				//可以查看本集团及以下
       				//部门下拉选项包含整个运营部门
       				list = dao.query("AQTS0201.queryDep1", map, 0, -999999);
       			}
       			if(OtherConstants.depAndBelow.equals(queryPower)){
       				//可以查看本部门及以下,部门一定不为空
       				//部门下拉选项为该人员部门信息
       				depInfo.put("iid", dep1Ename);
       				depInfo.put("name", dep1Cname);
       				list.add(depInfo);
       				
       			}
       			if(OtherConstants.rankAndBelow.equals(queryPower)){
       				//可以查看层级及以下,部门一定不为空
       				depInfo.put("iid", dep1Ename);
       				depInfo.put("name", dep1Cname);
       				list.add(depInfo);
       			}
       			if(OtherConstants.rank.equals(queryPower)){
       				//可以查看层级,部门一定不为空
       				depInfo.put("iid", dep1Ename);
       				depInfo.put("name", dep1Cname);
       				list.add(depInfo);
       			}
       			if(OtherConstants.personal.equals(queryPower)){
       				//个人记录不对查询机构单位做卡控
       				list = dao.query("AQTS0201.queryDep1", map, 0, -999999);
       			}
       		}
       }else{
    	   list = dao.query("AQTS0201.queryDep1", map, 0, -999999);
       }
       EiBlock block = new EiBlock("result");
       block.addRows(list);
       inInfo.addBlock(block);
       return inInfo;
    }
   
   /* 查询条件获取车间、区域信息
   *
   * @param inInfo
   * @return
   */
    public EiInfo queryDep2(EiInfo inInfo){
    	String dep1 = inInfo.getString("dep1");
     	if (dep1 == null || "null".equals(dep1) || "".equals(dep1.trim())) {
     		dep1 = "";
     	}
	  	List list = new ArrayList();
      	String loginName = UserSession.getLoginName();
      	Map<String, String> userOrg123 = UserBelong.queryOrg123(loginName);
      	String orgName = userOrg123.get("orgName");
      	String orgCode = userOrg123.get("orgCode");
      	String dep1Ename = userOrg123.get("dep1Ename");
      	String dep1Cname = userOrg123.get("dep1Cname");
		String dep2Ename = userOrg123.get("dep2Ename");
		String dep2Cname = userOrg123.get("dep2Cname");
		String dep3Ename = userOrg123.get("dep3Ename");
		String dep3Cname = userOrg123.get("dep3Cname");
		Map map = new HashMap();
		map.put("dep1", dep1);
		Map<String,String> depInfo = new HashMap<String,String>();
		if(!UserBelong.isAdmin(inInfo)){
      		Integer queryPower = UserBelong.getRoleQuery(loginName, inInfo.getString("formEname"));
      		if(queryPower == null){
      			//若获取不到查看权限,则无法查看

      		}else{
      			if(OtherConstants.ringAndBelow.equals(queryPower)){
      				//可以查看本集团及以下
      				//车间下拉选项包含整个运营部门
      				list = dao.query("AQTS0201.queryDep2", map, 0, -999999);
      			}
      			if(OtherConstants.cnmpanyAndBelow.equals(queryPower)){
      				//可以查看本集团及以下
      				//车间下拉选项包含整个运营部门
      				list = dao.query("AQTS0201.queryDep2", map, 0, -999999);
      			}
      			if(OtherConstants.depAndBelow.equals(queryPower)){
      				//可以查看本部门及以下
      				//车间下拉选项为该人员部门下所有车间信息
      				map.put("dep1", dep1Ename);
      				list = dao.query("AQTS0201.queryDep2", map, 0, -999999);
      				
      			}
      			if(OtherConstants.rankAndBelow.equals(queryPower)){
      				//可以查看层级及以下,
      				//若该人员为部门人员,则车间信息为该部门下所有车间信息;若该人员为车间、班组人员,则,车间信息为dep2
      				if(dep2Ename == null || "".equals(dep2Ename.trim())){
      					//二级组织机构为空,说明是部门/中心人员
      					map.put("dep1", dep1Ename);
          				list = dao.query("AQTS0201.queryDep2", map, 0, -999999);
      				}else{
      					depInfo.put("iid", dep2Ename);
          				depInfo.put("name", dep2Cname);
          				list.add(depInfo);
      				}
      				
      			}
      			if(OtherConstants.rank.equals(queryPower)){
      				//可以查看层级,部门一定不为空
      				if(dep2Ename == null || "".equals(dep2Ename.trim())){
      					//二级组织机构为空,说明是部门/中心人员
      					//由于只能看本层级,因此,车间信息不用传入
      				}else{
      					depInfo.put("iid", dep2Ename);
          				depInfo.put("name", dep2Cname);
          				list.add(depInfo);
      				}
      			}
      			if(OtherConstants.personal.equals(queryPower)){
      				//个人记录不做机构卡控
      				list = dao.query("AQTS0201.queryDep2", map, 0, -999999);
      			}
      		}
      }else{
   	   list = dao.query("AQTS0201.queryDep2", map, 0, -999999);
      }
      EiBlock block = new EiBlock("result");
      block.addRows(list);
      inInfo.addBlock(block);
      return inInfo;
    }
    
    public EiInfo queryDep3(EiInfo inInfo){
    	String dep1 = inInfo.getString("dep1");
    	String dep2 = inInfo.getString("dep2");
     	if (dep1 == null || "null".equals(dep1) || "".equals(dep1.trim())) {
     		dep1 = "";
     	}
     	if (dep2 == null || "null".equals(dep2) || "".equals(dep2.trim())) {
     		dep2 = "";
     	}
    	String loginName = UserSession.getLoginName();
       	Map<String, String> userOrg123 = UserBelong.queryOrg123(loginName);
       	String orgName = userOrg123.get("orgName");
       	String orgCode = userOrg123.get("orgCode");
       	String dep1Ename = userOrg123.get("dep1Ename");
       	String dep1Cname = userOrg123.get("dep1Cname");
		String dep2Ename = userOrg123.get("dep2Ename");
		String dep2Cname = userOrg123.get("dep2Cname");
		String dep3Ename = userOrg123.get("dep3Ename");
		String dep3Cname = userOrg123.get("dep3Cname");
		Map map = new HashMap();
		map.put("dep1", dep1);
		map.put("dep2", dep2);
		Map<String,String> depInfo = new HashMap<String,String>();
		List list = new ArrayList();
    	if(!UserBelong.isAdmin(inInfo)){
       		Integer queryPower = UserBelong.getRoleQuery(loginName, inInfo.getString("formEname"));
       		if(queryPower == null){
       			//若获取不到查看权限,则无法查看
       			inInfo.addBlock("result");
       			return inInfo;
       		}else{
       			if(OtherConstants.ringAndBelow.equals(queryPower)){
       				//可以查看本集团及以下
       				//班组下拉选项包含整个运营部门
       				list = dao.query("AQTS0201.queryDep3", map, 0, -999999);
       			}
       			if(OtherConstants.cnmpanyAndBelow.equals(queryPower)){
       				//可以查看本集团及以下
       				//部门下拉选项包含整个运营部门
       				list = dao.query("AQTS0201.queryDep3", map, 0, -999999);
       			}
       			if(OtherConstants.depAndBelow.equals(queryPower)){
       				//可以查看本部门及以下,
       				//班组下拉选项为该人员部门下所有班组信息
       				map.put("dep1", dep1Ename);
       				list = dao.query("AQTS0201.queryDep3", map, 0, -999999);
       				
       			}
       			if(OtherConstants.rankAndBelow.equals(queryPower)){
       				//可以查看层级及以下
       				//判断人员属于哪一个层级
       				if(dep2Ename == null || "".equals(dep2Ename.trim())){
       					//说明是部门人员
       					map.put("dep1", dep1Ename);
       					list = dao.query("AQTS0201.queryDep3", map, 0, -999999);
       				}else{
       					if(dep3Ename == null || "".equals(dep3Ename.trim())){
       						//说明是车间人员
       						map.put("dep2", dep2Ename);
       						list = dao.query("AQTS0201.queryDep3", map, 0, -999999);
       					}else{
       						depInfo.put("iid", dep3Ename);
       	       				depInfo.put("name", dep3Cname);
       	       				list.add(depInfo);
       					}
       				}
       			}
       			if(OtherConstants.rank.equals(queryPower)){
       				//可以查看层级,部门一定不为空
      				if(dep2Ename == null || "".equals(dep2Ename.trim())){
      					//二级组织机构为空,说明是部门/中心人员
      					//由于只能看本层级,因此,班组信息不用传入
      				}else{
      					if(dep3Ename == null || "".equals(dep3Ename.trim())){
       						//说明是车间人员
      						//由于只能看本层级,因此,班组信息不用传入
       					}else{
       						//说明是班组人员,传入班组信息
       						depInfo.put("iid", dep3Ename);
       	       				depInfo.put("name", dep3Cname);
       	       				list.add(depInfo);
       					}
      				}
       			}
       			if(OtherConstants.personal.equals(queryPower)){
       				//个人信息不做机构卡控
       				list = dao.query("AQTS0201.queryDep3", map, 0, -999999);
       			}
       		}
       }else{
    	   list = dao.query("AQTS0201.queryDep3", map, 0, -999999);
       }
       EiBlock block = new EiBlock("result");
       block.addRows(list);
       inInfo.addBlock(block);
       return inInfo;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值