diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilContractRelVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilContractRelVo.java index 583d42b7..9144c352 100644 --- a/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilContractRelVo.java +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsCoilContractRelVo.java @@ -2,13 +2,15 @@ package com.klp.domain.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; -import com.klp.common.annotation.ExcelDictFormat; -import com.klp.common.convert.ExcelDictConvert; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import java.math.BigDecimal; +import java.util.Date; + /** - * 钢卷与合同关联关系视图对象 wms_coil_contract_rel + * 钢卷与合同(订单)关联关系视图对象 wms_coil_contract_rel + crm_order JOIN * * @author klp * @date 2026-04-18 @@ -19,29 +21,118 @@ public class WmsCoilContractRelVo { private static final long serialVersionUID = 1L; - /** - * 主键ID - */ - @ExcelProperty(value = "主键ID") - private Long relId; + // ========== 中间表自身字段 ========== - /** - * 钢卷ID - */ + /** 主键ID */ + private Long relId; + /** 钢卷ID */ @ExcelProperty(value = "钢卷ID") private Long coilId; - - /** - * 合同ID - */ - @ExcelProperty(value = "合同ID") + /** 合同/订单ID */ + @ExcelProperty(value = "合同/订单ID") private Long contractId; - - /** - * 备注 - */ + /** 备注 */ @ExcelProperty(value = "备注") private String remark; + // ========== 关联订单信息(JOIN crm_order)========== + + /** 订单ID(主键) */ + private Long orderId; + /** 订单编号 */ + private String orderCode; + /** 订单类型:pre-预订单,formal-正式订单 */ + private Long orderType; + /** 关联客户ID */ + private String customerId; + /** 订单总金额 */ + private BigDecimal orderAmount; + /** 销售员 */ + private String salesman; + /** 交货日期 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date deliveryDate; + /** 预订单状态 */ + private Long preOrderStatus; + /** 审核人 */ + private String auditUser; + /** 审核时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date auditTime; + /** 订单状态 */ + private Long orderStatus; + /** 财务状态 */ + private Long financeStatus; + /** 未结款数额 */ + private BigDecimal unpaidAmount; + /** 备注 */ + private String orderRemark; + /** 合同号 */ + private String contractCode; + /** 合同名称 */ + private String contractName; + /** 供方 */ + private String supplier; + /** 需方 */ + private String customer; + /** 签订时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date signTime; + /** 签订地点 */ + private String signLocation; + /** 产品内容 */ + private String productContent; + /** 合同内容 */ + private String contractContent; + /** 供方地址 */ + private String supplierAddress; + /** 供方电话 */ + private String supplierPhone; + /** 供方开户行 */ + private String supplierBank; + /** 供方账号 */ + private String supplierAccount; + /** 供方税号 */ + private String supplierTaxNo; + /** 需方地址 */ + private String customerAddress; + /** 需方电话 */ + private String customerPhone; + /** 需方开户行 */ + private String customerBank; + /** 需方账号 */ + private String customerAccount; + /** 需方税号 */ + private String customerTaxNo; + /** 技术附件 */ + private String techAnnex; + /** 商务附件 */ + private String businessAnnex; + /** 排产函 */ + private String productionSchedule; + /** 算单价备注 */ + private String unitPriceRemark; + /** 应付定金(万元) */ + private BigDecimal depositPayable; + /** 已付定金(万元) */ + private BigDecimal depositPaid; + /** 定金比例(%) */ + private BigDecimal depositRatio; + /** 合同状态 0=草稿 1=生效 2=作废 3=已完成 */ + private Long status; + /** 关联合同ID */ + private Long orderIdInOrder; // crm_order.contract_id,与contractId可能不同 + /** 附件 */ + private String annexFiles; + /** 创建人 */ + private String createBy; + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + /** 更新人 */ + private String updateBy; + /** 更新时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; } 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 5cf6af52..686048ff 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 @@ -329,5 +329,10 @@ public class WmsMaterialCoilVo extends BaseEntity { * 调拨类型 */ private String transferType; + + /** + * 关联的订单列表(通过wms_coil_contract_rel中间表JOIN crm_order) + */ + private List orderList; } diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsCoilContractRelMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsCoilContractRelMapper.java index e9534af2..ad2b1554 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsCoilContractRelMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsCoilContractRelMapper.java @@ -3,6 +3,9 @@ package com.klp.mapper; import com.klp.domain.WmsCoilContractRel; import com.klp.domain.vo.WmsCoilContractRelVo; import com.klp.common.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 钢卷与合同关联关系Mapper接口 @@ -12,4 +15,13 @@ import com.klp.common.core.mapper.BaseMapperPlus; */ public interface WmsCoilContractRelMapper extends BaseMapperPlus { + /** + * 根据钢卷ID查询关联的订单完整信息(JOIN crm_order表) + */ + List selectOrdersByCoilId(@Param("coilId") Long coilId); + + /** + * 批量根据钢卷ID列表查询关联的订单完整信息 + */ + List selectOrdersByCoilIds(@Param("coilIds") List coilIds); } 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 f9d2c5b2..23fff4b1 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 @@ -26,6 +26,7 @@ import com.klp.domain.vo.dashboard.CategoryWidthRawVo; import com.klp.domain.WmsCoilPendingAction; import com.klp.domain.bo.WmsCoilPendingActionBo; import com.klp.mapper.*; +import com.klp.service.*; import com.klp.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -33,16 +34,6 @@ import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.klp.service.IWmsMaterialCoilService; -import com.klp.service.IWmsStockService; -import com.klp.service.IWmsGenerateRecordService; -import com.klp.service.IWmsWarehouseService; -import com.klp.service.IWmsActualWarehouseService; -import com.klp.service.IWmsRawMaterialService; -import com.klp.service.IWmsBomItemService; -import com.klp.service.IWmsCoilPendingActionService; -import com.klp.service.IWmsProductService; -import com.klp.service.IWmsCoilAbnormalService; import com.fasterxml.jackson.databind.ObjectMapper; import java.util.*; @@ -80,6 +71,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { private final WmsDeliveryWaybillDetailMapper deliveryWaybillDetailMapper; private final WmsCoilWarehouseOperationLogMapper wmsCoilWarehouseOperationLogMapper; private final IWmsCoilAbnormalService coilAbnormalService; + private final WmsCoilContractRelMapper coilContractRelMapper; /** * 查询钢卷物料表 @@ -94,6 +86,9 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { // 查询关联对象 fillRelatedObjects(vo); + // 查询钢卷关联的订单信息 + fillOrderListForSingle(coilId, vo); + return vo; } @@ -304,6 +299,21 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { } } } + // 查询合同信息通过中间表拿到合同id然后查询出合同信息 + } + + /** + * 填充单个钢卷的关联订单列表(完整WmsCoilContractRelVo,含JOIN订单信息) + */ + private void fillOrderListForSingle(Long coilId, WmsMaterialCoilVo vo) { + try { + List orders = coilContractRelMapper.selectOrdersByCoilId(coilId); + if (orders != null && !orders.isEmpty()) { + vo.setOrderList(orders); + } + } catch (Exception e) { + log.warn("查询钢卷关联订单信息失败, coilId: {}", coilId, e); + } } /** diff --git a/klp-wms/src/main/resources/mapper/klp/WmsCoilContractRelMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsCoilContractRelMapper.xml index a25fe85a..9768a166 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsCoilContractRelMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsCoilContractRelMapper.xml @@ -16,5 +16,125 @@ + + - + + + + \ No newline at end of file