package jnpf.base.util; import com.baomidou.dynamic.datasource.annotation.DS; import jnpf.base.BillRuleApi; import jnpf.base.DataInterFaceApi; import jnpf.base.DataModelApi; import jnpf.base.DataSourceApi; import jnpf.constant.MsgCode; import jnpf.database.model.dbfield.DbFieldModel; import jnpf.database.model.dbfield.base.DbFieldModelBase; import jnpf.database.model.dbtable.DbTableFieldModel; import jnpf.database.model.entity.DbLinkEntity; import jnpf.database.util.TenantDataSourceUtil; import jnpf.exception.DataException; import jnpf.permission.OrganizeApi; import jnpf.permission.PositionApi; import jnpf.permission.UserApi; import jnpf.permission.entity.OrganizeEntity; import jnpf.permission.entity.UserEntity; import jnpf.util.JsonUtil; import jnpf.util.StringUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.util.Collections; import java.util.List; import java.util.Map; import static jnpf.util.Constants.ADMIN_KEY; /** * @author :JNPF开发平台组 * @version: V3.1.0 * @copyright 引迈信息技术有限公司 * @date :2022/4/9 13:28 */ @Slf4j @DS("") @Component @RequiredArgsConstructor public class ServiceBaseUtil { private final DataSourceApi dblinkService; private final DataModelApi dbTableService; private final UserApi userService; private final OrganizeApi organizeService; private final PositionApi positionService; private final BillRuleApi billRuleService; private final DataInterFaceApi dataInterfaceService; //--------------------------------数据连接------------------------------ public DbLinkEntity getDbLink(String dbLink) { DbLinkEntity link = StringUtil.isNotEmpty(dbLink) && !"0".equals(dbLink) ? dblinkService.getInfo(dbLink) : TenantDataSourceUtil.getDataSourceConfig(); if (dbLink == null) { throw new DataException(MsgCode.SYS054.get()); } return link; } public boolean isExistTable(String dbLinkId, String table) { try { return dbTableService.isExistTable(dbLinkId, table); } catch (Exception e) { throw new DataException(e.getMessage()); } } public void createTable(List dbTable) { try { dbTableService.createTable(dbTable); } catch (Exception e) { throw new DataException(e.getMessage()); } } public void addField(DbTableFieldModel dbTable) { try { dbTableService.addField(dbTable); } catch (Exception e) { throw new DataException(e.getMessage()); } } /** * 获取所有字段 * * @param linkId 链接名 * @param table 表名 * @return * @throws Exception */ public List getFieldList(String linkId, String table) { try { List fieldList = dbTableService.getDbTableModel(linkId, table); return JsonUtil.getJsonToList(fieldList, DbFieldModel.class); } catch (Exception e) { throw new DataException(e.getMessage()); } } //--------------------------------用户------------------------------ public UserEntity getUserInfo(String id) { UserEntity entity = null; if (StringUtil.isNotEmpty(id)) { entity = id.equalsIgnoreCase(ADMIN_KEY) ? userService.getInfoByAccount(id) : userService.getInfoById(id); } return entity; } //--------------------------------单据规则------------------------------ public String getBillNumber(String enCode) { String billNo = ""; try { billNo = billRuleService.getBillNumber(enCode).getData(); } catch (Exception e) { log.error(e.getMessage(), e); } return billNo; } //--------------------------------组织------------------------------ public String getOrganizeName(String idStr) { return organizeService.getNameByIdStr(idStr); } public OrganizeEntity getOrganizeInfo(String id) { return StringUtil.isNotEmpty(id) ? organizeService.getInfoById(id) : null; } public List getOrganizeId(String organizeId) { List organizeList = organizeService.getOrganizeId(organizeId); Collections.reverse(organizeList); return organizeList; } //--------------------------------岗位------------------------------ public String getPositionName(String idStr) { return positionService.getNameByIdStr(idStr); } //--------------------------------远端------------------------------ public void infoToId(String interId, Map parameterMap) { dataInterfaceService.infoToIdById(interId, parameterMap); } }