feat(wms/coil): 新增钢卷物料个性化导出功能
1. 后端新增导出列元数据接口 `/exportColumns`,返回字段名与中文列名的映射。 2. 后端新增个性化导出接口 `/exportCustom`,支持通过 `columns` 参数指定导出的字段集合,利用增强的 `ExcelUtil.exportExcel` 方法实现按需导出。 3. 前端钢卷接收报表页面新增自定义导出弹窗,支持按列分组展示、搜索、全选/反选/清空列,并调用新接口实现仅导出选中列的数据。 4. 在导出VO中补充“班组”字段的Excel映射注解。
This commit is contained in:
@@ -5,6 +5,9 @@ import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Arrays;
|
||||
import java.util.Set;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.HashMap;
|
||||
|
||||
@@ -30,6 +33,7 @@ import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.common.utils.StringUtils;
|
||||
import com.klp.domain.bo.WmsMaterialCoilBo;
|
||||
import com.klp.domain.bo.WmsMaterialCoilReportSummaryBo;
|
||||
import com.klp.domain.vo.dashboard.CoilTrimStatisticsVo;
|
||||
@@ -130,6 +134,70 @@ public class WmsMaterialCoilController extends BaseController {
|
||||
List<WmsMaterialCoilExportVo> list = iWmsMaterialCoilService.queryExportList(bo);
|
||||
ExcelUtil.exportExcel(list, "钢卷物料表", WmsMaterialCoilExportVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 个性化导出:前端传入要导出的字段名,仅导出选中列
|
||||
* columns 参数为逗号分隔的 Java 字段名,如 "itemTypeDesc,enterCoilNo,netWeight"
|
||||
* 不传 columns 时等同于 /exportAll 导出全部字段
|
||||
*/
|
||||
@Log(title = "钢卷物料表", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/exportCustom")
|
||||
public void exportCustom(WmsMaterialCoilBo bo,
|
||||
@RequestParam(required = false) String columns,
|
||||
HttpServletResponse response) {
|
||||
List<WmsMaterialCoilAllExportVo> list = iWmsMaterialCoilService.queryExportListAll(bo);
|
||||
if (StringUtils.isNotBlank(columns)) {
|
||||
Set<String> includeFields = new HashSet<>(Arrays.asList(columns.split(",")));
|
||||
ExcelUtil.exportExcel(list, "钢卷物料表", WmsMaterialCoilAllExportVo.class, includeFields, response);
|
||||
} else {
|
||||
ExcelUtil.exportExcel(list, "钢卷物料表", WmsMaterialCoilAllExportVo.class, response);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取可导出的列元数据(供前端列选择器使用)
|
||||
* 返回 { "fieldName": "中文列名" } 的映射,基于完整导出字段
|
||||
*/
|
||||
@GetMapping("/exportColumns")
|
||||
public R<Map<String, String>> getExportColumns() {
|
||||
Map<String, String> columns = new LinkedHashMap<>();
|
||||
columns.put("itemTypeDesc", "类型");
|
||||
columns.put("warehouseName", "逻辑库区");
|
||||
columns.put("actualWarehouseName", "实际库区");
|
||||
columns.put("enterCoilNo", "入场卷号");
|
||||
columns.put("supplierCoilNo", "厂家卷号");
|
||||
columns.put("currentCoilNo", "成品卷号");
|
||||
columns.put("createTime", "日期");
|
||||
columns.put("exportTime", "发货时间");
|
||||
columns.put("exportBy", "发货人");
|
||||
columns.put("netWeight", "重量");
|
||||
columns.put("purpose", "用途");
|
||||
columns.put("trimmingRequirement", "切边要求");
|
||||
columns.put("packagingRequirement", "包装种类");
|
||||
columns.put("qualityStatus", "产品质量");
|
||||
columns.put("packingStatus", "原料材质");
|
||||
columns.put("statusDesc", "库存状态");
|
||||
columns.put("remark", "备注");
|
||||
columns.put("itemName", "名称");
|
||||
columns.put("length", "长度");
|
||||
columns.put("specification", "规格");
|
||||
columns.put("material", "材质");
|
||||
columns.put("manufacturer", "厂家");
|
||||
columns.put("surfaceTreatmentDesc", "表面处理");
|
||||
columns.put("zincLayer", "锌层");
|
||||
columns.put("itemId", "物品ID");
|
||||
columns.put("dataTypeText", "数据类型");
|
||||
columns.put("temperGrade", "调制度");
|
||||
columns.put("coatingType", "镀层种类");
|
||||
columns.put("businessPurpose", "业务用途");
|
||||
columns.put("isRelatedToOrderText", "是否与订单相关");
|
||||
columns.put("saleName", "销售人员");
|
||||
columns.put("actualThickness", "实测厚度");
|
||||
columns.put("transferType", "调拨类型");
|
||||
columns.put("team", "班组");
|
||||
return R.ok(columns);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出钢卷物料表列表(完整字段版本)
|
||||
* 导出全部字段
|
||||
|
||||
@@ -78,6 +78,7 @@ public class WmsMaterialCoilAllExportVo {
|
||||
private BigDecimal netWeight;
|
||||
|
||||
// 班组
|
||||
@ExcelProperty(value = "班组")
|
||||
private String team;
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user