<?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="org.springblade.modules.sale.mapper.SaleMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="saleResultMap" type="org.springblade.modules.sale.vo.SaleVO">
|
<result column="id" property="id"/>
|
<result column="create_user" property="createUser"/>
|
<result column="create_dept" property="createDept"/>
|
<result column="create_time" property="createTime"/>
|
<result column="update_user" property="updateUser"/>
|
<result column="update_time" property="updateTime"/>
|
<result column="status" property="status"/>
|
<result column="is_deleted" property="isDeleted"/>
|
<result column="strain_id" property="strainId"/>
|
<result column="sale_time" property="saleTime"/>
|
<result column="sale_num" property="saleNum"/>
|
<result column="sale_destination" property="saleDestination"/>
|
<result column="sale_destination1" property="saleDestination1"/>
|
<result column="sale_price" property="salePrice"/>
|
<result column="real_name" property="realName"/>
|
<result column="strain_name" property="strainName"/>
|
<result column="url" property="url"/>
|
<result column="district" property="district"/>
|
<result column="land_id" property="landId"/>
|
<result column="city_name" property="cityName"/>
|
<result column="district_name" property="countyName"/>
|
</resultMap>
|
|
|
<select id="selectSalePage" resultMap="saleResultMap">
|
<!-- SELECT-->
|
<!-- sale.*,-->
|
<!-- user.real_name,-->
|
<!-- strain.strain_name,-->
|
<!-- strain.url,-->
|
<!-- district.name as district,-->
|
<!-- region.city_name,-->
|
<!-- region.district_name,-->
|
<!-- CASE WHEN sale.type = 1 THEN-->
|
<!-- (-->
|
<!-- SELECT m.machining_type FROM sys_process_inv inv-->
|
<!-- LEFT JOIN sys_machining m ON m.id = inv.product_id-->
|
<!-- WHERE sale.prod_id = inv.id-->
|
<!-- )-->
|
<!-- ELSE-->
|
<!-- (-->
|
<!-- SELECT strain.strain_name FROM sys_farm_product_stock sfps-->
|
<!-- LEFT JOIN sys_strain strain ON strain.id = sfps.strain_id-->
|
<!-- WHERE sale.prod_id = sfps.id-->
|
<!-- )-->
|
<!-- END AS proName-->
|
<!-- FROM-->
|
<!-- sys_sale sale-->
|
<!-- LEFT JOIN blade_user user on sale.create_user = user.id-->
|
<!-- LEFT JOIN sys_strain strain on sale.strain_id = strain.id-->
|
<!-- LEFT JOIN sys_district district on sale.sale_destination = district.code-->
|
<!-- LEFT JOIN blade_region region on sale.county = region.district_code-->
|
<!-- LEFT JOIN sys_land land ON land.id = sale.land_id-->
|
<!-- WHERE-->
|
<!-- <if test="sale.strainId !=null and sale.strainId != '' ">-->
|
<!-- sale.strain_id = #{sale.strainId} AND-->
|
<!-- </if>-->
|
<!-- <if test="sale.farmId != null and sale.farmId !=''">-->
|
<!-- land.farm_id = #{sale.farmId} AND-->
|
<!-- </if>-->
|
<!-- sale.is_deleted = 0 ORDER BY sale.create_time DESC-->
|
|
SELECT
|
sale.*,
|
USER.real_name,
|
strain.strain_name,
|
mach.machining_type AS proName,
|
strain.url,
|
district.NAME AS district,
|
region.city_name,
|
region.district_name
|
FROM
|
sys_sale sale
|
LEFT JOIN blade_user USER ON sale.create_user = USER.id
|
LEFT JOIN sys_strain strain ON sale.strain_id = strain.id
|
LEFT JOIN sys_district district ON sale.sale_destination = district.CODE
|
LEFT JOIN blade_region region ON sale.county = region.district_code
|
LEFT JOIN sys_land land ON land.id = sale.land_id
|
LEFT JOIN sys_process_inv inv ON inv.id = sale.prod_id
|
LEFT JOIN sys_machining mach ON mach.id = inv.product_id
|
WHERE
|
1 = 1
|
<if test="sale.farmId != null and sale.farmId !=''">
|
AND (land.farm_id = #{sale.farmId} OR inv.fps_id = #{sale.farmId})
|
</if>
|
<if test="sale.type != null and sale.type !='' ">
|
AND sale.type = #{sale.type}
|
</if>
|
<if test="sale.kind != null and sale.kind !='' ">
|
AND (inv.product_id = #{sale.kind} OR sale.strain_id = #{sale.kind})
|
</if>
|
AND sale.is_deleted = 0
|
ORDER BY
|
sale.create_time DESC
|
|
</select>
|
|
|
<!--大屏销售每个月统计-->
|
<select id="selctSaletCount" resultType="java.util.HashMap">
|
SELECT
|
IFNULL(SUM( CASE WHEN MONTH ( s.sale_time ) = 1 THEN s.sale_num * sale_price END ),0) AS '1',
|
IFNULL(SUM( CASE WHEN MONTH ( s.sale_time ) = 2 THEN s.sale_num * sale_price END ),0) AS '2',
|
IFNULL(SUM( CASE WHEN MONTH ( s.sale_time ) = 3 THEN s.sale_num * sale_price END ),0) AS '3',
|
IFNULL(SUM( CASE WHEN MONTH ( s.sale_time ) = 4 THEN s.sale_num * sale_price END ),0) AS '4',
|
IFNULL(SUM( CASE WHEN MONTH ( s.sale_time ) = 5 THEN s.sale_num * sale_price END ),0) AS '5',
|
IFNULL(SUM( CASE WHEN MONTH ( s.sale_time ) = 6 THEN s.sale_num * sale_price END ),0) AS '6',
|
IFNULL(SUM( CASE WHEN MONTH ( s.sale_time ) = 7 THEN s.sale_num * sale_price END ),0) AS '7',
|
IFNULL(SUM( CASE WHEN MONTH ( s.sale_time ) = 8 THEN s.sale_num * sale_price END ),0) AS '8',
|
IFNULL(SUM( CASE WHEN MONTH ( s.sale_time ) = 9 THEN s.sale_num * sale_price END ),0) AS '9',
|
IFNULL(SUM( CASE WHEN MONTH ( s.sale_time ) = 10 THEN s.sale_num * sale_price END ),0) AS '10',
|
IFNULL(SUM( CASE WHEN MONTH ( s.sale_time ) = 11 THEN s.sale_num * sale_price END ),0) AS '11',
|
IFNULL(SUM( CASE WHEN MONTH ( s.sale_time ) = 12 THEN s.sale_num * sale_price END ),0) AS '12'
|
FROM
|
sys_sale AS s
|
LEFT JOIN sys_land sl ON sl.id = s.land_id
|
WHERE
|
YEAR ( sale_time ) = YEAR ( NOW( ) )
|
<if test="farmId != null and farmId != ''">
|
and sl.farm_id = #{farmId}
|
</if>
|
</select>
|
|
<!--统计今年和去年的销售总额-->
|
<select id="selctSaletZ" resultType="java.util.HashMap" >
|
SELECT
|
IFNULL( SUM( sale_num * sale_price), 0 ) AS num
|
FROM
|
sys_sale ss
|
LEFT JOIN sys_land sl ON sl.id = ss.land_id
|
WHERE
|
YEAR ( sale_time ) = YEAR ( NOW( )-1 )
|
<if test="sale.farmId != null and sale.farmId != ''">
|
and sl.farm_id = #{sale.farmId}
|
</if>
|
UNION ALL
|
SELECT
|
IFNULL( SUM( sale_num * sale_price ), 0 ) AS num
|
FROM
|
sys_sale ss
|
LEFT JOIN sys_land sl ON sl.id = ss.land_id
|
WHERE
|
YEAR ( sale_time ) = YEAR ( date_sub( now( ), INTERVAL 1 YEAR ) )
|
<if test="sale.farmId != null and sale.farmId != ''">
|
and sl.farm_id = #{sale.farmId}
|
</if>
|
</select>
|
<!--统计市场流通/去年流通量/本月流通量-->
|
<select id="selectMarketCirculate" resultType="java.util.HashMap" >
|
SELECT IFNULL( SUM( sale_num ), 0 ) AS num FROM sys_sale ss
|
left join sys_land sl on sl.id = ss.land_id
|
WHERE YEAR ( ss.sale_time ) = YEAR ( NOW())
|
and sl.farm_id = #{sale.farmId}
|
UNION ALL
|
SELECT IFNULL(SUM(sale_num), 0) AS num FROM sys_sale ss
|
left join sys_land sl on sl.id = ss.land_id
|
WHERE YEAR ( ss.sale_time ) = YEAR ( date_sub( now( ), INTERVAL 1 YEAR ) )
|
and sl.farm_id = #{sale.farmId}
|
UNION ALL
|
SELECT IFNULL( SUM( sale_num ), 0 ) AS num FROM sys_sale ss
|
left join sys_land sl on sl.id = ss.land_id
|
WHERE DATE_FORMAT( ss.sale_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
|
and sl.farm_id = #{sale.farmId}
|
</select>
|
|
<select id="selectMarketDistrict" resultType="java.util.HashMap" >
|
SELECT
|
IFNULL( SUM( sale_num ), 0 ) AS num,
|
dis.`name`,
|
dis.lat,
|
dis.lng
|
FROM
|
sys_sale sale
|
LEFT JOIN sys_district dis ON sale.sale_destination = dis.CODE
|
LEFT JOIN sys_land sl ON sl.id = sale.land_id
|
LEFT JOIN sys_process_inv inv ON inv.id = sale.prod_id
|
WHERE 1 = 1 AND sale.is_deleted = 0
|
<if test="startTime != null and startTime != ''">
|
and sale_time >= #{startTime}
|
</if>
|
<if test="endTime != null and endTime != ''">
|
and sale_time <= #{endTime}
|
</if>
|
<if test="startTime == null and endTime == null ">
|
and YEAR ( sale_time ) = YEAR ( NOW( ) )
|
</if>
|
<if test="farmId != null and farmId != ''">
|
and (sl.farm_id = #{farmId} or inv.fps_id = #{farmId})
|
</if>
|
GROUP BY
|
dis.NAME,
|
dis.lat,
|
dis.lng
|
</select>
|
|
</mapper>
|