MonitorLotPortalAction.java

package com.mycim.webapp.actions.monitorlotportal;

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.math.NumberUtils;
import com.mycim.framework.utils.lang.time.DateUtils;
import com.mycim.valueobject.ObjectList;
import com.mycim.webapp.TemplateLocation;
import com.mycim.webapp.WebUtils;
import com.mycim.webapp.actions.NpwSetupAction;
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.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 批次查询
 *
 * @author .kang.zhang
 * @version 6.0.0
 * @date 2019-12-12
 **/
public class MonitorLotPortalAction extends NpwSetupAction {

    @Override
    public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                              HttpServletResponse response) throws Exception {
        String[] types = new String[]{"EQUIPMENTLOCATION"};
        registerOptionType(LocalContext.getFacilityRrn(), Arrays.asList(types), request);
        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("lotPortal");
    }

    public Map query(Map<String, Object> params) {
        String pageSize = MapUtils.getString(params, "limit");
        String pageNo = MapUtils.getString(params, "page");
        Map lotPortalFormMap = getConditionMapByMap(params);
        Page page = new Page();
        page.setPageSize(Long.valueOf(pageSize));
        page.setPageNo(Long.valueOf(pageNo));

        page = dmmLotService.queryMonitorLotInfo(page, lotPortalFormMap);

        Map<String, Object> map = new HashMap<>(4);
        map.put("data", page.getResults());
        map.put("totalCount", page.getTotalItems());
        return map;
    }

    public ActionForward exportMonitorLotInfo(HttpServletRequest request,
                                              HttpServletResponse response) throws Exception {
        Map<String, Object> argMap = getConditionMapByRequest(request);
        Map dataMap = dmmLotService.queryAllMonitorLotInfo(argMap);
        List<Map> data = (List<Map>) dataMap.get("data");
        // 导出
        String exportDateTime = DateUtils.getNowTime(DateUtils.DATE_FORMAT4NOSPLICING);
        String fileName = "MonitorLotInfo" + exportDateTime + ".xlsx";
        Map<String, Object> titles = WebUtils.getExportTitles(request);
        WebUtils.exportExcel(fileName, titles, data, TemplateLocation.DMM_LOT_INFO, response);
        return WebUtils.NULLActionForward;
    }

    private Map getConditionMapByMap(Map<String, Object> params) {
        Map<String, Object> lotPortalFormMap = new HashMap<String, Object>();
        lotPortalFormMap.put("eqptLocationCondition", MapUtils.getString(params, "eqptLocationCondition"));
        lotPortalFormMap.put("eqptIdCondition", MapUtils.getString(params, "eqptIdCondition"));
        lotPortalFormMap.put("carrierIdCondition", MapUtils.getString(params, "carrierIdCondition"));
        String dmmProcessIdCondition = MapUtils.getString(params, "dmmProcessIdCondition");
        long dmmProcessIdConditionRrn = this
                .getInstanceRrn(dmmProcessIdCondition, LocalContext.getFacilityRrn(), ObjectList.WFL_KEY);
        lotPortalFormMap.put("dmmProcessIdConditionRrn", dmmProcessIdConditionRrn);
        lotPortalFormMap.put("startDateCondition", MapUtils.getString(params, "startDateCondition"));
        lotPortalFormMap.put("endDateCondition", MapUtils.getString(params, "endDateCondition"));
        lotPortalFormMap.put("showAll", MapUtils.getString(params, "showAll"));
        return lotPortalFormMap;
    }

    private Map getConditionMapByRequest(HttpServletRequest request) {
        Map<String, Object> lotPortalFormMap = new HashMap<String, Object>();
        lotPortalFormMap.put("eqptLocationCondition", StringUtils.trim(request.getParameter("eqptLocationCondition")));
        lotPortalFormMap.put("eqptIdCondition", StringUtils.trim(request.getParameter("eqptIdCondition")));
        lotPortalFormMap.put("carrierIdCondition", StringUtils.trim(request.getParameter("carrierIdCondition")));
        String dmmProcessIdCondition = StringUtils.trim(request.getParameter("dmmProcessIdCondition"));
        long dmmProcessIdConditionRrn = this
                .getInstanceRrn(dmmProcessIdCondition, LocalContext.getFacilityRrn(), ObjectList.WFL_KEY);
        lotPortalFormMap.put("dmmProcessIdConditionRrn", dmmProcessIdConditionRrn);
        lotPortalFormMap.put("startDateCondition", StringUtils.trim(request.getParameter("startDateCondition")));
        lotPortalFormMap.put("endDateCondition", StringUtils.trim(request.getParameter("endDateCondition")));
        return lotPortalFormMap;
    }

}