LotBaseInfoAction.java

package com.mycim.webapp.actions.lot;

import com.fa.sesa.exception.Assert;
import com.fa.sesa.exception.Errors;
import com.fa.sesa.threadlocal.LocalContext;
import com.mycim.framework.utils.beans.BeanUtils;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.lang.math.NumberUtils;
import com.mycim.framework.utils.lang.time.DateUtils;
import com.mycim.valueobject.MessageIdList;
import com.mycim.valueobject.ObjectList;
import com.mycim.valueobject.prp.Operation;
import com.mycim.valueobject.wip.Lot;
import com.mycim.valueobject.wip.LotStatus;
import com.mycim.webapp.actions.WipSetupAction;

import java.util.Map;

/**
 * 批次基本信息
 *
 * @author weike.li
 * @version 6.0.0
 * @date 2019/9/16
 **/
public class LotBaseInfoAction extends WipSetupAction {

    public Map queryLotInfo(Map map) {
        long facilityRrn = LocalContext.getFacilityRrn();
        String lotId = (String) map.get("lotId");

        long carrierRrn = 0;
        Lot lot = new Lot();
        Assert.state(StringUtils.isNotBlank(lotId) ,
                       Errors.create().key(MessageIdList.LOT_MISSING_LOTID_AND_CASSETTEID)
                             .content("LotId or " + "CassetteId " + "can't be " + "Empty!").build());
        if (StringUtils.isNotEmpty(lotId)) {
            lot = lotQueryService.getLot(lotId, facilityRrn);
            Assert.isFalse(lot.equals(new Lot()),
                           Errors.create().key(MessageIdList.LOT_MISSING_ID).content("No such lotId").build());
        }

        String operationId = lot.getOperationId();
        String lotStatus = lot.getLotStatus();
        if (StringUtils.equalsIgnoreCase(LotStatus.BANKED, lotStatus) ||
                StringUtils.equalsIgnoreCase(LotStatus.OUTSOURCING, lotStatus)) {
            operationId = lot.getPrevOperation();
        }
        Integer priority = lot.getPriority();

        String hotflag = lot.getHotFlag();

        String priorityString = wipQueryService
                .getHotflagSplicingPriority(NumberUtils.toInt(hotflag), priority, facilityRrn);

        Map resultMap = BeanUtils.copyBeanToMap(lot);
        resultMap.put("workArea", lotQueryService.getWorkArea(lot));
        resultMap.put("priority", priorityString);
        resultMap.put("dueDate", DateUtils.formatDate(lot.getDueDate(), DateUtils.DATE_FORMAT4DAYD));
        return resultMap;
    }

    private long isValidEntity(Long facility, String id) {
        return baseService.getNamedObjectRrn(id, getNamedSpace(ObjectList.ENTITY_KEY, facility), ObjectList.ENTITY_KEY);
    }

}