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 tenantIdSupplier; @Autowired public ElnDianziJiluMubanServiceImpl(ElnDianziJiluMubanMapper mubanMapper) { this(mubanMapper, ElnDianziJiluMubanServiceImpl::dangqianZuhuId); } ElnDianziJiluMubanServiceImpl(ElnDianziJiluMubanMapper mubanMapper, Supplier tenantIdSupplier) { this.mubanMapper = mubanMapper; this.tenantIdSupplier = tenantIdSupplier; } @Override public ElnMubanFileVo getFile(String jianyanXiangmu) { IPage 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 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(); } }