ReferenceFileQueryAction.java
package com.mycim.webapp.actions.setting.system.referenceFileDetail;
import com.mycim.framework.jdbc.Page;
import com.mycim.framework.logging.Logger;
import com.mycim.framework.logging.LoggerFactory;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.collections.MapUtils;
import com.mycim.framework.utils.lang.math.NumberUtils;
import com.mycim.framework.utils.msg.JsonUtils;
import com.mycim.webapp.actions.SystemSetupAction;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.springframework.util.StopWatch;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
/**
* 批次查询
*
* @author pinyan.song
* @version 6.0.0
* @date 2019-9-23
**/
public class ReferenceFileQueryAction extends SystemSetupAction {
private static final Logger logger = LoggerFactory.getLogger(ReferenceFileQueryAction.class);
@Override
public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
int tabMaxCount = Integer.MAX_VALUE;
String tabMaxCountStr = sysService.getRefFileValue("$PORTAL_TAB_MAX_COUNT", "LOTPORTAL", "DATA_1_VALUE");
if (StringUtils.isNotBlank(tabMaxCountStr) && NumberUtils.isNumber(tabMaxCountStr)) {
tabMaxCount = NumberUtils.toInt(tabMaxCountStr, Integer.MAX_VALUE);
}
request.setAttribute("totalTabCount", tabMaxCount);
return mapping.findForward("referenceFileQuery");
}
public Map query(Map<String, Object> params) throws Exception {
StopWatch sw = new StopWatch("reference file query action");
Map map = new HashMap();
int rowStart = NumberUtils.toInt(MapUtils.getString(params, "start"));
rowStart = rowStart < 0 ? 0 : rowStart;
int pageSize = NumberUtils.toInt(MapUtils.getString(params, "limit"));
pageSize = pageSize <= 0 ? 10 : pageSize;
int totalCount = 0;
Page page = new Page();
page.setPageSize(Long.valueOf(pageSize));
page.setPageNo((rowStart / pageSize) + 1);
String sort = MapUtils.getString(params, "sort");
if(StringUtils.isNotEmptyTrim(sort)){
Map<String,Object> sortMap = JsonUtils.toList(sort, Map.class).get(0);
String order = MapUtils.getJsonString(sortMap,"direction");
page.setOrder(StringUtils.lowerCase(order));
page.setOrderBy(MapUtils.getJsonString(sortMap,"property"));
}
page = sysService.queryRefFileForPage(buildQueryParameterDto(params, page));
map.put("data", page.getResults());
map.put("totalCount", page.getTotalItems());
if (logger.isDebugEnabled()) {
logger.debug(sw.prettyPrint());
}
return map;
}
/**
* 设置查询条件
*/
private Page buildQueryParameterDto(Map<String, Object> params, Page page) throws Exception {
Map<String,Object> map = new HashMap<>();
String instanceId = MapUtils.getString(params, "REFERENCE_FILE", "").trim();
instanceId = StringUtils.replace(instanceId, "*", "%").toString().trim().toUpperCase();
map.put("instanceId",instanceId);
String instanceDesc = MapUtils.getString(params, "instance_desc_param", "").trim();
instanceDesc = StringUtils.replace(instanceDesc, "*", "%").toString().trim().toLowerCase();
map.put("instanceDesc", instanceDesc);
map.put("object","REFERENCEFILE");
page.setBaseInfo(map);
return page;
}
}