feat(order): 订单变更时同步更新钢卷的业务员和合同编号

- 在 CrmOrderServiceImpl 中查询旧订单时同时获取原合同编号
- 当销售员或合同编号变更时同步更新关联钢卷的业务员名称和合同编号
- 在 WmsCoilContractRelMapper 中新增批量更新钢卷业务员和合同编号的方法
- 为钢卷相关实体类添加 contractNo 字段支持
- 修改数据库表结构为 wms_material_coil 表添加 contract_no 字段
- 更新钢卷导出功能以包含合同编号字段
- 实现根据合同ID查询业务员和合同编号信息的功能
This commit is contained in:
2026-06-22 13:25:31 +08:00
parent 119b9105c7
commit 26c834780c
12 changed files with 96 additions and 31 deletions

View File

@@ -137,20 +137,21 @@
AND rel.del_flag = 0
</select>
<!-- 根据订单ID查询销售员业务员姓名 -->
<select id="selectSalesmanByOrderId" resultType="String">
SELECT co.salesman
<!-- 批量更新关联钢卷的业务员名称和合同编号(当订单变更时同步) -->
<update id="updateCoilSaleNameByOrderId">
UPDATE wms_material_coil mc
INNER JOIN wms_coil_contract_rel rel ON mc.coil_id = rel.coil_id AND rel.del_flag = 0
SET mc.sale_name = #{saleName},
mc.contract_no = #{contractCode}
WHERE rel.contract_id = #{orderId} AND mc.del_flag = 0
</update>
<!-- 根据订单ID查询合同信息业务员 + 合同编号) -->
<select id="selectContractInfoByOrderId" resultType="java.util.Map">
SELECT co.salesman, co.contract_code AS contractCode
FROM crm_order co
WHERE co.order_id = #{orderId} AND co.del_flag = 0
LIMIT 1
</select>
<!-- 批量更新关联钢卷的业务员名称(当订单销售员变更时同步) -->
<update id="updateCoilSaleNameByOrderId">
UPDATE wms_material_coil mc
INNER JOIN wms_coil_contract_rel rel ON mc.coil_id = rel.coil_id AND rel.del_flag = 0
SET mc.sale_name = #{saleName}
WHERE rel.contract_id = #{orderId} AND mc.del_flag = 0
</update>
</mapper>
</mapper>

View File

@@ -46,6 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="scheduleThickness" column="schedule_thickness"/>
<result property="theoreticalLength" column="theoretical_length"/>
<result property="chromePlateCoilNo" column="chrome_plate_coil_no"/>
<result property="contractNo" column="contract_no"/>
</resultMap>
@@ -136,6 +137,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mc.theoretical_length,
mc.chrome_plate_coil_no,
mc.sale_name AS saleName,
mc.contract_no AS contractNo,
w.warehouse_name AS warehouseName,
nw.warehouse_name AS nextWarehouseName,
aw.actual_warehouse_name AS actualWarehouseName,
@@ -505,6 +507,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mc.packing_status AS packingStatus,
-- 销售
mc.sale_name AS saleName,
-- 合同
mc.contract_no AS contractNo,
-- 调拨类型
mc.transfer_type AS transferType,
-- 理论厚度
@@ -601,6 +605,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mc.quality_status AS qualityStatus,
mc.packing_status AS packingStatus,
mc.sale_name AS saleName,
mc.contract_no AS contractNo,
mc.transfer_type AS transferType,
mc.theoretical_thickness AS theoreticalThickness,
mc.schedule_thickness AS scheduleThickness,