ResistMoveInAction.java

package com.mycim.webapp.actions.resist;

import com.fa.sesa.exception.Assert;
import com.fa.sesa.exception.Errors;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.jdbc.Page;
import com.mycim.framework.utils.beans.BeanUtils;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.collections.CollectionUtils;
import com.mycim.valueobject.MessageIdList;
import com.mycim.valueobject.consts.EventName;
import com.mycim.valueobject.ems.Resist;
import com.mycim.valueobject.ems.ResistEqptMapping;
import com.mycim.webapp.actions.ResistSetupAction;
import com.mycim.webapp.forms.ResistForm;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.converters.DateConverter;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import javax.servlet.http.HttpServletRequest;
import java.util.Collection;

/**
 * @author yanbing.chen
 * @date 2019/11/5
 * @since 1.8
 **/
public class ResistMoveInAction extends ResistSetupAction {

    public ActionForward initResistMoveIn(HttpServletRequest request, ActionMapping mapping) {
        return mapping.findForward("resistMoveIn");
    }

    public void moveInCheck(ResistForm theform) {
        String eqptId = theform.getEqptId();
        String unit = theform.getUnit();
        String prpipe = theform.getPrPipe();
        String resistNo = theform.getResistNo();
        String instanceId = theform.getInstanceId();
        ResistEqptMapping resistMapping = new ResistEqptMapping();
        resistMapping.setUnit(unit);
        resistMapping.setEqptId(eqptId);
        resistMapping.setPrPipe(prpipe);
        Page page = resistService.qryResistEqptMappingByPage(resistMapping, new Page(1, 10));
        Collection c = page.getResults();
        Assert.isFalse(CollectionUtils.isEmpty(c), Errors.create().key(MessageIdList.RESIST_RESIST_EQP_MAPPING_MISSING)
                                                         .content("Resist for Eqpt Mapping not find! ").build());
        resistMapping = (ResistEqptMapping) c.iterator().next();
        Assert.isTrue(StringUtils.equalsIgnoreCase(resistNo, resistMapping.getResistNo()),
                      Errors.create().key(MessageIdList.RESIST_RESIST_EQP_MAPPING_MISSING)
                            .content("Resist for Eqpt Mapping not find! ").build());
        Resist resist = resistService.getResistByResistId(instanceId);
        Assert.isTrue(StringUtils.equalsIgnoreCase(resist.getResistNo(), resistNo),
                      Errors.create().key(MessageIdList.RESIST_RESISTNO_MISMATCH).content("Resist no mismatch!")
                            .build());
        Resist recommendResist = resistService.getRecommendResist(resist);
        Assert.isFalse(recommendResist == null || StringUtils.isEmpty(recommendResist.getInstanceId()),
                       Errors.create().key(MessageIdList.RESIST_MISSING_RECOMMEND_BARCODE)
                             .content("Not find recommend Resist Barcode!").build());
    }

    public ActionForward resistMoveIn(ActionMapping mapping, HttpServletRequest request, ResistForm theform) {
        String user = LocalContext.getUserId();
        String instanceId = theform.getInstanceId();

        Resist tmpResist = resistService.getResistByResistId(instanceId);
        Assert.isFalse(tmpResist == null || tmpResist.getInstanceRrn() <= 0,
                       Errors.create().key(MessageIdList.RESIST_RESIST_MISSING).content("Resist not exist!").build());

        ConvertUtils.register(new DateConverter(null), java.util.Date.class);

        Resist resist = new Resist();
        BeanUtils.copyProperties(tmpResist, resist);
        BeanUtils.copyProperties(theform, resist);
        resist.setInstanceRrn(tmpResist.getInstanceRrn());

        resist.setModifyBy(user);
        resist.setComments("Setup new resist");

        resistService.resistMoveInAndRemove(EventName.RESIST_READY_TO_INUSE, resist);
        return mapping.findForward("resistMoveIn");
    }

}