| | |
| | | <?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.ruoyi.inspect.mapper.InsOrderRatesMapper"> |
| | | <!-- 查询费用列表 --> |
| | | <select id="selectInsOrderRates" resultType="com.ruoyi.inspect.dto.SampleOrderDto"> |
| | | select * |
| | | from (select io.*, |
| | | <!-- 列表和全部汇总共用相同订单范围,每个订单仅计费一次。 --> |
| | | <sql id="ratesOrders"> |
| | | select io.*, |
| | | case |
| | | when |
| | | io.type_source = 0 |
| | | then io.sample_view |
| | | else io.sample end sampleStr, |
| | | GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model, |
| | | COALESCE(sum(st.price), 0) total_price |
| | | MAX(rates.total_price) total_price |
| | | from ins_order io |
| | | LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id |
| | | left join ins_order_standard_template iost on iost.ins_order_id = io.id |
| | | left join standard_template st on st.id = iost.template_id |
| | | where iost.id is not null |
| | | and io.state != 5 |
| | | group by io.id) a |
| | | join (select iost.ins_order_id, COALESCE(sum(st.price), 0) total_price |
| | | from ins_order_standard_template iost |
| | | left join standard_template st on st.id = iost.template_id |
| | | group by iost.ins_order_id) rates on rates.ins_order_id = io.id |
| | | where io.state != 5 |
| | | group by io.id |
| | | </sql> |
| | | <sql id="ratesFilter"> |
| | | <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> |
| | | ${ew.customSqlSegment} |
| | | </if> |
| | | </sql> |
| | | <select id="selectInsOrderRates" resultType="com.ruoyi.inspect.dto.SampleOrderDto"> |
| | | select * from (<include refid="ratesOrders"/>) a |
| | | <include refid="ratesFilter"/> |
| | | order by a.sample_date desc, a.id desc |
| | | </select> |
| | | |
| | | <select id="selectRatesSummary" resultType="com.ruoyi.inspect.dto.OrderRatesSummaryDto"> |
| | | select count(*) as count, |
| | | COALESCE(sum(case when a.is_discount = 1 and a.discount_amount is not null |
| | | then a.discount_amount else a.total_price end), 0) as total_amount |
| | | from (<include refid="ratesOrders"/>) a |
| | | <include refid="ratesFilter"/> |
| | | </select> |
| | | |
| | | <!-- 更新订单的费用优惠与备注 --> |
| | | <update id="updateOrderFee"> |
| | | update ins_order |