You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

700 lines
48 KiB

<?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.xujie.modules.order.dao.PODetailMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.xujie.modules.order.entity.PODetail">
<id column="order_no" property="orderNo" />
<result column="site" property="site" />
<result column="item_no" property="itemNo" />
<result column="part_no" property="partNo" />
<result column="status" property="status" />
<result column="qty" property="qty" />
<result column="umid" property="umid" />
<result column="convert_factor" property="convertFactor" />
<result column="price" property="price" />
<result column="base_price" property="basePrice" />
<result column="want_receive_date" property="wantReceiveDate" />
<result column="tax_rate" property="taxRate" />
<result column="tax" property="tax" />
<result column="additional_cost" property="additionalCost" />
<result column="freight" property="freight" />
<result column="duty" property="duty" />
<result column="arrive_qty" property="arriveQty" />
<result column="receive_qty" property="receiveQty" />
<result column="qty_returned" property="qtyReturned" />
<result column="qty_replace" property="qtyReplace" />
<result column="qty_scrapt" property="qtyScrapt" />
<result column="invoice_qty" property="invoiceQty" />
<result column="approve_result" property="approveResult" />
<result column="need_inspect_flag" property="needInspectFlag" />
<result column="remark" property="remark" />
<result column="iqc_qty" property="iqcQty" />
<result column="last_update_by" property="lastUpdateBy" />
<result column="pr_convert_note" property="prConvertNote" />
<result column="inspect_type_db" property="inspectTypeDb" />
<result column="inspect_type" property="inspectType" />
<result column="inspect_qty" property="inspectQty" />
<result column="inspect_percent" property="inspectPercent" />
<result column="inspection_level_no" property="inspectionLevelNo" />
<result column="close_tolerance" property="closeTolerance" />
<result column="over_receive_tolerance" property="overReceiveTolerance" />
<result column="item" property="item" />
<result column="c_value" property="value" />
<result column="c_ship_qty" property="shipQty" />
<result column="c_sum_price" property="sumPrice" />
<result column="c_narrival" property="narrival" />
<result column="c_crd" property="crd" />
<result column="c_crd_ori" property="crdOri" />
<result column="c_inspection" property="inspection" />
<result column="c_real_crd" property="realCrd" />
<result column="c_po_place_date" property="poPlaceDate" />
<result column="c_po_promise_ready_date" property="poPromiseReadyDate" />
<result column="c_po_actual_ready_date" property="poActualReadyDate" />
<result column="c_china_office_inspection_date" property="chinaOfficeInspectionDate" />
<result column="c_ship_to_npc_date" property="shipToNpcDate" />
<result column="c_inspection_result" property="inspectionResult" />
<result column="c_eta" property="eta" />
<result column="c_flexid" property="flexid" />
<result column="c_obd" property="obd" />
<result column="c_doc_sent" property="docSent" />
<result column="c_telex_release" property="telexRelease" />
<result column="c_advance_payment" property="advancePayment" />
<result column="c_advance_paid" property="advancePaid" />
<result column="create_time" property="createTime" />
<result column="c_planner" property="planner" />
<result column="c_edit" property="edit" />
<result column="c_end_planner" property="endPlanner" />
<result column="c_remark_delay" property="remarkDelay" />
<result column="c_customer" property="customer" />
<result column="qty_cancelled" property="qtyCancelled" />
<result column="inspect_method_db" property="inspectMethodDb" />
<result column="to_inv_nofity_qty" property="toInvNofityQty" />
<result column="upload_date" property="uploadDate" />
<result column="order_ref1" property="orderRef1" />
<result column="order_ref5" property="orderRef5" />
<result column="batch_no" property="batchNo" />
<result column="order_ref4" property="orderRef4" />
<result column="pre_pay_amount" property="prePayAmount" />
<result column="upload_by" property="uploadBy" />
<result column="pur_lead_time" property="purLeadTime" />
<result column="order_ref_type" property="orderRefType" />
<result column="order_ref3" property="orderRef3" />
<result column="need_receive_flag" property="needReceiveFlag" />
<result column="upload_flag" property="uploadFlag" />
<result column="id" property="id" />
<result column="pre_pay_reverse_amount" property="prePayReverseAmount" />
<result column="out_work_order_flag" property="outWorkOrderFlag" />
<result column="order_ref2" property="orderRef2" />
<result column="qty_rbjs" property="qtyRbjs" />
<result column="pre_pay_pay_amount" property="prePayPayAmount" />
<result column="need_date" property="needDate" />
<result column="inspect_method" property="inspectMethod" />
<result column="inv_notify_qty" property="invNotifyQty" />
<result column="po_header_id" property="poHeaderId" />
<result column="standard_tt" property="standardTt" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="BaseColumnList">
po_header_id, order_no, site, item_no, part_no, status, qty, umid, convert_factor, price, base_price, want_receive_date, tax_rate, tax, additional_cost, freight, duty, arrive_qty, receive_qty, qty_returned, qty_replace, qty_scrapt, invoice_qty, approve_result, need_inspect_flag, remark, iqc_qty, last_update_by, pr_convert_note, inspect_type_db, inspect_type, inspect_qty, inspect_percent, inspection_level_no, close_tolerance, over_receive_tolerance, item, c_value, c_ship_qty, c_sum_price, c_narrival, c_crd, c_crd_ori, c_inspection, c_real_crd, c_po_place_date, c_po_promise_ready_date, c_po_actual_ready_date, c_china_office_inspection_date, c_ship_to_npc_date, c_inspection_result, c_eta, c_flexid, c_obd, c_doc_sent, c_telex_release, c_advance_payment, c_advance_paid, create_time, c_planner, c_edit, c_end_planner, c_remark_delay, c_customer, qty_cancelled, inspect_method_db, to_inv_nofity_qty, upload_date, order_ref1, order_ref5, batch_no, order_ref4, pre_pay_amount, upload_by, pur_lead_time, order_ref_type, order_ref3, need_receive_flag, upload_flag, id, pre_pay_reverse_amount, out_work_order_flag, order_ref2, qty_rbjs, pre_pay_pay_amount, need_date, inspect_method, inv_notify_qty, standard_tt
</sql>
<select id="getListByModel" resultType="com.xujie.modules.order.vo.PODetailVo">
select <include refid="BaseColumnList"/>
from PODetail
where site = #{site}
<if test="poHeaderId != null and poHeaderId != '' "> and po_header_id = #{poHeaderId}</if>
<if test="orderNo != null and orderNo != '' "> and order_no = #{orderNo}</if>
<if test="itemNo != null "> and item_no = #{itemNo}</if>
<if test="partNo != null and partNo != '' "> and part_no = #{partNo}</if>
<if test="status != null and status != '' "> and status = #{status}</if>
<if test="qty != null and qty != '' "> and qty = #{qty}</if>
<if test="umid != null and umid != '' "> and umid = #{umid}</if>
<if test="convertFactor != null and convertFactor != '' "> and convert_factor = #{convertFactor}</if>
<if test="price != null and price != '' "> and price = #{price}</if>
<if test="basePrice != null and basePrice != '' "> and base_price = #{basePrice}</if>
<if test="wantReceiveDate != null and wantReceiveDate != '' "> and want_receive_date = #{wantReceiveDate}</if>
<if test="taxRate != null and taxRate != '' "> and tax_rate = #{taxRate}</if>
<if test="tax != null and tax != '' "> and tax = #{tax}</if>
<if test="additionalCost != null and additionalCost != '' "> and additional_cost = #{additionalCost}</if>
<if test="freight != null and freight != '' "> and freight = #{freight}</if>
<if test="duty != null and duty != '' "> and duty = #{duty}</if>
<if test="arriveQty != null and arriveQty != '' "> and arrive_qty = #{arriveQty}</if>
<if test="receiveQty != null and receiveQty != '' "> and receive_qty = #{receiveQty}</if>
<if test="qtyReturned != null and qtyReturned != '' "> and qty_returned = #{qtyReturned}</if>
<if test="qtyReplace != null and qtyReplace != '' "> and qty_replace = #{qtyReplace}</if>
<if test="qtyScrapt != null and qtyScrapt != '' "> and qty_scrapt = #{qtyScrapt}</if>
<if test="invoiceQty != null and invoiceQty != '' "> and invoice_qty = #{invoiceQty}</if>
<if test="approveResult != null and approveResult != '' "> and approve_result = #{approveResult}</if>
<if test="needInspectFlag != null and needInspectFlag != '' "> and need_inspect_flag = #{needInspectFlag}</if>
<if test="remark != null and remark != '' "> and remark = #{remark}</if>
<if test="iqcQty != null and iqcQty != '' "> and iqc_qty = #{iqcQty}</if>
<if test="lastUpdateBy != null and lastUpdateBy != '' "> and last_update_by = #{lastUpdateBy}</if>
<if test="prConvertNote != null and prConvertNote != '' "> and pr_convert_note = #{prConvertNote}</if>
<if test="inspectTypeDb != null and inspectTypeDb != '' "> and inspect_type_db = #{inspectTypeDb}</if>
<if test="inspectType != null and inspectType != '' "> and inspect_type = #{inspectType}</if>
<if test="inspectQty != null and inspectQty != '' "> and inspect_qty = #{inspectQty}</if>
<if test="inspectPercent != null and inspectPercent != '' "> and inspect_percent = #{inspectPercent}</if>
<if test="inspectionLevelNo != null and inspectionLevelNo != '' "> and inspection_level_no = #{inspectionLevelNo}</if>
<if test="closeTolerance != null and closeTolerance != '' "> and close_tolerance = #{closeTolerance}</if>
<if test="overReceiveTolerance != null and overReceiveTolerance != '' "> and over_receive_tolerance = #{overReceiveTolerance}</if>
<if test="item != null and item != '' "> and item = #{item}</if>
<if test="value != null and value != '' "> and c_value = #{value}</if>
<if test="shipQty != null "> and c_ship_qty = #{shipQty}</if>
<if test="sumPrice != null and sumPrice != '' "> and c_sum_price = #{sumPrice}</if>
<if test="narrival != null and narrival != '' "> and c_narrival = #{narrival}</if>
<if test="crd != null and crd != '' "> and c_crd = #{crd}</if>
<if test="crdOri != null and crdOri != '' "> and c_crd_ori = #{crdOri}</if>
<if test="inspection != null and inspection != '' "> and c_inspection = #{inspection}</if>
<if test="realCrd != null and realCrd != '' "> and c_real_crd = #{realCrd}</if>
<if test="poPlaceDate != null and poPlaceDate != '' "> and c_po_place_date = #{poPlaceDate}</if>
<if test="poPromiseReadyDate != null and poPromiseReadyDate != '' "> and c_po_promise_ready_date = #{poPromiseReadyDate}</if>
<if test="poActualReadyDate != null and poActualReadyDate != '' "> and c_po_actual_ready_date = #{poActualReadyDate}</if>
<if test="chinaOfficeInspectionDate != null and chinaOfficeInspectionDate != '' "> and c_china_office_inspection_date = #{chinaOfficeInspectionDate}</if>
<if test="shipToNpcDate != null and shipToNpcDate != '' "> and c_ship_to_npc_date = #{shipToNpcDate}</if>
<if test="inspectionResult != null and inspectionResult != '' "> and c_inspection_result = #{inspectionResult}</if>
<if test="eta != null and eta != '' "> and c_eta = #{eta}</if>
<if test="flexid != null and flexid != '' "> and c_flexid = #{flexid}</if>
<if test="obd != null and obd != '' "> and c_obd = #{obd}</if>
<if test="docSent != null and docSent != '' "> and c_doc_sent = #{docSent}</if>
<if test="telexRelease != null and telexRelease != '' "> and c_telex_release = #{telexRelease}</if>
<if test="advancePayment != null and advancePayment != '' "> and c_advance_payment = #{advancePayment}</if>
<if test="advancePaid != null and advancePaid != '' "> and c_advance_paid = #{advancePaid}</if>
<if test="createTime != null and createTime != '' "> and create_time = #{createTime}</if>
<if test="planner != null and planner != '' "> and c_planner = #{planner}</if>
<if test="edit != null and edit != '' "> and c_edit = #{edit}</if>
<if test="endPlanner != null and endPlanner != '' "> and c_end_planner = #{endPlanner}</if>
<if test="remarkDelay != null and remarkDelay != '' "> and c_remark_delay = #{remarkDelay}</if>
<if test="qtyCancelled != null and qtyCancelled != '' "> and qty_cancelled = #{qtyCancelled}</if>
<if test="inspectMethodDb != null and inspectMethodDb != '' "> and inspect_method_db = #{inspectMethodDb}</if>
<if test="toInvNofityQty != null and toInvNofityQty != '' "> and to_inv_nofity_qty = #{toInvNofityQty}</if>
<if test="uploadDate != null and uploadDate != '' "> and upload_date = #{uploadDate}</if>
<if test="orderRef1 != null and orderRef1 != '' "> and order_ref1 = #{orderRef1}</if>
<if test="orderRef5 != null and orderRef5 != '' "> and order_ref5 = #{orderRef5}</if>
<if test="batchNo != null and batchNo != '' "> and batch_no = #{batchNo}</if>
<if test="orderRef4 != null and orderRef4 != '' "> and order_ref4 = #{orderRef4}</if>
<if test="prePayAmount != null and prePayAmount != '' "> and pre_pay_amount = #{prePayAmount}</if>
<if test="uploadBy != null and uploadBy != '' "> and upload_by = #{uploadBy}</if>
<if test="purLeadTime != null and purLeadTime != '' "> and pur_lead_time = #{purLeadTime}</if>
<if test="orderRefType != null and orderRefType != '' "> and order_ref_type = #{orderRefType}</if>
<if test="orderRef3 != null and orderRef3 != '' "> and order_ref3 = #{orderRef3}</if>
<if test="needReceiveFlag != null and needReceiveFlag != '' "> and need_receive_flag = #{needReceiveFlag}</if>
<if test="uploadFlag != null and uploadFlag != '' "> and upload_flag = #{uploadFlag}</if>
<if test="id != null "> and id = #{id}</if>
<if test="prePayReverseAmount != null and prePayReverseAmount != '' "> and pre_pay_reverse_amount = #{prePayReverseAmount}</if>
<if test="outWorkOrderFlag != null and outWorkOrderFlag != '' "> and out_work_order_flag = #{outWorkOrderFlag}</if>
<if test="orderRef2 != null and orderRef2 != '' "> and order_ref2 = #{orderRef2}</if>
<if test="qtyRbjs != null and qtyRbjs != '' "> and qty_rbjs = #{qtyRbjs}</if>
<if test="prePayPayAmount != null and prePayPayAmount != '' "> and pre_pay_pay_amount = #{prePayPayAmount}</if>
<if test="needDate != null and needDate != '' "> and need_date = #{needDate}</if>
<if test="inspectMethod != null and inspectMethod != '' "> and inspect_method = #{inspectMethod}</if>
<if test="invNotifyQty != null and invNotifyQty != '' "> and inv_notify_qty = #{invNotifyQty}</if>
order by id desc
</select>
<select id="myPage" resultType="com.xujie.modules.order.vo.PODetailVo">
select pod.po_header_id as poHeaderId, pod.order_no, pod.site, pod.item_no, pod.part_no, pod.status, pod.qty, pod.umid, pod.convert_factor, pod.price, pod.base_price, pod.want_receive_date, pod.tax_rate, pod.tax, pod.additional_cost, pod.freight, pod.duty, pod.arrive_qty, pod.receive_qty, pod.qty_returned, pod.qty_replace, pod.qty_scrapt, pod.invoice_qty, pod.approve_result, pod.need_inspect_flag, pod.remark, pod.iqc_qty, pod.last_update_by, pod.pr_convert_note, pod.inspect_type_db, pod.inspect_type, pod.inspect_qty, pod.inspect_percent, pod.inspection_level_no, pod.close_tolerance, pod.over_receive_tolerance
,pod.inspect_method_db, pod.to_inv_nofity_qty, pod.upload_date, pod.order_ref1, pod.order_ref5, pod.batch_no, pod.order_ref4, pod.pre_pay_amount, pod.upload_by, pod.pur_lead_time, pod.order_ref_type, pod.order_ref3, pod.need_receive_flag, pod.upload_flag, pod.id as id, pod.pre_pay_reverse_amount, pod.out_work_order_flag, pod.order_ref2, pod.qty_rbjs, pod.pre_pay_pay_amount, pod.need_date, pod.inspect_method, pod.inv_notify_qty, pod.standard_tt as standardTt
,COALESCE(p.item, pod.item) as item
,pod.c_value as value
,pod.c_ship_qty as shipQty
,pod.c_sum_price as sumPrice
,pod.c_narrival as narrival
,pod.c_crd as crd
,pod.c_crd_ori as crdOri
,pod.c_inspection as inspection
,pod.c_real_crd as realCrd
,pod.c_po_place_date as poPlaceDate
,pod.c_po_promise_ready_date as poPromiseReadyDate
,pod.c_po_actual_ready_date as poActualReadyDate
,pod.c_china_office_inspection_date as chinaOfficeInspectionDate
,pod.c_ship_to_npc_date as shipToNpcDate
,pod.c_inspection_result as inspectionResult
,pod.c_eta as eta
,pod.c_flexid as flexid
,pod.c_obd as obd
,pod.c_doc_sent as docSent
,pod.c_telex_release as telexRelease
,pod.c_advance_payment as advancePayment
,pod.c_advance_paid as advancePaid
,pod.create_time as createTime
,pod.c_planner as planner
,pod.c_edit as edit
,pod.c_end_planner as endPlanner
,pod.c_remark_delay as remarkDelay
,pod.qty_cancelled as qtyCancelled
,poh.c_customer as customer
,poh.buyer as buyer
,poh.supplier_no as supplierNo
,poh.po_no as poNo
,poh.order_type as orderType
,poh.c_departure as departure
,poh.c_destination as destination
,poh.ship_via as shipVia
,poh.order_date as orderDate
,poh.c_enquiry as enquiry
,poh.c_confirmed as confirmed
,poh.want_receive_date as headerWantReceiveDate
,ss.supplier_name as supplierName
,ss.c_short_office as shortOffice
,ss.c_short_npc as shortNpc
,p.category
,pf1.family_name as categoryName
,p.sku
,COALESCE(pod.to_inspect_qty, 0) AS toInspectQty
,COALESCE(pod.inspect_approve_qty, 0) AS inspectApproveQty
,COALESCE(pod.inspect_approve_qty, 0) AS inspectionCompletedQty
,(SELECT COALESCE(SUM(ds.qty), 0)
FROM srm_inspection_request_header h
LEFT JOIN srm_inspect_request_detail d ON h.request_no = d.request_no AND h.site = d.site
LEFT JOIN srm_inspect_request_detail_sub ds ON d.request_no = ds.request_no AND d.site = ds.site AND d.item_no = ds.item_no
WHERE h.site = pod.site
AND h.supplier_no = poh.supplier_no
AND ds.po_no = pod.order_no
AND ds.po_item_no = pod.item_no
AND d.status_db = 'Inspecting') AS inspectingQty
from PODetail pod
left join POHeader poh on poh.order_no = pod.order_no
left join srm_supplier ss on ss.supplier_no = poh.supplier_no and ss.site = pod.site
left join part p on p.part_no = pod.part_no and p.site = pod.site
left join part_family pf1 on p.site = pf1.site and p.category = pf1.family_id
where pod.site = '${query.site}'
<if test="query.poHeaderId != null and query.poHeaderId != '' "> and pod.po_header_id like '%${query.poHeaderId}%'</if>
<if test="query.orderNo != null and query.orderNo != '' "> and pod.order_no like '%${query.orderNo}%'</if>
<if test="query.poNo != null and query.poNo != '' "> and poh.po_no like '%${query.poNo}%'</if>
<if test="query.orderType != null and query.orderType != '' "> and poh.order_type = '${query.orderType}'</if>
<if test="query.supplierNo != null and query.supplierNo != '' "> and poh.supplier_no like '%${query.supplierNo}%'</if>
<if test="query.customer != null and query.customer != '' "> and poh.c_customer = #{query.customer}</if>
<if test="query.buyer != null and query.buyer != '' "> and poh.buyer like '%${query.buyer}%'</if>
<if test="query.itemNo != null "> and pod.item_no = '${query.itemNo}'</if>
<if test="query.partNo != null and query.partNo != '' "> and pod.part_no like '%${query.partNo}%'</if>
<if test="query.status != null and query.status != '' "> and pod.status like '%${query.status}%'</if>
<if test="query.qty != null and query.qty != '' "> and pod.qty like '%${query.qty}%'</if>
<if test="query.umid != null and query.umid != '' "> and pod.umid like '%${query.umid}%'</if>
<if test="query.convertFactor != null and query.convertFactor != '' "> and pod.convert_factor like '%${query.convertFactor}%'</if>
<if test="query.price != null and query.price != '' "> and pod.price like '%${query.price}%'</if>
<if test="query.basePrice != null and query.basePrice != '' "> and pod.base_price like '%${query.basePrice}%'</if>
<if test="query.wantReceiveDate != null "> and pod.want_receive_date like '%${query.wantReceiveDate}%'</if>
<if test="query.taxRate != null and query.taxRate != '' "> and pod.tax_rate like '%${query.taxRate}%'</if>
<if test="query.tax != null and query.tax != '' "> and pod.tax like '%${query.tax}%'</if>
<if test="query.additionalCost != null and query.additionalCost != '' "> and pod.additional_cost like '%${query.additionalCost}%'</if>
<if test="query.freight != null and query.freight != '' "> and pod.freight like '%${query.freight}%'</if>
<if test="query.duty != null and query.duty != '' "> and pod.duty like '%${query.duty}%'</if>
<if test="query.arriveQty != null and query.arriveQty != '' "> and pod.arrive_qty like '%${query.arriveQty}%'</if>
<if test="query.receiveQty != null and query.receiveQty != '' "> and pod.receive_qty like '%${query.receiveQty}%'</if>
<if test="query.qtyReturned != null and query.qtyReturned != '' "> and pod.qty_returned like '%${query.qtyReturned}%'</if>
<if test="query.qtyReplace != null and query.qtyReplace != '' "> and pod.qty_replace like '%${query.qtyReplace}%'</if>
<if test="query.qtyScrapt != null and query.qtyScrapt != '' "> and pod.qty_scrapt like '%${query.qtyScrapt}%'</if>
<if test="query.invoiceQty != null and query.invoiceQty != '' "> and pod.invoice_qty like '%${query.invoiceQty}%'</if>
<if test="query.approveResult != null and query.approveResult != '' "> and pod.approve_result like '%${query.approveResult}%'</if>
<if test="query.needInspectFlag != null and query.needInspectFlag != '' "> and pod.need_inspect_flag like '%${query.needInspectFlag}%'</if>
<if test="query.remark != null and query.remark != '' "> and pod.remark like '%${query.remark}%'</if>
<if test="query.iqcQty != null and query.iqcQty != '' "> and pod.iqc_qty like '%${query.iqcQty}%'</if>
<if test="query.lastUpdateBy != null and query.lastUpdateBy != '' "> and pod.last_update_by like '%${query.lastUpdateBy}%'</if>
<if test="query.prConvertNote != null and query.prConvertNote != '' "> and pod.pr_convert_note like '%${query.prConvertNote}%'</if>
<if test="query.inspectTypeDb != null and query.inspectTypeDb != '' "> and pod.inspect_type_db like '%${query.inspectTypeDb}%'</if>
<if test="query.inspectType != null and query.inspectType != '' "> and pod.inspect_type like '%${query.inspectType}%'</if>
<if test="query.inspectQty != null and query.inspectQty != '' "> and pod.inspect_qty like '%${query.inspectQty}%'</if>
<if test="query.inspectPercent != null and query.inspectPercent != '' "> and pod.inspect_percent like '%${query.inspectPercent}%'</if>
<if test="query.inspectionLevelNo != null and query.inspectionLevelNo != '' "> and pod.inspection_level_no like '%${query.inspectionLevelNo}%'</if>
<if test="query.closeTolerance != null and query.closeTolerance != '' "> and pod.close_tolerance like '%${query.closeTolerance}%'</if>
<if test="query.overReceiveTolerance != null and query.overReceiveTolerance != '' "> and pod.over_receive_tolerance like '%${query.overReceiveTolerance}%'</if>
<if test="query.item != null and query.item != '' "> and COALESCE(p.item, pod.item) like '%${query.item}%'</if>
<if test="query.value != null and query.value != '' "> and pod.c_value like '%${query.value}%'</if>
<if test="query.shipQty != null "> and pod.c_ship_qty = '${query.shipQty}'</if>
<if test="query.sumPrice != null and query.sumPrice != '' "> and pod.c_sum_price like '%${query.sumPrice}%'</if>
<if test="query.narrival != null and query.narrival != '' "> and pod.c_narrival like '%${query.narrival}%'</if>
<if test="query.crd != null and query.crd != '' "> and pod.c_crd like '%${query.crd}%'</if>
<if test="query.crdOri != null and query.crdOri != '' "> and pod.c_crd_ori like '%${query.crdOri}%'</if>
<if test="query.inspection != null and query.inspection != '' "> and pod.c_inspection like '%${query.inspection}%'</if>
<if test="query.realCrd != null and query.realCrd != '' "> and pod.c_real_crd like '%${query.realCrd}%'</if>
<if test="query.poPlaceDate != null and query.poPlaceDate != '' "> and pod.c_po_place_date like '%${query.poPlaceDate}%'</if>
<if test="query.poPromiseReadyDate != null and query.poPromiseReadyDate != '' "> and pod.c_po_promise_ready_date like '%${query.poPromiseReadyDate}%'</if>
<if test="query.poActualReadyDate != null and query.poActualReadyDate != '' "> and pod.c_po_actual_ready_date like '%${query.poActualReadyDate}%'</if>
<if test="query.chinaOfficeInspectionDate != null and query.chinaOfficeInspectionDate != '' "> and pod.c_china_office_inspection_date like '%${query.chinaOfficeInspectionDate}%'</if>
<if test="query.shipToNpcDate != null and query.shipToNpcDate != '' "> and pod.c_ship_to_npc_date like '%${query.shipToNpcDate}%'</if>
<if test="query.inspectionResult != null and query.inspectionResult != '' "> and pod.c_inspection_result like '%${query.inspectionResult}%'</if>
<if test="query.eta != null and query.eta != '' "> and pod.c_eta like '%${query.eta}%'</if>
<if test="query.flexid != null and query.flexid != '' "> and pod.c_flexid like '%${query.flexid}%'</if>
<if test="query.obd != null and query.obd != '' "> and pod.c_obd like '%${query.obd}%'</if>
<if test="query.docSent != null and query.docSent != '' "> and pod.c_doc_sent like '%${query.docSent}%'</if>
<if test="query.telexRelease != null and query.telexRelease != '' "> and pod.c_telex_release like '%${query.telexRelease}%'</if>
<if test="query.advancePayment != null and query.advancePayment != '' "> and pod.c_advance_payment like '%${query.advancePayment}%'</if>
<if test="query.advancePaid != null and query.advancePaid != '' "> and pod.c_advance_paid like '%${query.advancePaid}%'</if>
<if test="query.createTime != null and query.createTime != '' "> and pod.create_time like '%${query.createTime}%'</if>
<if test="query.planner != null and query.planner != '' "> and pod.c_planner like '%${query.planner}%'</if>
<if test="query.edit != null and query.edit != '' "> and pod.c_edit like '%${query.edit}%'</if>
<if test="query.endPlanner != null and query.endPlanner != '' "> and pod.c_end_planner like '%${query.endPlanner}%'</if>
<if test="query.remarkDelay != null and query.remarkDelay != '' "> and pod.c_remark_delay like '%${query.remarkDelay}%'</if>
<if test="query.qtyCancelled != null and query.qtyCancelled != '' "> and pod.qty_cancelled like '%${query.qtyCancelled}%'</if>
<if test="query.inspectMethodDb != null and query.inspectMethodDb != '' "> and pod.inspect_method_db like '%${query.inspectMethodDb}%'</if>
<if test="query.toInvNofityQty != null and query.toInvNofityQty != '' "> and pod.to_inv_nofity_qty like '%${query.toInvNofityQty}%'</if>
<if test="query.uploadDate != null and query.uploadDate != '' "> and pod.upload_date like '%${query.uploadDate}%'</if>
<if test="query.orderRef1 != null and query.orderRef1 != '' "> and pod.order_ref1 like '%${query.orderRef1}%'</if>
<if test="query.orderRef5 != null and query.orderRef5 != '' "> and pod.order_ref5 like '%${query.orderRef5}%'</if>
<if test="query.batchNo != null and query.batchNo != '' "> and pod.batch_no like '%${query.batchNo}%'</if>
<if test="query.orderRef4 != null and query.orderRef4 != '' "> and pod.order_ref4 like '%${query.orderRef4}%'</if>
<if test="query.prePayAmount != null and query.prePayAmount != '' "> and pod.pre_pay_amount like '%${query.prePayAmount}%'</if>
<if test="query.uploadBy != null and query.uploadBy != '' "> and pod.upload_by like '%${query.uploadBy}%'</if>
<if test="query.purLeadTime != null and query.purLeadTime != '' "> and pod.pur_lead_time like '%${query.purLeadTime}%'</if>
<if test="query.orderRefType != null and query.orderRefType != '' "> and pod.order_ref_type like '%${query.orderRefType}%'</if>
<if test="query.orderRef3 != null and query.orderRef3 != '' "> and pod.order_ref3 like '%${query.orderRef3}%'</if>
<if test="query.needReceiveFlag != null and query.needReceiveFlag != '' "> and pod.need_receive_flag like '%${query.needReceiveFlag}%'</if>
<if test="query.uploadFlag != null and query.uploadFlag != '' "> and pod.upload_flag like '%${query.uploadFlag}%'</if>
<if test="query.id != null "> and pod.id = '${query.id}'</if>
<if test="query.prePayReverseAmount != null and query.prePayReverseAmount != '' "> and pod.pre_pay_reverse_amount like '%${query.prePayReverseAmount}%'</if>
<if test="query.outWorkOrderFlag != null and query.outWorkOrderFlag != '' "> and pod.out_work_order_flag like '%${query.outWorkOrderFlag}%'</if>
<if test="query.orderRef2 != null and query.orderRef2 != '' "> and pod.order_ref2 like '%${query.orderRef2}%'</if>
<if test="query.qtyRbjs != null and query.qtyRbjs != '' "> and pod.qty_rbjs like '%${query.qtyRbjs}%'</if>
<if test="query.prePayPayAmount != null and query.prePayPayAmount != '' "> and pod.pre_pay_pay_amount like '%${query.prePayPayAmount}%'</if>
<if test="query.needDate != null and query.needDate != '' "> and pod.need_date like '%${query.needDate}%'</if>
<if test="query.inspectMethod != null and query.inspectMethod != '' "> and pod.inspect_method like '%${query.inspectMethod}%'</if>
<if test="query.invNotifyQty != null and query.invNotifyQty != '' "> and pod.inv_notify_qty like '%${query.invNotifyQty}%'</if>
<if test="query.sku != null and query.sku != '' "> and p.sku like '%${query.sku}%'</if>
<if test="query.supplierName != null and query.supplierName != '' "> and ss.supplier_name like '%${query.supplierName}%'</if>
order by pod.create_time desc, pod.order_no desc, pod.item_no desc
</select>
<!-- 高级查询:SELECT/FROM 与 myPage 一致,WHERE = 基础筛选 + validatedConditions 动态 AND -->
<select id="myPageAdvanced" resultType="com.xujie.modules.order.vo.PODetailVo">
select pod.po_header_id as poHeaderId, pod.order_no, pod.site, pod.item_no, pod.part_no, pod.status, pod.qty, pod.umid, pod.convert_factor, pod.price, pod.base_price, pod.want_receive_date, pod.tax_rate, pod.tax, pod.additional_cost, pod.freight, pod.duty, pod.arrive_qty, pod.receive_qty, pod.qty_returned, pod.qty_replace, pod.qty_scrapt, pod.invoice_qty, pod.approve_result, pod.need_inspect_flag, pod.remark, pod.iqc_qty, pod.last_update_by, pod.pr_convert_note, pod.inspect_type_db, pod.inspect_type, pod.inspect_qty, pod.inspect_percent, pod.inspection_level_no, pod.close_tolerance, pod.over_receive_tolerance
,pod.inspect_method_db, pod.to_inv_nofity_qty, pod.upload_date, pod.order_ref1, pod.order_ref5, pod.batch_no, pod.order_ref4, pod.pre_pay_amount, pod.upload_by, pod.pur_lead_time, pod.order_ref_type, pod.order_ref3, pod.need_receive_flag, pod.upload_flag, pod.id as id, pod.pre_pay_reverse_amount, pod.out_work_order_flag, pod.order_ref2, pod.qty_rbjs, pod.pre_pay_pay_amount, pod.need_date, pod.inspect_method, pod.inv_notify_qty, pod.standard_tt as standardTt
,COALESCE(p.item, pod.item) as item
,pod.c_value as value
,pod.c_ship_qty as shipQty
,pod.c_sum_price as sumPrice
,pod.c_narrival as narrival
,pod.c_crd as crd
,pod.c_crd_ori as crdOri
,pod.c_inspection as inspection
,pod.c_real_crd as realCrd
,pod.c_po_place_date as poPlaceDate
,pod.c_po_promise_ready_date as poPromiseReadyDate
,pod.c_po_actual_ready_date as poActualReadyDate
,pod.c_china_office_inspection_date as chinaOfficeInspectionDate
,pod.c_ship_to_npc_date as shipToNpcDate
,pod.c_inspection_result as inspectionResult
,pod.c_eta as eta
,pod.c_flexid as flexid
,pod.c_obd as obd
,pod.c_doc_sent as docSent
,pod.c_telex_release as telexRelease
,pod.c_advance_payment as advancePayment
,pod.c_advance_paid as advancePaid
,pod.create_time as createTime
,pod.c_planner as planner
,pod.c_edit as edit
,pod.c_end_planner as endPlanner
,pod.c_remark_delay as remarkDelay
,pod.qty_cancelled as qtyCancelled
,poh.c_customer as customer
,poh.buyer as buyer
,poh.supplier_no as supplierNo
,poh.po_no as poNo
,poh.order_type as orderType
,poh.c_departure as departure
,poh.c_destination as destination
,poh.ship_via as shipVia
,poh.order_date as orderDate
,poh.c_enquiry as enquiry
,poh.c_confirmed as confirmed
,poh.want_receive_date as headerWantReceiveDate
,ss.supplier_name as supplierName
,ss.c_short_office as shortOffice
,ss.c_short_npc as shortNpc
,p.category
,pf1.family_name as categoryName
,p.sku
,COALESCE(pod.to_inspect_qty, 0) AS toInspectQty
,COALESCE(pod.inspect_approve_qty, 0) AS inspectApproveQty
,COALESCE(pod.inspect_approve_qty, 0) AS inspectionCompletedQty
,(SELECT COALESCE(SUM(ds.qty), 0)
FROM srm_inspection_request_header h
LEFT JOIN srm_inspect_request_detail d ON h.request_no = d.request_no AND h.site = d.site
LEFT JOIN srm_inspect_request_detail_sub ds ON d.request_no = ds.request_no AND d.site = ds.site AND d.item_no = ds.item_no
WHERE h.site = pod.site
AND h.supplier_no = poh.supplier_no
AND ds.po_no = pod.order_no
AND ds.po_item_no = pod.item_no
AND d.status_db = 'Inspecting') AS inspectingQty
from PODetail pod
left join POHeader poh on poh.order_no = pod.order_no
left join po_order_ext_value exv
on exv.site = pod.site
and exv.order_no = pod.order_no
and exv.item_no = pod.item_no
left join srm_supplier ss on ss.supplier_no = poh.supplier_no and ss.site = pod.site
left join part p on p.part_no = pod.part_no and p.site = pod.site
left join part_family pf1 on p.site = pf1.site and p.category = pf1.family_id
where pod.site = #{query.site}
<if test="query.customer != null and query.customer != ''"> and poh.c_customer = #{query.customer}</if>
<if test="query.buyer != null and query.buyer != ''"> and poh.buyer like CONCAT('%', #{query.buyer}, '%')</if>
<if test="query.poNo != null and query.poNo != ''"> and poh.po_no like CONCAT('%', #{query.poNo}, '%')</if>
<if test="query.orderType != null and query.orderType != ''"> and poh.order_type = #{query.orderType}</if>
<if test="query.supplierNo != null and query.supplierNo != ''"> and poh.supplier_no like CONCAT('%', #{query.supplierNo}, '%')</if>
<if test="query.partNo != null and query.partNo != ''"> and pod.part_no like CONCAT('%', #{query.partNo}, '%')</if>
<if test="query.status != null and query.status != ''"> and pod.status like CONCAT('%', #{query.status}, '%')</if>
<if test="query.sku != null and query.sku != ''"> and p.sku like CONCAT('%', #{query.sku}, '%')</if>
<if test="query.supplierName != null and query.supplierName != ''"> and ss.supplier_name like CONCAT('%', #{query.supplierName}, '%')</if>
<if test="validatedConditions != null and validatedConditions.size() > 0">
<foreach collection="validatedConditions" item="c">
<choose>
<when test="c.operator == 'contains'">
AND CAST(${c.sqlExpression} AS NVARCHAR(500)) LIKE CONCAT('%', #{c.value}, '%')
</when>
<when test="c.operator == 'eq' and c.dataType == 'date'">
AND CAST(${c.sqlExpression} AS DATE) = CAST(#{c.value} AS DATE)
</when>
<when test="c.operator == 'eq'">
AND ${c.sqlExpression} = #{c.value}
</when>
<when test="c.operator == 'gt' and c.dataType == 'date'">
AND CAST(${c.sqlExpression} AS DATE) &gt; CAST(#{c.value} AS DATE)
</when>
<when test="c.operator == 'gt'">
AND ${c.sqlExpression} &gt; #{c.value}
</when>
<when test="c.operator == 'lt' and c.dataType == 'date'">
AND CAST(${c.sqlExpression} AS DATE) &lt; CAST(#{c.value} AS DATE)
</when>
<when test="c.operator == 'lt'">
AND ${c.sqlExpression} &lt; #{c.value}
</when>
<when test="c.operator == 'gte' and c.dataType == 'date'">
AND CAST(${c.sqlExpression} AS DATE) &gt;= CAST(#{c.value} AS DATE)
</when>
<when test="c.operator == 'gte'">
AND ${c.sqlExpression} &gt;= #{c.value}
</when>
<when test="c.operator == 'lte' and c.dataType == 'date'">
AND CAST(${c.sqlExpression} AS DATE) &lt;= CAST(#{c.value} AS DATE)
</when>
<when test="c.operator == 'lte'">
AND ${c.sqlExpression} &lt;= #{c.value}
</when>
</choose>
</foreach>
</if>
order by pod.create_time desc, pod.order_no desc, pod.item_no desc
</select>
<update id="updatePoDetailForEdit">
UPDATE PODetail
<set>
<if test="partNo != null">part_no = #{partNo},</if>
<if test="status != null">status = #{status},</if>
<if test="qty != null">qty = #{qty},</if>
<if test="umid != null">umid = #{umid},</if>
<if test="convertFactor != null">convert_factor = #{convertFactor},</if>
<if test="price != null">price = #{price},</if>
<if test="basePrice != null">base_price = #{basePrice},</if>
<if test="wantReceiveDate != null">want_receive_date = #{wantReceiveDate},</if>
<if test="taxRate != null">tax_rate = #{taxRate},</if>
<if test="tax != null">tax = #{tax},</if>
<if test="additionalCost != null">additional_cost = #{additionalCost},</if>
<if test="freight != null">freight = #{freight},</if>
<if test="duty != null">duty = #{duty},</if>
<if test="arriveQty != null">arrive_qty = #{arriveQty},</if>
<if test="receiveQty != null">receive_qty = #{receiveQty},</if>
<if test="qtyReturned != null">qty_returned = #{qtyReturned},</if>
<if test="qtyReplace != null">qty_replace = #{qtyReplace},</if>
<if test="qtyScrapt != null">qty_scrapt = #{qtyScrapt},</if>
<if test="invoiceQty != null">invoice_qty = #{invoiceQty},</if>
<if test="approveResult != null">approve_result = #{approveResult},</if>
<if test="needInspectFlag != null">need_inspect_flag = #{needInspectFlag},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="iqcQty != null">iqc_qty = #{iqcQty},</if>
<if test="lastUpdateBy != null">last_update_by = #{lastUpdateBy},</if>
<if test="prConvertNote != null">pr_convert_note = #{prConvertNote},</if>
<if test="inspectTypeDb != null">inspect_type_db = #{inspectTypeDb},</if>
<if test="inspectType != null">inspect_type = #{inspectType},</if>
<if test="inspectQty != null">inspect_qty = #{inspectQty},</if>
<if test="inspectPercent != null">inspect_percent = #{inspectPercent},</if>
<if test="inspectionLevelNo != null">inspection_level_no = #{inspectionLevelNo},</if>
<if test="closeTolerance != null">close_tolerance = #{closeTolerance},</if>
<if test="overReceiveTolerance != null">over_receive_tolerance = #{overReceiveTolerance},</if>
<if test="item != null">item = #{item},</if>
<if test="value != null">c_value = #{value},</if>
<if test="shipQty != null">c_ship_qty = #{shipQty},</if>
<if test="sumPrice != null">c_sum_price = #{sumPrice},</if>
<if test="narrival != null">c_narrival = #{narrival},</if>
<if test="crd != null">c_crd = #{crd},</if>
<if test="crdOri != null">c_crd_ori = #{crdOri},</if>
<if test="inspection != null">c_inspection = #{inspection},</if>
<if test="realCrd != null">c_real_crd = #{realCrd},</if>
<if test="poPlaceDate != null">c_po_place_date = #{poPlaceDate},</if>
<if test="poPromiseReadyDate != null">c_po_promise_ready_date = #{poPromiseReadyDate},</if>
<if test="poActualReadyDate != null">c_po_actual_ready_date = #{poActualReadyDate},</if>
<if test="chinaOfficeInspectionDate != null">c_china_office_inspection_date = #{chinaOfficeInspectionDate},</if>
<if test="shipToNpcDate != null">c_ship_to_npc_date = #{shipToNpcDate},</if>
<if test="inspectionResult != null">c_inspection_result = #{inspectionResult},</if>
<if test="eta != null">c_eta = #{eta},</if>
<if test="flexid != null">c_flexid = #{flexid},</if>
<if test="obd != null">c_obd = #{obd},</if>
<if test="docSent != null">c_doc_sent = #{docSent},</if>
<if test="telexRelease != null">c_telex_release = #{telexRelease},</if>
<if test="advancePayment != null">c_advance_payment = #{advancePayment},</if>
<if test="advancePaid != null">c_advance_paid = #{advancePaid},</if>
<if test="planner != null">c_planner = #{planner},</if>
<if test="edit != null">c_edit = #{edit},</if>
<if test="endPlanner != null">c_end_planner = #{endPlanner},</if>
<if test="remarkDelay != null">c_remark_delay = #{remarkDelay},</if>
<if test="standardTt != null">standard_tt = #{standardTt},</if>
<if test="orderRef1 != null">order_ref1 = #{orderRef1},</if>
<if test="orderRef2 != null">order_ref2 = #{orderRef2},</if>
</set>
WHERE site = #{site}
AND order_no = #{orderNo}
AND item_no = #{itemNo}
</update>
<select id="selectByPK" resultMap="BaseResultMap">
SELECT TOP 1 *
FROM PODetail
WHERE order_no = #{orderNo}
AND site = #{site}
AND item_no = #{itemNo}
</select>
<select id="getMaxItemNo" resultType="int">
SELECT MAX(item_no)
FROM PODetail
WHERE order_no = #{poNo}
AND site = #{site}
</select>
<select id="getMaxOrderRef2" resultType="java.lang.Integer">
SELECT MAX(CAST(order_ref2 AS INT))
FROM PODetail
WHERE site = #{site}
AND order_ref1 = #{orderRef1}
AND order_ref2 IS NOT NULL
AND order_ref2 &lt;&gt; ''
AND ISNUMERIC(order_ref2) = 1
</select>
<select id="countByOrderRef" resultType="int">
SELECT COUNT(1)
FROM PODetail
WHERE site = #{site}
AND order_ref1 = #{orderRef1}
AND order_ref2 = #{orderRef2}
<if test="excludeOrderNo != null and excludeOrderNo != '' and excludeItemNo != null">
AND NOT (order_no = #{excludeOrderNo} AND item_no = #{excludeItemNo})
</if>
</select>
<select id="listConflictCustomersByOrderRef1" resultType="string">
SELECT DISTINCT ISNULL(NULLIF(LTRIM(RTRIM(poh.c_customer)), ''), N'空值')
FROM PODetail pod
INNER JOIN POHeader poh
ON poh.site = pod.site
AND poh.order_no = pod.order_no
WHERE pod.site = #{site}
AND pod.order_ref1 = #{orderRef1}
AND ISNULL(LTRIM(RTRIM(poh.c_customer)), '') &lt;&gt; ISNULL(LTRIM(RTRIM(#{customer})), '')
ORDER BY ISNULL(NULLIF(LTRIM(RTRIM(poh.c_customer)), ''), N'空值')
</select>
<!-- 根据 PODetail 的 order_no + item_no 查询关联的验货申请明细(分页) -->
<select id="getInspectionByPODetail" resultType="com.xujie.modules.order.vo.PODetailInspectionVO">
SELECT
sub.request_no AS requestNo,
sub.item_no AS inspectItemNo,
sub.qty AS inspectQty,
sub.approve_qty AS approveQty,
sub.order_ref1 AS orderRef1,
sub.order_ref2 AS orderRef2,
sub.ship_mothod AS shipMothod,
sub.crd AS crd,
d.part_no AS partNo,
p.part_desc AS partDesc,
d.status AS status,
d.status_db AS statusDb,
d.inspect_no AS inspectNo,
d.inspect_result AS inspectResult
FROM srm_inspect_request_detail_sub sub
INNER JOIN srm_inspect_request_detail d
ON sub.site = d.site
AND sub.request_no = d.request_no
AND sub.item_no = d.item_no
LEFT JOIN part p
ON sub.part_no = p.part_no
AND sub.site = p.site
<where>
<if test="query.site != null and query.site != ''">
AND sub.site = #{query.site}
</if>
<if test="query.orderNo != null and query.orderNo != ''">
AND sub.po_no = #{query.orderNo}
</if>
<if test="query.itemNo != null">
AND sub.po_item_no = #{query.itemNo}
</if>
</where>
ORDER BY sub.request_no DESC, sub.item_no ASC
</select>
<!-- 原子扣减 inspect_approve_qty 字段 -->
<update id="deductInspectApproveQty">
UPDATE PODetail
SET inspect_approve_qty = CASE
WHEN COALESCE(inspect_approve_qty, 0) - #{deductQty} &lt; 0 THEN 0
ELSE COALESCE(inspect_approve_qty, 0) - #{deductQty}
END
WHERE order_no = #{orderNo}
AND site = #{site}
AND item_no = #{itemNo}
</update>
<select id="getCustomerOptionList" resultType="com.xujie.modules.order.vo.PoCodeOptionVo">
SELECT
site,
customer_code AS code,
customer_name AS name,
active,
remark
FROM po_customer
WHERE site = #{site}
AND active = 'Y'
ORDER BY customer_code
</select>
<select id="getBuyerOptionList" resultType="com.xujie.modules.order.vo.PoCodeOptionVo">
SELECT
site,
buyer_code AS code,
buyer_name AS name,
active,
remark
FROM po_buyer
WHERE site = #{site}
AND customer_code = #{customer}
AND active = 'Y'
ORDER BY buyer_code
</select>
<select id="getVisibleOrderDataByOrderNo" resultType="java.util.HashMap" statementType="CALLABLE">
{CALL dbo.usp_po_order_visible_by_order_no(
#{site,mode=IN,jdbcType=NVARCHAR},
#{orderNo,mode=IN,jdbcType=NVARCHAR}
)}
</select>
<select id="getVisibleOrderDataByOrderRef1" resultType="java.util.HashMap" statementType="CALLABLE">
{CALL dbo.usp_po_order_visible_by_order_ref1(
#{site,mode=IN,jdbcType=NVARCHAR},
#{orderRef1,mode=IN,jdbcType=NVARCHAR}
)}
</select>
</mapper>