<?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.farmplant.mapper.FarmProductStockMapper">
|
|
<!--自定义查询农产品库存分页数据-->
|
<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
|
sys_farm_product_stock sfps
|
left join sys_strain ss on ss.id = sfps.strain_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>
|
group by sfps.strain_id,ss.url,ss.strain_name
|
</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
|
sys_farm_product_stock sfps
|
left join sys_strain ss on ss.id = sfps.strain_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>
|
group by sfps.strain_id,ss.url,ss.strain_name
|
</select>
|
|
<!--大屏产量每个月统计-->
|
<select id="selctProductCount" resultType="java.util.HashMap">
|
SELECT SUM(CASE WHEN MONTH ( s.time ) = 1 THEN s.weight END ) AS '1', SUM(CASE WHEN MONTH ( s.time ) = 2 THEN s.weight END ) AS '2', SUM(CASE WHEN MONTH ( s.time ) = 3 THEN s.weight END ) AS '3', SUM(CASE WHEN MONTH ( s.time ) = 4 THEN s.weight END ) AS '4', SUM(CASE WHEN MONTH ( s.time ) = 5 THEN s.weight END ) AS '5', SUM(CASE WHEN MONTH ( s.time ) = 6 THEN s.weight END ) AS '6', SUM(CASE WHEN MONTH ( s.time ) = 7 THEN s.weight END ) AS '7', SUM(CASE WHEN MONTH ( s.time ) = 8 THEN s.weight END ) AS '8', SUM(CASE WHEN MONTH ( s.time ) = 9 THEN s.weight END ) AS '9', SUM(CASE WHEN MONTH ( s.time ) = 10 THEN s.weight END ) AS '10', SUM(CASE WHEN MONTH ( s.time ) = 11 THEN s.weight END ) AS '11', SUM(CASE WHEN MONTH ( s.time ) = 12 THEN s.weight END ) AS '12'
|
FROM sys_farm_product_stock AS s
|
WHERE
|
YEAR ( s.time ) =#{year}
|
</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
|
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>
|
</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'
|
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="productsSupervise" resultType="java.util.HashMap">
|
SELECT
|
IFNULL( SUM( CASE WHEN LEAVES = 0 THEN weight END ), 0 ) AS '0',
|
IFNULL( SUM( CASE WHEN LEAVES = 1 THEN weight END ), 0 ) AS '1',
|
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
|
<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="statisticsYield" resultType="java.util.HashMap">
|
SELECT
|
SUM( sale.sale_num ) AS sum
|
FROM
|
sys_sale AS sale
|
WHERE 1 = 1
|
<if test="year!=null and year!=''">
|
and YEAR ( sale.sale_time ) = #{year}
|
</if>
|
union all
|
SELECT
|
SUM( inventory.sale_num ) AS sum
|
FROM
|
sys_inventory AS inventory
|
WHERE 1 = 1
|
<if test="year!=null and year!=''">
|
and YEAR ( inventory.loss_time ) = #{year}
|
</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
|
sys_farm_product_stock sfps
|
left join sys_strain ss on ss.id = sfps.strain_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>
|
</select>
|
|
<!--销售对比库存是否充足-->
|
<select id="stockCompare" resultType="boolean">
|
SELECT
|
CASE
|
WHEN
|
weight > #{sale} THEN
|
TRUE ELSE FALSE
|
END result
|
FROM
|
sys_farm_product_stock
|
WHERE
|
strain_id = #{id}
|
</select>
|
<!--减去对应库存-->
|
<update id="stockReduce">
|
UPDATE sys_farm_product_stock SET weight = weight - #{sale}
|
WHERE
|
strain_id = #{id}
|
</update>
|
</mapper>
|