逐级解构层级关系数据

3 篇文章 0 订阅
3 篇文章 0 订阅
本文通过Java代码展示了如何逐级解构层级关系数据,从省级节点开始,遍历市级和县级单位,使用特定的编码规则筛选并生成新的数据实体。在过程中,利用HQL查询获取所需单位,并通过随机函数选择部分单位进行操作。最后将生成的实体批量保存到数据库。
摘要由CSDN通过智能技术生成
Date dateStart = checkedUnit.getCkUnitBegindate();
		Date dateEnd = checkedUnit.getCkUnitEnddate();
		String message = null;
		AjaxJson j = new AjaxJson();
		message = "选中的单位表添加成功";
		String topOrgCode = "A01";//省节点,相当首节点
		String secondOrgCode = topOrgCode + "___";//市节点,相当第二级,全覆盖,如果是topOrgCode+"%"的话,是为省以下所有节点
//		hql.append(" where t.orgCode like 'A01%' ");
		String thirdOrgCode = secondOrgCode + "___";//县节点,抽取该节点数据
//		hql.append(" where t.orgCode like 'A01___' ");
		List<TSDepart> departList = new ArrayList<TSDepart>();
		StringBuffer hql = new StringBuffer(" from TSDepart t ");
		hql.append(" where t.orgCode like '" + secondOrgCode + "'");
		departList = systemService.findHql(hql.toString());//获取二级市级
		List<CheckedUnitEntity> batchCheckedUnits = new ArrayList<CheckedUnitEntity>();//生成实体列表
		System.out.println(departList);
		for (TSDepart tsDepart: departList) {
			String lvOrgCode = tsDepart.getOrgCode(); //获取市级单位编码
			String yingOrgCode = lvOrgCode +  "___";  //该市下的直属单位,不含再下级单位
			List<TSDepart> subDepartList = new ArrayList<TSDepart>();
			StringBuffer subHql = new StringBuffer(" from TSDepart t ");
			subHql.append(" where t.orgCode like '" + yingOrgCode + "'");
			subDepartList = systemService.findHql(subHql.toString());//获取二级市级下本级即县级
			List<TSDepart> chkDepartList = new ArrayList<TSDepart>();
			CommonFunction comFun = new CommonFunction();
			chkDepartList = comFun.getSubStringByRadom(subDepartList, 1);
			for(TSDepart subTsDepart: chkDepartList) {//操作被选出来的单位
				CheckedUnitEntity myCheckedUnit = new CheckedUnitEntity();
//				myCheckedUnit = checkedUnit;//存储前台传过来的实体数据
				String id = UUID.randomUUID().toString();
				myCheckedUnit.setId(id);
				myCheckedUnit.setCkUnitName(subTsDepart.getDepartname());
				myCheckedUnit.setCkUnitOrgcode(subTsDepart.getOrgCode());
				myCheckedUnit.setCkUnitBegindate(dateStart);
				myCheckedUnit.setCkUnitEnddate(dateEnd);
				batchCheckedUnits.add(myCheckedUnit);
			}
		}//对每一个市进行操作
		
		try {
			checkedUnitService.batchSave(batchCheckedUnits);
			systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
		} catch (Exception e) {
			// TODO: handle exception
		}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值