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.BtmTypeLinkAttributesDTO; import com.vci.ubcs.omd.entity.BtmTypeAttribute; import com.vci.ubcs.omd.mapper.BtmTypeAttributeMapper; import com.vci.ubcs.omd.service.IAttributeService; import com.vci.ubcs.omd.service.IBtmTypeAttributeService; import com.vci.ubcs.omd.vo.BtmTypeAttributeVO; import com.vci.ubcs.omd.wrapper.BtmTypeAttributeWrapper; 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 BtmAttributeServiceImpl extends ServiceImpl implements IBtmTypeAttributeService { @Autowired private IAttributeService attributeService; @Override public boolean deleteLogic(@NotEmpty List ids) { return false; } @Override public boolean changeStatus(@NotEmpty List ids, Integer status) { return false; } /** * 检查属性存在并添加 * * @param attributesDTOList 页面传输对象集合 * @return 受影响的行数 */ @Override public int checkAndInsert(String btmTypeOid, List attributesDTOList, String creator, Date now) { List attributeIdList = new ArrayList<>(); List btmTypeAttributeDOList = new ArrayList<>(); if (!CollectionUtils.isEmpty(attributesDTOList)) { attributesDTOList.stream().forEachOrdered(s -> { attributeService.checkAttribute(s); btmTypeAttributeDOList.add(BtmTypeAttributeWrapper.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 records) { return baseMapper.insertBatchSomeColumn(records); } /** * 业务类型主键查属性 * @param btmTypeOid 业务类型主键 * @return 查询结果 */ @Override public List getAttributeByBtmTypeOid(String btmTypeOid){ Func.requireNotNull(btmTypeOid,"业务类型主键"); return BtmTypeAttributeWrapper.build().listEntityVO( Optional.ofNullable( baseMapper.selectList(Wrappers.query().lambda().eq(BtmTypeAttribute::getPkBtmType, btmTypeOid)) ).orElseGet(ArrayList::new) ); } }