package com.x.teamwork.assemble.control.jaxrs.statistics; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; import com.google.gson.JsonElement; import com.x.base.core.container.EntityManagerContainer; import com.x.base.core.container.factory.EntityManagerContainerFactory; 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.cache.ApplicationCache; 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; import com.x.teamwork.assemble.control.Business; import com.x.teamwork.core.entity.Task; import com.x.teamwork.core.entity.tools.filter.QueryFilter; import com.x.teamwork.core.entity.tools.filter.term.InTerm; import net.sf.ehcache.Element; public class ActionStatisticTaskWithFilter extends BaseAction { private static Logger logger = LoggerFactory.getLogger(ActionStatisticTaskWithFilter.class); protected ActionResult> execute( HttpServletRequest request, EffectivePerson effectivePerson, JsonElement jsonElement ) throws Exception { ActionResult> result = new ActionResult<>(); ResultObject resultObject = null; List wos = new ArrayList<>(); Wi wrapIn = null; Boolean check = true; QueryFilter queryFilter = null; String flag = null; Integer count = 2000; try { wrapIn = this.convertToWrapIn(jsonElement, Wi.class); } catch (Exception e) { check = false; Exception exception = new StatisticQueryException(e, "系统在将JSON信息转换为对象时发生异常。JSON:" + jsonElement.toString()); result.error(exception); logger.error(e, effectivePerson, request, null); } if( Boolean.TRUE.equals( check ) ){ wrapIn.setDeleted("false"); queryFilter = wrapIn.getQueryFilter(); } if( Boolean.TRUE.equals( check ) ){ try { Long total = statisticQueryService.countWithFilter( effectivePerson, queryFilter ); List taskList = statisticQueryService.listWithFilter( effectivePerson, count, flag, wrapIn.getOrderField(), wrapIn.getOrderType(), queryFilter ); wos = Wo.copier.copy(taskList); resultObject = new ResultObject( total, wos ); result.setCount( resultObject.getTotal() ); result.setData( resultObject.getWos() ); } catch (Exception e) { check = false; logger.warn("系统查询项目信息列表时发生异常!"); result.error(e); logger.error(e, effectivePerson, request, null); } } return result; } public static class Wi extends WrapInQueryTask{ } public static class Wo extends Task { private Long rank; public Long getRank() { return rank; } public void setRank(Long rank) { this.rank = rank; } private static final long serialVersionUID = -5076990764713538973L; public static List Excludes = new ArrayList(); static WrapCopier copier = WrapCopierFactory.wo( Task.class, Wo.class, null, ListTools.toList(JpaObject.FieldsInvisible)); } public static class ResultObject { private Long total; private List wos; public ResultObject() {} public ResultObject(Long count, List data) { this.total = count; this.wos = data; } public Long getTotal() { return total; } public void setTotal(Long total) { this.total = total; } public List getWos() { return wos; } public void setWos(List wos) { this.wos = wos; } } }