ActionListSubTaskWithTaskId.java 4.6 KB
Newer Older
R
roo00 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
package com.x.teamwork.assemble.control.jaxrs.task;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang3.StringUtils;

import com.x.base.core.entity.JpaObject;
import com.x.base.core.project.annotation.FieldDescribe;
import com.x.base.core.project.bean.WrapCopier;
import com.x.base.core.project.bean.WrapCopierFactory;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.ListTools;
19
import com.x.teamwork.core.entity.CustomExtFieldRele;
R
roo00 已提交
20
import com.x.teamwork.core.entity.Task;
R
roo00 已提交
21
import com.x.teamwork.core.entity.TaskTag;
R
roo00 已提交
22 23 24 25 26 27 28 29 30 31 32

public class ActionListSubTaskWithTaskId extends BaseAction {

	private static Logger logger = LoggerFactory.getLogger(ActionListSubTaskWithTaskId.class);

	protected ActionResult<List<Wo>> execute(HttpServletRequest request, EffectivePerson effectivePerson, String taskId ) throws Exception {
		ActionResult<List<Wo>> result = new ActionResult<>();
		List<Wo> wos = null;
		Task task = null;
		List<Task> taskList = null;
		Boolean check = true;
R
roo00 已提交
33
		List<TaskTag> tags = null;
R
roo00 已提交
34 35 36 37 38 39 40

		if ( StringUtils.isEmpty( taskId ) ) {
			check = false;
			Exception exception = new TaskFlagForQueryEmptyException();
			result.error( exception );
		}

41
		if( Boolean.TRUE.equals( check ) ){
R
roo00 已提交
42 43 44
			try {
				task = taskQueryService.get( taskId );
				if ( task == null) {
R
roo00 已提交
45
					check = false;
R
roo00 已提交
46 47
					Exception exception = new TaskNotExistsException(taskId);
					result.error( exception );
R
roo00 已提交
48
				}
R
roo00 已提交
49 50 51 52 53
			} catch (Exception e) {
				check = false;
				Exception exception = new TaskQueryException(e, "根据指定flag查询工作任务信息对象时发生异常。flag:" + taskId);
				result.error(exception);
				logger.error(e, effectivePerson, request, null);
R
roo00 已提交
54
			}
R
roo00 已提交
55 56
		}
		
57
		if( Boolean.TRUE.equals( check ) ){
R
roo00 已提交
58 59 60 61
			try {
				taskList = taskQueryService.listTaskWithParentId( taskId, effectivePerson );
				if( taskList == null ) {
					taskList = new ArrayList<>();
R
roo00 已提交
62
				}
R
roo00 已提交
63 64 65 66 67
			} catch (Exception e) {
				check = false;
				Exception exception = new TaskQueryException(e, "根据指定flag查询子任务列表时发生异常。flag:" + taskId);
				result.error(exception);
				logger.error(e, effectivePerson, request, null);
R
roo00 已提交
68
			}
R
roo00 已提交
69 70
		}
				
71
		if( Boolean.TRUE.equals( check ) ){
R
roo00 已提交
72 73 74 75 76 77 78 79 80
			try {
				wos = Wo.copier.copy( taskList );
				if(ListTools.isNotEmpty( wos )) {
					for( Wo wo : wos ) {
						tags = taskTagQueryService.listWithTaskAndPerson(effectivePerson, wo );
						if( ListTools.isNotEmpty( tags )) {
							wo.setTags( WoTaskTag.copier.copy( tags ));
						}
					}
R
roo00 已提交
81
				}
R
roo00 已提交
82 83 84 85 86 87
				result.setCount( Long.parseLong( wos.size() + "" ) );
				result.setData( wos );
			} catch (Exception e) {
				Exception exception = new TaskQueryException(e, "将查询出来的工作任务信息对象转换为可输出的数据信息时发生异常。");
				result.error(exception);
				logger.error(e, effectivePerson, request, null);
R
roo00 已提交
88 89
			} 
		} 
R
roo00 已提交
90
		
R
roo00 已提交
91 92 93 94 95
		return result;
	}

	public static class Wo extends Task {

R
roo00 已提交
96 97 98 99 100 101 102 103 104 105 106
		@FieldDescribe("任务标签")
		private List<WoTaskTag> tags = null;
		
		public List<WoTaskTag> getTags() {
			return tags;
		}

		public void setTags(List<WoTaskTag> tags) {
			this.tags = tags;
		}
		
R
roo00 已提交
107 108 109 110 111 112 113 114
		private static final long serialVersionUID = -5076990764713538973L;

		public static List<String> Excludes = new ArrayList<String>();

		static WrapCopier<Task, Wo> copier = WrapCopierFactory.wo( Task.class, Wo.class, null, ListTools.toList(JpaObject.FieldsInvisible));

	}
	
R
roo00 已提交
115 116 117 118 119 120 121 122 123 124 125
	public static class WoTaskTag extends TaskTag {
		
		private static final long serialVersionUID = -5076990764713538973L;

		public static List<String> Excludes = new ArrayList<String>();

		static WrapCopier<TaskTag, WoTaskTag> copier = WrapCopierFactory.wo( TaskTag.class, WoTaskTag.class, null, ListTools.toList(JpaObject.FieldsInvisible));		

	}

	public static class WoExtFieldRele{
R
roo00 已提交
126 127 128 129 130 131 132 133 134
	
		@FieldDescribe("备用列名称")
		private String extFieldName;
		
		@FieldDescribe("显示属性名称")
		private String displayName;

		public static List<String> Excludes = new ArrayList<String>();

135
		static WrapCopier<CustomExtFieldRele, WoExtFieldRele> copier = WrapCopierFactory.wo( CustomExtFieldRele.class, WoExtFieldRele.class, null, ListTools.toList(JpaObject.FieldsInvisible));
R
roo00 已提交
136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

		public String getExtFieldName() {
			return extFieldName;
		}

		public void setExtFieldName(String extFieldName) {
			this.extFieldName = extFieldName;
		}

		public String getDisplayName() {
			return displayName;
		}

		public void setDisplayName(String displayName) {
			this.displayName = displayName;
		}
	}
}