This commit is contained in:
jhd
2026-05-30 10:47:52 +08:00
48 changed files with 2758 additions and 354 deletions

View File

@@ -134,9 +134,12 @@ public class WmsDeliveryWaybillDetailController extends BaseController {
WmsMaterialCoilBo bo,
PageQuery pageQuery,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime) {
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime,
@RequestParam(required = false) Long planId) {
List<Long> boundCoilIds;
if (startTime != null || endTime != null) {
if (planId != null) {
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByPlanId(planId, startTime, endTime);
} else if (startTime != null || endTime != null) {
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByTimeRange(startTime, endTime);
} else {
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIds();
@@ -157,9 +160,12 @@ public class WmsDeliveryWaybillDetailController extends BaseController {
public R<java.util.Map<String, java.math.BigDecimal>> getStatistics(
WmsMaterialCoilBo bo,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime) {
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime,
@RequestParam(required = false) Long planId) {
List<Long> boundCoilIds;
if (startTime != null || endTime != null) {
if (planId != null) {
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByPlanId(planId, startTime, endTime);
} else if (startTime != null || endTime != null) {
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIdsByTimeRange(startTime, endTime);
} else {
boundCoilIds = iWmsDeliveryWaybillDetailService.getBoundCoilIds();

View File

@@ -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);
}
/**
* 导出钢卷物料表列表(完整字段版本)
* 导出全部字段