LotPlanTransHistoryAction.java
package com.mycim.webapp.actions.lot.lottranshistory;
import com.fa.sesa.exception.Assert;
import com.fa.sesa.exception.Errors;
import com.fa.sesa.threadlocal.LocalContext;
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.webapp.Constants;
import com.mycim.webapp.WebUtils;
import com.mycim.webapp.actions.WipSetupAction;
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.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 批次投片事务历史
*
* @author weike.li
* @version 6.0.0
* @date 2019/9/10
**/
public class LotPlanTransHistoryAction extends WipSetupAction {
private static final String RESET_PAGE_FLAG = "resetPageFlag";
private static final String LOT_ID = "lotId";
private static final String FROM_URL_FLAG = "fromUrlFlag";
private static final String NUM_ONE = "1";
private static final String THIS_PAGE = "thisPage";
private static final String CURREN_TFOR_COMPARE = "currentForCompare";
@Override
public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
Map lotInfo = null;
Map upMap = new HashMap(4);
String lotId = StringUtils.EMPTY;
lotId = WebUtils.getParameterUpperCase("lotId", request).trim();
lotInfo = new HashMap();
upMap.put("lotId", lotId);
upMap.put("lotRrn", MapUtils.getLong(lotInfo, "lotRrn", 0L));
request.setAttribute("map", upMap);
request.setAttribute("lotInfo", lotInfo);
Map map = (Map) request.getAttribute("map");
int fixSize = 10;
int current = 1;
// 切换tab的时候,重置当前页为第一页
if (StringUtils.isNotBlank(WebUtils.getParameter(RESET_PAGE_FLAG, request))) {
current = 1;
}
List list1 = new ArrayList();
request.setAttribute("list", list1);
request.setAttribute("current", current);
request.setAttribute("lastPageSize", lotQueryService.getCount("LOT_PLAN_H", map).longValue() % fixSize);
request.setAttribute("pageSize", fixSize);
request.setAttribute("maxPage", lotQueryService.getCount("LOT_PLAN_H", map).longValue() / fixSize + 1);
return mapping.findForward(Constants.QUERY_KEY);
}
public ActionForward query(ActionMapping mapping, HttpServletRequest request) {
Map lotInfo = null;
Map upMap = new HashMap(5);
boolean navFlag = request.getParameter("nav") != null;
String lotTransId = request.getParameter("lotTransId");
String lotId = StringUtils.EMPTY;
Long facility = LocalContext.getFacilityRrn();
lotId = WebUtils.getParameterUpperCase("lotId", request).trim();
if (navFlag) {
lotInfo = new HashMap();
} else if (navFlag != true) {
Assert.isFalse(StringUtils.isEmpty(lotId),
Errors.create().key(MessageIdList.LOT_ID_EMPTY).content("Lot Id can't be Empty!").build());
lotInfo = lotQueryService.getLotInfoasMap(facility, lotId);
if (lotInfo == null) {
lotInfo = wipQueryService.getLotPlanMap(lotId);
}
Assert.isFalse(lotInfo == null,
Errors.create().key(MessageIdList.LOT_MISSING_ID).content("No such lot info!").build());
if (StringUtils.isBlank(MapUtils.getString(lotInfo, LOT_ID))) {
lotInfo.put("lotId", lotId);
}
}
upMap.put("lotId", lotId);
upMap.put("lotRrn", MapUtils.getLong(lotInfo, "lotRrn", 0L));
if (lotTransId != null && !"".equals(lotTransId)) {
upMap.put("lotTransId", lotTransId);
request.setAttribute("lotTransId", lotTransId);
}
request.setAttribute("map", upMap);
request.setAttribute("lotInfo", lotInfo);
Map map = (Map) request.getAttribute("map");
Long facilityRrn = LocalContext.getFacilityRrn();
if (StringUtils.equals(WebUtils.getParameter(FROM_URL_FLAG, request), NUM_ONE)) {
request.setAttribute("fromUrlFlag", "1");
}
if (lotInfo == null && StringUtils.equals(WebUtils.getParameter(FROM_URL_FLAG, request), NUM_ONE)) {
lotInfo = lotQueryService.getLotInfoasMap(facilityRrn, lotId);
request.setAttribute("lotInfo", lotInfo);
map = new HashMap();
map.put("lotId", lotInfo.get("lotId"));
}
boolean flag = lotInfo == null;
int fixSize = 10;
int pageSize = fixSize;
int current = 1;
if (request.getParameter(THIS_PAGE) != null) {
current = new Integer((String) request.getParameter("thisPage")).intValue();
}
// 切换tab的时候,重置当前页为第一页
if (StringUtils.isNotBlank(WebUtils.getParameter(RESET_PAGE_FLAG, request))) {
current = 1;
}
if (NUM_ONE.equals(request.getParameter(CURREN_TFOR_COMPARE))) {
current = 1;
}
Long lotRrn = MapUtils.getLongValue(map, "lotRrn");
if (MapUtils.isNotEmpty(map)) {
map.remove("lotRrn");
}
List list = flag ? new ArrayList() : wipQueryService.queryLotPlanHistory(map, current, pageSize);
if (MapUtils.isNotEmpty(map)) {
map.put("lotRrn", lotRrn);
}
String allPriority = "";
List list1 = new ArrayList();
for (Object obj : list) {
Map tempMap = (Map) obj;
Map<String, String> m = MapUtils.convertToMapOfString(tempMap);
if (StringUtils.isNotBlank(MapUtils.getString(m, "priority")) &&
StringUtils.isNotBlank(MapUtils.getString(m, "hotFlag"))) {
allPriority = wipQueryService.getHotflagSplicingPriority(MapUtils.getInteger(m, "hotFlag"),
MapUtils.getInteger(m, "priority"),
facilityRrn);
}
m.put("allPriority", allPriority);
list1.add(m);
}
request.setAttribute("list", list1);
request.setAttribute("current", current);
request.setAttribute("lastPageSize", lotQueryService.getCount("LOT_PLAN_H", map).longValue() % fixSize);
request.setAttribute("pageSize", fixSize);
request.setAttribute("maxPage", lotQueryService.getCount("LOT_PLAN_H", map).longValue() / fixSize + 1);
return mapping.findForward(Constants.QUERY_KEY);
}
public ActionForward reset(ActionMapping mapping, HttpServletRequest request) {
Map lotInfo = null;
Map upMap = new HashMap();
String lotId = StringUtils.EMPTY;
lotId = WebUtils.getParameterUpperCase("lotId", request).trim();
lotInfo = new HashMap();
upMap.put("lotId", lotId);
upMap.put("lotRrn", MapUtils.getLong(lotInfo, "lotRrn", 0L));
request.setAttribute("map", upMap);
request.setAttribute("lotInfo", lotInfo);
Map map = (Map) request.getAttribute("map");
int fixSize = 10;
int current = 1;
// 切换tab的时候,重置当前页为第一页
if (StringUtils.isNotBlank(WebUtils.getParameter(RESET_PAGE_FLAG, request))) {
current = 1;
}
List list1 = new ArrayList();
request.setAttribute("list", list1);
request.setAttribute("current", current);
request.setAttribute("lastPageSize", lotQueryService.getCount("LOT_PLAN_H", map).longValue() % fixSize);
request.setAttribute("pageSize", fixSize);
request.setAttribute("maxPage", lotQueryService.getCount("LOT_PLAN_H", map).longValue() / fixSize + 1);
return mapping.findForward(Constants.QUERY_KEY);
}
public ActionForward adjustHistoryComparison(ActionMapping mapping, HttpServletRequest request) {
long lotRrn = WebUtils.getParameterLong("lotRrn", request);
String transStartTimeString = WebUtils.getParameter("transStartTimestamp", request);
Timestamp transStartTimestamp = new Timestamp(
DateUtils.parse(transStartTimeString, DateUtils.DATE_FORMAT).getTime());
request.setAttribute("adjustLotTransInfos",
lotQueryService.getLotAdjustDataWithSimilarTime(lotRrn, transStartTimestamp));
return mapping.findForward("adjustHistoryComparison");
}
}