SplitRunCardLotHoldAction.java

package com.mycim.webapp.actions.splitruncardlot;

import com.fa.sesa.exception.Errors;
import com.fa.sesa.exception.SystemIllegalArgumentException;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.valueobject.MessageIdList;
import com.mycim.valueobject.consts.SessionNames;
import com.mycim.valueobject.wip.Lot;
import com.mycim.valueobject.wip.LotStatus;
import com.mycim.webapp.Constants;
import com.mycim.webapp.actions.RunCardAction;
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 pinyan.song
 * @version 6.0.0
 * @date 2020-1-9
 **/
public class SplitRunCardLotHoldAction extends RunCardAction {
    /**
     * Action 方法: init
     */
    @Override
    public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                              HttpServletResponse response) throws Exception {
        Lot lot = initLotBaseInfoForJsp(request);

        List<Map> holdReasons = wipQueryService.getHoldReasons(lot.getLotRrn());
        request.setAttribute(SessionNames.COLLECTION_KEY, holdReasons);

        if (StringUtils.equals(lot.getLotStatus(), LotStatus.WAITING) ||
                StringUtils.equals(lot.getLotStatus(), LotStatus.HOLD)) {
            return mapping.findForward(Constants.HOLD_KEY);
        } else if (StringUtils.equals(lot.getLotStatus(), LotStatus.RUNNING) ||
                StringUtils.equals(lot.getLotStatus(), LotStatus.RUNNINGHOLD)) {
            return mapping.findForward(Constants.RUNNING_HOLD_KEY);
        } else {
            throw new SystemIllegalArgumentException(
                    Errors.create().key(MessageIdList.LOT_STATUS_NOT_ALLOW).content("Lot status not allow").build());
        }
    }

    /**
     * Action 方法: hold
     */
    public ActionForward hold(ActionMapping mapping, ActionForm form, HttpServletRequest request) {
        return holdHandle(mapping, form, request);
    }

    /**
     * Action 方法: runningHold
     */
    public ActionForward runningHold(ActionMapping mapping, ActionForm form, HttpServletRequest request) {
        return holdRunningHandle(mapping, form, request);
    }

}