package com.vci.ubcs.code.service.impl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.vci.ubcs.code.constant.MdmBtmTypeConstant;
|
import com.vci.ubcs.code.dto.DockingSysIntHeaderDTO;
|
import com.vci.ubcs.code.dto.DockingSystemConfigDTO;
|
import com.vci.ubcs.code.dto.DockingSysIntParamDTO;
|
import com.vci.ubcs.code.entity.DockingSysIntHeader;
|
import com.vci.ubcs.code.entity.DockingSysIntParam;
|
import com.vci.ubcs.code.entity.DockingSystem;
|
import com.vci.ubcs.code.entity.DockingSystemConfig;
|
import com.vci.ubcs.code.enumpack.SysIntegrationRequestTypeEnum;
|
import com.vci.ubcs.code.mapper.DockingSysIntHeaderMapper;
|
import com.vci.ubcs.code.mapper.DockingSysIntParamMapper;
|
import com.vci.ubcs.code.mapper.DockingSystemConfigMapper;
|
import com.vci.ubcs.code.mapper.DockingSystemMapper;
|
import com.vci.ubcs.code.service.IDockingSysIntHeaderService;
|
import com.vci.ubcs.code.service.IDockingSysIntParamService;
|
import com.vci.ubcs.code.service.IDockingSystemConfigService;
|
import com.vci.ubcs.code.vo.pagemodel.DockingSysIntHeaderVO;
|
import com.vci.ubcs.code.vo.pagemodel.DockingSystemVO;
|
import com.vci.ubcs.starter.exception.VciBaseException;
|
import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
|
import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil;
|
import com.vci.ubcs.starter.web.util.BeanUtilForVCI;
|
import com.vci.ubcs.starter.web.util.VciBaseUtil;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.CollectionUtils;
|
|
import java.util.*;
|
|
/***
|
* 系统接口管理-接口配置服务
|
* @author xiejun
|
* @date 2023-06-01
|
*/
|
@Slf4j
|
@Service
|
public class DockingSystemConfigServiceImpl extends ServiceImpl<DockingSystemConfigMapper, DockingSystemConfig> implements IDockingSystemConfigService{
|
|
/***
|
* 集成系统管理服务
|
*/
|
@Autowired(required = false)
|
private DockingSystemConfigMapper dockingSystemConfigMapper;
|
|
/***
|
* 集成接口-集成接口管理参数服务
|
*/
|
@Autowired(required = false)
|
private IDockingSysIntParamService dockingSysIntParamService;
|
|
|
|
/***
|
* 集成接口-集成接口管理参数服务
|
*/
|
@Autowired(required = false)
|
private IDockingSysIntHeaderService dockingSysIntHeaderService;
|
|
|
/***
|
* 集成接口-集成系统服务
|
*/
|
@Autowired(required = false)
|
private DockingSystemMapper dockingSystemMapper;
|
|
/**
|
* 对象的操作
|
*/
|
@Autowired
|
private RevisionModelUtil revisionModelUtil;
|
/**
|
* 增加系统集成的接口管理信息
|
* @param dockingSystemConfigDTO 系统集成的系统信息数据传输对象
|
* @return 执行结果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
|
*/
|
@Transactional(rollbackFor = Exception.class)
|
@Override
|
public boolean addSave(DockingSystemConfigDTO dockingSystemConfigDTO) {
|
log.info(" 增加系统集成的接口管理信息:"+dockingSystemConfigDTO.toString());
|
VciBaseUtil.alertNotNull(dockingSystemConfigDTO, "需要添加的数据对象");
|
checkColumnNotNull(dockingSystemConfigDTO);
|
String sourcesystemoid = dockingSystemConfigDTO.getSourceSystemOid();
|
DockingSystem dockingSystem = dockingSystemMapper.selectById(sourcesystemoid);
|
dockingSystemConfigDTO.setSysBaseOid(sourcesystemoid);
|
dockingSystemConfigDTO.setSysBaseId(dockingSystem.getId());
|
dockingSystemConfigDTO.setSysBaseName(dockingSystem.getName());
|
dockingSystemConfigDTO.setUsedFlag("true");//设置默认启用状态
|
|
//将DTO转换为DO
|
DockingSystemConfig dockingSystemConfig = new DockingSystemConfig();
|
revisionModelUtil.copyFromDTOIgnore(dockingSystemConfigDTO,dockingSystemConfig);
|
|
|
List<DockingSysIntParamDTO> sysIntParamDTOList= dockingSystemConfigDTO.getSysIntParamDTOS();
|
List<DockingSysIntParam> sysIntParamList=new ArrayList<>();
|
if(!CollectionUtils.isEmpty(sysIntParamDTOList)) {
|
sysIntParamDTOList.stream().forEach(sysIntParamDTO -> {
|
DockingSysIntParam sysIntParamDO = new DockingSysIntParam();
|
sysIntParamDTO.setInfoOid(dockingSystemConfigDTO.getOid());
|
BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntParamDTO, sysIntParamDO);
|
DefaultAttrAssimtUtil.addDefaultAttrAssimt(sysIntParamDO,MdmBtmTypeConstant.SYS_INT_PARAMTERY);
|
sysIntParamList.add(sysIntParamDO);
|
});
|
}
|
List<DockingSysIntHeaderDTO> sysIntHeaderDTOs= dockingSystemConfigDTO.getSysIntHeaderDTOS();
|
List<DockingSysIntHeader> sysIntHeaderList = new ArrayList<>();
|
if(!CollectionUtils.isEmpty(sysIntHeaderDTOs)) {
|
sysIntHeaderDTOs.stream().forEach(sysIntHeaderDTO -> {
|
DockingSysIntHeader dockingSysIntHeader = new DockingSysIntHeader();
|
sysIntHeaderDTO.setInfoOid(dockingSystemConfigDTO.getOid());
|
BeanUtilForVCI.copyPropertiesIgnoreCase(sysIntHeaderDTO, dockingSysIntHeader);
|
DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSysIntHeader,MdmBtmTypeConstant.SYS_INT_HEADER);
|
sysIntHeaderList.add(dockingSysIntHeader);
|
});
|
}
|
dockingSysIntParamService.saveBatch(sysIntParamList);
|
dockingSysIntHeaderService.saveBatch(sysIntHeaderList);
|
DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSystemConfig,MdmBtmTypeConstant.SYS_INT_INFO);
|
dockingSystemConfigMapper.insert(dockingSystemConfig);
|
|
return true;
|
|
}
|
|
@Override
|
public DockingSystemVO editSave(DockingSystemConfigDTO dockingSystemDTO) {
|
return null;
|
}
|
|
@Override
|
public boolean deleteDataById(String oids) {
|
return false;
|
}
|
|
/**
|
* 系统集成接口基础信息Null字段检验
|
* @param dockingSystemConfigDTO 系统集成基础信息数据传输对象
|
* @throws VciBaseException 参数为空,唯一项,必输项不通过时会抛出异常
|
*/
|
private void checkColumnNotNull(DockingSystemConfigDTO dockingSystemConfigDTO) throws VciBaseException {
|
if (SysIntegrationRequestTypeEnum.HTTP.getValue().equals(dockingSystemConfigDTO.getInterfaceType())){
|
VciBaseUtil.alertNotNull(dockingSystemConfigDTO.getRequestUrl(),"HTTP接口的请求地址",dockingSystemConfigDTO.getRequestMethod(),"HTTP接口的请求方式");
|
}
|
if (SysIntegrationRequestTypeEnum.WEB_SERVICE.getValue().equals(dockingSystemConfigDTO.getInterfaceType())){
|
VciBaseUtil.alertNotNull(dockingSystemConfigDTO.getInterfaceFunction(),"WebService的接口函数");
|
}
|
if (SysIntegrationRequestTypeEnum.CLASSPATH.getValue().equals(dockingSystemConfigDTO.getInterfaceType())){
|
VciBaseUtil.alertNotNull(dockingSystemConfigDTO.getClassPath(),"类路径");
|
}
|
}
|
}
|