生成 enum 类——数字字典里新增一个按钮 生成他们对应得枚举——java

前 后 码片

——数字字典里新增一个按钮 生成他们对应得枚举
在这里插入图片描述
在这里插入图片描述

后端

.xml

创建一个enum.ftl

 /**
 * @Description: ${dict.dictName}
 * @Author: ksf
 * @Date:   ${.now?string["yyyy-MM-dd"]}
 * @Version: V1.0
 */
public enum ${dict.dictCode}Enum {
<#list dictItems as item>
   ${item.itemText}( "${item.itemValue}","${item.itemText}")<#if item_has_next>,</#if>
</#list>;
 /**
     * 状态码
     */
    private String  code;
    /**
     * 状态名称
     */
    private String name;

${dict.dictCode}Enum(String code, String name) {
        this.code = code;
        this.name = name;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Controller层

PrCommonController


    @Autowired
    private ISysDictService sysDictService;
    @Autowired
    private ISysDictItemService sysDictItemService;
    //Freemaker的核心配置类,用于动态生成模板对象
    //在SpringBoot IOC容器初始化的时候,自动Configuration就被实例化
    @Resource
    private Configuration freemarkerConfig;


 @AutoLog(value = "字典id获得字典项文本和字典项值")
    @ApiOperation(value="字典id获得字典项文本和字典项值", notes="字典id获得字典项文本和字典项值")
    @GetMapping(value = "/generateEnum")
    /*@RequiresPermissions("enumerate:getList")*/
    public Result<?> generateEnum(String dictId) throws Exception {
        SysDict sysDict = sysDictService.getById(dictId);
        List<SysDictItem> sysDictItems = sysDictItemService.selectItemsByMainId(dictId);
        Template template = freemarkerConfig.getTemplate("enum.ftl");
        Map param = new HashMap();
        File targetFile = new File(FileUtils.getUserDirectoryPath()+"/DESKTOP/"+ oConvertUtils.camelNameCapFirst( sysDict.getDictCode())+"Enum.java");
        sysDict.setDictCode(oConvertUtils.camelNameCapFirst( sysDict.getDictCode()));
        param.put("dictItems", sysDictItems);
        param.put("dict", sysDict);
        FileWriter out = new FileWriter(targetFile);
        template.process(param , out);
        out.close();
//        return targetFile.getPath();
        Result result = new Result();
result.setMessage("生成成功:"+FileUtils.getUserDirectoryPath()+"/DESKTOP/"+ oConvertUtils.camelNameCapFirst( sysDict.getDictCode())+"Enum.java");
        return result;
    }

前端

api

//enum 生成
const generateEnum=(params)=>getAction('/pr/sys/generateEnum',params)  

再在export里加上generateEnum

页面

DictList.vue
添加按钮

 </a>
           <a @click="exportEnum(record)">
            <a-icon type="edit"/>
            生成Enum
import {generateEnum} from '@/api/api'

methods

 exportEnum(record){
        generateEnum({dictId:record.id}).then((res)=>{
          this.$message.info(res.message);
        })
      },

实现

点击按钮会直接生成在电脑里
在这里插入图片描述

实现生成得代码

/**
 * @Description: 有效无效状态
 * @Author: ksf
 * @Date:   2019-12-02
 * @Version: V1.0
 */
public enum ValidStatusEnum {
   有效( "1","有效"),
   无效( "0","无效")
;
 /**
     * 状态码
     */
    private String  code;
    /**
     * 状态名称
     */
    private String name;

ValidStatusEnum(String code, String name) {
        this.code = code;
        this.name = name;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值