From 1d4fbc6d3fd9b0148385073ba141f2a182f289bb Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Wed, 22 Apr 2026 16:48:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=96=B0=E5=A2=9E=E9=80=80?= =?UTF-8?q?=E7=81=AB=E6=8A=A5=E8=A1=A8=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在IWmsMaterialCoilService中添加queryAnnealExportList方法 - 在WmsMaterialCoilController中新增exportAnneal接口用于导出退火报表 - 在WmsMaterialCoilMapper中添加selectAnnealExportListByCoilIds查询方法 - 在WmsMaterialCoilMapper.xml中实现退火报表SQL查询,关联钢卷、退火计划、炉子等信息 - 在WmsMaterialCoilServiceImpl中实现退火报表数据查询逻辑 - 创建WmsMaterialCoilAnnealExportVo实体类用于退火报表数据导出 - 优化材质异常查询SQL逻辑,改进热轧卷板相关查询条件 --- .../controller/WmsMaterialCoilController.java | 11 ++ .../vo/WmsMaterialCoilAnnealExportVo.java | 48 ++++++ .../com/klp/mapper/WmsMaterialCoilMapper.java | 9 ++ .../klp/service/IWmsMaterialCoilService.java | 8 + .../impl/WmsMaterialCoilServiceImpl.java | 12 ++ .../mapper/klp/WmsMaterialCoilMapper.xml | 141 ++++++++++++++++-- 6 files changed, 218 insertions(+), 11 deletions(-) create mode 100644 klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilAnnealExportVo.java diff --git a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java index 8399381f..2e5808c9 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java @@ -132,6 +132,17 @@ public class WmsMaterialCoilController extends BaseController { ExcelUtil.exportExcel(list, "发货报表", WmsMaterialCoilDeliveryExportVo.class, response); } + /** + * 导出退火报表(按 coilIds,联查退火计划/目标炉/逻辑库区) + * 前端仍使用 POST 传参(建议在 body 中传 coilIds,避免 URL 限制) + */ + @Log(title = "钢卷物料表-退火报表", businessType = BusinessType.EXPORT) + @PostMapping("/exportAnneal") + public void exportAnneal(WmsMaterialCoilBo bo, HttpServletResponse response) { + List list = iWmsMaterialCoilService.queryAnnealExportList(bo); + ExcelUtil.exportExcel(list, "退火报表", WmsMaterialCoilAnnealExportVo.class, response); + } + /** * 查询钢卷物料表列表(POST请求,支持大量coilIds查询) * 功能与GET /list相同,但使用POST请求体传递参数,避免URL长度限制 diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilAnnealExportVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilAnnealExportVo.java new file mode 100644 index 00000000..44631ed6 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilAnnealExportVo.java @@ -0,0 +1,48 @@ +package com.klp.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +@Data +@ExcelIgnoreUnannotated +@EqualsAndHashCode(callSuper = true) +public class WmsMaterialCoilAnnealExportVo extends WmsMaterialCoilExportVo { + + private Long coilId; + + @ExcelProperty(value = "计划号") + private String planNo; + + @ExcelProperty(value = "计划开始时间") + private Date planStartTime; + + @ExcelProperty(value = "实际开始时间") + private Date actualStartTime; + + @ExcelProperty(value = "结束时间") + private Date endTime; + + @ExcelProperty(value = "目标炉子ID") + private Long targetFurnaceId; + + @ExcelProperty(value = "目标炉子名称") + private String targetFurnaceName; + + @ExcelProperty(value = "计划状态") + private Integer status; + + @ExcelProperty(value = "计划备注") + private String remark; + + private Long logicWarehouseId; + + @ExcelProperty(value = "目标逻辑库区") + private String logicWarehouseName; + + @ExcelProperty(value = "炉火层级") + private Integer furnaceLevel; +} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java index 2fa6272b..1aab252c 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.metadata.IPage; import com.klp.domain.WmsMaterialCoil; +import com.klp.domain.vo.WmsMaterialCoilAnnealExportVo; import com.klp.domain.vo.WmsMaterialCoilDeliveryExportVo; import com.klp.domain.vo.WmsMaterialCoilVo; import com.klp.common.core.mapper.BaseMapperPlus; @@ -89,6 +90,14 @@ public interface WmsMaterialCoilMapper extends BaseMapperPlus selectDeliveryExportListByCoilIds(@Param("coilIds") java.util.Collection coilIds); + /** + * 退火报表导出:按钢卷ID列表联查(钢卷 + 退火计划 + 退火计划钢卷关系) + * + * @param coilIds 钢卷ID集合 + * @return 退火报表导出数据 + */ + List selectAnnealExportListByCoilIds(@Param("coilIds") java.util.Collection coilIds); + List selectCoilTrimStatistics(); List selectCategoryWidthStatistics(); diff --git a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java index c7c009fa..146cbc5e 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java @@ -296,5 +296,13 @@ public interface IWmsMaterialCoilService { * @return 修复结果 */ Boolean fixMaterialMismatchCoils(Long coilId); + + /** + * 退火报表导出数据列表(按 coilIds) + * + * @param bo 查询条件(前端通过 POST 传 coilIds) + * @return 退火报表导出数据列表 + */ + List queryAnnealExportList(WmsMaterialCoilBo bo); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 85500f53..cc011675 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -2809,6 +2809,18 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { return wmsMaterialCoilDeliveryExportVos; } + /** + * 退火报表导出:按 coilIds 查询钢卷 + 退火计划联查数据 + */ + @Override + public List queryAnnealExportList(WmsMaterialCoilBo bo) { + List coilIds = parseCsvLongs(bo == null ? null : bo.getCoilIds()); + if (coilIds.isEmpty()) { + return Collections.emptyList(); + } + return baseMapper.selectAnnealExportListByCoilIds(coilIds); + } + private List parseCsvLongs(String csv) { if (StringUtils.isBlank(csv)) { return Collections.emptyList(); diff --git a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml index 1433324c..86b6adaf 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -710,6 +710,105 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY mc.create_time DESC + + + + - +