<?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.process.mapper.ProcessMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="processResultMap" type="org.springblade.modules.process.vo.ProcessVO">
|
<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="strain_name" property="strainName"/>
|
<result column="sale_time" property="saleTime"/>
|
<result column="sale_num" property="saleNum"/>
|
<result column="process_id" property="processId"/>
|
<result column="process_num" property="processNum"/>
|
<result column="land_id" property="landId"/>
|
</resultMap>
|
|
|
<select id="selectProcessPage" resultMap="processResultMap">
|
SELECT DISTINCT p.id,
|
p.strain_id,
|
p.land_id,
|
p.sale_time,
|
p.sale_num,
|
strain_name,p.process_id,
|
p.parent_id,
|
p.process_num as process_num,
|
m.machining_type AS processName,
|
m.machining_tp AS tpurl,
|
a.machining_type AS parentName
|
FROM sys_process p
|
LEFT JOIN sys_machining m ON m.id = p.process_id
|
LEFT JOIN sys_land sl ON sl.id = p.land_id
|
LEFT JOIN sys_strain strain ON p.strain_id = strain.id
|
LEFT JOIN sys_process_inv inv ON inv.product_id = p.process_id
|
LEFT JOIN (SELECT mm.id,mm.machining_type FROM sys_machining mm) a ON a.id = p.parent_id
|
WHERE p.is_deleted = 0
|
<if test="process.farmId!=null and process.farmId!=''">
|
AND (sl.farm_id = #{process.farmId} or inv.fps_id = #{process.farmId})
|
</if>
|
<if test="process.strainId !=null and process.strainId !=''">
|
and p.strain_id = #{process.strainId}
|
</if>
|
GROUP BY p.id
|
ORDER BY p.create_time DESC
|
</select>
|
|
<select id="stockCompare" resultType="boolean">
|
SELECT
|
CASE
|
WHEN
|
process_num > #{saleNum} THEN
|
TRUE ELSE FALSE
|
END result
|
FROM
|
sys_process
|
WHERE
|
id = #{proid}
|
</select>
|
|
<update id="stockReduce">
|
UPDATE sys_process SET process_num = process_num - #{saleNum}
|
WHERE
|
id = #{proid}
|
</update>
|
|
<select id="statistics" resultType="java.lang.Double">
|
SELECT SUM(p.process_num) AS sum
|
FROM sys_process p
|
LEFT JOIN sys_land land ON land.id = p.land_id
|
WHERE 1=1 AND p.is_deleted = 0
|
<if test="year!=null and year!=''">
|
and YEAR ( p.sale_time ) = #{year}
|
</if>
|
<if test="farmId!=null and farmId!=''">
|
and land.farm_id = #{farmId}
|
</if>
|
</select>
|
<select id="statisticsMonth" resultType="java.util.Map">
|
SELECT
|
DAY(lefttable.date) time,
|
IFNULL( righttable.m, '0' ) AS num
|
FROM
|
(
|
SELECT
|
ADDDATE( y.FIRST, x.d - 1 ) AS date
|
FROM
|
(
|
SELECT
|
1 AS d UNION ALL
|
SELECT
|
2 UNION ALL
|
SELECT
|
3 UNION ALL
|
SELECT
|
4 UNION ALL
|
SELECT
|
5 UNION ALL
|
SELECT
|
6 UNION ALL
|
SELECT
|
7 UNION ALL
|
SELECT
|
8 UNION ALL
|
SELECT
|
9 UNION ALL
|
SELECT
|
10 UNION ALL
|
SELECT
|
11 UNION ALL
|
SELECT
|
12 UNION ALL
|
SELECT
|
13 UNION ALL
|
SELECT
|
14 UNION ALL
|
SELECT
|
15 UNION ALL
|
SELECT
|
16 UNION ALL
|
SELECT
|
17 UNION ALL
|
SELECT
|
18 UNION ALL
|
SELECT
|
19 UNION ALL
|
SELECT
|
20 UNION ALL
|
SELECT
|
21 UNION ALL
|
SELECT
|
22 UNION ALL
|
SELECT
|
23 UNION ALL
|
SELECT
|
24 UNION ALL
|
SELECT
|
25 UNION ALL
|
SELECT
|
26 UNION ALL
|
SELECT
|
27 UNION ALL
|
SELECT
|
28 UNION ALL
|
SELECT
|
29 UNION ALL
|
SELECT
|
30 UNION ALL
|
SELECT
|
31
|
) x,
|
(
|
SELECT
|
CONCAT( #{year}, '-01' ) AS FIRST,
|
DAY ( LAST_DAY( str_to_date( concat( #{year}, '-01' ), '%Y-%m-%d' ) ) ) AS last
|
) y
|
WHERE
|
x.d <= y.last
|
AND ADDDATE( y.FIRST, x.d - 1 ) <= CURDATE( )
|
) AS lefttable
|
LEFT JOIN (
|
SELECT
|
IFNULL( sum( process.process_num ), 0 ) AS m,
|
DATE_FORMAT( process.sale_time, '%Y-%c-%d' ) AS gptime
|
FROM
|
sys_process process
|
left join sys_land sl on sl.id = process.land_id
|
WHERE DATE_FORMAT( process.sale_time, '%Y-%m' ) = #{year}
|
and sl.farm_id = #{farmId}
|
GROUP BY
|
gptime
|
) AS righttable ON DATE_FORMAT( lefttable.date, '%Y-%c-%d' ) = righttable.gptime
|
ORDER BY time
|
|
</select>
|
|
<select id="statisticsYear" resultType="java.util.Map">
|
select m.id time, IFNULL(b,0) num from
|
(
|
select 1 as id union
|
select 2 union
|
select 3 union
|
select 4 union
|
select 5 union
|
select 6 union
|
select 7 union
|
select 8 union
|
select 9 union
|
select 10 union
|
select 11 union
|
select 12
|
) m
|
left join
|
(
|
select month(p.sale_time) a,sum(p.process_num) b from sys_process p
|
left join sys_land sl on sl.id = p.land_id
|
where year(p.sale_time) = #{year}
|
and sl.farm_id = #{farmId}
|
GROUP BY month(p.sale_time)
|
) n
|
on m.id = n.a
|
order by id
|
</select>
|
|
<select id="statisticsDay" resultType="java.util.Map">
|
select a.order_hour as time, ifnull(b.num, 0) as num
|
from (
|
SELECT 0 AS order_hour UNION ALL SELECT 1 AS order_hour UNION ALL
|
SELECT 2 AS order_hour UNION ALL SELECT 3 AS order_hour UNION ALL
|
SELECT 4 AS order_hour UNION ALL SELECT 5 AS order_hour UNION ALL
|
SELECT 6 AS order_hour UNION ALL SELECT 7 AS order_hour UNION ALL
|
SELECT 8 AS order_hour UNION ALL SELECT 9 AS order_hour UNION ALL
|
SELECT 10 AS order_hour UNION ALL SELECT 11 AS order_hour UNION ALL
|
SELECT 12 AS order_hour UNION ALL SELECT 13 AS order_hour UNION ALL
|
SELECT 14 AS order_hour UNION ALL SELECT 15 AS order_hour UNION ALL
|
SELECT 16 AS order_hour UNION ALL SELECT 17 AS order_hour UNION ALL
|
SELECT 18 AS order_hour UNION ALL SELECT 19 AS order_hour UNION ALL
|
SELECT 20 AS order_hour UNION ALL SELECT 21 AS order_hour UNION ALL
|
SELECT 22 AS order_hour UNION ALL SELECT 23 AS order_hour
|
) as a
|
LEFT JOIN
|
(
|
SELECT HOUR(process.sale_time) AS order_hour, SUM(process.process_num) AS num from sys_process process
|
left join sys_land sl on sl.id = process.land_id
|
WHERE process.sale_time >= str_to_date(concat(#{year},' 00:00:00'),'%Y-%m-%d %T')
|
AND process.sale_time <= str_to_date(concat(#{year},' 23:59:59'),'%Y-%m-%d %T')
|
and sl.farm_id = #{farmId}
|
GROUP BY order_hour
|
) b ON a.order_hour=b.order_hour
|
ORDER BY a.order_hour
|
</select>
|
</mapper>
|