|
|
@@ -1,6 +1,9 @@
|
|
|
package cn.iocoder.yudao.module.pms.controller.admin.iotdeviceallotlog;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.date.DatePattern;
|
|
|
+import cn.hutool.core.date.LocalDateTimeUtil;
|
|
|
+import cn.hutool.core.util.ObjUtil;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
@@ -12,6 +15,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceallotlog.vo.IotDeviceAllotLogPageReqVO;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceallotlog.vo.IotDeviceAllotLogRespVO;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceallotlog.vo.IotDeviceAllotLogSaveReqVO;
|
|
|
+import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDevicePageReqVO;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotdeviceallotlog.IotDeviceAllotLogDO;
|
|
|
import cn.iocoder.yudao.module.pms.service.IotDeviceService;
|
|
|
@@ -104,10 +108,35 @@ public class IotDeviceAllotLogController {
|
|
|
public void exportIotDeviceAllotLogExcel(@Valid IotDeviceAllotLogPageReqVO pageReqVO,
|
|
|
HttpServletResponse response) throws IOException {
|
|
|
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
+ // 先查询符合条件的设备id集合 再根据deviceIds集合查询对应的调拨记录
|
|
|
+ IotDevicePageReqVO deviceReqVO = new IotDevicePageReqVO();
|
|
|
+ BeanUtils.copyProperties(pageReqVO, deviceReqVO);
|
|
|
+ deviceReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
|
|
+ List<IotDeviceRespVO> relationDevices = iotDeviceService.allotRelationDevices(deviceReqVO).getList();
|
|
|
+ List<Long> deviceIds = new ArrayList<>();
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(relationDevices)) {
|
|
|
+ relationDevices.forEach(device -> {
|
|
|
+ deviceIds.add(device.getId());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (CollUtil.isEmpty(deviceIds)) {
|
|
|
+ deviceIds.add(Long.MAX_VALUE);
|
|
|
+ }
|
|
|
+ pageReqVO.setDeviceIds(deviceIds);
|
|
|
List<IotDeviceAllotLogDO> list = iotDeviceAllotLogService.getIotDeviceAllotLogPage(pageReqVO).getList();
|
|
|
+ List<IotDeviceAllotLogRespVO> deviceAllotLogs = buildDeviceAllotList(list);
|
|
|
+ if (CollUtil.isNotEmpty(deviceAllotLogs)) {
|
|
|
+ deviceAllotLogs.forEach(log -> {
|
|
|
+ // 创建时间 格式化 yyyy-MM-dd
|
|
|
+ if (ObjUtil.isNotEmpty(log.getCreateTime())) {
|
|
|
+ log.setCreateTimeStr(LocalDateTimeUtil.format(log.getCreateTime(), DatePattern.NORM_DATETIME_PATTERN));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
// 导出 Excel
|
|
|
- ExcelUtils.write(response, "设备调拨日志.xls", "数据", IotDeviceAllotLogRespVO.class,
|
|
|
- BeanUtils.toBean(list, IotDeviceAllotLogRespVO.class));
|
|
|
+ ExcelUtils.write(response, "设备调拨日志.xls", "设备调拨日志", IotDeviceAllotLogRespVO.class,
|
|
|
+ deviceAllotLogs);
|
|
|
}
|
|
|
|
|
|
private List<IotDeviceAllotLogRespVO> buildDeviceAllotList(List<IotDeviceAllotLogDO> deviceAllots) {
|