package com.vci.web.service.impl;
|
|
import com.vci.corba.common.PLException;
|
import com.vci.corba.omd.stm.StatePool;
|
import com.vci.pagemodel.OsStatusVO;
|
import com.vci.starter.web.annotation.log.VciUnLog;
|
import com.vci.starter.web.util.VciDateUtil;
|
import com.vci.web.service.WebStatusServiceI;
|
import com.vci.web.util.PlatformClientUtil;
|
import com.vci.web.util.WebUtil;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
|
import javax.annotation.Resource;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* @Description 状态池服务
|
* @Author dangsn
|
* @Date 2024/11/28 10:52
|
*/
|
@Service
|
public class WebStatusServiceImpl implements WebStatusServiceI {
|
|
/**
|
* 日志
|
*/
|
private Logger logger = LoggerFactory.getLogger(getClass());
|
|
/**
|
* 平台客户端
|
*/
|
@Resource
|
private PlatformClientUtil platformClientUtil;
|
|
/**
|
* 查询所有的状态
|
*
|
* @return 状态的显示对象
|
*/
|
@Override
|
@VciUnLog
|
public List<OsStatusVO> selectAllStatus() {
|
try {
|
return statusDO2VOs(Arrays.stream(platformClientUtil.getStatePoolService().getStatePools()).collect(Collectors.toList()));
|
} catch (PLException vciError) {
|
throw WebUtil.getVciBaseException(vciError);
|
}
|
}
|
|
/**
|
* 查询全部的状态映射
|
* @return key是状态的英文名称
|
*/
|
@Override
|
@VciUnLog
|
public Map<String, OsStatusVO> selectAllStatusMap(){
|
return Optional.ofNullable(selectAllStatus()).orElseGet(()->new ArrayList<>()).stream().collect(Collectors.toMap(s->s.getId(), t->t,(o1, o2)->o1));
|
}
|
|
/**
|
* 数据对象转换为显示对象
|
*
|
* @param statePool 状态池的数据对象
|
* @return 显示对象
|
*/
|
@Override
|
public OsStatusVO statusDO2VO(StatePool statePool) {
|
OsStatusVO statusVO = new OsStatusVO();
|
if(statePool!=null){
|
statusVO.setOid(statePool.oid);
|
statusVO.setCreator(statePool.creator);
|
statusVO.setImagePath(statePool.imagePath);
|
statusVO.setLastModifier(statePool.modifier);
|
try {
|
statusVO.setCreateTime(new Date(statePool.createTime));
|
statusVO.setLastModifyTime(new Date(statePool.modifyTime));
|
statusVO.setTs(VciDateUtil.str2Date(statePool.ts,VciDateUtil.DateTimeMillFormat));
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
statusVO.setDescription(statePool.description);
|
statusVO.setId(statePool.name);
|
statusVO.setName(statePool.tag);
|
}
|
return statusVO;
|
}
|
|
/**
|
* 数据对象转换为显示对象
|
*
|
* @param statePools 状态池的数据对象 集合
|
* @return 显示对象
|
*/
|
@Override
|
public List<OsStatusVO> statusDO2VOs(Collection<StatePool> statePools) {
|
List<OsStatusVO> statusVOS = new ArrayList<>();
|
if(!CollectionUtils.isEmpty(statePools)){
|
statePools.stream().forEach(statePool -> {
|
OsStatusVO statusVO = statusDO2VO(statePool);
|
statusVOS.add(statusVO);
|
});
|
}
|
return statusVOS;
|
}
|
}
|