智慧农业后台管理
Administrator
2022-07-11 e69229e91d9e44ae22a7fa97d85a1d2da1655a8d
src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml
@@ -20,6 +20,38 @@
        <if test="farmProductStock.endTime!=null and farmProductStock.endTime!=''">
            and sfps.time &lt;= #{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="selectFarmProductStockPages" 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 &gt;= #{farmProductStock.startTime}
        </if>
        <if test="farmProductStock.endTime!=null and farmProductStock.endTime!=''">
            and sfps.time &lt;= #{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>
@@ -42,6 +74,12 @@
        <if test="farmProductStock.endTime!=null and farmProductStock.endTime!=''">
            and sfps.time &lt;= #{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>
@@ -52,4 +90,132 @@
        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 &gt;= #{farmProductStock.startTime}
        </if>
        <if test="farmProductStock.endTime!=null and farmProductStock.endTime!=''">
            and sfps.time &lt;= #{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>