积木报表——API数据源报表带参制作(Java心得)

前言

爬虫神器,无代码爬取,就来:bright.cn

Java基本知识:

  1. java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)
  2. 【Java项目】实战CRUD的功能整理(持续更新)

关于jmreport的报表写过一篇知识点:jmreport积木报表实战中的设计要点(实时更新)

对应官网关于API的解读更多可以看这篇文章:

  1. API查询条件配置
  2. API接口后台接收参数说明

1. 时间传参

一开始执行代码的时候,时常出现很多Bug:

2025-05-12 16:06:32.056  INFO 58652 --- [ XNIO-1 task-23] o.jeecg.modules.jmreport.desreport.a.a   : 报表executeSelectApi:: api= http://127.0.0.1:1888/api/blade-equipment/shiftmaintenance/report?dutyDate=&shift=, method= 0, token= 123456
2025-05-12 16:06:32.182  WARN 58652 --- [ XNIO-1 task-24] o.s.c.log.error.RestExceptionTranslator  : 缺少请求参数
2025-05-12 16:06:32.186 ERROR 58652 --- [ XNIO-1 task-23] o.j.modules.jmreport.desreport.util.h    : GET 请求url=http://127.0.0.1:1888/api/blade-equipment/shiftmaintenance/report?dutyDate=&shift= , api调用专用 error: 400 Bad Request

截图如下:

在这里插入图片描述

代码如下:

@GetMapping("/report")
@ApiOperationSupport(order = 8)
@ApiOperation(value = "查看表单", notes = "传入id")
public JSONObject report(@RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate dutyDate,
						 @RequestParam String shift) {
	return shiftMaintenanceLogService.report( dutyDate, shift);
}

后续了解到时间传输需要这种形式:日期转字符串函数

2. 其他参数

通过特定的字段进行传输,但有一点,这样字段输出不出来!

@GetMapping("/report")
@ApiOperationSupport(order = 8)
@ApiOperation(value = "查看表单", notes = "传入id")
public JSONObject report(@RequestParam Long id) {
	return shiftMaintenanceLogService.report(id);
}

需要代入默认的特殊值才可!

@GetMapping("/report")
@ApiOperationSupport(order = 8)
@ApiOperation(value = "查看表单", notes = "传入id")
public JSONObject report(@RequestParam(defaultValue = "1") Long id) {
	return shiftMaintenanceLogService.report(id);
}

这是一种方式,还有另外一种方式 是在积木报表中设定:

在这里插入图片描述

3. 代码

代码的返回格式要遵从积木报表的接收形式:

List<JSONObject> mergedList = new ArrayList<>();
for (RushRepareOrder order : orderList) {
	JSONObject item = new JSONObject();

	// 子表字段
	item.put("equipmentNo", order.getEquipmentNo());
	item.put("declareRepareTime", order.getDeclareRepareTime());
	item.put("repareTime", order.getRepareTime());
	item.put("content", order.getContent());
	item.put("solution", order.getSolution());
	item.put("beginRepareTime", order.getBeginRepareTime());
	item.put("orderStatus", order.getOrderStatus());
	item.put("remark", order.getRemark());

	mergedList.add(item);
}

// 5. 封装最终结果
JSONObject result = new JSONObject();
result.put("data", mergedList);
result.put("total", mergedList.size());
result.put("count", mergedList.size());

return result;

截图如下:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农研究僧

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值