RemeasureUnitsAction.java

package com.mycim.webapp.actions.step;

import com.fa.sesa.exception.Assert;
import com.fa.sesa.exception.Errors;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.msg.JsonUtils;
import com.mycim.valueobject.consts.OcapConts;
import com.mycim.valueobject.consts.SpecifiedActionEnum;
import com.mycim.valueobject.ocap.dto.OcapDoActionDTO;
import com.mycim.valueobject.ocap.dto.RemeasurementDTO;
import com.mycim.valueobject.ocap.dto.UnitIdDTO;
import com.mycim.valueobject.wip.Lot;
import com.mycim.valueobject.wip.LotStatus;

import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author songpy
 * @version 1.0.0
 * @date 2021/5/25
 **/
public class RemeasureUnitsAction extends RemeasureAction {
    public RemeasureUnitsAction() {
        this.actionType = SpecifiedActionEnum.REMEASURE_UNIT;
    }

    /**
     * Action方法
     */
    public Map checkRemeasurementLotStatus(String lotId) {
        Map<String, Object> map = new HashMap<>();
        Lot lot = lotQueryService.getLot(lotId);
        if (StringUtils.equals(lot.getLotStatus(), LotStatus.RUNNINGHOLD)) {
            map.put("checkResult", "PASS");
        } else {
            map.put("checkResult", "REJECT");
        }
        return map;
    }

    @Override
    protected void buildRemeasurementDatas(OcapDoActionDTO ocapDoActionDTO, RemeasurementDTO remeasurementDTO) {
        ocapDoActionDTO.setTransDatas(new HashMap<String, String>());
        Assert.isFalse(StringUtils.isEmpty(remeasurementDTO.getSelectUnitRrns()) ||
                               StringUtils.isEmpty(remeasurementDTO.getSelectUnitIds()),
                       Errors.create().content("Please choose Unit!").build());
        UnitIdDTO unitIdDTO = new UnitIdDTO(remeasurementDTO.getSelectUnitIds());
        List<UnitIdDTO> unitIdDTOs = new ArrayList<>();
        unitIdDTOs.add(unitIdDTO);
        ocapDoActionDTO.getTransDatas().put(OcapConts.MapKey.KEY_REMEASURE_UNIT_IDS, JsonUtils.toString(unitIdDTOs));
        ocapDoActionDTO.getTransDatas()
                       .put(OcapConts.MapKey.KEY_REMEASURE_UNIT_RRNS, remeasurementDTO.getSelectUnitRrns());
    }

    @Override
    protected void setActionUrl(HttpServletRequest request) {
        request.setAttribute(ACTION_URL_KEY, "ocapStepRemeasureUnits.do");
    }

}