EquipmentConstrainHistAction.java
package com.mycim.webapp.actions.constrain;
import com.fa.sesa.exception.Assert;
import com.fa.sesa.exception.Errors;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.jdbc.Page;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.collections.MapUtils;
import com.mycim.framework.utils.lang.time.DateUtils;
import com.mycim.valueobject.MessageIdList;
import com.mycim.valueobject.prp.EquipmentConstrainInfo;
import com.mycim.webapp.TemplateLocation;
import com.mycim.webapp.WebUtils;
import com.mycim.webapp.actions.PrpSetupAction;
import com.mycim.webapp.forms.EquipmentConstrainSetupForm;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author kang.zhang
* @version 6.0.0
* @date 2019/9/18
**/
public class EquipmentConstrainHistAction extends PrpSetupAction {
private static final Integer PAGESIZE = 15;
private static final String PAGE = "PAGE";
@Override
public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
request.setAttribute("userId", LocalContext.getUserId());
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.DATE_FORMAT4DAY);
String startDateStr = sdf.format(date);
date.setTime(date.getTime() + 24 * 60 * 60 * 1000L);
String endDateStr = sdf.format(date);
request.setAttribute("startDate", startDateStr);
request.setAttribute("endDate", endDateStr);
request.setAttribute("currentPage", 1);
request.setAttribute("maxPage", 1);
request.setAttribute("pageSize", PAGESIZE);
request.setAttribute("lastPageSize", PAGESIZE);
return mapping.getInputForward();
}
public ActionForward queryHist(ActionMapping mapping, EquipmentConstrainSetupForm theform,
HttpServletRequest request) {
long facilityRrn = LocalContext.getFacilityRrn();
String startDateStr = WebUtils.getParameter("startDate", request);
String endDateStr = WebUtils.getParameter("endDate", request);
String eqptId = StringUtils.trimToUpperCase(theform.getEquipmentId());
/*long equipmentRrn = this.getInstanceRrn(eqptId, facilityRrn, ObjectList.ENTITY_KEY);
if (equipmentRrn <= 0) {
throw new WebException("equipment.id_not_exist", "Equipment ID does not exist!");
}*/
Integer thisPage = WebUtils.getParameterInt("thisPage", request);
Integer pageSize = WebUtils.getParameterInt("pageSize", request);
if (StringUtils.isNotBlank(WebUtils.getParameter("query", request))) {
thisPage = 1;
} else if (StringUtils.isNotBlank(WebUtils.getParameter("queryAll", request))) {
thisPage = 1;
}
Page page;
if (StringUtils.isNotBlank(WebUtils.getParameter("queryAll", request))) {
page = getPage(true, pageSize, thisPage, 15, 1);
} else {
page = getPage(false, pageSize, thisPage, 15, 1);
}
page = getEquipmentConstrainHist(request, page, startDateStr, endDateStr, eqptId);
request.setAttribute("currentPage", page.getPageNo());
request.setAttribute("pageSize", page.getPageSize());
request.setAttribute("maxPage", page.getTotalPages());
request.setAttribute("lastPageSize", page.getPageSize());
request.setAttribute("equipmentId", eqptId);
request.setAttribute("ecsHist", page.getResults());
request.setAttribute("startDate", startDateStr);
request.setAttribute("endDate", endDateStr);
return mapping.getInputForward();
}
public Page queryHistoryList(Map parameterMap) {
long facilityRrn = LocalContext.getFacilityRrn();
String startDateStr = MapUtils.getString(parameterMap,"startDate");
String endDateStr = MapUtils.getString(parameterMap,"endDate");
String eqptId = MapUtils.getString(parameterMap,"equipmentId");
/*long equipmentRrn = this.getInstanceRrn(eqptId, facilityRrn, ObjectList.ENTITY_KEY);
if (equipmentRrn <= 0) {
throw new WebException("equipment.id_not_exist", "Equipment ID does not exist!");
}*/
Integer thisPage = MapUtils.getInteger(parameterMap,"page", 1);
Integer pageSize = MapUtils.getInteger(parameterMap,"limit", 20);
Page page;
if (StringUtils.isNotBlank(MapUtils.getString(parameterMap,"queryAll"))) {
pageSize = Integer.MAX_VALUE;
}
page = new Page(thisPage, pageSize);
page = getEquipmentConstrainHist(null, page, startDateStr, endDateStr, eqptId);
return page;
}
public ActionForward export(ActionMapping mapping, EquipmentConstrainSetupForm theform, HttpServletRequest request,
HttpServletResponse response) throws Exception {
Map<String, Object> titles = WebUtils.getExportTitles(request);
titles.put("title", "设备限制历史");
String startDateStr = WebUtils.getParameter("startDate", request);
String endDateStr = WebUtils.getParameter("endDate", request);
String eqptId = StringUtils.trimToUpperCase(theform.getEquipmentId());
String exportType = WebUtils.getExportType(request);
Integer thisPage = WebUtils.getParameterInt("thisPage", request);
Integer pageSize = WebUtils.getParameterInt("pageSize", request);
Page page;
if (StringUtils.equalsIgnoreCase(exportType, PAGE)) {
page = getPage(false, pageSize, thisPage, 15, 1);
} else {
page = getPage(true, pageSize, thisPage, 15, 1);
}
page = getEquipmentConstrainHist(request, page, startDateStr, endDateStr, eqptId);
// 导出
String exportDateTime = DateUtils.getNowTime(DateUtils.DATE_FORMAT4NOSPLICING);
List<Map> data = (List<Map>) page.getResults();
String fileName = "EquipmentConstrainHist" + exportDateTime + ".xlsx";
WebUtils.exportExcel(fileName, titles, data, TemplateLocation.EQUIPMENT_CONSTRAIN_HIST, response);
return WebUtils.NULLActionForward;
}
private Page getEquipmentConstrainHist(HttpServletRequest request, Page page, String startDateStr,
String endDateStr, String eqptId) {
Timestamp startDate = DateUtils.stringToTimestamp(startDateStr + " 00:00:00");
Timestamp endDate = DateUtils.stringToTimestamp(endDateStr + " 00:00:00");
Assert.isFalse(startDate == null || endDate == null,
Errors.create().key(MessageIdList.DATE_DATE_FORMAT_INCORRECT)
.content("Equipment ID does not exist!").build());
EquipmentConstrainInfo ecs = new EquipmentConstrainInfo();
ecs.setEquipmentId(eqptId);
ecs.setStartDate(startDateStr);
ecs.setEndDate(endDateStr);
page = constrainService.qryEquipmentConstrainHist(ecs, page);
return page;
}
private Page getPage(boolean isExportAll, Integer pageSize, Integer currentPage, Integer defaultpageSize,
Integer defaultcurrentPage) {
Page page = new Page();
currentPage = currentPage == 0 ? defaultcurrentPage : currentPage;
pageSize = pageSize == 0 ? defaultpageSize : pageSize;
if (isExportAll) {
page.setPageNo(1);
page.setPageSize(Integer.MAX_VALUE);
} else {
page.setPageNo(currentPage);
page.setPageSize(pageSize);
}
return page;
}
}