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();
|
}
|
}
|