jeecg导出一对多,主子表,子表某字段为多字典项

2 篇文章 0 订阅

要求:

	导出主数据以及明细数据,明细数据可能有多条,标准的一对多导出。
	唯一的难点是:有两个字段是字典项,而且字典项是级联的,第一个字典项好控制,但是第二个字段的字典项需要根据第一个字典项的值来确定。
	举个例子:有10个字典,第一个字段用第一个字典,但是第二个字段需要从那9个字典中取。

导出形式:

在这里插入图片描述

思路:

整体思路还是按照jeecg官网给出的例子,地址:http://doc.jeecg.com/2044230
本想在前端将字典项中的内容都传过来保存,但是字段用的dicCode注解,不太好处理,于是转后端处理。

解决办法:

方法一:在获取子表数据时,将对应的字段附上值。
1:需要注入ISysDictService ,以此获取对应字典项。
@Autowired
private ISysDictService sysDictService;

2:如下图:
我的项目对sysDictService进行了封装,所以可能方法会有些对不上,但是功能都是一样的。
在这里插入图片描述

方法二:此方法未验证,仅作为一种参考.
子表中,字段处使用exportConvert注解。然后在下面的convertget方法中添加需要处理的代码。

如下图:
在这里插入图片描述

遇到的其他问题:

1.报错: java.lang.IllegalArgumentException: object is not an instance of declaring class
原因:对象的类型匹配不正确,我在属性复制的时候,子类没有复制过去。子类对应错误,修改子类,解决。
如下图:InspectMonitorCheckDetailVO改为InspectMonitorCheckDetail。
在这里插入图片描述

2. 排序:要加都加,我之前明细这里没加orderNum,所以排到了第一。

3. 子表中的dicCode注解不生效
原因:第一个字段的dicCode的值中有特殊字符:下划线
解决:修改去掉特殊字符

4.Merged region A5 must contain 2 or more cells
导出一对多时,当子list的size为1时会报错
这个只是个错误日志,实际发现不影响导出功能
官方解释:版本问题,autopoi升级到1.2.2即可。
https://gitee.com/jeecg/jeecg-boot/issues/I1YH6B
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值