Files
nanguangszwlback/mhd_oms/src/main/resources/mapper/outEntrustOrder/OutEntrustOrderMapper.xml
T
rcx 888a293ebd feat(oms): 出/入仓委托单新增导入接口(委托单模板与W出入库管理导入一致)
出仓: POST /outEntrustOrderApi/import, EasyExcel两遍解析(前11行表头+第12行起明细), 客户名称解析货主, 明细按料号>SKU>品名匹配货主物料档案(料号不存在/规格/SKU不一致报错), 柜号/运输方式/监管方式字典转码, 校验通过复用新增链路落库(生成CKWT单号, 待审核/未下发); 入仓: POST /reservationStockInOrderApi/importData, 恢复原注释W式导入并按现行类型重写——POI标签扫描前12行表头+ExcelUtil读13行列名明细, 按委托编号NO分组建单, 料号必填且须在该货主下存在, 规格/SKU与档案一致性校验, 数量空行/容器行跳过, 计划数量=入库数量之和, 订单来源=数据导入; OutEntrustOrderMapper新增跨库物料直查(NGWL_TEST_WMS.MATERIAL_BASE_INFO, 货主+一级组织过滤)
2026-09-14 13:55:10 +08:00

207 lines
11 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mhd.oms.domain.outEntrustOrder.repository.mapper.OutEntrustOrderMapper">
<resultMap type="com.mhd.oms.domain.outEntrustOrder.repository.po.OutEntrustOrderPO" id="OutEntrustOrderResult">
<result property="id" column="id" />
<result property="createBy" column="create_by" />
<result property="createByName" column="create_by_name" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateByName" column="update_by_name" />
<result property="updateTime" column="update_time" />
<result property="delFlag" column="del_flag" />
<result property="entrustNumber" column="entrust_number" />
<result property="warehouseId" column="warehouse_id" />
<result property="warehouseCode" column="warehouse_code" />
<result property="warehouseName" column="warehouse_name" />
<result property="shipperId" column="shipper_id" />
<result property="shipperCode" column="shipper_code" />
<result property="shipperName" column="shipper_name" />
<result property="salesmanId" column="salesman_id" />
<result property="salesmanName" column="salesman_name" />
<result property="orderTypeCode" column="order_type_code" />
<result property="orderTypeName" column="order_type_name" />
<result property="settlementCurrency" column="settlement_currency" />
<result property="priorityLevelCode" column="priority_level_code" />
<result property="priorityLevelName" column="priority_level_name" />
<result property="directWarehouse" column="direct_warehouse" />
<result property="review" column="review" />
<result property="expectTime" column="expect_time" />
<result property="outboundDate" column="outbound_date" />
<result property="orderDate" column="order_date" />
<result property="completeTime" column="complete_time" />
<result property="toReceiver" column="to_receiver" />
<result property="contactPerson" column="contact_person" />
<result property="vehicleModelPlate" column="vehicle_model_plate" />
<result property="entrustNo" column="entrust_no" />
<result property="tel" column="tel" />
<result property="fax" column="fax" />
<result property="driverSign" column="driver_sign" />
<result property="carrier" column="carrier" />
<result property="carrierName" column="carrier_name" />
<result property="containerNo" column="container_no" />
<result property="containerNoName" column="container_no_name" />
<result property="transportModeCode" column="transport_mode_code" />
<result property="transportModeName" column="transport_mode_name" />
<result property="supervisionModeCode" column="supervision_mode_code" />
<result property="supervisionModeName" column="supervision_mode_name" />
<result property="declareCustoms" column="declare_customs" />
<result property="entryExitCustoms" column="entry_exit_customs" />
<result property="departureArrivalCountry" column="departure_arrival_country" />
<result property="customsInspectionFlag" column="customs_inspection_flag" />
<result property="needDeclareFlag" column="need_declare_flag" />
<result property="needTransportFlag" column="need_transport_flag" />
<result property="manufacturer" column="manufacturer" />
<result property="customsDeclarerInfo" column="customs_declarer_info" />
<result property="deliveryAddr" column="delivery_addr" />
<result property="annexUrl" column="annex_url" />
<result property="orderStatus" column="order_status" />
<result property="orderStatusStr" column="order_status_str" />
<result property="auditBy" column="audit_by" />
<result property="auditByName" column="audit_by_name" />
<result property="auditTime" column="audit_time" />
<result property="auditRemark" column="audit_remark" />
<result property="issueStatus" column="issue_status" />
<result property="issueStatusStr" column="issue_status_str" />
<result property="issueBy" column="issue_by" />
<result property="issueByName" column="issue_by_name" />
<result property="issueTime" column="issue_time" />
<result property="declareTotalQuantity" column="declare_total_quantity" />
<result property="remark" column="remark" />
<result property="organizationId" column="organization_id" />
<result property="organizationName" column="organization_name" />
<result property="topOrganizationId" column="top_organization_id" />
</resultMap>
<sql id="selectOutEntrustOrderPo">
select
a.id,a.create_by,a.create_by_name,a.create_time,a.update_by,a.update_by_name,a.update_time,a.del_flag,
a.entrust_number,a.warehouse_id,a.warehouse_code,a.warehouse_name,a.shipper_id,a.shipper_code,a.shipper_name,
a.salesman_id,a.salesman_name,a.order_type_code,a.order_type_name,a.settlement_currency,a.priority_level_code,a.priority_level_name,
a.direct_warehouse,a.review,a.expect_time,a.outbound_date,a.order_date,a.complete_time,
a.to_receiver,a.contact_person,a.vehicle_model_plate,a.entrust_no,a.tel,a.fax,a.driver_sign,
a.carrier,a.carrier_name,a.container_no,a.container_no_name,
a.transport_mode_code,a.transport_mode_name,a.supervision_mode_code,a.supervision_mode_name,
a.declare_customs,a.entry_exit_customs,a.departure_arrival_country,a.customs_inspection_flag,
a.need_declare_flag,a.need_transport_flag,a.manufacturer,a.customs_declarer_info,a.delivery_addr,a.annex_url,
a.order_status,a.audit_by,a.audit_by_name,a.audit_time,a.audit_remark,
a.issue_status,a.issue_by,a.issue_by_name,a.issue_time,a.declare_total_quantity,
a.remark,a.organization_id,a.organization_name,a.top_organization_id,
case a.order_status when 1 then '待审核' when 2 then '已审核' when 3 then '已驳回' when 4 then '进行中' when 5 then '已入库' else '未知状态' end order_status_str,
case a.issue_status when 1 then '未下发' when 2 then '已下发' else '未知状态' end issue_status_str
from
oms_out_entrust_order a
</sql>
<sql id="selectOutEntrustOrderPo1">
<where>
a.del_flag = 1
<if test="entrustNumber != null and entrustNumber != ''">
and a.entrust_number like concat('%', #{entrustNumber}, '%')
</if>
<if test="entrustNo != null and entrustNo != ''">
and a.entrust_no like concat('%', #{entrustNo}, '%')
</if>
<if test="warehouseId != null">
and a.warehouse_id = #{warehouseId}
</if>
<if test="warehouseName != null and warehouseName != ''">
and a.warehouse_name like concat('%', #{warehouseName}, '%')
</if>
<if test="shipperId != null">
and a.shipper_id = #{shipperId}
</if>
<if test="shipperName != null and shipperName != ''">
and a.shipper_name like concat('%', #{shipperName}, '%')
</if>
<if test="salesmanId != null and salesmanId != ''">
and a.salesman_id = #{salesmanId}
</if>
<if test="salesmanName != null and salesmanName != ''">
and a.salesman_name like concat('%', #{salesmanName}, '%')
</if>
<if test="containerNo != null and containerNo != ''">
and a.container_no like concat('%', #{containerNo}, '%')
</if>
<if test="orderStatus != null">
and a.order_status = #{orderStatus}
</if>
<if test="issueStatus != null">
and a.issue_status = #{issueStatus}
</if>
<if test="settlementCurrency != null and settlementCurrency != ''">
and a.settlement_currency = #{settlementCurrency}
</if>
<if test="invoiceNo != null and invoiceNo != ''">
and exists (
select 1 from oms_out_entrust_order_detail d
where d.entrust_number = a.entrust_number
and d.del_flag = 1
and d.invoice_no like concat('%', #{invoiceNo}, '%')
)
</if>
<if test="topOrganizationId != null">
and a.top_organization_id = #{topOrganizationId}
</if>
<if test="beginCreateTime != null">
and a.create_time &gt;= #{beginCreateTime}
</if>
<if test="endCreateTime != null">
and a.create_time &lt;= #{endCreateTime}
</if>
<if test="idList != null">
and a.id in
<foreach collection="idList" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</where>
order by a.create_time desc
</sql>
<select id="queryList" parameterType="com.mhd.oms.domain.outEntrustOrder.repository.todo.OutEntrustOrderDO" resultMap="OutEntrustOrderResult">
<include refid="selectOutEntrustOrderPo"/>
<include refid="selectOutEntrustOrderPo1"/>
</select>
<select id="getInfoByIds" resultMap="OutEntrustOrderResult">
<include refid="selectOutEntrustOrderPo"/>
<where>
a.del_flag = 1
and a.id in
<foreach collection="idList" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</where>
</select>
<!-- 导入用:跨库查询WMS物料基础信息(与reservationStockInOrder模块的直查模式一致),按货主+一级组织过滤 -->
<sql id="selectImportMaterialBaseInfo">
select * from "NGWL_TEST_WMS".MATERIAL_BASE_INFO
where DEL_FLAG = 1
and SHIPPER_ID = #{shipperId}
<if test="topOrganizationId != null">
and TOP_ORGANIZATION_ID = #{topOrganizationId}
</if>
</sql>
<select id="getMaterialByMaterialCode" resultType="com.mhd.oms.domain.reservationStockInOrder.repository.po.MaterialBaseInfoPO">
<include refid="selectImportMaterialBaseInfo"/>
and MATERIAL_CODE = #{materialCode}
</select>
<select id="getMaterialByBarCode" resultType="com.mhd.oms.domain.reservationStockInOrder.repository.po.MaterialBaseInfoPO">
<include refid="selectImportMaterialBaseInfo"/>
and BAR_CODE = #{barCode}
</select>
<select id="getMaterialByMaterialName" resultType="com.mhd.oms.domain.reservationStockInOrder.repository.po.MaterialBaseInfoPO">
<include refid="selectImportMaterialBaseInfo"/>
and MATERIAL_NAME = #{materialName}
</select>
</mapper>