|
|
<?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) > CAST(#{c.value} AS DATE) </when> <when test="c.operator == 'gt'"> AND ${c.sqlExpression} > #{c.value} </when> <when test="c.operator == 'lt' and c.dataType == 'date'"> AND CAST(${c.sqlExpression} AS DATE) < CAST(#{c.value} AS DATE) </when> <when test="c.operator == 'lt'"> AND ${c.sqlExpression} < #{c.value} </when> <when test="c.operator == 'gte' and c.dataType == 'date'"> AND CAST(${c.sqlExpression} AS DATE) >= CAST(#{c.value} AS DATE) </when> <when test="c.operator == 'gte'"> AND ${c.sqlExpression} >= #{c.value} </when> <when test="c.operator == 'lte' and c.dataType == 'date'"> AND CAST(${c.sqlExpression} AS DATE) <= CAST(#{c.value} AS DATE) </when> <when test="c.operator == 'lte'"> AND ${c.sqlExpression} <= #{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 <> '' 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)), '') <> 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} < 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>
|