UnitQueryManagerImpl.java

package com.mycim.server.wip.manager.impl;

import com.mycim.framework.utils.lang.collections.CollectionUtils;
import com.mycim.framework.utils.lang.collections.MapUtils;
import com.mycim.server.wip.dao.UnitQueryDAO;
import com.mycim.server.wip.manager.UnitQueryManager;
import com.mycim.valueobject.prp.UnitRecycledInfo;
import com.mycim.valueobject.wip.BoxForDie;
import com.mycim.valueobject.wip.Lot;
import com.mycim.valueobject.wip.Unit;
import com.mycim.valueobject.wip.UnitTimelimitStatus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;

/**
 * @author yanbing.chen
 * @date 2019/9/4
 * @since 1.8
 **/
@Service
@Transactional
public class UnitQueryManagerImpl implements UnitQueryManager {

    @Autowired
    UnitQueryDAO unitQueryDAO;


    @Override
    public Unit getUnit(long unitRrn) {
        return unitQueryDAO.getUnit(unitRrn);
    }

    @Override
    public List<Unit> getUnitList(Long lotRrn) {
        return unitQueryDAO.getUnitList(lotRrn);
    }

    @Override
    public List<Map> getUnits(Long lotRrn) {
        return unitQueryDAO.getUnits(lotRrn);
    }

    @Override
    public List<Map> getUnitsByParentLotRrn(long lotRrn) {
        return unitQueryDAO.getUnitsByParentLotRrn(lotRrn);
    }

    @Override
    public List<Map> getUnitListByLot(long lotRrn) {
        return unitQueryDAO.getUnitListByLot(lotRrn, true);
    }

    @Override
    public Unit getUnit(long facilityRrn, String unitId) {
        return unitQueryDAO.getUnit(facilityRrn, unitId);
    }

    @Override
    public List<Map<String, Object>> getUsefulUnits(long lotRrn) {
        return unitQueryDAO.getUsefulUnits(lotRrn);
    }

    @Override
    public int getLotWafeCount(long lotRrn) {
        return unitQueryDAO.getLotWafeCount(lotRrn);
    }

    @Override
    public List<Map<String,Long>> getLotRrnFromUnitStepRangeHistory(String unitId) {
        return unitQueryDAO.getLotRrnFromUnitStepRangeHistory(unitId);
    }

    @Override
    public List<Map> getUnitListByCarrier(long carrierRrn) {
        return unitQueryDAO.getUnitListByCarrier(carrierRrn);
    }

    @Override
    public Long getNumberOfUnitInCarrier(Long carrierRrn) {
        return unitQueryDAO.getNumberOfUnitInCarrier(carrierRrn);
    }

    @Override
    public List<Map<String, Object>> getLotUnitsAndBoxsInfos(Long lotRrn) {
        // 批次下所有unit
        List<Map<String, Object>> usefulUnits = unitQueryDAO.getUsefulUnits(lotRrn);
        // 批次下所有box
        List<BoxForDie> boxsByLotRrn = unitQueryDAO.getBoxsByLotRrn(lotRrn);
        for (Map<String, Object> map : usefulUnits) {
            Long unitRrn = MapUtils.getLong(map, "UNIT_RRN");
            List<BoxForDie> unitBoxs = new ArrayList<BoxForDie>();
            // 循环匹配unit下面的box
            for (BoxForDie boxForDie : boxsByLotRrn) {
                Long unitRrnForbox = boxForDie.getUnitRrn();
                if (unitRrn.equals(unitRrnForbox)) {
                    unitBoxs.add(boxForDie);
                }
            }
            // 将boxs放入unit信息中
            map.put("unitBoxs", unitBoxs);
        }
        return usefulUnits;
    }

    @Override
    public List<BoxForDie> getDieBoxsByLotRrn(Long lotRrn) {
        return unitQueryDAO.getBoxsByLotRrn(lotRrn);
    }

    @Override
    public List<Map<String, Object>> getUnitsByLot(Lot lot) {
        return unitQueryDAO.getUnitsByLot(lot);
    }

    @Override
    public List<Map> getUnitListByLot(long lotRrn, Boolean filterStatus) {
        return unitQueryDAO.getUnitListByLot(lotRrn, filterStatus);
    }

    @Override
    public List<Map> getUnitListHistory(long transRrn) {
        return unitQueryDAO.getUnitListHistory(transRrn);
    }

    @Override
    public List<Map<String, Long>> getReworkUnitSeq(Long lotRrn, String processStepVersion) {
        return unitQueryDAO.getReworkUnitSeq(lotRrn, processStepVersion);
    }

    @Override
    public List<Unit> getUnitListByT7Code(String t7Code) {
        return unitQueryDAO.getUnitListByT7Code(t7Code);
    }

    @Override
    public Unit getUnit4Alias1(Long unitRrn, String unitId) {
        return unitQueryDAO.getUnit4Alias(unitRrn, unitId, "UNIT_ALIAS_1");
    }

    @Override
    public Unit getUnit4Alias2(Long unitRrn, String unitId) {
        return unitQueryDAO.getUnit4Alias(unitRrn, unitId, "UNIT_ALIAS_2");
    }

    @Override
    public List<UnitTimelimitStatus> getUnitTimeLimitStatusByLotRrn(Long lotRrn, String targetStatus) {
        return unitQueryDAO.getUnitTimeLimitStatusByLotRrn(lotRrn, targetStatus);
    }

    @Override
    public List<UnitTimelimitStatus> getUnitTimeLimitStatusForNormal() {
        return unitQueryDAO.getUnitTimeLimitStatusForNormal();
    }

    @Override
    public List<Map<String, Object>> getUnitListFromCarrierMapping(Long lotRrn) {
        return unitQueryDAO.getUnitListFromCarrierMapping(lotRrn);
    }

    @Override
    public List<UnitRecycledInfo> getUnitRecycledInfoByLotRrn(Long lotRrn) {
        List<UnitRecycledInfo> results = unitQueryDAO.getUnitRecycledInfoByLotRrn(lotRrn);
        if (CollectionUtils.isEmpty(results)) {
            results = Collections.emptyList();
        }
        return results;
    }

    @Override
    public List<Unit> getAllUnits(Long lotRrn) {
        return unitQueryDAO.getAllUnits(lotRrn);
    }

    @Override
    public List<Map> getUnitListLot(Long lotRrn) {
        return unitQueryDAO.getUnitListLot(lotRrn);
    }

    @Override
    public String getUnitIdByRrn(Long unitRrn) {
        return unitQueryDAO.getUnitIdByRrn(unitRrn);
    }

    @Override
    public String getUnitIdBySlot(long lotRrn, long carrierRrn, Integer slot) {
        return unitQueryDAO.getUnitIdBySlotandLotRrnandCsdRrn(lotRrn, carrierRrn, slot);
    }

    @Override
    public List<Map<String, Object>> getUnitListByCarrierMapRrn(Long carrierMapRrn) {
        return unitQueryDAO.getUnitListByCarrierMapRrn(carrierMapRrn);
    }

    @Override
    public List<Map> getUnpackUnitListByLot(long lotRrn) {
        return unitQueryDAO.getUnpackUnitListByLot(lotRrn);
    }

    @Override
    public List<Unit> getUnitList(List<Long> lotRrnList) {
        return unitQueryDAO.getUnitList(lotRrnList);
    }

    @Override
    public Long getMaxReworkCountByUnit(Long lotRrn, String processStepVersion) {
        return unitQueryDAO.getMaxReworkCountByUnit(lotRrn, processStepVersion);
    }

    @Override
    public Long getMaxReworkCountByUnit(Long transRrn) {
        return unitQueryDAO.getMaxReworkCountByUnit(transRrn);
    }

    @Override
    public List<Unit> getUnitHistoryListByCarrierMapRrn(long oldCarrierMapRrn) {
        return unitQueryDAO.getUnitHistoryListByCarrierMapRrn(oldCarrierMapRrn);
    }

    @Override
    public List<Unit> getUnitListByCustomerT7Code(String customerT7code) {
        return unitQueryDAO.getUnitListByCustomerT7Code(customerT7code);
    }

    @Override
    public List<Unit> getUnitListByMaterialId(String materialId) {
        return unitQueryDAO.getUnitListByMaterialId(materialId);
    }

}