package com.vci.ubcs.code.service.impl;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.vci.ubcs.code.dto.DockingSystemDTO;
|
import com.vci.ubcs.code.entity.CodeRule;
|
import com.vci.ubcs.code.entity.DockingSystem;
|
import com.vci.ubcs.code.entity.DockingSystemConfig;
|
import com.vci.ubcs.code.mapper.DockingSystemConfigMapper;
|
import com.vci.ubcs.code.mapper.DockingSystemMapper;
|
import com.vci.ubcs.code.service.IDockingSystemService;
|
import com.vci.ubcs.code.vo.pagemodel.DockingSystemVO;
|
import com.vci.ubcs.code.wrapper.DockingSystemWrapper;
|
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.util.MdmBtmTypeConstant;
|
import com.vci.ubcs.starter.web.util.VciBaseUtil;
|
import org.springblade.core.secure.utils.AuthUtil;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.utils.BeanUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
import static com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_EDITING;
|
import static com.vci.ubcs.code.constant.MdmLifeCycleConstant.CODE_RULE_LC;
|
|
/***
|
* 系统接口管理-集成系统服务
|
* @author xiejun
|
* @date 2023-06-01
|
*/
|
@Service
|
public class DockingSystemServiceImpl extends ServiceImpl<DockingSystemMapper, DockingSystem> implements IDockingSystemService {
|
/***
|
* 集成系统管理服务
|
*/
|
@Autowired(required = false)
|
private DockingSystemMapper dockingSystemMapper;
|
|
/***
|
* 集成系统管理服务
|
*/
|
@Autowired(required = false)
|
private DockingSystemConfigMapper dockingSystemConfigMapper;
|
|
/**
|
* 对象的操作
|
*/
|
@Autowired
|
private RevisionModelUtil revisionModelUtil;
|
@Override
|
public boolean addSave(DockingSystemDTO dockingSystemDTO) {
|
|
VciBaseUtil.alertNotNull(dockingSystemDTO, "需要添加的数据对象");
|
//将DTO转换为DO
|
DockingSystem dockingSystem = Objects.requireNonNull(BeanUtil.copy(dockingSystemDTO, DockingSystem.class));
|
String userId = AuthUtil.getUserId().toString();
|
DefaultAttrAssimtUtil.addDefaultAttrAssimt(dockingSystem, MdmBtmTypeConstant.SYS_INT_BASE);
|
dockingSystem.setLctid(CODE_RULE_LC);
|
dockingSystem.setLcStatus(FRAMEWORK_RELEASE_EDITING);
|
return dockingSystemMapper.insert(dockingSystem)>0;
|
}
|
/**
|
* 修改 系统集成的系统信息
|
* @param dockingSystemDTO 系统集成的系统信息数据传输对象
|
* @return 执行结果,success为true表示成功,msg是失败的提示信息,obj是添加完成后的显示对象
|
*/
|
@Override
|
public DockingSystemVO editSave(DockingSystemDTO dockingSystemDTO) {
|
VciBaseUtil.alertNotNull(dockingSystemDTO,"数据对象",dockingSystemDTO.getOid(),"系统集成的系统信息主键");
|
//将DTO转换为DO
|
DockingSystem dockingSystem = dockingSystemMapper.selectById(dockingSystemDTO.getOid());
|
revisionModelUtil.copyFromDTOIgnore(dockingSystemDTO,dockingSystem);
|
DefaultAttrAssimtUtil.updateDefaultAttrAssimt(dockingSystem);
|
dockingSystemMapper.updateById(dockingSystem);
|
return DockingSystemWrapper.build().entityVO(dockingSystem);
|
}
|
|
/***
|
* 根据系统主键删除系统名称
|
* @param oids
|
* @return
|
* @throws VciBaseException
|
*/
|
@Override
|
public boolean deleteDataById(String oids) throws VciBaseException {
|
String message="";
|
try {
|
VciBaseUtil.alertNotNull(oids, "系统集成的系统信息的主键");
|
List<DockingSystem> dockingSystemList = dockingSystemMapper.selectBatchIds(VciBaseUtil.str2List(oids));
|
Map<String/**系统oid**/, String/**系统名称**/> systemNameMap = dockingSystemList.stream().collect(Collectors.toMap(s -> s.getOid(), t -> t.getName(),(o1, o2)->o2));
|
List<DockingSystemConfig> dockingSystemConfigList = dockingSystemConfigMapper.selectList(Wrappers.<DockingSystemConfig>query().lambda().in(DockingSystemConfig::getSourceSystemOid, VciBaseUtil.str2List(oids)));
|
Set<String> systemOidList=new HashSet<>();
|
Map<String,String> errorMap = new HashMap<>();
|
if (!CollectionUtils.isEmpty(dockingSystemConfigList)) {
|
dockingSystemConfigList.stream().forEach(dockingSystemConfig -> {
|
if(!systemOidList.contains(dockingSystemConfig.getSourceSystemOid())&&
|
systemNameMap.containsKey(dockingSystemConfig.getSourceSystemOid())){
|
String systemName=systemNameMap.get(dockingSystemConfig.getSourceSystemOid());
|
errorMap.put("error",errorMap.getOrDefault("error","") + ";"+systemName);
|
}
|
systemOidList.add(dockingSystemConfig.getSourceSystemOid());
|
});
|
}
|
if(errorMap.size()>0){
|
throw new Throwable(errorMap.getOrDefault("error",""));
|
}
|
return dockingSystemMapper.deleteBatchIds(VciBaseUtil.str2List(oids))>0;
|
}catch (Throwable e){
|
e.printStackTrace();
|
throw new VciBaseException(e.getMessage());
|
|
}
|
}
|
}
|