Chuenhung的个人网站

chuenhung.github.io

问题描述

reward项目下面有reward_management和reward_portal两个模块,项目结构如下:
├─reward
│ ├─reward_management
│ ├─reward_portal
在reward_portal中的pom.xml加入依赖,在reward_management中的代码也能引用到相关包,导致项目启动报错、Maven打包报错。

解决方法

手动去除有问题的依赖即可,如下图所示:
在这里插入图片描述

Excel表格

下面是Excel表格,成果简介前可以作为主表数据存储(存在合并),成果简介后的数据作为从表数据存储。
在这里插入图片描述

实现思路

  • 通过EasyExcel读取Excel数据,用List<AwardsDetailField> list接收
    因为POI/EasyExcel对合并单元格的数据只读取一次,需要把为空的单元格也赋值,这是核心技术难点

  • 循环使用hibernate-validator对数据进行校验
    存在校验不通过的数据返回给前端,所有数据校验通过才写入数据库

  • 封装然后写入数据库

    • 用Java8 对List< DetailFeiled> list根据多字段进行分组,得到Map<String,List> map
    • 循环map,封装主表和详细表插入list
    • 批量插入
  • 导入时要求同一年数据可以分多次导入,但同一年内,成果名称不允许重复
    这个可以在数据库中根据获奖类型+获奖年份+成果名称建立联合约束

    1
    ALTER TABLE t_awards ADD CONSTRAINT award_type_year_product UNIQUE (award_type,award_year,award_product);

    参考链接

阅读全文 »

前后端分离,后端虽然用了Swagger但有时候还是需要手动维护文档的,Java实体字段很多的时候,维护起来还是很费时间。本文介绍如何通过Java反射和EasyExcel把实体信息导出为Excel表格,表格可用于维护接口文档

阅读全文 »

需求

要求前端展示所有奖励政策分类,一共有两级菜单,如下图所示:
在这里插入图片描述

代码实现

数据库表设计脚本如下:

1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE `t_incentive_policy_type` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '奖励分类 id',
`type_name` varchar(255) DEFAULT NULL COMMENT '分类名称',
`parent_id` int(11) DEFAULT NULL COMMENT '父id',
`status` int(11) DEFAULT NULL COMMENT '状态 0 开启 1 关闭',
`icon` varchar(255) DEFAULT NULL COMMENT '图标',
`sort` int(11) NOT NULL DEFAULT '-1' COMMENT '排序号',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

插入几条测试数据:
在这里插入图片描述

阅读全文 »
0%