diff --git a/klp-ui/src/views/wms/report/delivery.vue b/klp-ui/src/views/wms/report/delivery.vue
index 2244ca83..79dec538 100644
--- a/klp-ui/src/views/wms/report/delivery.vue
+++ b/klp-ui/src/views/wms/report/delivery.vue
@@ -65,8 +65,8 @@
-
-
+
+
@@ -75,17 +75,32 @@
-
+
-
-
+
+
+
+
+
+
+
+
+ {{ scope.row.bindPrincipal }}
+
+
+ {{ scope.row.bindPrincipal }}
+ {{ scope.row.bindPrincipalPhone }}
+
+
+
+
@@ -148,6 +163,7 @@ export default {
itemSpecification: '',
itemMaterial: '',
itemManufacturer: '',
+ includeBindInfo: true,
},
loading: false,
}
@@ -177,8 +193,9 @@ export default {
},
// 导出
exportData() {
- this.download('wms/materialCoil/export', {
+ this.download('wms/materialCoil/exportDelivery', {
coilIds: this.list.map(item => item.coilId).join(','),
+ // 传了status为1则会使用发货时间作为筛选条件查询,且导出后的excel会包含发货时间和发货人
status: 1
}, `materialCoil_${new Date().getTime()}.xlsx`)
},
diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilBindInfoVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilBindInfoVo.java
index 78423ff9..11da55c8 100644
--- a/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilBindInfoVo.java
+++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilBindInfoVo.java
@@ -1,9 +1,11 @@
package com.klp.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.io.Serializable;
+import java.math.BigDecimal;
import java.util.Date;
/**
@@ -16,16 +18,49 @@ public class WmsCoilBindInfoVo implements Serializable {
private static final long serialVersionUID = 1L;
+ /** 钢卷ID */
private Long coilId;
+ /** 发货单明细ID */
private Long detailId;
+ // -------------------- 发货计划(plan) --------------------
+ private Long planId;
+
+ private String planName;
+
+ private Date planDate;
+
+ // -------------------- 发货单主表(waybill) --------------------
private Long waybillId;
+
private String waybillNo;
+
private String waybillName;
- private Long planId;
- private String planName;
- private Date planDate;
+ private String licensePlate;
+
+ private String consigneeUnit;
+
+ private String senderUnit;
+
+ private Date deliveryTime;
+
+ private String weighbridge;
+
+ private String salesPerson;
+
+ private String principal;
+
+ private String principalPhone;
+
+ private Long waybillStatus;
+
+ private String waybillRemark;
+
+ // -------------------- 发货单明细补充字段(detail) --------------------
+ private String detailSettlementType;
+
+ private BigDecimal detailUnitPrice;
}
diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilDeliveryExportVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilDeliveryExportVo.java
index 7dfb13e9..a6005cf8 100644
--- a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilDeliveryExportVo.java
+++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilDeliveryExportVo.java
@@ -23,6 +23,10 @@ public class WmsMaterialCoilDeliveryExportVo extends WmsMaterialCoilExportVo {
*/
private Long coilId;
+ // 发货人
+ @ExcelProperty(value = "发货人")
+ private String exportBy;
+
// -------------------- 发货计划(plan) --------------------
private Long planId;
diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java
index 4043e2dc..459e1bb6 100644
--- a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java
+++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java
@@ -353,8 +353,69 @@ public class WmsMaterialCoilVo extends BaseEntity {
@JsonFormat(pattern = "yyyy-MM-dd")
private Date bindPlanDate;
-
// 父钢卷id
private String parentCoilId;
+
+ // ========== 补充的发货绑定信息字段 ==========
+ /**
+ * 车牌号
+ */
+ private String bindLicensePlate;
+
+ /**
+ * 收货单位
+ */
+ private String bindConsigneeUnit;
+
+ /**
+ * 发货单位
+ */
+ private String bindSenderUnit;
+
+ /**
+ * 发货时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date bindDeliveryTime;
+
+ /**
+ * 地磅
+ */
+ private String bindWeighbridge;
+
+ /**
+ * 销售人员
+ */
+ private String bindSalesPerson;
+
+ /**
+ * 负责人
+ */
+ private String bindPrincipal;
+
+ /**
+ * 负责人电话
+ */
+ private String bindPrincipalPhone;
+
+ /**
+ * 运单状态
+ */
+ private Long bindWaybillStatus;
+
+ /**
+ * 运单备注
+ */
+ private String bindWaybillRemark;
+
+ /**
+ * 明细结算类型
+ */
+ private String bindDetailSettlementType;
+
+ /**
+ * 明细单价
+ */
+ private BigDecimal bindDetailUnitPrice;
}
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 26a4860d..5738cbab 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
@@ -338,6 +338,20 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
vo.setBindPlanId(bind.getPlanId());
vo.setBindPlanName(bind.getPlanName());
vo.setBindPlanDate(bind.getPlanDate());
+
+ // 补充设置更多的绑定信息字段
+ vo.setBindLicensePlate(bind.getLicensePlate());
+ vo.setBindConsigneeUnit(bind.getConsigneeUnit());
+ vo.setBindSenderUnit(bind.getSenderUnit());
+ vo.setBindDeliveryTime(bind.getDeliveryTime());
+ vo.setBindWeighbridge(bind.getWeighbridge());
+ vo.setBindSalesPerson(bind.getSalesPerson());
+ vo.setBindPrincipal(bind.getPrincipal());
+ vo.setBindPrincipalPhone(bind.getPrincipalPhone());
+ vo.setBindWaybillStatus(bind.getWaybillStatus());
+ vo.setBindWaybillRemark(bind.getWaybillRemark());
+ vo.setBindDetailSettlementType(bind.getDetailSettlementType());
+ vo.setBindDetailUnitPrice(bind.getDetailUnitPrice());
} else {
vo.setBound(Boolean.FALSE);
}
@@ -616,7 +630,6 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
qw.apply("COALESCE(ca.abnormal_count, 0) >= {0}", bo.getMinAbnormalCount());
}
// 排序:
- // - 当前端需要绑定信息(includeBindInfo=true)时:优先展示“已绑定实际库位”的钢卷(actual_warehouse_id 非空在前)
// 再按实际库位ID升序(库位ID为自增,升序即可满足“先生成的库位在前”)
// - 否则:保持原有创建时间倒序
if (Boolean.TRUE.equals(bo.getOrderBy())) {
@@ -2375,7 +2388,35 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
if (coilIds.isEmpty()) {
return Collections.emptyList();
}
- return baseMapper.selectDeliveryExportListByCoilIds(coilIds);
+ List wmsMaterialCoilDeliveryExportVos = baseMapper.selectDeliveryExportListByCoilIds(coilIds);
+ // 遍历数据,根据状态替换日期字段,并处理空值兜底
+ wmsMaterialCoilDeliveryExportVos.stream().forEach(vo -> {
+ // 判断查询条件中的status是否为1(已发货)
+ if (bo.getStatus() != null && bo.getStatus() == 1) {
+ Date finalDate = null;
+ // 1. 优先使用发货时间
+ if (vo.getExportTime() != null) {
+ finalDate = vo.getExportTime();
+ }
+ // 2. 发货时间为空时,使用更新时间兜底
+ else if (vo.getUpdateTime() != null) {
+ finalDate = vo.getUpdateTime();
+ }
+ // 3. 若更新时间也为空,保留原有createTime(避免日期字段为空)
+ else {
+ finalDate = vo.getCreateTime();
+ }
+ // 赋值最终的日期
+ vo.setCreateTime(finalDate);
+ }
+ // 非1的情况,保持原有create_time不变
+
+ // 如果是dataType=0的历史数据,将实际库区设置为null
+ if (vo.getDataType() != null && vo.getDataType() == 0) {
+ vo.setActualWarehouseName(null);
+ }
+ });
+ return wmsMaterialCoilDeliveryExportVos;
}
private List parseCsvLongs(String csv) {
diff --git a/klp-wms/src/main/resources/mapper/klp/WmsDeliveryWaybillDetailMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsDeliveryWaybillDetailMapper.xml
index ae6bb403..aea5cafa 100644
--- a/klp-wms/src/main/resources/mapper/klp/WmsDeliveryWaybillDetailMapper.xml
+++ b/klp-wms/src/main/resources/mapper/klp/WmsDeliveryWaybillDetailMapper.xml
@@ -30,27 +30,63 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+