| | |
| | | |
| | | <!--自定义查询农产品库存分页数据--> |
| | | <select id="selectFarmProductStockPage" resultType="org.springblade.modules.farmplant.vo.FarmProductStockVO"> |
| | | select sfps.strain_id strainId,sum(sfps.weight) weight,ss.url,ss.strain_name strainName from |
| | | select sfps.id,sfps.strain_id strainId,sfps.land_id,sum(sfps.weight) weight,ss.url,ss.strain_name strainName from |
| | | sys_farm_product_stock sfps |
| | | left join sys_strain ss on ss.id = sfps.strain_id |
| | | left join sys_land sl on sl.id = sfps.land_id |
| | | where 1=1 |
| | | <if test="farmProductStock.strainId!=null and farmProductStock.strainId!=''"> |
| | | and sfps.strain_id = #{farmProductStock.strainId} |
| | |
| | | <if test="farmProductStock.tenantId!=null and farmProductStock.tenantId!=''"> |
| | | and sfps.tenant_id = #{farmProductStock.tenantId} |
| | | </if> |
| | | group by sfps.strain_id,ss.url,ss.strain_name |
| | | <if test="farmProductStock.farmId!=null and farmProductStock.farmId!=''"> |
| | | and sl.farm_id = #{farmProductStock.farmId} |
| | | </if> |
| | | group by sfps.id,sfps.strain_id,ss.url,ss.strain_name,sfps.land_id |
| | | </select> |
| | | |
| | | <select id="selectFarmProductStockPageCount" resultType="org.springblade.modules.farmplant.vo.FarmProductStockVO"> |
| | | SELECT a.strainId,SUM(weight) weight,a.url,a.strainName FROM |
| | | (SELECT |
| | | sfps.id, |
| | | sfps.strain_id AS strainId, |
| | | sfps.land_id, |
| | | sum( sfps.weight ) AS weight, |
| | | ss.url, |
| | | ss.strain_name AS strainName |
| | | FROM |
| | | sys_farm_product_stock sfps |
| | | LEFT JOIN sys_strain ss ON ss.id = sfps.strain_id |
| | | LEFT JOIN sys_land sl ON sl.id = sfps.land_id |
| | | WHERE |
| | | 1 = 1 |
| | | <if test="farmProductStock.strainId!=null and farmProductStock.strainId!=''"> |
| | | and sfps.strain_id = #{farmProductStock.strainId} |
| | | </if> |
| | | <if test="farmProductStock.leaves!=null and farmProductStock.leaves!=''"> |
| | | and sfps.leaves = #{farmProductStock.leaves} |
| | | </if> |
| | | <if test="farmProductStock.startTime!=null and farmProductStock.startTime!=''"> |
| | | and sfps.time >= #{farmProductStock.startTime} |
| | | </if> |
| | | <if test="farmProductStock.endTime!=null and farmProductStock.endTime!=''"> |
| | | and sfps.time <= #{farmProductStock.endTime} |
| | | </if> |
| | | <if test="farmProductStock.deptId!=null and farmProductStock.deptId!=''"> |
| | | and sfps.dept_id = #{farmProductStock.deptId} |
| | | </if> |
| | | <if test="farmProductStock.tenantId!=null and farmProductStock.tenantId!=''"> |
| | | and sfps.tenant_id = #{farmProductStock.tenantId} |
| | | </if> |
| | | <if test="farmProductStock.farmId!=null and farmProductStock.farmId!=''"> |
| | | and sl.farm_id = #{farmProductStock.farmId} |
| | | </if> |
| | | GROUP BY |
| | | sfps.id, |
| | | sfps.strain_id, |
| | | ss.url, |
| | | ss.strain_name, |
| | | sfps.land_id |
| | | ) a WHERE weight !=0 GROUP BY strainId |
| | | </select> |
| | | |
| | | <select id="selectFarmProductStockPages" resultType="org.springblade.modules.farmplant.vo.FarmProductStockVO"> |
| | | select sfps.strain_id strainId,sfps.land_id,sum(sfps.weight) weight,ss.url,ss.strain_name strainName from |
| | | sys_farm_product_stock sfps |
| | | left join sys_strain ss on ss.id = sfps.strain_id |
| | | left join sys_land sl on sl.id = sfps.land_id |
| | | where 1=1 |
| | | <if test="farmProductStock.strainId!=null and farmProductStock.strainId!=''"> |
| | | and sfps.strain_id = #{farmProductStock.strainId} |
| | | </if> |
| | | <if test="farmProductStock.leaves!=null and farmProductStock.leaves!=''"> |
| | | and sfps.leaves = #{farmProductStock.leaves} |
| | | </if> |
| | | <if test="farmProductStock.startTime!=null and farmProductStock.startTime!=''"> |
| | | and sfps.time >= #{farmProductStock.startTime} |
| | | </if> |
| | | <if test="farmProductStock.endTime!=null and farmProductStock.endTime!=''"> |
| | | and sfps.time <= #{farmProductStock.endTime} |
| | | </if> |
| | | <if test="farmProductStock.deptId!=null and farmProductStock.deptId!=''"> |
| | | and sfps.dept_id = #{farmProductStock.deptId} |
| | | </if> |
| | | <if test="farmProductStock.tenantId!=null and farmProductStock.tenantId!=''"> |
| | | and sfps.tenant_id = #{farmProductStock.tenantId} |
| | | </if> |
| | | <if test="farmProductStock.farmId!=null and farmProductStock.farmId!=''"> |
| | | and sl.farm_id = #{farmProductStock.farmId} |
| | | </if> |
| | | group by sfps.strain_id,ss.url,ss.strain_name,sfps.land_id |
| | | </select> |
| | | |
| | | <!--根据农场id和品种类型查询 关系:农产品库存表关联地块 -》 地块关联农场 -》 需要联合查询 --> |
| | | <select id="findFarmProductStockByFarmIdAndStrainId" resultType="org.springblade.modules.farmplant.entity.FarmProductStock"> |
| | | select a.* from sys_farm_product_stock a |
| | | left join sys_land b on a.land_id = b.id |
| | | where 1=1 and a.strain_id = #{strainId} and b.farm_id = #{farmId} |
| | | </select> |
| | | |
| | | |
| | | <!--查询农产品库存数据--> |
| | | <select id="statisticsProduct" resultType="org.springblade.modules.farmplant.vo.FarmProductStockVO"> |
| | | select sfps.strain_id strainId,sum(sfps.weight) weight,ss.url,ss.strain_name strainName from |
| | | select sfps.id,sfps.strain_id strainId,sum(sfps.weight) weight,ss.url,ss.strain_name strainName from |
| | | sys_farm_product_stock sfps |
| | | left join sys_strain ss on ss.id = sfps.strain_id |
| | | LEFT JOIN sys_land sl ON sl.id = sfps.land_id |
| | | where 1=1 |
| | | <if test="farmProductStock.strainId!=null and farmProductStock.strainId!=''"> |
| | | and sfps.strain_id = #{farmProductStock.strainId} |
| | |
| | | <if test="farmProductStock.tenantId!=null and farmProductStock.tenantId!=''"> |
| | | and sfps.tenant_id = #{farmProductStock.tenantId} |
| | | </if> |
| | | group by sfps.strain_id,ss.url,ss.strain_name |
| | | <if test="farmProductStock.farmId!=null and farmProductStock.farmId!=''"> |
| | | and sl.farm_id = #{farmProductStock.farmId} |
| | | </if> |
| | | group by sfps.id,sfps.strain_id,ss.url,ss.strain_name |
| | | </select> |
| | | |
| | | <!--大屏产量每个月统计--> |
| | |
| | | |
| | | <!--大屏经营概况库存数量统计--> |
| | | <select id="statisticsStock" resultType="java.util.HashMap"> |
| | | SELECT |
| | | SUM( stock.weight ) AS sum , |
| | | SUM( stock.recovery ) AS cssum |
| | | FROM |
| | | sys_farm_product_stock AS stock |
| | | SELECT SUM( stock.weight ) AS sum,SUM( stock.recovery ) AS cssum FROM sys_farm_product_stock AS stock |
| | | left join sys_land sl on sl.id = stock.land_id |
| | | WHERE |
| | | 1 = 1 |
| | | <if test="year!=null and year!=''"> |
| | | and YEAR ( stock.time ) = #{year} |
| | | </if> |
| | | <if test="deptId!=null and deptId!=''"> |
| | | and stock.dept_id = #{deptId} |
| | | <if test="farmId!=null and farmId!=''"> |
| | | and sl.farm_id = #{farmId} |
| | | </if> |
| | | </select> |
| | | <!--按年统计产量--> |
| | | <!-- <select id="statisticsStockYear" resultType="java.util.HashMap">--> |
| | | <!-- SELECT--> |
| | | <!-- IFNULL( SUM( CASE WHEN MONTH ( time ) = 1 THEN weight END ), 0 ) AS '1',--> |
| | | <!-- IFNULL( SUM( CASE WHEN MONTH ( time ) = 2 THEN weight END ), 0 ) AS '2',--> |
| | | <!-- IFNULL( SUM( CASE WHEN MONTH ( time ) = 3 THEN weight END ), 0 ) AS '3',--> |
| | | <!-- IFNULL( SUM( CASE WHEN MONTH ( time ) = 4 THEN weight END ), 0 ) AS '4',--> |
| | | <!-- IFNULL( SUM( CASE WHEN MONTH ( time ) = 5 THEN weight END ), 0 ) AS '5',--> |
| | | <!-- IFNULL( SUM( CASE WHEN MONTH ( time ) = 6 THEN weight END ), 0 ) AS '6',--> |
| | | <!-- IFNULL( SUM( CASE WHEN MONTH ( time ) = 7 THEN weight END ), 0 ) AS '7',--> |
| | | <!-- IFNULL( SUM( CASE WHEN MONTH ( time ) = 8 THEN weight END ), 0 ) AS '8',--> |
| | | <!-- IFNULL( SUM( CASE WHEN MONTH ( time ) = 9 THEN weight END ), 0 ) AS '9',--> |
| | | <!-- IFNULL( SUM( CASE WHEN MONTH ( time ) = 10 THEN weight END ), 0 ) AS '10',--> |
| | | <!-- IFNULL( SUM( CASE WHEN MONTH ( time ) = 11 THEN weight END ), 0 ) AS '11',--> |
| | | <!-- IFNULL( SUM( CASE WHEN MONTH ( time ) = 12 THEN weight END ), 0 ) AS '12'--> |
| | | <!-- FROM--> |
| | | <!-- sys_recovery--> |
| | | <!-- where--> |
| | | <!-- 1 = 1--> |
| | | <!-- <if test="year!=null and year!=''">--> |
| | | <!-- and YEAR ( time ) = #{year}--> |
| | | <!-- </if>--> |
| | | <!-- <if test="deptId!=null and deptId!=''">--> |
| | | <!-- and dept_id = #{deptId}--> |
| | | <!-- </if>--> |
| | | <!-- </select>--> |
| | | <select id="statisticsStockYear" resultType="java.util.HashMap"> |
| | | 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(ssr.time) a,sum(weight) b from sys_recovery ssr |
| | | left join sys_land sl on sl.id = ssr.land_id |
| | | where year(ssr.time) = #{year} |
| | | and sl.farm_id = #{farmId} |
| | | GROUP BY month(ssr.time) |
| | | ) n |
| | | on m.id = n.a |
| | | order by id |
| | | </select> |
| | | <!--按月份统计产量--> |
| | | <select id="statisticsStockMonth" resultType="java.util.HashMap"> |
| | | SELECT |
| | | IFNULL( SUM( CASE WHEN MONTH ( time ) = 1 THEN weight END ), 0 ) AS '1', |
| | | IFNULL( SUM( CASE WHEN MONTH ( time ) = 2 THEN weight END ), 0 ) AS '2', |
| | | IFNULL( SUM( CASE WHEN MONTH ( time ) = 3 THEN weight END ), 0 ) AS '3', |
| | | IFNULL( SUM( CASE WHEN MONTH ( time ) = 4 THEN weight END ), 0 ) AS '4', |
| | | IFNULL( SUM( CASE WHEN MONTH ( time ) = 5 THEN weight END ), 0 ) AS '5', |
| | | IFNULL( SUM( CASE WHEN MONTH ( time ) = 6 THEN weight END ), 0 ) AS '6', |
| | | IFNULL( SUM( CASE WHEN MONTH ( time ) = 7 THEN weight END ), 0 ) AS '7', |
| | | IFNULL( SUM( CASE WHEN MONTH ( time ) = 8 THEN weight END ), 0 ) AS '8', |
| | | IFNULL( SUM( CASE WHEN MONTH ( time ) = 9 THEN weight END ), 0 ) AS '9', |
| | | IFNULL( SUM( CASE WHEN MONTH ( time ) = 10 THEN weight END ), 0 ) AS '10', |
| | | IFNULL( SUM( CASE WHEN MONTH ( time ) = 11 THEN weight END ), 0 ) AS '11', |
| | | IFNULL( SUM( CASE WHEN MONTH ( time ) = 12 THEN weight END ), 0 ) AS '12' |
| | | DAY(lefttable.date) time, |
| | | IFNULL( righttable.m, '0' ) AS num |
| | | FROM |
| | | sys_recovery |
| | | where |
| | | 1 = 1 |
| | | <if test="year!=null and year!=''"> |
| | | and YEAR ( time ) = #{year} |
| | | </if> |
| | | <if test="deptId!=null and deptId!=''"> |
| | | and dept_id = #{deptId} |
| | | </if> |
| | | ( |
| | | 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( weight ), 0 ) AS m, |
| | | DATE_FORMAT( recovery.time, '%Y-%c-%d' ) AS gptime |
| | | FROM |
| | | sys_recovery recovery |
| | | left join sys_land sl on sl.id = recovery.land_id |
| | | WHERE DATE_FORMAT( recovery.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="statisticsStockDay" resultType="java.util.HashMap"> |
| | | 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(recovery.time) AS order_hour, SUM(weight) AS num from sys_recovery recovery |
| | | left join sys_land sl on sl.id = recovery.land_id |
| | | WHERE recovery.time >= str_to_date(concat(#{year},' 00:00:00'),'%Y-%m-%d %T') |
| | | AND recovery.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> |
| | | <!--农产品监管--> |
| | | <select id="productsSupervise" resultType="java.util.HashMap"> |
| | |
| | | IFNULL( SUM( CASE WHEN LEAVES = 2 THEN weight END ), 0 ) AS '2', |
| | | IFNULL( SUM( CASE WHEN LEAVES = 3 THEN weight END ), 0 ) AS '3', |
| | | IFNULL( SUM( CASE WHEN LEAVES = 4 THEN weight END ), 0 ) AS '4' |
| | | FROM |
| | | sys_recovery |
| | | WHERE |
| | | 1 = 1 |
| | | FROM sys_recovery sr |
| | | left join sys_land sl on sr.land_id = sl.id |
| | | WHERE 1 = 1 |
| | | <if test="year!=null and year!=''"> |
| | | and YEAR ( time ) = #{year} |
| | | and sr.time like concat('%',#{year},'%') |
| | | </if> |
| | | <if test="deptId!=null and deptId!=''"> |
| | | and dept_id = #{deptId} |
| | | <if test="farmId!=null and farmId!=''"> |
| | | and sl.farm_id = #{farmId} |
| | | </if> |
| | | </select> |
| | | <!--大屏经营概况年产量统计--> |
| | |
| | | |
| | | <!--小程序农产品库存详情数据--> |
| | | <select id="statisticsProductx" resultType="org.springblade.modules.farmplant.vo.FarmProductStockVO"> |
| | | select sfps.strain_id strainId,sfps.weight,ss.url,ss.strain_name strainName from |
| | | select sfps.strain_id strainId,SUM(sfps.weight) AS weight,ss.url,ss.strain_name strainName from |
| | | sys_farm_product_stock sfps |
| | | left join sys_strain ss on ss.id = sfps.strain_id |
| | | LEFT JOIN sys_land land ON land.id = sfps.land_id |
| | | where 1=1 |
| | | <if test="farmProductStock.strainId!=null and farmProductStock.strainId!=''"> |
| | | and sfps.strain_id = #{farmProductStock.strainId} |
| | |
| | | <if test="farmProductStock.tenantId!=null and farmProductStock.tenantId!=''"> |
| | | and sfps.tenant_id = #{farmProductStock.tenantId} |
| | | </if> |
| | | <if test="farmProductStock.strainType !=null and farmProductStock.strainType !='' "> |
| | | and ss.strain_type = #{farmProductStock.strainType} |
| | | </if> |
| | | <if test="farmProductStock.farmId !=null and farmProductStock.farmId !='' "> |
| | | and land.farm_id = #{farmProductStock.farmId} |
| | | </if> |
| | | GROUP BY sfps.strain_id |
| | | </select> |
| | | |
| | | <!--销售对比库存是否充足--> |
| | |
| | | SELECT |
| | | CASE |
| | | WHEN |
| | | weight > #{sale} THEN |
| | | weight >= #{sale} THEN |
| | | TRUE ELSE FALSE |
| | | END result |
| | | FROM |
| | | sys_farm_product_stock |
| | | WHERE |
| | | strain_id = #{id} |
| | | id = #{id} |
| | | </select> |
| | | |
| | | <!--减去对应库存--> |
| | | <update id="stockReduce"> |
| | | UPDATE sys_farm_product_stock SET weight = weight - #{sale} |
| | | WHERE |
| | | strain_id = #{id} |
| | | id = #{id} |
| | | </update> |
| | | |
| | | <select id="selectBy2Id" resultType="org.springblade.modules.farmplant.entity.FarmProductStock"> |
| | | SELECT id,strain_id,weight,leaves,time,operator,remark, |
| | | create_time,farm_plant_id,dept_id,tenant_id,recovery,land_id |
| | | FROM sys_farm_product_stock WHERE strain_id = #{strainId} AND land_id = #{landId} |
| | | </select> |
| | | </mapper> |