刘光辉
16 小时以前 34981c30a78e8bbd7791131059a9210f9928b62c
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
package jnpf.elnService.impl;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jnpf.base.UserInfo;
import jnpf.elnEntity.ElnMubanFileVo;
import jnpf.elnMapper.ElnDianziJiluMubanMapper;
import jnpf.elnService.ElnDianziJiluMubanService;
import jnpf.exception.DataException;
import jnpf.util.JsonUtil;
import jnpf.util.UserProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
 
import java.util.List;
import java.util.function.Supplier;
 
@Service
public class ElnDianziJiluMubanServiceImpl implements ElnDianziJiluMubanService {
 
    private final ElnDianziJiluMubanMapper mubanMapper;
    private final Supplier<String> tenantIdSupplier;
 
    @Autowired
    public ElnDianziJiluMubanServiceImpl(ElnDianziJiluMubanMapper mubanMapper) {
        this(mubanMapper, ElnDianziJiluMubanServiceImpl::dangqianZuhuId);
    }
 
    ElnDianziJiluMubanServiceImpl(ElnDianziJiluMubanMapper mubanMapper,
                                  Supplier<String> tenantIdSupplier) {
        this.mubanMapper = mubanMapper;
        this.tenantIdSupplier = tenantIdSupplier;
    }
 
    @Override
    public ElnMubanFileVo getFile(String jianyanXiangmu) {
        IPage<String> page = mubanMapper.selectLatestMubanFiles(
                new Page<>(1, 1, false), tenantIdSupplier.get(), jianyanXiangmu);
        String mubanFile = page.getRecords().isEmpty() ? null : page.getRecords().get(0);
        if (!StringUtils.hasText(mubanFile)) {
            return null;
        }
        List<ElnMubanFileVo> files;
        try {
            files = JsonUtil.getJsonToList(mubanFile, ElnMubanFileVo.class);
        } catch (RuntimeException e) {
            throw new DataException("电子记录模板文件数据格式错误");
        }
        if (files == null) {
            throw new DataException("电子记录模板文件数据格式错误");
        }
        if (files.isEmpty()) {
            return null;
        }
        ElnMubanFileVo file = files.get(0);
        if (file == null) {
            throw new DataException("电子记录模板文件数据格式错误");
        }
        return file;
    }
 
    private static String dangqianZuhuId() {
        UserInfo user = UserProvider.getUser();
        return user == null || !StringUtils.hasText(user.getTenantId())
                ? "0" : user.getTenantId().trim();
    }
}