| | |
| | | <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"/> |
| | |
| | | |
| | | |
| | | <select id="selectProcessPage" resultMap="processResultMap"> |
| | | SELECT p.*, |
| | | m.machining_type as processName, |
| | | m.machining_tp AS tpurl |
| | | 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} |
| | | AND (sl.farm_id = #{process.farmId} or (inv.fps_id = #{process.farmId} AND p.land_id IS NULL)) |
| | | </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(a.process_num)as sum FROM |
| | | ( |
| | | SELECT DISTINCT p.process_num |
| | | FROM sys_process p |
| | | LEFT JOIN sys_land land ON land.id = p.land_id |
| | | LEFT JOIN sys_process_inv inv ON inv.product_id = p.process_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} or (inv.fps_id = #{farmId} AND p.land_id IS NULL)) |
| | | </if> |
| | | ) a |
| | | </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( middle.process_num ), 0 ) AS m, |
| | | middle.gptime |
| | | FROM |
| | | ( |
| | | SELECT DISTINCT |
| | | process.process_num, |
| | | 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 |
| | | LEFT JOIN sys_process_inv inv ON inv.product_id = process.process_id |
| | | WHERE |
| | | DATE_FORMAT( process.sale_time, '%Y-%m' ) = #{year} |
| | | and (sl.farm_id = #{farmId} OR ( inv.fps_id = #{farmId} AND process.land_id IS NULL )) |
| | | )middle GROUP BY middle.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 middle.a,SUM(middle.process_num) b FROM |
| | | ( |
| | | select DISTINCT |
| | | month(p.sale_time) a, |
| | | p.process_num |
| | | from sys_process p |
| | | left join sys_land sl on sl.id = p.land_id |
| | | LEFT JOIN sys_process_inv inv ON inv.product_id = p.process_id |
| | | where |
| | | year(p.sale_time) = #{year} |
| | | and (sl.farm_id = #{farmId} OR ( inv.fps_id = #{farmId} AND p.land_id IS NULL )) |
| | | ) middle GROUP BY middle.a |
| | | ) 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 middle.order_hour,SUM(middle.process_num) num FROM |
| | | ( |
| | | SELECT DISTINCT |
| | | HOUR(process.sale_time) AS order_hour, |
| | | process.process_num |
| | | from sys_process process |
| | | left join sys_land sl on sl.id = process.land_id |
| | | LEFT JOIN sys_process_inv inv ON inv.product_id = process.process_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} OR ( inv.fps_id = #{farmId} AND process.land_id IS NULL )) |
| | | ) middle GROUP BY middle.order_hour |
| | | ) b ON a.order_hour=b.order_hour |
| | | ORDER BY a.order_hour |
| | | </select> |
| | | </mapper> |