AutoMonitorItemReqManagerImpl.java

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

import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.server.automonitor.dao.AutoMonitorItemReqDao;
import com.mycim.server.automonitor.manager.AutoMonitorItemReqManager;
import com.mycim.valueobject.automonitor.entity.AutoMonitorItem;
import com.mycim.valueobject.automonitor.entity.AutoMonitorItemStep;
import com.mycim.valueobject.automonitor.entity.AutoMonitorItemStepEdcInfo;
import com.mycim.valueobject.automonitor.util.AutoMonitorOperationConstants;
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.List;

/**
 * @author finatice.yang
 * @date 2021/9/2
 **/
@Service
@Transactional
public class AutoMonitorItemReqManagerImpl implements AutoMonitorItemReqManager {

    @Autowired
    AutoMonitorItemReqDao itemDao;

    @Override
    public void insertAutoMonitorItem(AutoMonitorItem autoMonitorItem) {
        itemDao.insertAutoMonitorItem(autoMonitorItem);
    }

    @Override
    public void updateAutoMonitorItem(AutoMonitorItem autoMonitorItem) {
        itemDao.updateAutoMonitorItem(autoMonitorItem);
    }

    @Override
    public void deleteAutoMonitorItem(AutoMonitorItem autoMonitorItem) {
        itemDao.deleteAutoMonitorItem(autoMonitorItem);
    }

    @Override
    public void updateAutoMonitorItemSteps(Long workflowRrn, Integer workflowVersion,
                                           List<AutoMonitorItemStep> stepList) {
        deleteAutoMonitorItemSteps(workflowRrn, workflowVersion);

        List<AutoMonitorItemStepEdcInfo> edcInfoList = new ArrayList<>();
        for (AutoMonitorItemStep step : stepList) {
            step.setWorkflowRrn(workflowRrn);
            step.setWorkflowVersion(workflowVersion);

            if (StringUtils.equals(AutoMonitorOperationConstants.STEP_SLOT_TYPE_LOT, step.getNonRTSlotType())) {
                AutoMonitorItemStepEdcInfo edcInfo = new AutoMonitorItemStepEdcInfo();
                edcInfo.setWorkflowRrn(workflowRrn);
                edcInfo.setWorkflowVersion(workflowVersion);
                edcInfo.setWaferSlot(new Long(1));
                edcInfo.setStepSequence(step.getStepSequence());
                edcInfo.setNonRTJobIds(step.getNonRTJobIds());
                edcInfo.setNonRTJobNames(step.getNonRTJobNames());
                edcInfoList.add(edcInfo);
            } else if (StringUtils
                    .equals(AutoMonitorOperationConstants.STEP_SLOT_TYPE_WAFER, step.getNonRTSlotType())) {
                for (int i = 0; i < step.getWaferNonRTJobIds().size(); i++) {
                    AutoMonitorItemStepEdcInfo edcInfo = new AutoMonitorItemStepEdcInfo();
                    edcInfo.setWorkflowRrn(workflowRrn);
                    edcInfo.setWorkflowVersion(workflowVersion);
                    edcInfo.setStepSequence(step.getStepSequence());
                    edcInfo.setWaferSlot(new Long(i + 1));
                    edcInfo.setNonRTJobIds(step.getWaferNonRTJobIds().get(i));
                    edcInfo.setNonRTJobNames(step.getWaferNonRTJobNames().get(i));
                    edcInfoList.add(edcInfo);
                }
            }
        }
        itemDao.insertAutoMonitorItemSteps(stepList);
        if (edcInfoList.size() > 0) {
            itemDao.insertItemStepEdcInfo(edcInfoList);
        }
    }

    @Override
    public void deleteAutoMonitorItemSteps(Long workflowRrn, Integer workflowVersion) {
        itemDao.deleteAutoMonitorItemSteps(workflowRrn, workflowVersion);
        itemDao.deleteItemStepEdcInfo(workflowRrn, workflowVersion);
    }

    @Override
    public void updateAutoMonitorItemSysInActiveFlag(Long workflowRrn, Boolean sysInActiveFlag) {
        itemDao.updateAutoMonitorItemSysInActiveFlag(workflowRrn, sysInActiveFlag);
    }

}