SplitRunCardCancelMoveInAction.java

package com.mycim.webapp.actions.splitruncardlot;

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.valueobject.consts.TransactionNames;
import com.mycim.valueobject.runcard.util.RecoveryRunCardActionType;
import com.mycim.valueobject.runcard.util.RunCardConstants;
import com.mycim.valueobject.runcard.util.RunCardUtils;
import com.mycim.valueobject.wip.*;
import com.mycim.webapp.WebUtils;
import com.mycim.webapp.actions.RunCardAction;
import com.mycim.webapp.forms.lot.LotInfoForm;
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.*;

/**
 * @author pinyan.song
 * @version 6.0.0
 * @date 2020-1-10
 **/
public class SplitRunCardCancelMoveInAction extends RunCardAction {
    /**
     * Action 方法: init
     */
    @Override
    public ActionForward init(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                              HttpServletResponse response) throws Exception {
        cancelMoveInInit((LotInfoForm) form, request);
        initLotBaseInfoForJsp(request);
        return new ActionForward(mapping.getInput());
    }

    /**
     * Action 方法: cancelmovein
     */
    public ActionForward cancelmovein(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                                      HttpServletResponse response) throws Exception {
        return cancelMoveInHandle(mapping, form, request, response);
    }

    @Override
    protected void cancelMoveInRunCardHandle(Lot lot, LotInfoForm theform, String reason, String userName,
                                             Long facilityRrn) {
        LotRunCardStore lotStore = lotRunCardQueryService.getSplitRunCardLotStore(lot.getLotRrn());
        long runCardRrn = lotStore.getRuncardRrn();
        LotRecoveryRunCard recoveryRunCard = lotRunCardQueryService.getLotRecoveryRunCard(runCardRrn);
        if (recoveryRunCard != null) {
            String runcardAction = recoveryRunCard.getRunCardAction();
            if (RecoveryRunCardActionType.isCancelTrackInType(runcardAction)) {

                TransReason transReason = new TransReason();
                transReason.setReasonCode(theform.getReasonCode());
                transReason.setReason(reason);
                transReason.setResponsibility(userName);
                transReason.setTransQty1(lot.getQty1());
                transReason.setTransQty2(lot.getQty2());
                lotRunCardService.outSplitRuncard(lot.getLotRrn(), transReason, userName);
            }
        }
    }

    @Override
    protected void cancelMoveInReturn(LotInfoForm theform, HttpServletRequest request,
                                      HttpServletResponse response) throws Exception {
        request.getRequestDispatcher("splitRunCardLotInfo.do?action=init&lotId=" + theform.getLotId())
               .forward(request, response);
    }

}