package com.vci.web.service.impl;
|
|
import com.vci.corba.common.PLException;
|
import com.vci.corba.omd.vrm.VersionRule;
|
import com.vci.pagemodel.OsRevisionRuleVO;
|
import com.vci.starter.web.annotation.log.VciUnLog;
|
import com.vci.starter.web.util.VciDateUtil;
|
import com.vci.web.service.WebRevisionRuleServiceI;
|
import com.vci.web.util.PlatformClientUtil;
|
import com.vci.web.util.WebUtil;
|
import org.apache.commons.lang3.StringUtils;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* @Description 版本规则服务
|
* @Author dangsn
|
* @Date 2024/11/28 14:20
|
*/
|
@Service
|
public class WebRevisionRuleServiceImpl implements WebRevisionRuleServiceI {
|
|
/**
|
* 日志
|
*/
|
private Logger logger = LoggerFactory.getLogger(getClass());
|
|
/**
|
* 平台调用客户端
|
*/
|
@Autowired
|
private PlatformClientUtil platformClientUtil;
|
|
/**
|
* 查询所有的版本规则
|
*
|
* @return 版本对象
|
*/
|
@Override
|
public List<OsRevisionRuleVO> selectAllRevision() {
|
try {
|
return revisionRuleDO2VOs(Arrays.stream(platformClientUtil.getVersionService().getVersionRules()).collect(Collectors.toList()));
|
} catch (PLException e) {
|
throw WebUtil.getVciBaseException(e);
|
}
|
}
|
|
/**
|
* 查询所有的版本规则映射
|
*
|
* @return key 是版本的英文名称
|
*/
|
@Override
|
@VciUnLog
|
public Map<String, OsRevisionRuleVO> selectAllRevisionMap() {
|
return Optional.ofNullable(selectAllRevision()).orElseGet(()->new ArrayList<>()).stream().collect(Collectors.toMap(s->s.getId().toLowerCase(), t->t,(o1, o2)->o1));
|
}
|
|
/**
|
* 使用编号获取规则的值
|
*
|
* @param id 编号
|
* @return 显示对象
|
*/
|
@Override
|
public OsRevisionRuleVO getRevisionRuleById(String id) {
|
if(StringUtils.isNotBlank(id)){
|
return selectAllRevisionMap().getOrDefault(id.toLowerCase().trim(),null);
|
}
|
return null;
|
}
|
|
/**
|
* 数据对象转换为显示对象
|
*
|
* @param versionRules 数据对象
|
* @return 显示对象
|
*/
|
@Override
|
public List<OsRevisionRuleVO> revisionRuleDO2VOs(Collection<VersionRule> versionRules) {
|
List<OsRevisionRuleVO> ruleVOS = new ArrayList<>();
|
Optional.ofNullable(versionRules).orElseGet(()->new ArrayList<>()).stream().forEach(versionRule -> {
|
OsRevisionRuleVO ruleVO = revisionRuleDO2VO(versionRule);
|
ruleVOS.add(ruleVO);
|
});
|
return ruleVOS;
|
}
|
|
/**
|
* 数据对象转换为显示对象
|
*
|
* @param versionRule 数据对象
|
* @return 显示对象
|
*/
|
@Override
|
public OsRevisionRuleVO revisionRuleDO2VO(VersionRule versionRule) {
|
OsRevisionRuleVO ruleVO = new OsRevisionRuleVO();
|
if(versionRule !=null){
|
ruleVO.setOid(versionRule.oid);
|
ruleVO.setCreator(versionRule.creator);
|
ruleVO.setLastModifier(versionRule.modifier);
|
try {
|
ruleVO.setCreateTime(VciDateUtil.long2Date(versionRule.createTime));
|
ruleVO.setLastModifyTime(VciDateUtil.long2Date(versionRule.modifyTime));
|
ruleVO.setTs(VciDateUtil.str2Date(versionRule.ts,VciDateUtil.DateTimeMillFormat));
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
ruleVO.setDescription(versionRule.description);
|
ruleVO.setId(versionRule.name);
|
ruleVO.setName(versionRule.tag);
|
ruleVO.setStepLength(WebUtil.getInt(versionRule.stepLength));
|
ruleVO.setJumpCharacter(versionRule.jumpCharacter);
|
ruleVO.setPrefixion(versionRule.prefixion);
|
ruleVO.setSuffix(versionRule.suffix);
|
ruleVO.setInitialValue(versionRule.initialValue);
|
//associated暂时没有使用
|
}
|
return ruleVO;
|
}
|
}
|