feat(oms): 新增出仓委托单,支持新增/编辑/审核/下发WMS/完成入库

- 订单状态五态:1待审核(新增默认,驳回单编辑后自动回此态) 2已审核(下发后保持,用下发状态区分) 3已驳回 4进行中(预留) 5已入库
- 下发走WMS出库通知单链路(stockOutOrInInsert),返回强校验防吞错;完成入库限已审核+已下发
- 订单类型未传默认普通出库;明细新增单价unitPrice;列表支持invoiceNo/settlementCurrency查询,时间参数只传年月日
- 必填:客户/业务员/仓库/商品名称/申报数量;编辑删除限待审核/已驳回且未下发
- 附达梦建表脚本oms_out_entrust_order(主表+明细表,最终版)
This commit is contained in:
rcx
2026-09-04 10:47:29 +08:00
parent 0eb47793a8
commit 7d3c229b9a
21 changed files with 2823 additions and 0 deletions
@@ -0,0 +1,181 @@
<?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>
</mapper>