| | |
| | | </select> |
| | | |
| | | <select id="statisticStationList" resultType="com.mzl.flower.dto.response.flower.StationStatisticDTO"> |
| | | select tt.*, |
| | | (SELECT |
| | | SUM( oi.num ) |
| | | FROM |
| | | t_delivery_order o |
| | | LEFT JOIN t_delivery_order_item i ON o.id = i.delivery_id |
| | | LEFT JOIN t_order_item oi ON oi.id = i.order_item_id |
| | | LEFT JOIN t_supplier_info s ON s.id = o.supplier_id |
| | | LEFT JOIN t_station st ON st.id = s.station_id |
| | | LEFT JOIN t_order t ON t.id = i.order_id |
| | | WHERE o.deleted = 0 AND s.station_id = tt.stationId |
| | | AND o.`status` IN ( 'CHECKED' ) |
| | | <if test="userId !=null and userId !=''"> |
| | | AND st.user_ids LIKE concat('%', #{userId},'%') |
| | | </if> |
| | | <if test="name !=null and name !=''"> |
| | | AND ( s.id LIKE concat('%', #{name},'%') OR |
| | | s.contact_tel LIKE concat('%', #{name},'%') OR |
| | | s.`name` LIKE concat('%', #{name},'%') OR |
| | | st.`name` LIKE concat('%', #{name},'%') OR |
| | | t.warehouse_location_code LIKE concat('%', #{name},'%') |
| | | ) |
| | | </if> |
| | | <if test="startDate != null"> |
| | | AND o.create_time > #{startDate} |
| | | </if> |
| | | <if test="endDate != null"> |
| | | AND o.create_time <= #{endDate} |
| | | </if> |
| | | |
| | | <if test="statusList != null and statusList.size > 0"> |
| | | AND o.status in |
| | | <foreach collection="statusList" item="status" open="(" separator="," close=")"> |
| | | #{status} |
| | | </foreach> |
| | | </if> |
| | | GROUP BY s.station_id, st.`name`) checkedSupplierCount, |
| | | ( |
| | | SELECT |
| | | s.station_id AS stationId, |
| | | st.`name`, |
| | | SUM( oi.num ) AS totalNum |
| | | FROM |
| | | t_delivery_order o |
| | | SUM( oi.num ) AS totalNum, |
| | | SUM(CASE WHEN o.`status` = 'CHECKED' THEN oi.num ELSE 0 END) AS checkedSupplierCount, |
| | | SUM(CASE WHEN o.`status` = 'PENDING' or o.`status`= 'ARRIVED' THEN oi.num ELSE 0 END) AS uncheckedSupplierCount |
| | | FROM t_delivery_order o |
| | | LEFT JOIN t_delivery_order_item i ON o.id = i.delivery_id |
| | | LEFT JOIN t_order_item oi ON oi.id = i.order_item_id |
| | | LEFT JOIN t_supplier_info s ON s.id = o.supplier_id |
| | | LEFT JOIN t_station st ON st.id = s.station_id |
| | | LEFT JOIN t_order t ON t.id = i.order_id |
| | | WHERE o.deleted = 0 AND s.station_id = tt.stationId |
| | | AND o.`status` IN ( 'PENDING', 'ARRIVED') |
| | | WHERE o.deleted = 0 |
| | | AND o.`status` IN ( 'PENDING', 'ARRIVED', 'CHECKED' ) |
| | | <if test="userId !=null and userId !=''"> |
| | | AND st.user_ids LIKE concat('%', #{userId},'%') |
| | | </if> |
| | |
| | | #{status} |
| | | </foreach> |
| | | </if> |
| | | GROUP BY s.station_id, st.`name`) uncheckedSupplierCount |
| | | from ( |
| | | SELECT |
| | | s.station_id AS stationId, |
| | | st.`name`, |
| | | SUM( oi.num ) AS totalNum |
| | | FROM |
| | | t_delivery_order o |
| | | LEFT JOIN t_delivery_order_item i ON o.id = i.delivery_id |
| | | LEFT JOIN t_order_item oi ON oi.id = i.order_item_id |
| | | LEFT JOIN t_supplier_info s ON s.id = o.supplier_id |
| | | LEFT JOIN t_station st ON st.id = s.station_id |
| | | LEFT JOIN t_order t ON t.id = i.order_id |
| | | WHERE o.deleted = 0 |
| | | AND o.`status` IN ( 'PENDING', 'ARRIVED', 'CHECKED' ) |
| | | <if test="userId !=null and userId !=''"> |
| | | AND st.user_ids LIKE concat('%', #{userId},'%') |
| | | </if> |
| | | <if test="name !=null and name !=''"> |
| | | AND ( s.id LIKE concat('%', #{name},'%') OR |
| | | s.contact_tel LIKE concat('%', #{name},'%') OR |
| | | s.`name` LIKE concat('%', #{name},'%') OR |
| | | st.`name` LIKE concat('%', #{name},'%') OR |
| | | t.warehouse_location_code LIKE concat('%', #{name},'%') |
| | | ) |
| | | </if> |
| | | <if test="startDate != null"> |
| | | AND o.create_time > #{startDate} |
| | | </if> |
| | | <if test="endDate != null"> |
| | | AND o.create_time <= #{endDate} |
| | | </if> |
| | | |
| | | <if test="statusList != null and statusList.size > 0"> |
| | | AND o.status in |
| | | <foreach collection="statusList" item="status" open="(" separator="," close=")"> |
| | | #{status} |
| | | </foreach> |
| | | </if> |
| | | GROUP BY s.station_id, st.`name` |
| | | ) tt |
| | | GROUP BY s.station_id, st.`name` |
| | | </select> |
| | | |
| | | <update id="setDeliveryOrderPending"> |