zhangback
17 小时以前 ba87fd72f14c5ed0caf14e9d8ff116d254a8c113
tms/src/main/resources/mapper/tms/TmsDispatchOrderMapper.xml
@@ -87,17 +87,47 @@
        <result property="quoteDetailId"    column="quote_detail_id"    />
        <result property="operationMode"    column="operation_mode"    />
        <result property="quotePlanId"    column="quote_plan_id"    />
        <result property="okTime"    column="ok_time"    />
        <result property="confirmTime"    column="confirm_time"    />
        <result property="isLoad"    column="is_load"    />
        <result property="commissionModel"    column="commission_model"    />
        <result property="orderTime"    column="order_time"    />
        <result property="iscc"    column="iscc"    />
        <result property="closeWhy"    column="close_why"    />
        <result property="closeTime"    column="close_time"    />
        <result property="closeBy"    column="close_by"    />
        <result property="closeRemark"    column="close_remark"    />
        <result property="isfk"    column="isfk"    />
        <result property="isPrint"    column="is_print"    />
        <result property="printCount"    column="print_count"    />
        <result property="printTime"    column="print_time"    />
        <result property="printBy"    column="print_by"    />
        <result property="sixLinkNo"    column="six_link_no"    />
        <result property="portName"    column="port_name"    />
        <result property="billNo"    column="bill_no"    />
        <result property="terminalName"    column="terminal_name"    />
        <result property="cargoName"    column="cargo_name"    />
        <result property="pieceCount"    column="piece_count"    />
        <result property="weight"    column="weight"    />
        <result property="contactName"    column="contact_name"    />
        <result property="contactPhone"    column="contact_phone"    />
        <result property="port"    column="port"    />
        <result property="seamlessNumber"    column="seamless_number"    />
        <result property="seamlessSupplierId"    column="seamless_supplier_id"    />
        <result property="seamlessSupplierName"    column="seamless_supplier_name"    />
        <result property="notes"    column="notes"    />
    </resultMap>
    <sql id="selectTmsDispatchOrderVo">
        select thisTab.id, thisTab.dispatch_no, thisTab.customer_id, thisTab.customer_name, thisTab.customer_code, thisTab.project_id, thisTab.project_name, thisTab.contract_id, thisTab.contract_name, thisTab.order_type, thisTab.transport_line, thisTab.sign_type, thisTab.vehicle_provider_id, thisTab.vehicle_provider_name, thisTab.loading_service_provider_id, thisTab.loading_service_provider_name, thisTab.customs_service_provider_id, thisTab.customs_service_provider_name, thisTab.is_urgent, thisTab.transport_type, thisTab.load_method, thisTab.main_driver_id, thisTab.main_driver_name, thisTab.assistant_driver_id, thisTab.required_vehicle_types, thisTab.assistant_driver_name, thisTab.vehicle_id, thisTab.container_no, thisTab.license_plate, thisTab.shipper_id, thisTab.earliest_departure, thisTab.shipper_name, thisTab.latest_departure, thisTab.shipper_mobile, thisTab.earliest_arrival, thisTab.shipper_address, thisTab.latest_arrival, thisTab.departure_address, thisTab.shipper_region_code, thisTab.receiver_id, thisTab.destination_address, thisTab.receiver_name, thisTab.actual_vehicle_type, thisTab.receiver_mobile, thisTab.actual_load_start, thisTab.shipper_region_label, thisTab.receiver_address, thisTab.actual_unload_end, thisTab.receiver_region_code, thisTab.actual_departure, thisTab.actual_arrival, thisTab.actual_quantity, thisTab.actual_weight, thisTab.receiver_region_label, thisTab.actual_volume, thisTab.reweigh_weight, thisTab.container_id, thisTab.electronic_lock, thisTab.empty_mileage, thisTab.shelf_id, thisTab.empty_fuel, thisTab.shelf_code, thisTab.loaded_mileage, thisTab.loaded_fuel, thisTab.shift_no, thisTab.line_no, thisTab.status, thisTab.create_by, thisTab.create_time, thisTab.update_by, thisTab.update_time, thisTab.remark, thisTab.accounts_receivable_status, thisTab.accounts_payable_status, thisTab.collection_plan_id, thisTab.payment_plan_id , thisTab.is_customs, thisTab.start_region_code, thisTab.end_region_code, thisTab.quote_detail_id, thisTab.operation_mode, thisTab.quote_plan_id from tms_dispatch_order AS thisTab
        select thisTab.id, thisTab.dispatch_no, thisTab.customer_id, thisTab.customer_name, thisTab.customer_code, thisTab.project_id, thisTab.project_name, thisTab.contract_id, thisTab.contract_name, thisTab.order_type, thisTab.transport_line, thisTab.sign_type, thisTab.vehicle_provider_id, thisTab.vehicle_provider_name, thisTab.loading_service_provider_id, thisTab.loading_service_provider_name, thisTab.customs_service_provider_id, thisTab.customs_service_provider_name, thisTab.is_urgent, thisTab.transport_type, thisTab.load_method, thisTab.main_driver_id, thisTab.main_driver_name, thisTab.assistant_driver_id, thisTab.required_vehicle_types, thisTab.assistant_driver_name, thisTab.vehicle_id, thisTab.container_no, thisTab.license_plate, thisTab.shipper_id, thisTab.earliest_departure, thisTab.shipper_name, thisTab.latest_departure, thisTab.shipper_mobile, thisTab.earliest_arrival, thisTab.shipper_address, thisTab.latest_arrival, thisTab.departure_address, thisTab.shipper_region_code, thisTab.receiver_id, thisTab.destination_address, thisTab.receiver_name, thisTab.actual_vehicle_type, thisTab.receiver_mobile, thisTab.actual_load_start, thisTab.shipper_region_label, thisTab.receiver_address, thisTab.actual_unload_end, thisTab.receiver_region_code, thisTab.actual_departure, thisTab.actual_arrival, thisTab.actual_quantity, thisTab.actual_weight, thisTab.receiver_region_label, thisTab.actual_volume, thisTab.reweigh_weight, thisTab.container_id, thisTab.electronic_lock, thisTab.empty_mileage, thisTab.shelf_id, thisTab.empty_fuel, thisTab.shelf_code, thisTab.loaded_mileage, thisTab.loaded_fuel, thisTab.shift_no, thisTab.line_no, thisTab.status, thisTab.create_by, thisTab.create_time, thisTab.update_by, thisTab.update_time, thisTab.remark, thisTab.accounts_receivable_status, thisTab.accounts_payable_status, thisTab.collection_plan_id, thisTab.payment_plan_id , thisTab.is_customs, thisTab.start_region_code, thisTab.end_region_code, thisTab.quote_detail_id, thisTab.operation_mode, thisTab.quote_plan_id, thisTab.ok_time, thisTab.confirm_time, thisTab.is_load ,thisTab.commission_model ,thisTab.order_time, thisTab.iscc, thisTab.close_why, thisTab.close_time, thisTab.close_by, thisTab.close_remark, thisTab.isfk, thisTab.is_print, thisTab.print_count, thisTab.print_time, thisTab.print_by, thisTab.six_link_no, thisTab.port_name, thisTab.bill_no, thisTab.terminal_name, thisTab.cargo_name, thisTab.piece_count, thisTab.weight, thisTab.contact_name, thisTab.contact_phone, thisTab.port, thisTab.seamless_number, thisTab.seamless_supplier_id, thisTab.seamless_supplier_name from tms_dispatch_order AS thisTab
    </sql>
    <sql id="selectTmsDispatchOrderVoCount">
        select count(0) from tms_dispatch_order as thisTab
    </sql>
    <sql id="whereCondition">
        <if test="dispatchNo != null  and dispatchNo != ''"> and thisTab.dispatch_no = #{dispatchNo}</if>
        <if test="dispatchNo != null  and dispatchNo != ''"> and thisTab.dispatch_no like concat('%',  #{dispatchNo}, '%')</if>
        <if test="customerId != null "> and thisTab.customer_id = #{customerId}</if>
        <if test="customerCode != null  and customerCode != ''"> and thisTab.customer_code = #{customerCode}</if>
        <if test="customerName != null  and customerName != ''"> and  thisTab.customer_name like concat('%', #{customerName}, '%')</if>
@@ -123,7 +153,7 @@
        <if test="assistantDriverName != null  and assistantDriverName != ''"> and  thisTab.assistant_driver_name like concat('%', #{assistantDriverName}, '%')</if>
        <if test="requiredVehicleTypes != null  and requiredVehicleTypes != ''"> and thisTab.required_vehicle_types = #{requiredVehicleTypes}</if>
        <if test="vehicleId != null "> and thisTab.vehicle_id = #{vehicleId}</if>
        <if test="licensePlate != null  and licensePlate != ''"> and thisTab.license_plate = #{licensePlate}</if>
        <if test="licensePlate != null  and licensePlate != ''"> and thisTab.license_plate  like concat('%',  #{licensePlate}, '%')</if>
        <if test="shipperId != null "> and thisTab.shipper_id = #{shipperId}</if>
        <if test="shipperName != null  and shipperName != ''"> and  thisTab.shipper_name like concat('%', #{shipperName}, '%')</if>
        <if test="shipperMobile != null  and shipperMobile != ''"> and thisTab.shipper_mobile = #{shipperMobile}</if>
@@ -150,6 +180,52 @@
        <if test="quoteDetailId != null "> and thisTab.quote_detail_id = #{quoteDetailId}</if>
        <if test="operationMode != null "> and thisTab.operation_mode = #{operationMode}</if>
        <if test="quotePlanId != null "> and thisTab.quote_plan_id = #{quotePlanId}</if>
        <if test="iscc != null "> and thisTab.iscc = #{iscc}</if>
        <if test="isfk != null "> and thisTab.isfk = #{isfk}</if>
        <if test="closeWhy != null "> and thisTab.close_why = #{closeWhy}</if>
        <if test="closeTime != null "> and thisTab.close_time = #{closeTime}</if>
        <if test="closeBy != null "> and thisTab.close_by = #{closeBy}</if>
        <if test="closeRemark != null "> and thisTab.close_remark = #{closeRemark}</if>
        <if test="createBy != null  and createBy != ''"> and  thisTab.create_by like concat('%', #{createBy}, '%')</if>
        <if test="updateBy != null  and updateBy != ''"> and  thisTab.update_by like concat('%', #{updateBy}, '%')</if>
        <if test="createTimeBegin != null and createTimeBegin != '' and createTimeEnd != null and createTimeEnd != ''"> and  thisTab.create_time between #{createTimeBegin} and #{createTimeEnd}</if>
        <if test="updateTimeBegin != null and updateTimeBegin != '' and updateTimeEnd != null and updateTimeEnd != ''"> and  thisTab.update_time between #{updateTimeBegin} and #{updateTimeEnd}</if>
        <if test="confirmTimeBegin != null and confirmTimeBegin != '' and confirmTimeEnd != null and confirmTimeEnd != ''"> and  thisTab.confirm_time between #{confirmTimeBegin} and #{confirmTimeEnd}</if>
        <if test="okTimeBegin != null and okTimeBegin != '' and okTimeEnd != null and okTimeEnd != ''"> and  thisTab.ok_time between #{okTimeBegin} and #{okTimeEnd}</if>
        <if test="isLoad != null "> and thisTab.is_load = #{isLoad}</if>
        <if test="commissionModel != null "> and thisTab.commission_model = #{commissionModel}</if>
        <if test="orderTime != null "> and thisTab.order_time = #{orderTime}</if>
        <if test="orderTimeBegin != null and orderTimeBegin != '' and orderTimeEnd != null and orderTimeEnd != ''"> and  thisTab.order_time between #{orderTimeBegin} and #{orderTimeEnd}</if>
        <if test="inStatusList != null and inStatusList.size > 0">
            and thisTab.status in
            <foreach item="item" collection="inStatusList" open="(" separator="," close=")">
                #{item}
            </foreach>
        </if>
        <if test="isPrint != null "> and thisTab.is_print = #{isPrint}</if>
        <if test="printCount != null "> and thisTab.print_count = #{printCount}</if>
        <if test="printTime != null "> and thisTab.print_time = #{printTime}</if>
        <if test="printBy != null  and printBy != ''"> and thisTab.print_by = #{printBy}</if>
        <if test="sixLinkNo != null  and sixLinkNo != ''"> and thisTab.six_link_no = #{sixLinkNo}</if>
        <if test="portName != null  and portName != ''"> and  thisTab.port_name like concat('%', #{portName}, '%')</if>
        <if test="billNo != null  and billNo != ''"> and thisTab.bill_no = #{billNo}</if>
        <if test="terminalName != null  and terminalName != ''"> and  thisTab.terminal_name like concat('%', #{terminalName}, '%')</if>
        <if test="cargoName != null  and cargoName != ''"> and  thisTab.cargo_name like concat('%', #{cargoName}, '%')</if>
        <if test="pieceCount != null "> and thisTab.piece_count = #{pieceCount}</if>
        <if test="weight != null "> and thisTab.weight = #{weight}</if>
        <if test="contactName != null  and contactName != ''"> and  thisTab.contact_name like concat('%', #{contactName}, '%')</if>
        <if test="contactPhone != null  and contactPhone != ''"> and thisTab.contact_phone = #{contactPhone}</if>
        <if test="port != null  and port != ''"> and thisTab.port = #{port}</if>
        <if test="seamlessNumber != null  and seamlessNumber != ''"> and thisTab.seamless_number = #{seamlessNumber}</if>
        <if test="seamlessSupplierId != null"> and thisTab.seamless_supplier_id = #{seamlessSupplierId}</if>
        <if test="seamlessSupplierName != null  and seamlessSupplierName != ''"> and thisTab.seamless_supplier_name = #{seamlessSupplierName}</if>
    </sql>
    <!--查询-->
@@ -256,6 +332,32 @@
            <if test="quoteDetailId != null">quote_detail_id,</if>
            <if test="operationMode != null">operation_mode,</if>
            <if test="quotePlanId != null">quote_plan_id,</if>
            <if test="isLoad != null">is_load,</if>
            <if test="commissionModel != null">commission_model,</if>
            <if test="orderTime != null">order_time,</if>
            <if test="iscc != null">iscc,</if>
            <if test="closeWhy != null">close_why,</if>
            <if test="closeTime != null">close_time,</if>
            <if test="closeBy != null">close_by,</if>
            <if test="closeRemark != null">close_remark,</if>
            <if test="isfk != null">isfk,</if>
            <if test="isPrint != null">is_print,</if>
            <if test="printCount != null">print_count,</if>
            <if test="printTime != null">print_time,</if>
            <if test="printBy != null">print_by,</if>
            <if test="sixLinkNo != null and sixLinkNo != ''">six_link_no,</if>
            <if test="portName != null and portName != ''">port_name,</if>
            <if test="billNo != null and billNo != ''">bill_no,</if>
            <if test="terminalName != null">terminal_name,</if>
            <if test="cargoName != null">cargo_name,</if>
            <if test="pieceCount != null">piece_count,</if>
            <if test="weight != null">weight,</if>
            <if test="contactName != null">contact_name,</if>
            <if test="contactPhone != null">contact_phone,</if>
            <if test="port != null">port,</if>
            <if test="seamlessNumber != null">seamless_number,</if>
            <if test="seamlessSupplierId != null">seamless_supplier_id,</if>
            <if test="seamlessSupplierName != null">seamless_supplier_name,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="dispatchNo != null and dispatchNo != ''">#{dispatchNo},</if>
@@ -339,17 +441,43 @@
            <if test="quoteDetailId != null">#{quoteDetailId},</if>
            <if test="operationMode != null">#{operationMode},</if>
            <if test="quotePlanId != null">#{quotePlanId},</if>
            <if test="isLoad != null">#{isLoad},</if>
            <if test="commissionModel != null">#{commissionModel},</if>
            <if test="orderTime != null">#{orderTime},</if>
            <if test="iscc != null">#{iscc},</if>
            <if test="closeWhy != null">#{closeWhy},</if>
            <if test="closeTime != null">#{closeTime},</if>
            <if test="closeBy != null">#{closeBy},</if>
            <if test="closeRemark != null">#{closeRemark},</if>
            <if test="isfk != null">#{isfk},</if>
            <if test="isPrint != null">#{isPrint},</if>
            <if test="printCount != null">#{printCount},</if>
            <if test="printTime != null">#{printTime},</if>
            <if test="printBy != null">#{printBy},</if>
            <if test="sixLinkNo != null and sixLinkNo != ''">#{sixLinkNo},</if>
            <if test="portName != null and portName != ''">#{portName},</if>
            <if test="billNo != null and billNo != ''">#{billNo},</if>
            <if test="terminalName != null">#{terminalName},</if>
            <if test="cargoName != null">#{cargoName},</if>
            <if test="pieceCount != null">#{pieceCount},</if>
            <if test="weight != null">#{weight},</if>
            <if test="contactName != null">#{contactName},</if>
            <if test="contactPhone != null">#{contactPhone},</if>
            <if test="port != null">#{port},</if>
            <if test="seamlessNumber != null">#{seamlessNumber},</if>
            <if test="seamlessSupplierId != null">#{seamlessSupplierId},</if>
            <if test="seamlessSupplierName != null">#{seamlessSupplierName},</if>
        </trim>
    </insert>
    <insert id="insertTmsDispatchOrderBatch" parameterType="java.util.List"  useGeneratedKeys="true" keyProperty="id">
        insert into tms_dispatch_order
        <trim prefix="(" suffix=") values" suffixOverrides=",">
            id,dispatch_no,customer_id,customer_name,customer_code,project_id,project_name,contract_id,contract_name,order_type,transport_line,sign_type,vehicle_provider_id,vehicle_provider_name,loading_service_provider_id,loading_service_provider_name,customs_service_provider_id,customs_service_provider_name,is_urgent,transport_type,load_method,main_driver_id,main_driver_name,assistant_driver_id,required_vehicle_types,assistant_driver_name,vehicle_id,container_no,license_plate,shipper_id,earliest_departure,shipper_name,latest_departure,shipper_mobile,earliest_arrival,shipper_address,latest_arrival,departure_address,shipper_region_code,receiver_id,destination_address,receiver_name,actual_vehicle_type,receiver_mobile,actual_load_start,shipper_region_label,receiver_address,actual_unload_end,receiver_region_code,actual_departure,actual_arrival,actual_quantity,actual_weight,receiver_region_label,actual_volume,reweigh_weight,container_id,electronic_lock,empty_mileage,shelf_id,empty_fuel,shelf_code,loaded_mileage,loaded_fuel,shift_no,line_no,status,create_by,create_time,update_by,update_time,remark,accounts_receivable_status,accounts_payable_status,collection_plan_id,payment_plan_id,is_customs,start_region_code,end_region_code,quote_detail_id,operation_mode,quote_plan_id,
            id,dispatch_no,customer_id,customer_name,customer_code,project_id,project_name,contract_id,contract_name,order_type,transport_line,sign_type,vehicle_provider_id,vehicle_provider_name,loading_service_provider_id,loading_service_provider_name,customs_service_provider_id,customs_service_provider_name,is_urgent,transport_type,load_method,main_driver_id,main_driver_name,assistant_driver_id,required_vehicle_types,assistant_driver_name,vehicle_id,container_no,license_plate,shipper_id,earliest_departure,shipper_name,latest_departure,shipper_mobile,earliest_arrival,shipper_address,latest_arrival,departure_address,shipper_region_code,receiver_id,destination_address,receiver_name,actual_vehicle_type,receiver_mobile,actual_load_start,shipper_region_label,receiver_address,actual_unload_end,receiver_region_code,actual_departure,actual_arrival,actual_quantity,actual_weight,receiver_region_label,actual_volume,reweigh_weight,container_id,electronic_lock,empty_mileage,shelf_id,empty_fuel,shelf_code,loaded_mileage,loaded_fuel,shift_no,line_no,status,create_by,create_time,update_by,update_time,remark,accounts_receivable_status,accounts_payable_status,collection_plan_id,payment_plan_id,is_customs,start_region_code,end_region_code,quote_detail_id,operation_mode,quote_plan_id,is_load,commission_model,order_time,iscc,close_why,close_time,close_by,close_remark,isfk,
        </trim>
        <foreach item="item" index="index" collection="list" separator=",">
            <trim prefix="(" suffix=") " suffixOverrides=",">
                #{item.id},#{item.dispatchNo},#{item.customerId},#{item.customerName},#{item.customerCode},#{item.projectId},#{item.projectName},#{item.contractId},#{item.contractName},#{item.orderType},#{item.transportLine},#{item.signType},#{item.vehicleProviderId},#{item.vehicleProviderName},#{item.loadingServiceProviderId},#{item.loadingServiceProviderName},#{item.customsServiceProviderId},#{item.customsServiceProviderName},#{item.isUrgent},#{item.transportType},#{item.loadMethod},#{item.mainDriverId},#{item.mainDriverName},#{item.assistantDriverId},#{item.requiredVehicleTypes},#{item.assistantDriverName},#{item.vehicleId},#{item.containerNo},#{item.licensePlate},#{item.shipperId},#{item.earliestDeparture},#{item.shipperName},#{item.latestDeparture},#{item.shipperMobile},#{item.earliestArrival},#{item.shipperAddress},#{item.latestArrival},#{item.departureAddress},#{item.shipperRegionCode},#{item.receiverId},#{item.destinationAddress},#{item.receiverName},#{item.actualVehicleType},#{item.receiverMobile},#{item.actualLoadStart},#{item.shipperRegionLabel},#{item.receiverAddress},#{item.actualUnloadEnd},#{item.receiverRegionCode},#{item.actualDeparture},#{item.actualArrival},#{item.actualQuantity},#{item.actualWeight},#{item.receiverRegionLabel},#{item.actualVolume},#{item.reweighWeight},#{item.containerId},#{item.electronicLock},#{item.emptyMileage},#{item.shelfId},#{item.emptyFuel},#{item.shelfCode},#{item.loadedMileage},#{item.loadedFuel},#{item.shiftNo},#{item.lineNo},#{item.status},#{item.createBy},#{item.createTime},#{item.updateBy},#{item.updateTime},#{item.remark},#{item.accountsReceivableStatus},#{item.accountsPayableStatus},#{item.collectionPlanId},#{item.paymentPlanId},#{item.isCustoms},#{item.startRegionCode},#{item.endRegionCode},#{item.quoteDetailId},#{item.operationMode},#{item.quotePlanId},
                #{item.id},#{item.dispatchNo},#{item.customerId},#{item.customerName},#{item.customerCode},#{item.projectId},#{item.projectName},#{item.contractId},#{item.contractName},#{item.orderType},#{item.transportLine},#{item.signType},#{item.vehicleProviderId},#{item.vehicleProviderName},#{item.loadingServiceProviderId},#{item.loadingServiceProviderName},#{item.customsServiceProviderId},#{item.customsServiceProviderName},#{item.isUrgent},#{item.transportType},#{item.loadMethod},#{item.mainDriverId},#{item.mainDriverName},#{item.assistantDriverId},#{item.requiredVehicleTypes},#{item.assistantDriverName},#{item.vehicleId},#{item.containerNo},#{item.licensePlate},#{item.shipperId},#{item.earliestDeparture},#{item.shipperName},#{item.latestDeparture},#{item.shipperMobile},#{item.earliestArrival},#{item.shipperAddress},#{item.latestArrival},#{item.departureAddress},#{item.shipperRegionCode},#{item.receiverId},#{item.destinationAddress},#{item.receiverName},#{item.actualVehicleType},#{item.receiverMobile},#{item.actualLoadStart},#{item.shipperRegionLabel},#{item.receiverAddress},#{item.actualUnloadEnd},#{item.receiverRegionCode},#{item.actualDeparture},#{item.actualArrival},#{item.actualQuantity},#{item.actualWeight},#{item.receiverRegionLabel},#{item.actualVolume},#{item.reweighWeight},#{item.containerId},#{item.electronicLock},#{item.emptyMileage},#{item.shelfId},#{item.emptyFuel},#{item.shelfCode},#{item.loadedMileage},#{item.loadedFuel},#{item.shiftNo},#{item.lineNo},#{item.status},#{item.createBy},#{item.createTime},#{item.updateBy},#{item.updateTime},#{item.remark},#{item.accountsReceivableStatus},#{item.accountsPayableStatus},#{item.collectionPlanId},#{item.paymentPlanId},#{item.isCustoms},#{item.startRegionCode},#{item.endRegionCode},#{item.quoteDetailId},#{item.operationMode},#{item.quotePlanId},#{item.isLoad},#{item.commissionModel},#{item.orderTime},#{item.iscc},#{item.closeWhy},#{item.closeTime},#{item.closeBy},#{item.closeRemark},#{item.isfk},
            </trim>
        </foreach>
    </insert>
@@ -439,6 +567,35 @@
            <if test="quoteDetailId != null">quote_detail_id = #{quoteDetailId},</if>
            <if test="operationMode != null">operation_mode = #{operationMode},</if>
            <if test="quotePlanId != null">quote_plan_id = #{quotePlanId},</if>
            <if test="confirmTime != null">confirm_time = #{confirmTime},</if>
            <if test="okTime != null">ok_time = #{okTime},</if>
            <if test="isLoad != null">is_load = #{isLoad},</if>
            <if test="commissionModel != null">commission_model = #{commissionModel},</if>
            <if test="orderTime != null">order_time = #{orderTime},</if>
            <if test="iscc != null">iscc = #{iscc},</if>
            <if test="closeWhy != null">close_why = #{closeWhy},</if>
            <if test="closeTime != null">close_time = #{closeTime},</if>
            <if test="closeBy != null">close_by = #{closeBy},</if>
            <if test="closeRemark != null">close_remark = #{closeRemark},</if>
            <if test="isfk != null">isfk = #{isfk},</if>
            <if test="isPrint != null">is_print = #{isPrint},</if>
            <if test="printCount != null">print_count = #{printCount},</if>
            <if test="printTime != null">print_time = #{printTime},</if>
            <if test="printBy != null">print_by = #{printBy},</if>
            <if test="sixLinkNo != null and sixLinkNo != ''">six_link_no = #{sixLinkNo},</if>
            <if test="portName != null and portName != ''">port_name = #{portName},</if>
            <if test="billNo != null and billNo != ''">bill_no = #{billNo},</if>
            <if test="terminalName != null">terminal_name = #{terminalName},</if>
            <if test="cargoName != null">cargo_name = #{cargoName},</if>
            <if test="pieceCount != null">piece_count = #{pieceCount},</if>
            <if test="weight != null">weight = #{weight},</if>
            <if test="contactName != null">contact_name = #{contactName},</if>
            <if test="contactPhone != null">contact_phone = #{contactPhone},</if>
            <if test="port != null">port = #{port},</if>
            <if test="seamlessNumber != null">seamless_number = #{seamlessNumber},</if>
            <if test="seamlessSupplierId != null">seamless_supplier_id = #{seamlessSupplierId},</if>
            <if test="seamlessSupplierName != null">seamless_supplier_name = #{seamlessSupplierName},</if>
            <if test="notes != null">notes = #{notes},</if>
        </trim>
        where id = #{id}
    </update>
@@ -522,12 +679,34 @@
                <if test="item.accountsPayableStatus != null">accounts_payable_status = #{item.accountsPayableStatus},</if>
                <if test="item.collectionPlanId != null">collection_plan_id = #{item.collectionPlanId},</if>
                <if test="item.paymentPlanId != null">payment_plan_id = #{item.paymentPlanId},</if>
                <if test="item.isCustoms != null">is_customs = #{isCustoms},</if>
                <if test="item.startRegionCode != null">start_region_code = #{startRegionCode},</if>
                <if test="item.endRegionCode != null">end_region_code = #{endRegionCode},</if>
                <if test="item.quoteDetailId != null">quote_detail_id = #{quoteDetailId},</if>
                <if test="item.operationMode != null">operation_mode = #{operationMode},</if>
                <if test="item.quotePlanId != null">quote_plan_id = #{quotePlanId},</if>
                <if test="item.isCustoms != null">is_customs = #{item.isCustoms},</if>
                <if test="item.startRegionCode != null">start_region_code = #{item.startRegionCode},</if>
                <if test="item.endRegionCode != null">end_region_code = #{item.endRegionCode},</if>
                <if test="item.quoteDetailId != null">quote_detail_id = #{item.quoteDetailId},</if>
                <if test="item.operationMode != null">operation_mode = #{item.operationMode},</if>
                <if test="item.quotePlanId != null">quote_plan_id = #{item.quotePlanId},</if>
                <if test="item.isLoad != null">is_load = #{item.isLoad},</if>
                <if test="item.commissionModel != null">commission_model = #{item.commissionModel},</if>
                <if test="item.orderTime != null">order_time = #{item.orderTime},</if>
                <if test="item.iscc != null">iscc = #{item.iscc},</if>
                <if test="item.closeWhy != null">close_why = #{item.closeWhy},</if>
                <if test="item.closeTime != null">close_time = #{item.closeTime},</if>
                <if test="item.closeBy != null">close_by = #{item.closeBy},</if>
                <if test="item.closeRemark != null">close_remark = #{item.closeRemark},</if>
                <if test="item.isfk != null">isfk = #{item.isfk},</if>
                <if test="item.isPrint != null">is_print = #{item.isPrint},</if>
                <if test="item.printCount != null">print_count = #{item.printCount},</if>
                <if test="item.printTime != null">print_time = #{item.printTime},</if>
                <if test="item.printBy != null">print_by = #{item.printBy},</if>
                <if test="item.sixLinkNo != null and item.sixLinkNo != ''">six_link_no = #{item.sixLinkNo},</if>
                <if test="item.portName != null and item.portName != ''">port_name = #{item.portName},</if>
                <if test="item.billNo != null and item.billNo != ''">bill_no = #{item.billNo},</if>
                <if test="item.terminalName != null">terminal_name = #{item.terminalName},</if>
                <if test="item.cargoName != null">cargo_name = #{item.cargoName},</if>
                <if test="item.pieceCount != null">piece_count = #{item.pieceCount},</if>
                <if test="item.weight != null">weight = #{item.weight},</if>
                <if test="item.contactName != null">contact_name = #{item.contactName},</if>
                <if test="item.contactPhone != null">contact_phone = #{item.contactPhone},</if>
            </trim>
            where id = #{item.id}
        </foreach>
@@ -568,16 +747,94 @@
        </if>
        and  tdd.driver_id = #{driverId};
        and  tdd.driver_id = #{driverId}
        ORDER BY tdd.id DESC
    </select>
    <select id="selectAssignedItineraryDetail" resultType="com.ruoyi.tms.domain.vo.DriverDispatchVo">
        SELECT tdo.dispatch_no, tdo.customer_name, tdo.license_plate,tdo.transport_line,tdo.status,tdo.latest_departure,
               tdd.status as tddStatus,tdd.driver_id,tdd.dispatch_id,tdo.ok_time,tdo.shelf_code
               tdd.status as tddStatus,tdd.driver_id,tdd.dispatch_id,tdo.ok_time,tdo.shelf_code,tdo.shipper_address,tdo.receiver_address
        FROM tms_dispatch_order AS tdo
                 LEFT JOIN tms_driver_dispatch AS tdd
                           ON tdo.id = tdd.dispatch_id
        where     tdo.id = #{dispatchId} and  tdd.driver_id = #{driverId};
    </select>
    <select id="selectselectDpData" resultType="com.ruoyi.tms.domain.vo.DpDriverDispatchVo">
        SELECT
    tdo.main_driver_name as driverName,
    tdo.dispatch_no as dispatchNo,
        tdo.confirm_time as confirmTime,
    tdo.license_plate as licensePlate,
      tdo.status,
    src.region_name AS startRegionName,
</mapper>
    erc.region_name AS endRegionName
FROM (
    SELECT id
    FROM tms_dispatch_order
    WHERE `status` IN (2, 3)
    and is_customs=0
    ORDER BY confirm_time DESC
    LIMIT 50
) tmp
JOIN tms_dispatch_order tdo ON tmp.id = tdo.id
LEFT JOIN tms_region src ON SUBSTRING_INDEX(tdo.start_region_code, ',', -1) = src.region_code
LEFT JOIN tms_region erc ON SUBSTRING_INDEX(tdo.end_region_code, ',', -1) = erc.region_code
ORDER BY tdo.confirm_time DESC
    </select>
    <select id="selectDataByNo" resultType="com.ruoyi.tms.domain.vo.DpDriverDispatchItemVo">
        SELECT
    tdo.dispatch_no as dispatchNo,
    tdo.customer_name as customerName,
    tdo.project_name as projectName
,
    tdo.transport_line as transportLine,
    tdo.confirm_time as confirmTime,
    tdo.create_time as createTime,
    tdo.main_driver_name as driverName,
    tdo.license_plate as licensePlate,
    JSON_ARRAYAGG(
        JSON_OBJECT(
            'tripTime', DATE_FORMAT(tr.trip_time, '%Y.%m.%d %H:%i:%s'),
            'status', (SELECT dict_label FROM sys_dict_data WHERE dict_type='trip_type' AND dict_value = tr.trip_type),
            'address', tr.address
        )
    ) AS trips
FROM tms_dispatch_order tdo
LEFT JOIN tms_trip tr ON tr.dispatch_order_id = tdo.id
WHERE tdo.dispatch_no = #{no}
GROUP BY tdo.id
    </select>
    <select id="selectItineraryLog" resultType="com.ruoyi.tms.domain.vo.DpItineraryLogVo">
        SELECT
   tr.vehicle_number as vehicleNumber,
   tr.trip_time as tripTime ,
   tdo.dispatch_no as dispatchNo ,
CASE
      trip_type
      WHEN 0 THEN
      '开始申报'
      WHEN 3 THEN
      '审核通过'
      WHEN 4 THEN
      '海关验放'
      WHEN 5 THEN
      '放行离场'
      end  as remark
   FROM
      tms_trip tr
      LEFT JOIN tms_dispatch_order tdo ON tr.dispatch_order_id = tdo.id
   WHERE
      tdo.`status` = 3
      AND tr.trip_type IN (
         0,
         3,
      4,
   5)
   order by tr.trip_time desc
    limit 50
    </select>
</mapper>