AutoSkipStepByContext.java

package com.mycim.webapp.actions.operation.run;

import com.mycim.framework.utils.lang.collections.CollectionUtils;
import com.mycim.framework.utils.lang.collections.MapUtils;
import com.mycim.valueobject.consts.SessionNames;
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.util.List;
import java.util.Map;

/**
 * @author Johnson.Wang
 * @version 6.0.0
 * @date 2019/10/10
 **/
public class AutoSkipStepByContext extends WipSetupAction {

    @Override
    public ActionForward perform(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                                 HttpServletResponse response) throws Exception {
        Map parameters = (Map) request.getAttribute(SessionNames.PARAMETERSINFO_KEY);

        List<Map> lots = (List<Map>) request.getAttribute(SessionNames.PROCESS_NEXT_STEP_INFO_KEY);
        if (CollectionUtils.isNotEmpty(lots)) {
            for (Map lotMap : lots) {
                lotService.skipProcessStepByContext(MapUtils.getLongValue(lotMap, "lotRrn"));
            }
        }

        parameters.put(SessionNames.RUNSTEP_FLAG, "0");
        request.getRequestDispatcher(mapping.findForward("workflow").getPath()).forward(request, response);
        return null;
    }

}