package edu.sjtu.infosec.ismp.manager.AM.service.impl;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import org.infosec.ismp.manager.rmi.comm.model.SystemModelInfo;
import org.infosec.ismp.manager.rmi.lm.pfLog.model.SystemLog;
import edu.sjtu.infosec.ismp.manager.AM.dao.AssetDailyAvailabilityDao;
import edu.sjtu.infosec.ismp.manager.AM.model.AssetDailyAvailabilityBO;
import edu.sjtu.infosec.ismp.manager.AM.model.AssetMonthlyAvailabilityBO;
import edu.sjtu.infosec.ismp.manager.AM.service.AssetDailyAvailabilityService;
import edu.sjtu.infosec.ismp.manager.LM.pfLog.service.SystemLogService;
import edu.sjtu.infosec.ismp.manager.SYSM.user.self.comm.SecurityUserHolder;
import edu.sjtu.infosec.ismp.security.OperatorDetails;
import edu.sjtu.infosec.ismp.security.Role;
/**
* AssetDailyAvailability的service实现类
*
* @author breggor
*
*/
public class AssetDailyAvailabilityServiceImpl implements
AssetDailyAvailabilityService {
private AssetDailyAvailabilityDao assetDailyAvailabilityDao;
private SystemLogService systemlogService;
SystemLog log;
String rolenames;
String username;
void init(){
OperatorDetails user = SecurityUserHolder.getCurrentUser();
username = user.getUsername();
rolenames="";
for(Role role : user.getRoleList()){
rolenames = rolenames+role.getName();
}
log = new SystemLog();
}
public void setSystemlogService(SystemLogService systemlogService) {
this.systemlogService = systemlogService;
}
/**
* 实现接口方法
*/
public void setAssetDailyAvailabilityDao(
AssetDailyAvailabilityDao assetDailyAvailabilityDao) {
this.assetDailyAvailabilityDao = assetDailyAvailabilityDao;
}
public void saveAssetDailyAvailability(AssetDailyAvailabilityBO entity) {
try{
init();
assetDailyAvailabilityDao.saveAssetDailyAvailability(entity);
log.setUsername(username);
log.setRoleName(rolenames);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_AM);
log.setOperationDesc("添加资产可用性操作");
log.setControl("成功");
systemlogService.saveSystemLog(log);
}catch(Exception e){
log.setUsername(username);
log.setRoleName(rolenames);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_AM);
log.setOperationDesc("添加资产可用性操作");
log.setControl("失败");
systemlogService.saveSystemLog(log);
}
}
public void deleteAssetDailyAvailability(AssetDailyAvailabilityBO entity) {
try{
init();
assetDailyAvailabilityDao.deleteAssetDailyAvailability(entity);
log.setUsername(username);
log.setRoleName(rolenames);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_AM);
log.setOperationDesc("删除资产可用性操作");
log.setControl("成功");
systemlogService.saveSystemLog(log);
}catch(Exception e){
log.setUsername(username);
log.setRoleName(rolenames);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_AM);
log.setOperationDesc("删除资产可用性操作");
log.setControl("失败");
systemlogService.saveSystemLog(log);
}
}
public void updateAssetDailyAvailability(AssetDailyAvailabilityBO entity) {
try{
init();
assetDailyAvailabilityDao.updateAssetDailyAvailability(entity);
log.setUsername(username);
log.setRoleName(rolenames);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_AM);
log.setOperationDesc("修改资产可用性操作");
log.setControl("成功");
systemlogService.saveSystemLog(log);
}catch(Exception e){
log.setUsername(username);
log.setRoleName(rolenames);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_AM);
log.setOperationDesc("修改资产可用性操作");
log.setControl("失败");
systemlogService.saveSystemLog(log);
}
}
public AssetDailyAvailabilityBO getAssetDailyAvailability(
Serializable entityId) {
try{
init();
log.setUsername(username);
log.setRoleName(rolenames);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_AM);
log.setOperationDesc("根据ID得到资产可用性");
log.setControl("成功");
systemlogService.saveSystemLog(log);
return assetDailyAvailabilityDao.getAssetDailyAvailability(entityId);
}catch(Exception e){
log.setUsername(username);
log.setRoleName(rolenames);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_AM);
log.setOperationDesc("根据ID得到资产可用性");
log.setControl("失败");
systemlogService.saveSystemLog(log);
return null;
}
}
public List<AssetDailyAvailabilityBO> getListByAssetDailyAvailability(
AssetDailyAvailabilityBO entity) {
try{
init();
log.setUsername(username);
log.setRoleName(rolenames);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_AM);
log.setOperationDesc("根据条件查询资产可用性");
log.setControl("成功");
systemlogService.saveSystemLog(log);
return assetDailyAvailabilityDao.getListByAssetDailyAvailability(entity);
}catch(Exception e){
log.setUsername(username);
log.setRoleName(rolenames);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_AM);
log.setOperationDesc("根据条件查询资产可用性");
log.setControl("失败");
systemlogService.saveSystemLog(log);
return null;
}
}
public AssetMonthlyAvailabilityBO getAverageAssetMonthlyAvailability(
Integer assetId, Integer type, Timestamp currentDate) {
try{
init();
log.setUsername(username);
log.setRoleName(rolenames);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_AM);
log.setOperationDesc("根据资产ID、类型、时间得到资产月可用性");
log.setControl("成功");
systemlogService.saveSystemLog(log);
return assetDailyAvailabilityDao.getAverageAssetMonthlyAvailability(assetId, type, currentDate);
}catch(Exception e){
log.setUsername(username);
log.setRoleName(rolenames);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_AM);
log.setOperationDesc("根据资产ID、类型、时间得到资产月可用性");
log.setControl("失败");
systemlogService.saveSystemLog(log);
return null;
}
}
public List<Integer> getDayChartData(Timestamp date,
AssetDailyAvailabilityBO entity) {
try{
init();
log.setUsername(username);
log.setRoleName(rolenames);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_AM);
log.setOperationDesc("得到日可用性图表");
log.setControl("成功");
systemlogService.saveSystemLog(log);
return assetDailyAvailabilityDao.getDayChartData(date, entity);
}catch(Exception e){
log.setUsername(username);
log.setRoleName(rolenames);
log.setTime(new Timestamp(new Date().getTime()));
log.setModuleName(SystemModelInfo.MOD_AM);
log.setOperationDesc("得到日可用性图表");
log.setControl("失败");
systemlogService.saveSystemLog(log);
return null;
}
}
}