AlarmCategoryManagerImpl.java

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

import com.fa.sesa.exception.Assert;
import com.fa.sesa.exception.Errors;
import com.mycim.server.alarm.dao.AlarmCategoryDao;
import com.mycim.server.alarm.manager.AlarmCategoryManager;
import com.mycim.server.base.manager.NamedObjectManager;
import com.mycim.valueobject.alm.AlarmCategory;
import com.mycim.valueobject.bas.NamedObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * AlarmCategoryManager
 *
 * @author pinyan.song
 * @version 6.0.0
 * @date 2019-11-8
 **/
@Service
@Transactional
public class AlarmCategoryManagerImpl implements AlarmCategoryManager {
    @Autowired
    AlarmCategoryDao categoryDao;

    @Autowired
    NamedObjectManager namedObjectManager;


    @Override
    public AlarmCategory getAlarmCategory(AlarmCategory alarmCategory) {
        NamedObject instance = namedObjectManager.getNamedObject(alarmCategory);

        if (instance == null) {
            return null;
        }

        alarmCategory = categoryDao.getAlarmCategory(instance.getInstanceRrn());

        Assert.state(null != alarmCategory,
                     Errors.create().content("Orphan data found in Alarm Category table.").build());

        alarmCategory.copyNamedObject(instance);

        // get the id use the rrn.
        if ((alarmCategory.getAcknowledgeWflRrn() != null) && (alarmCategory.getAcknowledgeWflRrn() > 0)) {
            alarmCategory
                    .setAcknowledgeWflId(namedObjectManager.getNamedObjectId(alarmCategory.getAcknowledgeWflRrn()));
        }

        if ((alarmCategory.getRemindWflRrn() != null) && (alarmCategory.getRemindWflRrn() > 0)) {
            alarmCategory.setRemindWflId(namedObjectManager.getNamedObjectId(alarmCategory.getRemindWflRrn()));
        }

        if ((alarmCategory.getClearWflRrn() != null) && (alarmCategory.getClearWflRrn() > 0)) {
            alarmCategory.setClearWflId(namedObjectManager.getNamedObjectId(alarmCategory.getClearWflRrn()));
        }

        if ((alarmCategory.getTriggerWflRrn() != null) && (alarmCategory.getTriggerWflRrn() > 0)) {
            alarmCategory.setTriggerWflId(namedObjectManager.getNamedObjectId(alarmCategory.getTriggerWflRrn()));
        }

        return alarmCategory;
    }

    @Override
    public String getAlarmCategoryByWflRrn(Long workflowRrn) {
        return categoryDao.getAlarmCategoryByWflRrn(workflowRrn);
    }

}