添加库存更新记录导出功能
This commit is contained in:
parent
4ab263f3d5
commit
0e8ad784d9
|
|
@ -67,6 +67,7 @@ public class ExcelController {
|
||||||
private final KanbanService kanbanService;// 看板服务
|
private final KanbanService kanbanService;// 看板服务
|
||||||
private final WorkFlowService workFlowService;// 工作流服务
|
private final WorkFlowService workFlowService;// 工作流服务
|
||||||
private final WorkDateService workDateService;// 工作日历服务
|
private final WorkDateService workDateService;// 工作日历服务
|
||||||
|
private final IStockUpdateRecordService stockUpdateRecordService; // 库存更新记录服务
|
||||||
|
|
||||||
private final List<String> uploadFileHashStringList = new ArrayList<>();
|
private final List<String> uploadFileHashStringList = new ArrayList<>();
|
||||||
|
|
||||||
|
|
@ -795,6 +796,43 @@ public class ExcelController {
|
||||||
.doWrite(goodsList.stream().map(WorkSummaryExcelVo::of).toList());
|
.doWrite(goodsList.stream().map(WorkSummaryExcelVo::of).toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出库存更新记录
|
||||||
|
*
|
||||||
|
* @param response 请求
|
||||||
|
*/
|
||||||
|
@PostMapping("/downloadStockUpdateRecordExcel")
|
||||||
|
@ResponseBody
|
||||||
|
public void downloadStockUpdateRecordExcel(@RequestBody StockUpdateRecordQuery stockUpdateRecordQuery, HttpServletResponse response) throws IOException {
|
||||||
|
logger.info("导出库存更新记录,筛选参数:{},请求ip:{}", convertJsonString(stockUpdateRecordQuery), getIpAddr(servletRequest));
|
||||||
|
//设置响应格式
|
||||||
|
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
||||||
|
response.setCharacterEncoding("utf-8");
|
||||||
|
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
|
||||||
|
String fileName = URLEncoder.encode("库存更新记录报表", StandardCharsets.UTF_8).replaceAll("\\+", "%20");
|
||||||
|
response.setHeader("Content-Disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
|
||||||
|
// 内容样式
|
||||||
|
HorizontalCellStyleStrategy horizontalCellStyleStrategy = ExcelContentStyle.getContentStyle();
|
||||||
|
// 查询参数
|
||||||
|
LambdaQueryWrapper<StockUpdateRecord> stockLambdaQueryWrapper = new LambdaQueryWrapper<StockUpdateRecord>()
|
||||||
|
.like(StringUtils.isNotEmpty(stockUpdateRecordQuery.getReason()), StockUpdateRecord::getReason, stockUpdateRecordQuery.getReason())
|
||||||
|
.like(StringUtils.isNotEmpty(stockUpdateRecordQuery.getVehicleId()), StockUpdateRecord::getVehicleId, stockUpdateRecordQuery.getVehicleId())
|
||||||
|
.like(StringUtils.isNotEmpty(stockUpdateRecordQuery.getGoodsId()), StockUpdateRecord::getGoodsId, stockUpdateRecordQuery.getGoodsId())
|
||||||
|
.orderByDesc(StockUpdateRecord::getUpdateTime);
|
||||||
|
if (stockUpdateRecordQuery.getUpdateTime() != null && stockUpdateRecordQuery.getUpdateEndTime() != null) {
|
||||||
|
stockLambdaQueryWrapper.between(StockUpdateRecord::getUpdateTime, stockUpdateRecordQuery.getUpdateTime().toLocalDate().atStartOfDay(), stockUpdateRecordQuery.getUpdateEndTime().toLocalDate().plusDays(1).atStartOfDay().minusSeconds(1));
|
||||||
|
}
|
||||||
|
if (stockUpdateRecordQuery.getUpdateTime() != null && stockUpdateRecordQuery.getUpdateEndTime() == null) {
|
||||||
|
stockLambdaQueryWrapper.between(StockUpdateRecord::getUpdateTime, stockUpdateRecordQuery.getUpdateTime().toLocalDate().atStartOfDay(), stockUpdateRecordQuery.getUpdateTime().toLocalDate().plusDays(1).atStartOfDay().minusSeconds(1));
|
||||||
|
}
|
||||||
|
List<StockUpdateRecord> stockUpdateRecordList = stockUpdateRecordService.list(stockLambdaQueryWrapper);
|
||||||
|
EasyExcel.write(response.getOutputStream(), StockUpdateRecordVo.class)
|
||||||
|
.excelType(ExcelTypeEnum.XLSX)
|
||||||
|
.registerWriteHandler(horizontalCellStyleStrategy)
|
||||||
|
.sheet("库存更新记录报表")
|
||||||
|
.doWrite(stockUpdateRecordList.stream().map(StockUpdateRecordVo::of).toList());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出库位详情
|
* 导出库位详情
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
package com.wms.utils.excel.vo;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import com.alibaba.excel.annotation.format.DateTimeFormat;
|
||||||
|
import com.wms.entity.table.StockUpdateRecord;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class StockUpdateRecordVo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 记录id
|
||||||
|
*/
|
||||||
|
@ExcelProperty("记录号")
|
||||||
|
private String recordId;
|
||||||
|
/**
|
||||||
|
* 库存id
|
||||||
|
*/
|
||||||
|
@ExcelProperty("库存id")
|
||||||
|
private String stockId;
|
||||||
|
/**
|
||||||
|
* 料箱号
|
||||||
|
*/
|
||||||
|
@ExcelProperty("料箱号")
|
||||||
|
private String vehicleId;
|
||||||
|
/**
|
||||||
|
* 料号
|
||||||
|
*/
|
||||||
|
@ExcelProperty("料号")
|
||||||
|
private String goodsId;
|
||||||
|
/**
|
||||||
|
* 物料名称
|
||||||
|
*/
|
||||||
|
@ExcelProperty("物料名称")
|
||||||
|
private String goodsName;
|
||||||
|
/**
|
||||||
|
* 更新前库位
|
||||||
|
*/
|
||||||
|
@ExcelProperty("更新前库位")
|
||||||
|
private String locationBefore;
|
||||||
|
/**
|
||||||
|
* 更新后库位
|
||||||
|
*/
|
||||||
|
@ExcelProperty("更新后库位")
|
||||||
|
private String locationAfter;
|
||||||
|
/**
|
||||||
|
* 更新前数量
|
||||||
|
*/
|
||||||
|
@ExcelProperty("更新前数量")
|
||||||
|
private BigDecimal quantityBefore;
|
||||||
|
/**
|
||||||
|
* 更新后数量
|
||||||
|
*/
|
||||||
|
@ExcelProperty("更新后数量")
|
||||||
|
private BigDecimal quantityAfter;
|
||||||
|
/**
|
||||||
|
* 更新原因
|
||||||
|
*/
|
||||||
|
@ExcelProperty("更新原因")
|
||||||
|
private String reason;
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
@ExcelProperty("更新时间")
|
||||||
|
@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
/**
|
||||||
|
* 更新用户
|
||||||
|
*/
|
||||||
|
@ExcelProperty("更新用户")
|
||||||
|
private String updateUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将数据库Po转化为ExcelVo
|
||||||
|
* @param stockUpdateRecord 数据库Po
|
||||||
|
* @return ExcelVo
|
||||||
|
*/
|
||||||
|
public static StockUpdateRecordVo of(StockUpdateRecord stockUpdateRecord) {
|
||||||
|
return BeanUtil.copyProperties(stockUpdateRecord, StockUpdateRecordVo.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user