java递归 JVM_JAVA递归范例 - 盼望明天的个人空间 - OSCHINA - 中文开源技术交流社区...

范例一:

/**

* 递归启动任务触发相关事件

* @describe:TODO

* @param oriGroupList

* @param groupId

* @param level

* @return

* @throws ZdnstException

* @author:yongqin.zhong

* @time:Sep 29, 20148:10:21 PM

*/

private void recurrenceStartTask(String taskId,ActionItemTask selItemTaskDto) throws ZdnstException {

try{

Map map=new HashMap();

List relStatusList=new ArrayList();

relStatusList.add(ConstantAction.SYS_ITEM_TASK_STATUS_SS);//开始-开始

relStatusList.add(ConstantAction.SYS_ITEM_TASK_STATUS_SF);//开始-完成

map.put("relStatusList", relStatusList);

map.put("oriTaskId", taskId);

List relationTaskList=atItemTaskDao.selectTaskRelByOriIdAndStatus(map);

if(relationTaskList!=null&&relationTaskList.size()>0){

for(Map dbItemTaskMap:relationTaskList){

ActionItemTask itemTaskDto=(ActionItemTask)JBeanUtils.convertMap(ActionItemTask.class, dbItemTaskMap);

String relactionStatus=itemTaskDto.getRelactionStatus();

if(ConstantAction.SYS_ITEM_TASK_STATUS_SS.equals(relactionStatus)){

recurrenceStartTask(itemTaskDto.getItemTaskId(),itemTaskDto);

}else if(ConstantAction.SYS_ITEM_TASK_STATUS_SF.equals(relactionStatus)){

recurrenceEndTask(itemTaskDto.getItemTaskId());

}

}

}

} catch (ZdnstException e) {

throw new ZdnstException(e.getCode());

} catch (Exception e) {

logger.error("Service method throws exception:", e);

throw new ZdnstException(BaseCode.ERROR_CODE110, e);

}

}

/**

* 递归结束任务触发相关事件

* @describe:TODO

* @param taskId

* @throws ZdnstException

* @author:yongqin.zhong

* @time:Dec 25, 20145:30:15 PM

*/

private void recurrenceEndTask(String taskId) throws ZdnstException {

try{

Map map=new HashMap();

List relStatusList=new ArrayList();

relStatusList.add(ConstantAction.SYS_ITEM_TASK_STATUS_FS);//完成-开始

relStatusList.add(ConstantAction.SYS_ITEM_TASK_STATUS_FF);//完成-完成

map.put("relStatusList", relStatusList);

map.put("oriTaskId", taskId);

List relationTaskList=atItemTaskDao.selectTaskRelByOriIdAndStatus(map);

if(relationTaskList!=null&&relationTaskList.size()>0){

for(Map dbItemTaskMap:relationTaskList){

ActionItemTask itemTaskDto=(ActionItemTask)JBeanUtils.convertMap(ActionItemTask.class, dbItemTaskMap);

String relactionStatus=itemTaskDto.getRelactionStatus();

if(ConstantAction.SYS_ITEM_TASK_STATUS_FS.equals(relactionStatus)){

recurrenceStartTask(itemTaskDto.getItemTaskId(),itemTaskDto);

}else if(ConstantAction.SYS_ITEM_TASK_STATUS_FF.equals(relactionStatus)){

recurrenceEndTask(itemTaskDto.getItemTaskId());

}

}

}

} catch (ZdnstException e) {

throw new ZdnstException(e.getCode());

} catch (Exception e) {

logger.error("Service method throws exception:", e);

throw new ZdnstException(BaseCode.ERROR_CODE110, e);

}

}

范例二:

/**

* 递归获取企业架构树形结构

* @describe:TODO

* @param oriGroupList

* @param groupId

* @param level

* @return

* @throws ZdnstException

* @author:yongqin.zhong

* @time:Sep 29, 20148:10:21 PM

*/

private ArrayList getEnterpriseOrganization(List oriGroupList,String groupId,

int level) throws ZdnstException {

// 首先根据企业圈子ID得到改圈子的实际对象

ArrayList clientGroups=new ArrayList();

for (Group gpGroup : oriGroupList) {

if(gpGroup.getParentId()!=null&&gpGroup.getParentId().equals(groupId)){

clientGroups.add(gpGroup);

//oriGroupList.remove(gpGroup);

}

}

long seqNo=1L;

for (Group gpGroup : clientGroups) {

gpGroup.setGroupLevel(level+"");

gpGroup.setSeqNo(seqNo+"");

seqNo++;

gpGroup.setGroupList(getEnterpriseOrganization(oriGroupList,

gpGroup.getGroupId(), level + 1));

}

return clientGroups;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值