1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package org.jeecg.config;
- import lombok.extern.slf4j.Slf4j;
- import org.jeecg.common.api.CommonAPI;
- import org.jeecg.common.system.vo.DictModel;
- import org.jeecg.common.util.oConvertUtils;
- import org.jeecgframework.dict.service.AutoPoiDictServiceI;
- import org.springframework.context.annotation.Lazy;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * 描述:AutoPoi Excel注解支持字典参数设置
- * 举例: @Excel(name = "性别", width = 15, dicCode = "sex")
- * 1、导出的时候会根据字典配置,把值1,2翻译成:男、女;
- * 2、导入的时候,会把男、女翻译成1,2存进数据库;
- *
- * @Author:scott
- * @since:2019-04-09
- * @Version:1.0
- */
- @Slf4j
- @Service
- public class AutoPoiDictConfig implements AutoPoiDictServiceI {
- @Lazy
- @Resource
- private CommonAPI commonAPI;
- /**
- * 通过字典查询easypoi,所需字典文本
- *
- * @Author:scott
- * @since:2019-04-09
- * @return
- */
- @Override
- public String[] queryDict(String dicTable, String dicCode, String dicText) {
- List<String> dictReplaces = new ArrayList<String>();
- List<DictModel> dictList = null;
- // step.1 如果没有字典表则使用系统字典表
- if (oConvertUtils.isEmpty(dicTable)) {
- dictList = commonAPI.queryDictItemsByCode(dicCode);
- } else {
- try {
- dicText = oConvertUtils.getString(dicText, dicCode);
- dictList = commonAPI.queryTableDictItemsByCode(dicTable, dicText, dicCode);
- } catch (Exception e) {
- log.error(e.getMessage(),e);
- }
- }
- for (DictModel t : dictList) {
- if(t!=null){
- dictReplaces.add(t.getText() + "_" + t.getValue());
- }
- }
- if (dictReplaces != null && dictReplaces.size() != 0) {
- log.info("---AutoPoi--Get_DB_Dict------"+ dictReplaces.toString());
- return dictReplaces.toArray(new String[dictReplaces.size()]);
- }
- return null;
- }
- }
|