EqpMonitorWflInfoGridAction.java

package com.mycim.webapp.actions.dmmwflinfogrid;

import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.collections.MapUtils;
import com.mycim.framework.utils.msg.JsonUtils;
import com.mycim.valueobject.prp.EqpMonitorModel;
import com.mycim.valueobject.prp.EqpMonitorStep;
import com.mycim.valueobject.wip.Lot;
import com.mycim.webapp.WebUtils;
import com.mycim.webapp.actions.NpwSetupAction;
import com.mycim.webapp.forms.EqpMonitorWflInfoForm;
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.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * DmmWflInfoGridAction
 *
 * @author chaoyu.song
 * @version 6.0.0
 * @date 2020/5/28
 **/
public class EqpMonitorWflInfoGridAction extends NpwSetupAction {

    private final String TREE_BEFORE = "treebefore";

    private final String TREE_BEFORE_CURRENT = "treebeforeandcurrent";

    private final String TREE_AFTER = "treeafter";

    private final String TREE_AFTER_CURRENT = "treeafterandcurrent";

    private final String TREE_GRID_ALL = "treeGridAll";

    private final String FILTER_TYPE = "FILTERTYPE";

    private final String EXECUTIONRRN = "EXECUTIONRRN";

    private final String TREE_REWORK_ALL = "treeReworkAll";

    @Override
    public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                              HttpServletResponse response) throws Exception {
        EqpMonitorWflInfoForm theform = (EqpMonitorWflInfoForm) form;
        String orientateCurrByFLowSeq = WebUtils.getParameter("orientateCurrByFLowSeq", request);

        request.setAttribute("CONDTIONFORM_INIT_VALUES", JsonUtils.toString(theform));
        request.setAttribute("orientateCurrByFLowSeq",
                             StringUtils.isNotBlank(orientateCurrByFLowSeq) ? orientateCurrByFLowSeq : "");
        request.setAttribute("callbackFlag", request.getParameter("callbackFlag"));

        return mapping.findForward("init");
    }

    /**
     * @param request
     * @return
     */
    public List<Map<String, Object>> qryDmmWflInfoGrid(Map<String, Object> paramMap, HttpServletRequest request) {
        String lotId = MapUtils.getString(paramMap, "lotId");
        Lot lot = lotQueryService.getLot(lotId);

        EqpMonitorModel model = dmmService.getDmmModelByWfl(lot.getRouteRrn(), lot.getRouteVersion());

        List<EqpMonitorStep> stepsInfo = dmmService
                .getDmmModelStepsInfo(model.getModelRrn(), lot.getRouteVersion().toString());

        return buildDmmProcessStepInfo(stepsInfo, lot);

    }


    private List<Map<String, Object>> buildDmmProcessStepInfo(List<EqpMonitorStep> stepList, Lot lot) {
        List nodes = new ArrayList<>();

        // DMM path,除了operationStepRrn不一样,其余都一致
        String wflStepPath = lot.getWflStepPath();
        String wflStepPathPreix = lot.getWflStepPath().substring(0, wflStepPath.lastIndexOf("."));

        for (EqpMonitorStep step : stepList) {
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("modelSeq", step.getModelSeq());
            map.put("eqptId", StringUtils.isBlank(step.getEqptId()) ? "" : step.getEqptId());
            map.put("slot", StringUtils.isBlank(step.getEqptId()) ? "" : step.getSlot());
            map.put("recipeId", StringUtils.isBlank(step.getRecipeId()) ? "" : step.getRecipeId());
            map.put("parameterId", StringUtils.isBlank(step.getParameterId()) ? "" : step.getParameterId());
            map.put("formula", StringUtils.isBlank(step.getCalculateFormula()) ? "" : step.getCalculateFormula());
            map.put("spec", getLimitString(step.getLowerLimit(), step.getUpperLimit()));
            map.put("measurationFlag", step.getMeasurationFlag() == null ? "N" : "Y");
            map.put("entityGroupId", StringUtils.isBlank(step.getEntityGroupId()) ? "" : step.getEntityGroupId());
            map.put("parameterSetId", StringUtils.isBlank(step.getParameterSetId()) ? "" : step.getParameterSetId());
            map.put("operationId", StringUtils.isBlank(step.getOperationId()) ? "" : step.getOperationId());
            map.put("operationDesc", StringUtils.isBlank(step.getOperationDesc()) ? "" : step.getOperationDesc());
            map.put("contaimnation", StringUtils.isBlank(step.getContaimnation()) ? "" : step.getContaimnation());
            map.put("processLocation", StringUtils.isBlank(step.getProcessLocation()) ? "" : step.getProcessLocation());
            map.put("stageId", StringUtils.isBlank(step.getStageId()) ? "" : step.getStageId());
            map.put("stepSeq", StringUtils.isBlank(step.getStepSeq()) ? "" : step.getStepSeq());
            map.put("type", StringUtils.isBlank(step.getDmmType()) ? "" : step.getDmmType());
            map.put("waferNum", StringUtils.isBlank(step.getWaferNum()) ? "" : step.getWaferNum());

            map.put("routeRrn", lot.getRouteRrn());
            map.put("routeId", lot.getRouteId());
            map.put("processRrn", lot.getProcessRrn());
            map.put("processId", lot.getProcessId());

            map.put("stepNumber", wflStepPathPreix + "." + step.getWorkflowStepRrn());
            nodes.add(map);
        }
        return nodes;

    }

}