lihang
2023-04-25 3fade6d3b27f5666672bb3af610020367f790bda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
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)
        );
    }
}