# EqpMonitorLotServiceImpl.java

    package com.mycim.server.npw.service;

    import com.alipay.sofa.runtime.api.annotation.SofaService;
    import com.alipay.sofa.runtime.api.annotation.SofaServiceBinding;
    import com.mycim.framework.jdbc.Page;
    import com.mycim.server.npw.manager.EqpMonitorJobCheckManager;
    import com.mycim.server.npw.manager.EqpMonitorJobDispatchManager;
    import com.mycim.server.npw.manager.EqpMonitorLotManager;
    import com.mycim.server.npw.manager.EqpMonitorUnitManager;
    import com.mycim.valueobject.ems.Equipment;
    import com.mycim.valueobject.prp.EqpMonitorLotBonDing;
    import com.mycim.valueobject.prp.EqpMonitorLotSpecialStep;
    import com.mycim.valueobject.prp.EqpMonitorUnitSpecialStep;
    import com.mycim.valueobject.wip.*;
    import com.mycim.valueobject.wip.dto.LotInfoDto;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;

    import java.util.List;
    import java.util.Map;

    /**
     * @author shijie.deng
     * @version 6.0.0
     * @date 2019/11/20
     **/
    @Service
    @SofaService(interfaceType = EqpMonitorLotService.class, bindings = {@SofaServiceBinding(bindingType = "bolt")})
    public class EqpMonitorLotServiceImpl implements EqpMonitorLotService {

        @Autowired
        private EqpMonitorLotManager dmmLotManager;

        @Autowired
        private EqpMonitorUnitManager dmmUnitManager;

        @Autowired
        private EqpMonitorJobDispatchManager dmmJobDispatchManager;

        @Autowired
        private EqpMonitorJobCheckManager dmmJobCheckManager;

        @Override
        public EqpMonitorLotSpecialStep getDMMLotSpecialStepByOperation(long operationRrn, long lotRrn) {
            return dmmLotManager.getDMMLotSpecialStepByOperation(operationRrn, lotRrn);
        }

        @Override
        public List<EqpMonitorUnitSpecialStep> getUnitSpecialStepList(long lotSpecialStepRrn) {
            return dmmUnitManager.getUnitSpecialStepList(lotSpecialStepRrn);
        }

        @Override
        public boolean checkLotInBankNoRegister(long lotRrn) {
            return dmmLotManager.checkLotInBankNoRegister(lotRrn);
        }

        @Override
        public List<EqpMonitorLotBonDing> getDmmLotBondingByToRrn(Long lotRrn) {
            return dmmLotManager.getDmmLotBondingByToRrn(lotRrn);
        }

        @Override
        public void insertLotSapphreInfo(LotSapphreInfo lotSapphreInfo) {
            dmmLotManager.insertLotSapphreInfo(lotSapphreInfo);
        }

        @Override
        public long getMaxSeqOfLotByProduct(Long productRrn) {
            return dmmLotManager.getMaxSeqOfLotByProduct(productRrn);
        }

        @Override
        public List<Map> getAvailableLotListNpw(long operationRrn) {
            return dmmLotManager.getAvailableLotListNpw(operationRrn);
        }

        @Override
        public List<NpwBank> getNPWBankLot(Map<String, String> queryInfo) {
            return dmmLotManager.getNPWBankLot(queryInfo);
        }

        @Override
        public String getDummyLotId() {
            return dmmLotManager.getDummyLotId();
        }

        @Override
        public long dmmCreateLot(Map transInfo) {
            return dmmLotManager.dmmCreateLot(transInfo);
        }

        @Override
        public List<Map> getNpwMergeLotUnitList(long sourceLotRrn, long targetLotRrn) {
            return dmmUnitManager.getNpwMergeLotUnitList(sourceLotRrn, targetLotRrn);
        }

        @Override
        public List<EqpMonitorLotBonDing> getDmmLotBonding(Long lotRrn) {
            return dmmLotManager.getDmmLotBonding(lotRrn);
        }

        @Override
        public List getDMMLotSpecialStepsList(Long processRrn, Long lotRrn, Long eqptRrn) {
            return dmmLotManager.getDMMLotSpecialStepsList(processRrn, lotRrn, eqptRrn);
        }

        @Override
        public void initDMMUnitCounts(Map transInfo) {
            dmmUnitManager.initDMMUnitCounts(transInfo);
        }

        @Override
        public void updateUnitUsage(Map transInfo) {
            dmmUnitManager.updateUnitUsage(transInfo);
        }

        @Override
        public void updateUnitSumLoopCount(Map transInfo) {
            dmmUnitManager.updateUnitSumLoopCount(transInfo);
        }

        @Override
        public List<Unit> getUnitList(String carrierId, String productId) {
            return dmmUnitManager.getUnitList(carrierId, productId);
        }

        @Override
        public EqpMonitorLotSpecialStep getDMMLotSpecialStep(Long lotRrn) {
            return dmmLotManager.getDMMLotSpecialStep(lotRrn);
        }

        @Override
        public boolean checkLotUseCount(Long lotRrn) {
            return dmmLotManager.checkLotUseCount(lotRrn);
        }

        @Override
        public void npwMergeLot(Map valueMap) {
            dmmLotManager.npwMergeLot(valueMap);
        }

        @Override
        public void dispatchLot(List<Lot> lotInfos, Equipment equipment, List<LotInfoDto> lotInfoDtos) {
            dmmJobDispatchManager.dispatchLot(lotInfos, equipment, lotInfoDtos);
        }

        @Override
        public boolean validateEntityStatusInAvailable(Equipment equipment, Lot lot) {
            return dmmLotManager.validateEntityStatusInAvailable(equipment, lot);
        }

        @Override
        public void dmmRegister(Lot lot, Long dmmProccessRrn, Integer dmmVersion, Map condition) {
            dmmLotManager.dmmRegister(lot, dmmProccessRrn, dmmVersion, condition);
        }

        @Override
        public String generateMonitorSplitLotId(String eqptId) {
            return dmmLotManager.generateMonitorSplitLotId(eqptId);
        }

        @Override
        public void dmmCreateLotAndRegister(Map transInfo, Lot lot, Long dmmProccessRrn, Integer dmmVersion,
                                            Map condition) {
            dmmLotManager.dmmCreateLotAndRegister(transInfo, lot, dmmProccessRrn, dmmVersion, condition);
        }

        @Override
        public Page queryMonitorLotInfo(Page page, Map queryCondition) {
            return dmmLotManager.queryMonitorLotInfo(page, queryCondition);
        }

        @Override
        public Map queryAllMonitorLotInfo(Map queryCondition) {
            return dmmLotManager.queryAllMonitorLotInfo(queryCondition);
        }

        @Override
        public List<Map> getAvailableLotListNpwAutoBankin(long sourceProcessRrn) {
            return dmmLotManager.getAvailableLotListNpwAutoBankin(sourceProcessRrn);
        }

        @Override
        public String checkBatchLotParameterSet(long monitorLotRrn) {
            return dmmJobCheckManager.checkBatchLotParameterSet(monitorLotRrn);
        }

        @Override
        public boolean isMonitorLot(Lot lot) {
            return dmmLotManager.isMonitorLot(lot);
        }

        @Override
        public void dispatchBatchLot(List<Lot> productLot, List<Lot> monitorLot, Equipment equipment,
                                     List<LotInfoDto> productLotInfos, List<LotInfoDto> monitorLotInfos) {
            dmmJobDispatchManager.dispatchBatchLot(productLot, monitorLot, equipment, productLotInfos, monitorLotInfos);
        }

        @Override
        public void cancelMoveIn(long lotRrn, String lotStatus, long jobRrn, String user, String comments,
                                 TransReason transReason) {
            dmmLotManager.cancelMoveIn(lotRrn, lotStatus, jobRrn, user, comments, transReason);
        }

        @Override
        public void dmmChangeLotProcess(Lot lot, String user, Integer version, Long processRrn, String stepNumber,
                                        String changeFlow, TransReason transReason) {
            dmmLotManager.dmmChangeLotProcess(lot, user, version, processRrn, stepNumber, changeFlow, transReason);
        }

        @Override
        public void updateDMMLotSpecialStepRecipe(EqpMonitorLotSpecialStep lotSpecialStepRrn, String recipeId) {
            dmmLotManager.updateDMMLotSpecialStepRecipe(lotSpecialStepRrn, recipeId);
        }

    }