package com.vci.ubcs.omd.service.impl;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.vci.ubcs.omd.dto.OmdBtmTypeLinkAttributesDTO;
|
import com.vci.ubcs.omd.entity.OmdBtmTypeAttribute;
|
import com.vci.ubcs.omd.mapper.OmdBtmTypeAttributeMapper;
|
import com.vci.ubcs.omd.service.IOmdAttributeService;
|
import com.vci.ubcs.omd.service.IOmdBtmTypeAttributeService;
|
import com.vci.ubcs.omd.vo.OmdAttributeVO;
|
import com.vci.ubcs.omd.vo.OmdBtmTypeAttributeVO;
|
import com.vci.ubcs.omd.wrapper.OmdBtmTypeAttributeWrapper;
|
import org.springblade.core.tool.utils.Func;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
|
import javax.validation.constraints.NotEmpty;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Optional;
|
|
/**
|
* Description: 业务类型关联属性的服务实现类
|
*
|
* @author LiHang
|
* @date 2023/4/23
|
*/
|
@Service
|
public class OmdBtmAttributeServiceImpl extends ServiceImpl<OmdBtmTypeAttributeMapper, OmdBtmTypeAttribute> implements IOmdBtmTypeAttributeService {
|
|
@Autowired
|
private IOmdAttributeService attributeService;
|
|
@Override
|
public boolean deleteLogic(@NotEmpty List<Long> ids) {
|
return false;
|
}
|
|
@Override
|
public boolean changeStatus(@NotEmpty List<Long> ids, Integer status) {
|
return false;
|
}
|
|
/**
|
* 检查属性存在并添加
|
*
|
* @param attributesDTOList 页面传输对象集合
|
* @return 受影响的行数
|
*/
|
@Override
|
public int checkAndInsert(String btmTypeOid,List<OmdBtmTypeLinkAttributesDTO> attributesDTOList, String creator, Date now) {
|
List<String> attributeIdList = new ArrayList<>();
|
List<OmdBtmTypeAttribute> btmTypeAttributeDOList = new ArrayList<>();
|
if (!CollectionUtils.isEmpty(attributesDTOList)) {
|
attributesDTOList.stream().forEachOrdered(s -> {
|
attributeService.checkAttribute(s);
|
btmTypeAttributeDOList.add(OmdBtmTypeAttributeWrapper.build().copyBtmTypeAttributeDTO2Entity(s,btmTypeOid, creator, now));
|
attributeIdList.add(s.getId().toLowerCase().trim());
|
});
|
//检查属性是否都存在
|
boolean exists = attributeService.checkAttributeExists(attributeIdList);
|
if (!exists){
|
return -1;
|
}
|
return batchInsert(btmTypeAttributeDOList);
|
// btmTypeAttributeDOList.stream().forEachOrdered(s -> {
|
// btmTypeAttributeDOMapper.insert(s);
|
// });
|
}
|
return 0;
|
}
|
|
/**
|
* 批量插入
|
*
|
* @param records 数据对象集合
|
*/
|
@Override
|
public int batchInsert(List<OmdBtmTypeAttribute> records) {
|
return baseMapper.insertBatchSomeColumn(records);
|
}
|
|
/**
|
* 业务类型主键查属性
|
* @param btmTypeOid 业务类型主键
|
* @return 查询结果
|
*/
|
@Override
|
public List<OmdBtmTypeAttributeVO> getAttributeByBtmTypeOid(String btmTypeOid){
|
Func.requireNotNull(btmTypeOid,"业务类型主键");
|
return OmdBtmTypeAttributeWrapper.build().listEntityVO(
|
Optional.ofNullable(
|
baseMapper.selectList(Wrappers.<OmdBtmTypeAttribute>query().lambda().eq(OmdBtmTypeAttribute::getPkBtmType, btmTypeOid))
|
).orElseGet(ArrayList::new)
|
);
|
}
|
}
|